662
SUSE Linux www.novell.com 10.1 02/21/2006 Referência

Reference Pt BR

  • Upload
    arbonan

  • View
    2.451

  • Download
    2

Embed Size (px)

DESCRIPTION

Excelente material em pt_BR sobre SUSE Linux.

Citation preview

Page 1: Reference Pt BR

SUSE Linuxwww.novell.com10.1

02/21/2006 Referência

Page 2: Reference Pt BR

Referência

Lista de Autores: Jörg Arndt, Stefan Behlert, Frank Bodammer, James Branam, Volker Buzek, KlaraCihlarova, Stefan Dirsch, Olaf Donjak, Roman Drahtmüller, Thorsten Dubiel, Torsten Duwe, ThomasFehr, Stefan Fent, Werner Fink, Jakub Friedl, Kurt Garloff, Joachim Gleißner, Carsten Groß, AndreasGrünbacher, Berthold Gunreben, Franz Hassels, Andreas Jaeger, Jana Jaeger, Klaus Kämpf, AndiKleen, Hubert Mantel, Lars Marowsky-Bree, Chris Mason, Johannes Meixner, Lars Müller, MatthiasNagorni, Anas Nashif, Siegfried Olschner, Edith Parzefall, Peter Pöml, Thomas Renninger, HannesReinecke, Scott Rhoades, Thomas Rölz, Heiko Rommel, Tanja Roth, Marcus Schäfer, ThomasSchraitle, Klaus Singvogel, Frank Sundermeyer, Elisabeth Tobiasson, Hendrik Vogelsang, Klaus G.Wagner, Rebecca Walter, Christian Zoz

Esta publicação é propriedade intelectual da Novell Inc.

O seu conteúdo pode ser duplicado, em parte ou integralmente, desde que um rótulo de copyrightesteja visivelmente localizado em cada cópia.

Todas as informações deste manual foram compiladas com a maior atenção possível aos detalhes.Entretanto, isso não garante uma precisão absoluta. O SUSE LINUX GmbH, os autores ou os tradutoresnão deverão ser responsabilizados por possíveis erros ou conseqüências decorrentes.

Novell, o logotipo da Novell, o logotipo N e SUSE são marcas registradas da Novell, Inc. nos EstadosUnidos e em outros países. *Linux é marca registrada de Linus Torvalds. Todas as outras marcasregistradas de terceiros pertencem aos seus respectivos proprietários.

Envie sugestões e comentários para [email protected].

Page 3: Reference Pt BR

Sumário

Sobre este guia xi

Parte 1 Cenários de distribuição avançada 15

1 Instalação remota 171.1 Cenários de instalação para instalação remota . . . . . . . . . . . . . 171.2 Configurando o servidor que mantém as fontes de instalação . . . . . . 261.3 Preparando a inicialização do sistema de destino . . . . . . . . . . . 361.4 Inicializando o sistema de destino para instalação . . . . . . . . . . . 461.5 Monitorando o processo de instalação . . . . . . . . . . . . . . . . 51

2 Configuração de disco avançada 552.1 Configuração da LVM . . . . . . . . . . . . . . . . . . . . . . . 552.2 Configuração de RAID de software . . . . . . . . . . . . . . . . . 63

3 Atualizando o gerenciamento de sistemas e pacotes 693.1 Atualizando o SUSE Linux . . . . . . . . . . . . . . . . . . . . . 693.2 Mudanças no software de versão para versão . . . . . . . . . . . . . 723.3 RPM— o Gerenciador de pacotes . . . . . . . . . . . . . . . . . . 91

Parte 2 Administração 103

4 Segurança no Linux 1054.1 Mascaramento e firewalls . . . . . . . . . . . . . . . . . . . . . 1054.2 SSH: operações seguras de rede . . . . . . . . . . . . . . . . . . 115

Page 4: Reference Pt BR

4.3 Criptografando partições e arquivos . . . . . . . . . . . . . . . . 1214.4 Delimitando privilégios com o AppArmor . . . . . . . . . . . . . . 1244.5 Segurança e confidencialidade . . . . . . . . . . . . . . . . . . . 134

5 Listas de controle de acesso no Linux 1475.1 Permissões de arquivo tradicionais . . . . . . . . . . . . . . . . . 1475.2 Vantagens das ACLs . . . . . . . . . . . . . . . . . . . . . . . 1495.3 Definições . . . . . . . . . . . . . . . . . . . . . . . . . . . 1505.4 Gerenciando ACLs . . . . . . . . . . . . . . . . . . . . . . . . 1505.5 Suporte a ACL em aplicativos . . . . . . . . . . . . . . . . . . . 1585.6 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 159

6 Utilitários de monitoramento do sistema 1616.1 Lista de arquivos abertos: lsof . . . . . . . . . . . . . . . . . . 1616.2 Arquivos de acesso do usuário: fuser . . . . . . . . . . . . . . . 1636.3 Propriedades de arquivo: stat . . . . . . . . . . . . . . . . . . 1636.4 Dispositivos USB: lsusb . . . . . . . . . . . . . . . . . . . . . 1646.5 Informações sobre um dispositivo SCSI: scsiinfo . . . . . . . . . . 1646.6 Processos: top . . . . . . . . . . . . . . . . . . . . . . . . . 1656.7 Lista de processos: ps . . . . . . . . . . . . . . . . . . . . . . 1666.8 Árvore de processos: pstree . . . . . . . . . . . . . . . . . . . 1686.9 Quem está fazendo o quê: w . . . . . . . . . . . . . . . . . . . . 1686.10 Uso da memória: free . . . . . . . . . . . . . . . . . . . . . . 1696.11 Buffer do anel de kernel: dmesg . . . . . . . . . . . . . . . . . . 1696.12 Sistemas de arquivos e sua utilização: mount, df e du . . . . . . . . 1706.13 O sistema de arquivos /proc . . . . . . . . . . . . . . . . . . . 1706.14 Recursos PCI: lspci . . . . . . . . . . . . . . . . . . . . . . . 1746.15 Chamadas do sistema de uma execução de programa: strace . . . . . 1756.16 Chamadas da biblioteca de uma execução de programa: ltrace . . . . 1766.17 Especificação da biblioteca necessária: ldd . . . . . . . . . . . . . 1766.18 Informações adicionais sobre binários ELF . . . . . . . . . . . . . . 1776.19 Comunicação entre processos: ipcs . . . . . . . . . . . . . . . . 1776.20 Medição do tempo com time . . . . . . . . . . . . . . . . . . . 178

Parte 3 Sistema 179

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

7.1 Suporte ao tempo de execução . . . . . . . . . . . . . . . . . . 1817.2 Desenvolvimento de software . . . . . . . . . . . . . . . . . . . 1827.3 Compilação de software em plataformas biarch . . . . . . . . . . . 183

Page 5: Reference Pt BR

7.4 Especificações do kernel . . . . . . . . . . . . . . . . . . . . . 184

8 Inicializando e configurando um sistema Linux 1858.1 Processo de inicialização do Linux . . . . . . . . . . . . . . . . . 1858.2 O processo init . . . . . . . . . . . . . . . . . . . . . . . . . 1898.3 Configuração do sistema via /etc/sysconfig . . . . . . . . . . . . . . 198

9 O Carregador de Boot 2019.1 Selecionando um carregador de boot . . . . . . . . . . . . . . . . 2029.2 Inicializando com o GRUB . . . . . . . . . . . . . . . . . . . . . 2029.3 Configurando o carregador de boot com o YaST . . . . . . . . . . . 2129.4 Desinstalando a controladora de boot do Linux . . . . . . . . . . . . 2179.5 Criando CDs de boot . . . . . . . . . . . . . . . . . . . . . . . 2179.6 A tela gráfica do SUSE . . . . . . . . . . . . . . . . . . . . . . 2199.7 Solução de problemas . . . . . . . . . . . . . . . . . . . . . . 2199.8 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 221

10 Recursos especiais do SUSE Linux 22310.1 Informações sobre pacotes de software especiais . . . . . . . . . . . 22310.2 Consoles virtuais . . . . . . . . . . . . . . . . . . . . . . . . . 23010.3 Mapeamento de teclado . . . . . . . . . . . . . . . . . . . . . 23010.4 Configurações de idioma e específicas de país . . . . . . . . . . . . 231

11 Operação da impressora 23711.1 Fluxo de trabalho do sistema de impressão . . . . . . . . . . . . . 23911.2 Métodos e protocolos de conexão de impressoras . . . . . . . . . . 23911.3 Instalação do software . . . . . . . . . . . . . . . . . . . . . . 24011.4 Configuração da impressora . . . . . . . . . . . . . . . . . . . . 24111.5 Configuração de aplicativos . . . . . . . . . . . . . . . . . . . . 24711.6 Recursos especiais do SUSE Linux . . . . . . . . . . . . . . . . . . 24811.7 Solução de problemas . . . . . . . . . . . . . . . . . . . . . . 253

12 Gerenciamento de dispositivo de kernel dinâmico com udev 26112.1 O diretório /dev . . . . . . . . . . . . . . . . . . . . . . . . 26112.2 udev e uevents de kernel . . . . . . . . . . . . . . . . . . . . . 26212.3 Drivers, módulos de kernel e dispositivos . . . . . . . . . . . . . . 26212.4 Inicialização e configuração do dispositivo inicial . . . . . . . . . . . 26312.5 Depurando eventos do udev . . . . . . . . . . . . . . . . . . . . 26412.6 Influenciando o tratamento de evento de dispositivo de kernel com regras do udev

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

Page 6: Reference Pt BR

12.7 Nomeação de dispositivo persistente . . . . . . . . . . . . . . . . 26512.8 O pacote de hotplug substituído . . . . . . . . . . . . . . . . . . 26612.9 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 267

13 Sistemas de arquivos no Linux 26913.1 Terminologia . . . . . . . . . . . . . . . . . . . . . . . . . . 26913.2 Principais sistemas de arquivos no Linux . . . . . . . . . . . . . . . 27013.3 Outros sistemas de arquivos suportados . . . . . . . . . . . . . . . 27613.4 LFS (Large File Support - Suporte a Arquivos Grandes) no Linux . . . . . 27813.5 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 279

14 O sistema X Window 28114.1 Configuração do X11 com o SaX2 . . . . . . . . . . . . . . . . . 28114.2 Otimizando a configuração do X . . . . . . . . . . . . . . . . . . 28314.3 Instalando e configurando fontes . . . . . . . . . . . . . . . . . . 28914.4 Configuração 3D do OpenGL . . . . . . . . . . . . . . . . . . . 295

15 FreeNX: controlando outro computador remotamente 29915.1 Noções básicas do NX . . . . . . . . . . . . . . . . . . . . . . 29915.2 Configuração avançada do FreeNX . . . . . . . . . . . . . . . . . 30215.3 Solução de problemas . . . . . . . . . . . . . . . . . . . . . . 30815.4 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 311

16 Autenticação com o PAM 31316.1 Estrutura de um arquivo de configuração PAM . . . . . . . . . . . . 31416.2 A configuração PAM do sshd . . . . . . . . . . . . . . . . . . . 31616.3 Configuração de módulos PAM . . . . . . . . . . . . . . . . . . 31816.4 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 320

17 Virtualização com o Xen 32317.1 Instalação do Xen . . . . . . . . . . . . . . . . . . . . . . . . 32517.2 Instalação do domínio . . . . . . . . . . . . . . . . . . . . . . 32517.3 Iniciando e controlando domínios do Xen com xm . . . . . . . . . . 32617.4 Solução de problemas . . . . . . . . . . . . . . . . . . . . . . 32717.5 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 328

Page 7: Reference Pt BR

Parte 4 Serviços 329

18 Rede básica 33118.1 Roteamento e endereços IP . . . . . . . . . . . . . . . . . . . . 33518.2 IPv6 — A Internet da próxima geração . . . . . . . . . . . . . . . 33818.3 Resolução de nomes . . . . . . . . . . . . . . . . . . . . . . . 34718.4 Configurando uma conexão de rede com o YaST . . . . . . . . . . . 34818.5 Gerenciando conexões de rede com o NetworkManager . . . . . . . . 35918.6 Configurando uma conexão de rede manualmente . . . . . . . . . . 36218.7 smpppd como Assistente de Discagem . . . . . . . . . . . . . . . 374

19 Serviços SLP na rede 37719.1 Registrando seus próprios serviços . . . . . . . . . . . . . . . . . 37719.2 Front ends de SLP no SUSE Linux . . . . . . . . . . . . . . . . . . 37819.3 Ativando o SLP . . . . . . . . . . . . . . . . . . . . . . . . . 37919.4 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 379

20 Domain Name System (Sistema de Nomes de Domínio) 38120.1 Terminologia DNS . . . . . . . . . . . . . . . . . . . . . . . . 38120.2 Configuração com o YaST . . . . . . . . . . . . . . . . . . . . . 38220.3 Iniciando o BIND do servidor de nomes . . . . . . . . . . . . . . . 39020.4 O arquivo de configuração /etc/named.conf . . . . . . . . . . . . . 39220.5 Arquivos de zona . . . . . . . . . . . . . . . . . . . . . . . . 39720.6 Atualização dinâmica dos dados da zona . . . . . . . . . . . . . . 40120.7 Transações de segurança . . . . . . . . . . . . . . . . . . . . . 40220.8 Segurança do DNS . . . . . . . . . . . . . . . . . . . . . . . . 40320.9 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 403

21 Usando o NIS 40521.1 Configurando servidores NIS . . . . . . . . . . . . . . . . . . . . 40521.2 Configurando clientes NIS . . . . . . . . . . . . . . . . . . . . . 412

22 Compartilhando sistemas de arquivos com o NFS 41522.1 Importando sistemas de arquivos com o YaST . . . . . . . . . . . . 41522.2 Importando sistemas de arquivos manualmente . . . . . . . . . . . 41622.3 Exportando sistemas de arquivos com o YaST . . . . . . . . . . . . 41722.4 Exportando sistemas de arquivos manualmente . . . . . . . . . . . . 41822.5 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 420

Page 8: Reference Pt BR

23 DHCP 42123.1 Configurando um servidor DHCP com o YaST . . . . . . . . . . . . 42223.2 Pacotes de software DHCP . . . . . . . . . . . . . . . . . . . . 42623.3 O dhcpd do servidor DHCP . . . . . . . . . . . . . . . . . . . . 42623.4 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 430

24 Sincronização de horário com NTP 43124.1 Configurando um cliente NTP com YaST . . . . . . . . . . . . . . . 43124.2 Configurando o xntp na rede . . . . . . . . . . . . . . . . . . . 43524.3 Configurando um relógio de referência local . . . . . . . . . . . . . 435

25 LDAP — Um serviço de diretório 43725.1 LDAP versus NIS . . . . . . . . . . . . . . . . . . . . . . . . . 43925.2 Estrutura de uma árvore de diretórios LDAP . . . . . . . . . . . . . 44025.3 Configuração do servidor com slapd.conf . . . . . . . . . . . . . . 44325.4 Tratamento de dados no diretório LDAP . . . . . . . . . . . . . . . 44825.5 O cliente LDAP do YaST . . . . . . . . . . . . . . . . . . . . . . 45225.6 Configurando grupos e usuários LDAP no YaST . . . . . . . . . . . . 46025.7 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 461

26 Servidor HTTP Apache 46326.1 Inicialização Rápida . . . . . . . . . . . . . . . . . . . . . . . 46326.2 Configurando o Apache . . . . . . . . . . . . . . . . . . . . . . 46526.3 Iniciando e parando o Apache . . . . . . . . . . . . . . . . . . . 48026.4 Instalando, ativando e configurando módulos . . . . . . . . . . . . 48226.5 Obtendo scripts CGI para trabalhar . . . . . . . . . . . . . . . . . 49026.6 Configurando um servidor Web seguro com SSL . . . . . . . . . . . 49326.7 Evitando problemas de segurança . . . . . . . . . . . . . . . . . 49926.8 Solução de problemas . . . . . . . . . . . . . . . . . . . . . . 50126.9 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 502

27 Sincronização de arquivos 50527.1 Software de sincronização de dados disponível . . . . . . . . . . . . 50527.2 Determinando fatores para selecionar um programa . . . . . . . . . 50927.3 Introdução ao Unison . . . . . . . . . . . . . . . . . . . . . . 51327.4 Introdução ao CVS . . . . . . . . . . . . . . . . . . . . . . . . 51527.5 Introdução ao Subversion . . . . . . . . . . . . . . . . . . . . . 51827.6 Introdução ao rsync . . . . . . . . . . . . . . . . . . . . . . . 52127.7 Introdução ao mailsync . . . . . . . . . . . . . . . . . . . . . . 523

Page 9: Reference Pt BR

28 Samba 52728.1 Terminologia . . . . . . . . . . . . . . . . . . . . . . . . . . 52728.2 Iniciando e interrompendo o Samba . . . . . . . . . . . . . . . . 52928.3 Configurando um servidor Samba . . . . . . . . . . . . . . . . . 52928.4 Configurando clientes . . . . . . . . . . . . . . . . . . . . . . 53528.5 Samba como servidor de login . . . . . . . . . . . . . . . . . . . 53628.6 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 537

29 O Servidor Proxy Squid 53929.1 Alguns fatos sobre caches proxy . . . . . . . . . . . . . . . . . . 54029.2 Requisitos do sistema . . . . . . . . . . . . . . . . . . . . . . . 54229.3 Iniciando o Squid . . . . . . . . . . . . . . . . . . . . . . . . 54329.4 O arquivo de configuração /etc/squid/squid.conf . . . . . . . . . . . 54629.5 Configurando um proxy transparente . . . . . . . . . . . . . . . . 55129.6 cachemgr.cgi . . . . . . . . . . . . . . . . . . . . . . . . . . 55429.7 squidGuard . . . . . . . . . . . . . . . . . . . . . . . . . . . 55629.8 Geração de relatório de cache com o Calamaris . . . . . . . . . . . 55829.9 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 559

Parte 5 Mobilidade 561

30 Computação móvel com o Linux 56330.1 Laptops . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56330.2 Hardware móvel . . . . . . . . . . . . . . . . . . . . . . . . . 57130.3 Telefones celulares e PDAs . . . . . . . . . . . . . . . . . . . . 57230.4 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 572

31 PCMCIA 57531.1 Controlando placas PCMCIA usando pccardctl . . . . . . . . . . . . 57631.2 PCMCIA em detalhes . . . . . . . . . . . . . . . . . . . . . . . 57631.3 Solução de problemas . . . . . . . . . . . . . . . . . . . . . . 579

32 System Configuration Profile Management 58332.1 Terminologia . . . . . . . . . . . . . . . . . . . . . . . . . . 58432.2 Configurando o SCPM . . . . . . . . . . . . . . . . . . . . . . 58432.3 Configurando o SCPM usando uma interface gráfica de usuário . . . . . 58532.4 Configurando o SCPM com a linha de comando . . . . . . . . . . . 59232.5 Solução de problemas . . . . . . . . . . . . . . . . . . . . . . 59532.6 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 596

Page 10: Reference Pt BR

33 Gerenciamento de energia 59733.1 Funções de economia de energia . . . . . . . . . . . . . . . . . . 59833.2 APM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59933.3 ACPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60033.4 Descanso do disco rígido . . . . . . . . . . . . . . . . . . . . . 60833.5 O Pacote powersave . . . . . . . . . . . . . . . . . . . . . . . 61033.6 O módulo Gerenciamento de energia YaST . . . . . . . . . . . . . . 618

34 Comunicação sem fio 62334.1 LAN sem fio . . . . . . . . . . . . . . . . . . . . . . . . . . . 62334.2 Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63534.3 Transmissão de dados infravermelhos . . . . . . . . . . . . . . . . 647

Índice Remissivo 651

Page 11: Reference Pt BR

Sobre este guiaEste manual oferece uma visão geral do SUSE Linux. Ele se destina principalmente aadministradores de sistemas e usuários domésticos com conhecimentos básicos deadministração de sistemas. Este manual apresenta uma seleção de aplicativos necessáriosna vida quotidiana e oferece descrições detalhadas de cenários de instalação econfiguração avançadas.

Cenários de distribuição avançadaInformações sobre como distribuir o SUSE Linux em ambientes complexos.

AdministraçãoInformações sobre segurança no sistema SUSE Linux, controles de acesso a sistemasde arquivos e alguns importantes utilitários para administradores do Linux.

SistemaInformações sobre o funcionamento dos componentes do sistema Linux e detalhessobre sua interação.

ServiçosInformações sobre como configurar os diversos serviços de rede e de arquivosoferecidos pelo SUSE Linux.

MobilidadeInformações básicas sobre computação móvel com o SUSE Linux e configuraçãodas diversas opções de computação sem fio, gerenciamento de energia egerenciamento de perfil.

1 FeedbackQueremos receber seus comentários e sugestões sobre este manual e sobre adocumentação restante que acompanha este produto. Use a função Comentários doUsuário, situada na parte inferior de cada página da documentação online e digite seuscomentários.

Page 12: Reference Pt BR

2 Documentação adicionalHá outros manuais disponíveis sobre o produto SUSE Linux: online em http://www.novell.com/documentation/ ou no sistema instalado em /usr/share/doc/manual/:

Inicialização do SUSE LinuxEste guia apresenta o procedimento de instalação do SUSE Linux e o uso básicodo ambiente de área de trabalho. Uma versão online deste documento pode serencontrada em http://www.novell.com/documentation/suse101/

Aplicativos do SUSE LinuxEste guia apresenta uma seleção das ferramentas mais importantes fornecidas peloSUSE Linux. Uma versão online deste documento pode ser encontrada emhttp://www.novell.com/documentation/suse101/.

Guia de Administração do Novell AppArmor 2.0Este guia contém informações detalhadas sobre o uso do AppArmor em seuambiente. Uma versão online deste documento pode ser encontrada em http://www.novell.com/documentation/apparmor/.

3 Convenções da documentaçãoAs seguintes convenções tipográficas são usadas neste manual:

• /etc/passwd: nomes de arquivo e diretório

• marcador: substitua marcador pelo valor real

• PATH: a variável de ambiente PATH

• ls, --help: comandos, opções e parâmetros

• user: usuários ou grupos

• Alt , Alt + F1 : uma tecla ou combinação de teclas para pressionar, mostradas emmaiúsculas como no teclado

• Arquivo, Arquivo → Salvar Como: itens de menu, botões

xii Referência

Page 13: Reference Pt BR

• Pingüins dançando (Capítulo Pingüins, ↑Referência): Referência a um capítulo emoutro manual.

4 Sobre este manualEste 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 versão personalizadadas folhas de estilo de Norman Walsh.

5 ReconhecimentoOs desenvolvedores do Linux estão voluntariamente empenhados com a promoção dodesenvolvimento do Linux em escala global. Agradecemos por seus esforços — estadistribuição não seria possível sem eles. Ademais, gostaríamos de agradecer a FrankZappa e a Pawar. Agradecimentos especiais, claro, a Linus Torvalds.

Divirta-se!

Equipe SUSE

Sobre este guia xiii

Page 14: Reference Pt BR
Page 15: Reference Pt BR

Parte 1. Cenários de distribuiçãoavançada

Page 16: Reference Pt BR
Page 17: Reference Pt BR

1Instalação remotaO SUSE Linux pode ser instalado de várias maneiras. Como na instalação comum deCD ou DVD abordada no Capítulo Instalação com o YaST (↑Inicialização), você podeescolher entre vários métodos baseados em rede ou até mesmo optar por um métodototalmente sem intervenção para a instalação do SUSE Linux.

Cada método é apresentado por meio de duas listas de verificação breves: uma querelaciona os pré-requisitos do método e outra que ilustra o procedimento básico. Sãofornecidos mais detalhes para todas as técnicas usadas nos cenários de instalação.

NOTA

Nas seções a seguir, o sistema que manterá a instalação do seu novo SUSELinux é conhecido como sistema de destino ou destino de instalação. O termofonte de instalação é usado para todas as fontes de dados de instalação. Issoinclui mídia física, como CD e DVD e servidores de rede que distribuem osdados de instalação na sua rede.

1.1 Cenários de instalação parainstalação remota

Esta seção apresenta os cenários de instalação mais comuns para instalações remotas.Para cada cenário, verifique cuidadosamente a lista de pré-requisitos e siga oprocedimento descrito para este cenário. Se necessitar de instruções detalhadas parauma etapa específica, siga os links fornecidos para cada uma.

Instalação remota 17

Page 18: Reference Pt BR

IMPORTANTE

A configuração do sistema X Window não faz parte de nenhum processo deinstalação remota. Após o término da instalação, efetue login no sistema dedestino como root, digite telinit 3 e inicie SaX2 para configurar o hardwarede vídeo, como descrito na Seção 14.1, “Configuração do X11 com o SaX2”(p 281).

1.1.1 Instalação remota simples por VNC:configuração de rede estática

Este tipo de instalação ainda requer algum grau de acesso físico ao sistema de destinopara inicializar na instalação. A instalação em si é inteiramente controlada por umaestação de trabalho remota usando VNC para se conectar ao programa de instalação.A interação do usuário é necessária, como na instalação manual no Capítulo Instalaçãocom o YaST (↑Inicialização).

Para este tipo de instalação, verifique se os seguintes requisitos foram atendidos:

• Fonte da instalação remota: NFS, HTTP, FTP ou SMB com conexão de rede ativa

• Sistema de destino com conexão de rede ativa

• Sistema de controle com conexão de rede ativa e software visualizador VNC oubrowser habilitado para Java (Firefox, Konqueror, Internet Explorer ou Opera)

• Mídia física de inicialização (CD ou DVD) para inicializar o sistema de destino

• Endereços IP estático válidos já atribuídos à fonte de instalação e ao sistema decontrole

• Endereços IP estático válidos para atribuir ao sistema de destino

Para executar este tipo de instalação, proceda da seguinte maneira:

1 Configure a fonte de instalação como descrito na Seção 1.2, “Configurando oservidor que mantém as fontes de instalação” (p 26).

18 Referência

Page 19: Reference Pt BR

2 Inicialize o sistema de destino usando o primeiro CD ou DVD do kit de mídiado SUSE Linux.

3 Quando a tela de inicialização do sistema de destino for exibida, use o promptde opções de inicialização para definir as opções de VNC apropriadas e o endereçoda fonte de instalação. Isso está descrito detalhadamente na Seção 1.4,“Inicializando o sistema de destino para instalação” (p 46).

O sistema de destino é inicializado em um ambiente baseado em texto,apresentando o endereço de rede e número de exibição sob o qual o ambiente deinstalação gráfico pode ser endereçado por qualquer aplicativo visualizador VNCou browser. As instalações VNC se anunciam em OpenSLP e podem serencontradas usando-se o Konqueror no modo service:// ou slp://.

4 Na estação de trabalho de controle, abra um aplicativo de visualização VNC oubrowser da Web e conecte-se ao sistema de destino como descrito na Seção 1.5.1,“Instalação VNC” (p 51).

5 Execute a instalação como descrito no Capítulo Instalação com o YaST(↑Inicialização).

Será necessário reconectar-se ao sistema de destino depois de reinicializado, paraconcluir a parte final da instalação.

6 Conclua a instalação.

1.1.2 Instalação remota simples por VNC:configuração de rede dinâmica por

DHCPEste tipo de instalação ainda requer algum grau de acesso físico ao sistema de destinopara inicializar na instalação. A configuração de rede é feita com DHCP. A instalaçãoem si é inteiramente controlada por uma estação de trabalho remota usando VNC paraconectar-se ao instalador, mas ainda requer a interação do usuário no trabalho real deconfiguração.

Para este tipo de instalação, verifique se os seguintes requisitos foram atendidos:

Instalação remota 19

Page 20: Reference Pt BR

• Fonte da instalação remota: NFS, HTTP, FTP ou SMB com conexão de rede ativa

• Sistema de destino com conexão de rede ativa

• Sistema de controle com conexão de rede ativa e software visualizador VNC oubrowser habilitado para Java (Firefox, Konqueror, Internet Explorer ou Opera)

• Mídia física de inicialização (CD, DVD, disco de inicialização personalizado) parainicializar o sistema de destino

• Servidor DHCP em execução fornecendo endereços IP

Para executar este tipo de instalação, proceda da seguinte maneira:

1 Configure a fonte de instalação como descrito na Seção 1.2, “Configurando oservidor que mantém as fontes de instalação” (p 26). Escolha um servidor derede NFS, HTTP ou FTP. No caso de uma fonte de instalação SMB, consulte aSeção 1.2.5, “Gerenciando uma fonte de instalação SMB” (p 35).

2 Inicialize o sistema de destino usando o primeiro CD ou DVD do kit de mídiado SUSE Linux.

3 Quando a tela de inicialização do sistema de destino for exibida, use o promptde opções de inicialização para definir as opções de VNC apropriadas e o endereçoda fonte de instalação. Isso está descrito detalhadamente na Seção 1.4,“Inicializando o sistema de destino para instalação” (p 46).

O sistema de destino é inicializado em um ambiente baseado em texto,apresentando o endereço de rede e número de exibição sob o qual o ambiente deinstalação gráfico pode ser endereçado por qualquer aplicativo visualizador VNCou browser. As instalações VNC se anunciam em OpenSLP e podem serencontradas usando-se o Konqueror no modo service:// ou slp://.

4 Na estação de trabalho de controle, abra um aplicativo de visualização VNC oubrowser da Web e conecte-se ao sistema de destino como descrito na Seção 1.5.1,“Instalação VNC” (p 51).

5 Execute a instalação como descrito no Capítulo Instalação com o YaST(↑Inicialização).

Será necessário reconectar-se ao sistema de destino depois de reinicializado, paraconcluir a parte final da instalação.

20 Referência

Page 21: Reference Pt BR

6 Conclua a instalação.

1.1.3 Instalação remota por VNC:inicialização PXE e Wake on LAN

Este tipo de instalação ocorre totalmente sem intervenção. A máquina de destino éinicializada remotamente. A interação do usuário só é necessária para a instalação emsi. Este método é adequado para distribuições entre sites.

Para executar este tipo de instalação, verifique se os seguintes requisitos foram atendidos:

• Fonte da instalação remota: NFS, HTTP, FTP ou SMB com conexão de rede ativa

• Servidor TFTP

• Servidor DHCP em execução para sua rede

• Sistema de destino com recurso de inicialização PXE, rede e Wake on LAN,conectado à rede

• Sistema de controle com conexão de rede ativa e software visualizador VNC oubrowser habilitado para Java (Firefox, Konqueror, Internet Explorer ou Opera)

Para executar este tipo de instalação, proceda da seguinte maneira:

1 Configure a fonte de instalação como descrito na Seção 1.2, “Configurando oservidor que mantém as fontes de instalação” (p 26). Escolha um servidor derede NFS, HTTP, FTP ou configure uma fonte de instalação SMB como descritona Seção 1.2.5, “Gerenciando uma fonte de instalação SMB” (p 35).

2 Configure um servidor TFTP para manter uma imagem de inicialização que possaser extraída pelo sistema de destino. Isso está descrito na Seção 1.3.2,“Configurando um servidor TFTP” (p 38).

3 Configure um servidor DHCP para fornecer endereços IP a todas as máquinas erevelar a localização do servidor TFTP para o sistema de destino. Isso está descritona Seção 1.3.1, “Configurando um servidor DHCP” (p 37).

Instalação remota 21

Page 22: Reference Pt BR

4 Prepare o sistema de destino para a inicialização PXE. Isso está descritodetalhadamente na Seção 1.3.5, “Preparando o sistema de destino parainicialização PXE” (p 45).

5 Inicie o processo de inicialização do sistema de destino usando Wake on LAN.Isso está descrito na Seção 1.3.7, “Wake on LAN” (p 45).

6 Na estação de trabalho de controle, abra um aplicativo de visualização VNC oubrowser da Web e conecte-se ao sistema de destino como descrito na Seção 1.5.1,“Instalação VNC” (p 51).

7 Execute a instalação como descrito no Capítulo Instalação com o YaST(↑Inicialização).

Será necessário reconectar-se ao sistema de destino depois de reinicializado, paraconcluir a parte final da instalação.

8 Conclua a instalação.

1.1.4 Instalação remota simples por SSH:configuração de rede estática

Este tipo de instalação ainda requer algum grau de acesso físico ao sistema de destinopara a inicialização na instalação e para determinar o endereço IP do destino deinstalação. A instalação em si é inteiramente controlada de uma estação de trabalhoremota usando SSH para se conectar ao instalador. A interação do usuário é necessária,como na instalação comum descrita no Capítulo Instalação com o YaST (↑Inicialização).

Para este tipo de instalação, verifique se os seguintes requisitos foram atendidos:

• Fonte da instalação remota: NFS, HTTP, FTP ou SMB com conexão de rede ativa

• Sistema de destino com conexão de rede ativa

• Sistema de controle com conexão de rede ativa e software cliente SSH ativo.

• Mídia física de inicialização (CD, DVD, disco de inicialização personalizado) parao sistema de destino

22 Referência

Page 23: Reference Pt BR

• Endereços IP estático válidos já atribuídos à fonte de instalação e ao sistema decontrole

• Endereços IP estático válidos para atribuir ao sistema de destino

Para executar este tipo de instalação, proceda da seguinte maneira:

1 Configure a fonte de instalação como descrito na Seção 1.2, “Configurando oservidor que mantém as fontes de instalação” (p 26).

2 Inicialize o sistema de destino usando o primeiro CD ou DVD do kit de mídiado SUSE Linux.

3 Quando a tela de inicialização do sistema de destino for exibida, use o promptde opções de inicialização para definir os parâmetros apropriados de conexão derede, o endereço da fonte de instalação e a habilitação SSH. Isso está descritodetalhadamente na Seção 1.4.3, “Usando opções de inicialização personalizadas”(p 48).

O sistema de destino é inicializado em um ambiente baseado em texto,apresentando o endereço de rede sob o qual o ambiente de instalação gráficapode ser endereçado por qualquer cliente SSH.

4 Na estação de trabalho de controle, abra uma janela de terminal e conecte-se aosistema de destino como descrito em “Conectando-se ao programa de instalação”(p 53).

5 Execute a instalação como descrito no Capítulo Instalação com o YaST(↑Inicialização).

Será necessário reconectar-se ao sistema de destino depois de reinicializado, paraconcluir a parte final da instalação.

6 Conclua a instalação.

Instalação remota 23

Page 24: Reference Pt BR

1.1.5 Instalação remota simples por SSH:configuração de rede dinâmica por

DHCPEste tipo de instalação ainda requer algum grau de acesso físico ao sistema de destinopara a inicialização na instalação e para determinar o endereço IP do destino deinstalação. A instalação em si é inteiramente controlada por uma estação de trabalhoremota usando VNC para conectar-se ao instalador, mas ainda requer a interação dousuário no trabalho real de configuração.

Para este tipo de instalação, verifique se os seguintes requisitos foram atendidos:

• Fonte da instalação remota: NFS, HTTP, FTP ou SMB com conexão de rede ativa

• Sistema de destino com conexão de rede ativa

• Sistema de controle com conexão de rede ativa e software cliente SSH ativo.

• Mídia física de inicialização (CD ou DVD) para inicializar o sistema de destino

• Servidor DHCP em execução fornecendo endereços IP

Para executar este tipo de instalação, proceda da seguinte maneira:

1 Configure a fonte de instalação como descrito na Seção 1.2, “Configurando oservidor que mantém as fontes de instalação” (p 26). Escolha um servidor derede NFS, HTTP ou FTP. No caso de uma fonte de instalação SMB, consulte aSeção 1.2.5, “Gerenciando uma fonte de instalação SMB” (p 35).

2 Inicialize o sistema de destino usando o primeiro CD ou DVD do kit de mídiado SUSE Linux.

3 Quando a tela de inicialização do sistema de destino for exibida, use o promptde opções de inicialização para passar os parâmetros apropriados de conexão derede, a localização da fonte de instalação e a habilitação SSH. Consulte aSeção 1.4.3, “Usando opções de inicialização personalizadas” (p 48) para obterinstruções detalhadas sobre o uso desses parâmetros.

24 Referência

Page 25: Reference Pt BR

O sistema de destino é inicializado em um ambiente baseado em texto,apresentando o endereço de rede sob o qual o ambiente de instalação gráficapode ser endereçado por qualquer cliente SSH.

4 Na estação de trabalho de controle, abra uma janela de terminal e conecte-se aosistema de destino como descrito em “Conectando-se ao programa de instalação”(p 53).

5 Execute a instalação como descrito no Capítulo Instalação com o YaST(↑Inicialização).

Será necessário reconectar-se ao sistema de destino depois de reinicializado, paraconcluir a parte final da instalação.

6 Conclua a instalação.

1.1.6 Instalação remota por SSH:inicialização PXE e Wake on LAN

Este tipo de instalação ocorre totalmente sem intervenção. A máquina de destino éinicializada remotamente.

Para executar este tipo de instalação, verifique se os seguintes requisitos foram atendidos:

• Fonte da instalação remota: NFS, HTTP, FTP ou SMB com conexão de rede ativa

• Servidor TFTP

• Servidor DHCP em execução para sua rede, fornecendo um IP estático para o hosta ser instalado

• Sistema de destino com recurso de inicialização PXE, rede e Wake on LAN,conectado à rede

• Sistema de controle com conexão de rede ativa e software cliente SSH

Para executar este tipo de instalação, proceda da seguinte maneira:

1 Configure a fonte de instalação como descrito na Seção 1.2, “Configurando oservidor que mantém as fontes de instalação” (p 26). Escolha um servidor de

Instalação remota 25

Page 26: Reference Pt BR

rede NFS, HTTP ou FTP. Para obter informações sobre como configurar umafonte de instalação SMB, consulte a Seção 1.2.5, “Gerenciando uma fonte deinstalação SMB” (p 35).

2 Configure um servidor TFTP para manter uma imagem de inicialização que possaser extraída pelo sistema de destino. Isso está descrito na Seção 1.3.2,“Configurando um servidor TFTP” (p 38).

3 Configure um servidor DHCP para fornecer endereços IP a todas as máquinas erevelar a localização do servidor TFTP para o sistema de destino. Isso está descritona Seção 1.3.1, “Configurando um servidor DHCP” (p 37).

4 Prepare o sistema de destino para a inicialização PXE. Isso está descritodetalhadamente na Seção 1.3.5, “Preparando o sistema de destino parainicialização PXE” (p 45).

5 Inicie o processo de inicialização do sistema de destino usando Wake on LAN.Isso está descrito na Seção 1.3.7, “Wake on LAN” (p 45).

6 Na estação de trabalho de controle, inicie um cliente SSH e conecte-se ao sistemade destino como descrito na Seção 1.5.2, “Instalação SSH” (p 53).

7 Execute a instalação como descrito no Capítulo Instalação com o YaST(↑Inicialização).

Será necessário reconectar-se ao sistema de destino depois de reinicializado, paraconcluir a parte final da instalação.

8 Conclua a instalação.

1.2 Configurando o servidor quemantém as fontes de instalação

Dependendo do sistema operacional executado na máquina a ser usada como fonte deinstalação em rede para o SUSE Linux, há várias opções para a configuração do servidor.A maneira mais fácil de configurar um servidor de instalação é usar o YaST no SUSELINUX Enterprise Server 9 ou SUSE Linux 9.3 e superior. Em outras versão do SUSE

26 Referência

Page 27: Reference Pt BR

LINUX Enterprise Server ou do SUSE Linux, configure a fonte de instalaçãomanualmente.

DICA

Você pode usar uma máquina Microsoft Windows como servidor de instalaçãopara a distribuição do Linux. Consulte a Seção 1.2.5, “Gerenciando uma fontede instalação SMB” (p 35) para obter detalhes.

1.2.1 Configurando um servidor deinstalação usando YaST

O YaST oferece uma ferramenta gráfica para criar fontes de instalação em rede. Elepossui suporte a servidores de instalação em rede HTTP, FTP e NFS.

1 Efetue login como root na máquina que deverá atuar como servidor de instalação.

2 Inicie YaST → Diversos → Servidor de Instalação.

3 Selecione Configuração de Servidor.

4 Selecione o tipo de servidor (HTTP, FTP ou NFS).

O serviço de servidor selecionado é iniciado automaticamente toda vez que osistema inicializa. Se um serviço do tipo selecionado já estiver em execução noseu sistema e você quiser configurá-lo manualmente para o servidor, desative aconfiguração automática do serviço de servidor com Não configure serviços derede. Em ambos os casos, defina o diretório em que os dados da instalação devemestar disponíveis no servidor.

5 Configure o tipo de servidor necessário.

Esta etapa refere-se à configuração automática dos serviços de servidor. Ela éignorada quando a configuração automática está desativada. Defina um álias parao diretório raiz do servidor FTP ou HTTP no qual os dados de instalação devemser encontrados. A fonte de instalação posteriormente estará localizada emftp://IP do servidor/Álias/Nome (FTP) ou em http://IP doservidor/Álias/Nome (HTTP). Nome significa o nome da fonte de

Instalação remota 27

Page 28: Reference Pt BR

instalação, que é definida na etapa seguinte. Se você selecionou NFS na etapaanterior, defina curingas e opções de exportações. O servidor NFS estarádisponível em nfs://IP do servidor/Nome. Detalhes sobre NFS eexportações são encontrados no Capítulo 22, Compartilhando sistemas dearquivos com o NFS (p 415).

6 Configure a fonte de instalação.

Antes que as mídias de instalação sejam copiadas para seu destino, defina o nomeda fonte de instalação (de preferência, uma abreviação fácil de ser lembrada doproduto e da versão). O YaST permite fornecer imagens ISO da mídia em vezde cópias dos CDs de instalação. Se desejar, ative a caixa de seleção relevante eespecifique o caminho de diretório no qual os arquivos ISO podem ser encontradoslocalmente. Dependendo do produto a distribuir usando este servidor de instalação,talvez sejam necessários mais CDs de expansão ou CDs de service pack parainstalar o produto completamente. Se você ativar Solicitar CDs adicionais, oYaST o lembrará automaticamente de fornecer essas mídias. Para anunciar oservidor de instalação na rede por OpenSLP, ative a opção adequada.

DICA

Considere anunciar a sua fonte de instalação por OpenSLP se a suaconfiguração de rede for compatível com esta opção. Isto o livra dedigitar o caminho de instalação da rede em todas as máquinas de destino.Os sistemas de destino, inicializados com a opção de inicialização SLP,encontrarão a fonte de instalação de rede sem outras configurações.Para obter detalhes sobre esta opção, consulte a Seção 1.4, “Inicializandoo sistema de destino para instalação” (p 46).

7 Faça o upload dos dados de instalação.

A etapa mais longa da configuração de um servidor de instalação é copiar osCDs de instalação. Insira a mídia na seqüência solicitada pelo YaST e aguardeo término do procedimento de cópia. Quando as fontes tiverem sidocompletamente copiadas, volte para a visão geral das fontes de informaçõesexistentes e feche a configuração selecionando Concluir.

O seu servidor de instalação agora está totalmente configurado e pronto paraserviço. Ele é inicializado automaticamente toda vez que o sistema é iniciado.Nenhuma outra intervenção é necessária. Você precisa apenas configurar e

28 Referência

Page 29: Reference Pt BR

inicializar este serviço de forma correta e manualmente se tiver desativado aconfiguração automática do serviço de rede selecionado com YaST como etapainicial.

Para desativar uma fonte de instalação, selecione Mudar na visão geral para chegar auma lista de todas as fontes de instalação disponíveis. Escolha a entrada para removere selecione Apagar. Este procedimento de exclusão só diz respeito à desativação doserviço de servidor. Os dados de instalação em si permanecem no diretório escolhido.No entanto, você pode removê-lo manualmente.

Se o seu servidor de instalação fornecer os dados de instalação para mais de um produtoda versão de produto, inicie o módulo de servidor de instalação YaST e selecioneConfigurar na visão geral das fontes de instalação existentes para configurar a novafonte de instalação.

1.2.2 Configuração manual de uma fonte deinstalação NFS

A configuração de uma fonte NFS para instalação é feita basicamente em duas etapas.Na primeira etapa, crie a estrutura de diretório que manterá os dados de instalação ecopie a mídia de instalação nessa estrutura. Em seguida, exporte o diretório que manteráos dados de instalação para a rede.

Para criar um diretório para manter os dados de instalação, proceda da seguintemaneira:

1 Efetue login como Root.

2 Crie um diretório que posteriormente manterá todos os dados de instalações e váaté ele. Por exemplo:mkdir install/produto/versão_do_produto

cd install/produto/versão_do_produto

Substitua produto por uma abreviação do nome do produto (neste caso, SUSELinux) eversão_do_produto por uma string que contenha o nome e a versãodo produto.

3 Para cada CD contido no kit de mídia, execute os seguintes comandos:

Instalação remota 29

Page 30: Reference Pt BR

a Copie todo o conteúdo do CD de instalação para o diretório do servidor deinstalação:cp -a /media/caminho_unidade_de_CD-ROM .

Substitua caminho_unidade_de_CD-ROM pelo caminho real no qualestá endereçada sua unidade de CD ou DVD. Dependendo do tipo de unidadeusado no seu sistema, as opções são cdrom, cdrecorder, dvd oudvdrecorder.

b Renomeie o diretório com o número do CD:mv caminho_unidade_de_CD-ROM CDx

Substitua x pelo número real do seu CD.

Para exportar as fontes de instalação por NFS usando YaST, proceda da seguintemaneira:

1 Efetue login como Root.

2 Inicie YaST → Serviços de Rede → Servidor NFS.

3 Selecione Iniciar Servidor NFS e Abrir Porta no Firewall e clique em Próximo.

4 Selecione Adicionar Diretório e digite o caminho do diretório que mantém osdados de instalação. Neste caso, é /versão_do_produto.

5 Selecione Adicionar Host e digite os nomes de host das máquinas para as quaisexportar os dados de instalação. Em vez de especificar os nomes de host aqui,você pode usar curingas, faixas de endereços de rede ou apenas o nome dedomínio da sua rede. Digite as opções de exportação adequadas ou mantenha opadrão, que funciona bem na maioria das configurações. Para obter maisinformações sobre a sintaxe usada na exportação de compartilhamentos NFS,leia a página de manual sobre exports.

6 Clique em Concluir.

O servidor NFS que mantém as fontes de instalação do SUSE Linux é inicializadoautomaticamente e integrado ao processo de inicialização.

30 Referência

Page 31: Reference Pt BR

Se você preferir exportar manualmente as fontes de instalação por NFS em vez deusar o módulo 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:/versão_do_produto *(ro,root_squash,sync)

Isso exporta o diretório /versão_do_produto para qualquer host que façaparte desta rede ou para qualquer host que possa se conectar com este servidor.Para limitar o acesso a este servidor, use máscaras de rede ou nomes de domínioem vez do curinga geral *. Consulte a página de manual sobre export paraobter detalhes. Grave e saia deste arquivo de configuração.

3 Para adicionar o serviço NFS à lista de servidores iniciados durante a inicializaçãodo sistema, execute os seguintes comandos:insserv /etc/init.d/nfsserverinsserv /etc/init.d/portmap

4 Inicie o servidor NFS usando o seguinte comando:rcnfsserver start

Se você precisar mudar a configuração do seu servidor NFS posteriormente,modifique o arquivo de configuração e reinicie o daemon NFS comrcnfsserver restart.

Anunciar o servidor NFS por OpenSLP faz o seu endereço ser conhecido por todosos clientes da sua rede.

1 Efetue login como Root.

2 Digite o diretório /etc/slp.reg.d/.

3 Crie um arquivo de configuração chamadoinstall.suse.nfs.reg contendoas seguintes linhas:# Register the NFS Installation Serverservice:install.suse:nfs://$HOSTNAME/path_instsource/CD1,en,65535 description=NFS Installation Source

Instalação remota 31

Page 32: Reference Pt BR

Substitua caminho_fonte_inst pelo caminho real da fonte de instalaçãono seu servidor.

4 Grave este arquivo de configuração e inicie o daemon OpenSLP usando o seguintecomando:rcslpd start

Para obter mais informações sobre OpenSLP, consulte a documentação do pacotelocalizada em/usr/share/doc/packages/openslp/ ou consulte o Capítulo 19,Serviços SLP na rede (p 377).

1.2.3 Configuração manual de uma fonte deinstalação FTP

Criar uma fonte de instalação FTP é muito semelhante à criação de uma fonte deinstalação NFS. As fontes de instalação FTP podem ser anunciadas na rede tambémusando OpenSLP.

1 Crie um diretório que mantenha as fontes de instalação como descrito naSeção 1.2.2, “Configuração manual de uma fonte de instalação NFS” (p 29).

2 Configure o servidor FTP para distribuir o conteúdo do seu diretório de instalação:

a Efetue login como root e instale o pacote pure-ftpd (um servidor FTPsimples) usando o gerenciador de pacotes do YaST.

b Digite o diretório raiz do servidor FTP:cd/srv/ftp

c Crie um subdiretório que mantenha as fontes de instalação no diretório raizdo FTP:mkdir fonte_inst

Substitua fonte_inst pelo nome do produto.

d Copie o conteúdo de todos os CDs de instalação no diretório raiz do servidorFTP (semelhante ao procedimento descrito na Seção 1.2.2, “Configuraçãomanual de uma fonte de instalação NFS” (p 29), Passo 3 (p 29)).

32 Referência

Page 33: Reference Pt BR

Como alternativa, monte o conteúdo do repositório de instalação já existenteno ambiente raiz de mudanças do servidor FTP:mount --bind caminho_fonte_inst /srv/ftp/fonte_inst

Substitua caminho_fonte_inst e fonte_inst pelos valorescorrespondentes à sua configuração. Se precisar tornar os valorespermanentes, adicione-os a /etc/fstab.

e Inicie pure-ftpd:pure-ftpd &

3 Anuncie a fonte de instalação por OpenSLP, se for suportado pela configuraçãoda sua rede:

a Crie um arquivo de configuração chamado install.suse.ftp.regem /etc/slp/reg.d/ com as seguintes linhas:# Register the FTP Installation Serverservice:install.suse:ftp://$HOSTNAME/srv/ftp/instsource/CD1,en,65535 description=FTP Installation Source

Substitua fonte_inst pelo nome real no diretório da fonte de instalaçãodo seu servidor. A linha service: deve ser digitada como uma linhacontínua.

b Grave este arquivo de configuração e inicie o daemon OpenSLP usando oseguinte comando:rcslpd start

1.2.4 Configuração manual de uma fonte deinstalação HTTP

Criar uma fonte de instalação HTTP é muito semelhante à criação de uma fonte deinstalação NFS. As fontes de instalação HTTP podem ser anunciadas na rede tambémusando OpenSLP.

Instalação remota 33

Page 34: Reference Pt BR

1 Crie um diretório que mantenha as fontes de instalação como descrito naSeção 1.2.2, “Configuração manual de uma fonte de instalação NFS” (p 29).

2 Configure o servidor HTTP para distribuir o conteúdo do seu diretório deinstalação:

a Instale o servidor Web do Apache como descrito na Seção 26.1.2,“Instalação” (p 464).

b Digite o diretório raiz do servidor HTTP (/srv/www/htdocs) e crie umsubdiretório que manterá as fontes de instalação:mkdir fonte_inst

Substitua fonte_inst pelo nome do produto.

c Crie um link simbólico do local das fontes de instalação para o diretórioraiz do servidor Web (/srv/www/htdocs):ln -s /caminho_fonte_inst /srv/www/htdocs/fonte_inst

d Modifique o arquivo de configuração do servidor HTTP (/etc/apache2/default-server.conf) para fazê-lo seguir links simbólicos. Substituaa seguinte linha:Options None

porOptions Indexes FollowSymLinks

e Recarregue a configuração do servidor HTTP usando rcapache2reload.

3 Anuncie a fonte de instalação por OpenSLP, se for suportado pela configuraçãoda sua rede:

a Crie um arquivo de configuração chamado install.suse.http.regem /etc/slp/reg.d/ com as seguintes linhas:# Register the HTTP Installation Serverservice:install.suse:http://$HOSTNAME/srv/www/htdocs/instsource/CD1/,en,65535 description=HTTP Installation Source

34 Referência

Page 35: Reference Pt BR

Substituacaminho_fonte_inst pelo caminho real da fonte de instalaçãono seu servidor. A linha service: deve ser digitada como uma linhacontínua.

b Grave este arquivo de configuração e inicie o daemon OpenSLP usandorcslpd restart.

1.2.5 Gerenciando uma fonte de instalaçãoSMB

Com o SMB (Samba), é possível importar as fontes de instalação de um servidorMicrosoft Windows e iniciar a distribuição do Linux mesmo sem nenhuma máquinaLinux.

Para configurar um Compartilhamento Windows exportado mantendo as suas fontesde instalação do SUSE Linux, proceda da seguinte maneira:

1 Efetue login na sua máquina Windows.

2 Inicie o Explorer e crie uma nova pasta que manterá toda a árvore de instalaçãoe denomine-a INSTALAR, por exemplo.

3 Exporte este compartilhamento de acordo com o procedimento descrito na suadocumentação do Windows.

4 Digite este compartilhamento e crie uma subpasta, denominada produto.produto deve ser substituído pelo nome real do produto (SUSE Linux nestecaso).

5 Copie cada CD do SUSE Linux em uma pasta separada e denomine essas pastasCD1, CD2, CD3 etc.

6 Digite o diretório superior do compartilhamento exportado (INSTALAR, nesteexemplo) 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.

Instalação remota 35

Page 36: Reference Pt BR

Digite a pasta yast e crie os arquivos order e instorder.

8 Abra o arquivo order e digite a seguinte linha:/NLD/CD1 smb://usuário:senha@nome_do_host/produtoCD1

Substitua usuário pelo nome de usuário que você usa na máquina Windowsou use Guest para habilitar o login de convidado a este compartilhamento.senha deve ser substituído por sua senha de login ou qualquer outra string paralogin de convidado. nome_do_host deve ser substituído pelo nome de rededa sua máquina Windows.

9 Abra o arquivo instorder e digite a seguinte linha:/produto/CD1

Para usar um compartilhamento SMB montado como fonte de instalação, proceda daseguinte maneira:

1 Inicialize o destino de instalação.

2 Selecione Instalação.

3 Pressione F3 e F4 para obter uma seleção de fontes de instalação.

4 Escolha SMB e digite o nome ou endereço IP da máquina Windows, o nome decompartilhamento (INSTALAR, neste exemplo), nome de usuário e senha.

Depois que você pressionar Enter , o YaST será iniciado e você poderá executara instalação.

1.3 Preparando a inicialização dosistema de destino

Esta seção aborda as tarefas de configuração necessárias em cenários complexos deinicialização. Contém exemplos de configurações prontas para aplicar referentes aDHCP, inicialização PXE, TFTP e Wake on LAN.

36 Referência

Page 37: Reference Pt BR

1.3.1 Configurando um servidor DHCPA configuração de um servidor DHCP em SUSE Linux é feita editando-se manualmenteos arquivos de configuração apropriados. Esta seção aborda a extensão de configuraçãode um servidor DHCP existente visando fornecer os dados necessários para atender umambiente TFTP, PXE e WOL.

Configuração manual de um servidor DHCPTudo o que o servidor DHCP deve fazer, além de fornecer alocação de endereçoautomática para os seus clientes de rede, é anunciar o endereço IP do servidor TFTP eo arquivo que deve ser extraído pelas rotinas de instalação na máquina de destino.

1 Efetue login como root na máquina que hospeda o servidor DHCP.

2 Anexe as linhas seguintes ao arquivo de configuração do seu servidor DHCPlocalizado 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 endereço IP real do servidor TFTP.

Para obter mais informações sobre as opções disponíveis em dhcpd.conf,consulte a página de manual sobre dhcpd.conf.

3 Reinicie o servidor DHCP executando rcdhcpd restart.

Se você planeja usar SSH para controle remoto de uma instalação PXE e Wake onLAN, especifique explicitamente o endereço IP que o DHCP deve fornecer ao destinode instalação. Para isso, modifique a configuração DHCP mencionada acima de acordocom o exemplo a seguir:group { # PXE related stuff

Instalação remota 37

Page 38: Reference Pt BR

# # "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 endereço_mac; } fixed-address um_endereço_ip; } }

A declaração de host apresenta o nome de host do destino de instalação. Para vincularo nome de host e o endereço IP a um host específico, você precisa conhecer e especificaro endereço de hardware do sistema (MAC). Substitua todas as variáveis usadas nesteexemplo pelos valores reais que correspondem ao seu ambiente.

Após a reinicialização do servidor DHCP, ele fornece um IP estático para o hostespecificado, habilitando-o a conectar-se ao sistema por SSH.

1.3.2 Configurando um servidor TFTPConfigure um servidor TFTP com YaST ou manualmente em qualquer outro sistemaoperacional Linux que tenha suporte a xinetd e tftp. O servidor TFTP fornece a imagemde boot para o sistema de destino uma vez que inicializa e envia uma solicitação aomesmo.

Configurando um servidor TFTP usando YaST1 Efetue login como Root.

2 Inicie YaST → Serviços de Rede→ Servidor TFTP e instale o pacote solicitado.

3 Clique emHabilitar para verificar se o servidor foi iniciado e incluído nas rotinasde inicialização. De sua parte, não é necessária nenhuma outra ação de proteção.O xinetd inicia o tftpd no momento de inicialização.

4 Clique em Abrir Porta no Firewall para abrir a porta adequada no firewall emexecução na sua máquina. Se nenhum firewall estiver em execução no seuservidor, esta opção não está disponível.

5 Clique em Pesquisar para pesquisar o diretório de imagem de inicialização.

38 Referência

Page 39: Reference Pt BR

O diretório padrão /tftpboot é criado e selecionado automaticamente.

6 Clique em Concluir para aplicar as suas configurações e iniciar o servidor.

Configuração manual de um servidor TFTP1 Efetue login como root e instale os pacotes tftp e xinetd.

2 Se indisponível, crie os diretórios /srv/tftpboot e /srv/tftpboot/pxelinux.cfg.

3 Adicione os arquivos adequados para a imagem de boot como descrito naSeção 1.3.3, “Inicialização PXE” (p 39).

4 Modifique a configuração de xinetd localizada em /etc/xinetd.d/ paraverificar se o servidor TFTP é iniciado durante a inicialização:

a Se não existir, crie um arquivo chamado tftp neste diretório com touchtftp. Em seguida, execute chmod 755 tftp.

b Abra o arquivo tftp e adicione as seguintes linhas:service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no }

c Grave o arquivo e reinicie xinetd com rcxinetd restart.

1.3.3 Inicialização PXEInformações técnicas e especificações completas sobre PXE estão disponíveis nodocumento Preboot Execution Environment (PXE)ftp://download.intel.com/labs/manage/wfm/download/pxespec.pdf).

Instalação remota 39

Page 40: Reference Pt BR

1 Vá até o diretório do seu repositório de instalação e copie os arquivos linux,initrd, message e memtest para o diretório /srv/tftpboot digitandoo 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 instalaçãocom YaST.

3 Copie o arquivo /usr/share/syslinux/pxelinux.0 para o diretório/srv/tftpboot digitando o seguinte:cp -a /usr/share/syslinux/pxelinux.0 /srv/tftpboot

4 Vá até o diretório do seu repositório de instalação e copie o arquivo isolinux.cfg para /srv/tftpboot/pxelinux.cfg/default digitando oseguinte:cp -a boot/loader/isolinux.cfg /srv/tftpboot/pxelinux.cfg/default

5 Edite o arquivo /srv/tftpboot/pxelinux.cfg/default e remova aslinhas que começam com gfxboot, readinfo e framebuffer.

6 Insira as seguintes entradas nas linhas anexas dos rótulos padrão failsafe eapic:

insmod=e100Por meio desta entrada, o módulo de kernel para uma placa de rede Intel100MBit/s é carregado nos clientes PXE. Esta entrada depende do hardwaredo cliente e deve ser adaptada de acordo. No caso de uma placa de redeBroadcom GigaBit, esta entrada deve indicar insmod=bcm5700.

netdevice=eth0Esta entrada define a interface de rede do cliente que deve ser usada para ainstalação da rede. Só será necessária se o cliente possuir várias placas derede, 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/CD1Esta entrada define o servidor NFS e a fonte de instalação para a instalaçãodo cliente. Substitua ip_servidor_inst pelo endereço IP real do seu

40 Referência

Page 41: Reference Pt BR

servidor de instalação. caminho_fonte_inst deve ser substituído pelocaminho real para as fontes de instalação. As fontes HTTP, FTP ou SMBsão endereçadas de maneira semelhante, exceto pelo prefixo de protocolo,que deve indicar http, ftp ou smb.

IMPORTANTE

Se precisar passar outras opções de inicialização para as rotinas deinstalação, como parâmetros de inicialização SSH ou VNC, anexe-osà entrada install. Uma visão geral dos parâmetros e algunsexemplos são apresentados na Seção 1.4, “Inicializando o sistema dedestino para instalação” (p 46).

A seguir, temos um exemplo de arquivo/srv/tftpboot/pxelinux.cfg/default. Ajuste o prefixo de protocolopara a fonte de instalação para corresponder à configuração da sua rede eespecifique o seu método de conexão preferido para o instalador adicionando asopções vnc e vncpassword ou ssh e sshpassword à entrada install.As linhas separadas por \ devem ser digitadas como uma linha contínua semquebra 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

Instalação remota 41

Page 42: Reference Pt BR

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 0 display message prompt 1 timeout 100

Substitua ip_servidor_inst e caminho_fonte_inst pelos valoresusados na sua configuração.

A seção a seguir serve como breve referência às opções PXELINUX usadas nestaconfiguração. Mais informações sobre as opções disponíveis são encontradas nadocumentação do pacote syslinux localizada em /usr/share/doc/packages/syslinux/.

1.3.4 Opções de configuração PXELINUXAs opções relacionadas aqui são um subconjunto de todas as opções disponíveis parao arquivo de configuração PXELINUX.

DEFAULT opções de kernel...Configura a linha de comando padrão do kernel. Se PXELINUX é inicializadoautomaticamente, atua como se as entradas após DEFAULT tivessem sido digitadasno prompt de inicialização, exceto a opção auto, que é adicionada automaticamente,indicando uma inicialização automática.

Se nenhum arquivo de configuração ou nenhuma entrada DEFAULT estiver presenteno arquivo de configuração, o padrão será o nome de kernel “linux” sem opções.

42 Referência

Page 43: Reference Pt BR

APPEND opções...Adicione uma ou mais opções à linha de comando do kernel. São adicionadas parainicializações manuais e automáticas. As opções são adicionadas no início da linhade comando do kernel, normalmente permitindo que as opções de kernel digitadasexplicitamente as substituam.

LABEL rótulo KERNEL imagem APPEND opções...Indica que, se rótulo for digitado como kernel de inicialização, PXELINUXdeve inicializar imagem, e as opções APPEND especificadas devem ser usadas emvez das que estão especificadas na seção global do arquivo (antes do primeirocomando LABEL). O padrão para imagem é o mesmo de rótulo e, se não forfornecido nenhum APPEND, o padrão será usar a entrada global (se houver). Até128 entradas LABEL são permitidas.

Observe que GRUB usa a seguinte sintaxe:title meutítulo kernel meu_kernel opções_kernel initrd meuinitrd

enquanto que PXELINUX usa a seguinte sintaxe:label meurótulo kernel meukernel append minhasopções

Os rótulos são desmembrados como se fossem nomes de arquivo e devem serexclusivos após o desmembramento. Por exemplo, não seria possível distinguir osdois rótulos “v2.1.30” e “v2.1.31” em PXELINUX, pois ambos são desmembradosem um mesmo nome de arquivo do DOS.

O kernel não tem precisa ser um kernel do Linux; pode ser um setor de inicializaçãoou um arquivo COMBOOT.

APPEND -Não anexa nada. APPEND com um único hífen como argumento em uma seçãoLABEL pode ser usado para anular um APPEND global.

LOCALBOOT tipoEm PXELINUX, especificar LOCALBOOT 0 em vez de uma opção KERNELsignifica chamar este rótulo específico e causa uma inicialização de disco local emvez de uma inicialização de kernel.

Instalação remota 43

Page 44: Reference Pt BR

DescriçãoArgumento

Executa uma inicialização normal0

Executa uma inicialização local com o driverUNDI (Universal Network Driver Interface)ainda residente na memória

4

Realiza uma inicialização local com toda apilha PXE, incluindo o driver UNDI, aindaresidente na memória

5

Todos os outros valores são indefinidos. Se você não sabe quais são as pilhas UNDIou PXE, especifique 0.

TIMEOUT tempo_de_esperaIndica quanto tempo esperar no prompt de inicialização até inicializarautomaticamente, em unidades de 1/10 de segundo. O tempo de espera é canceladotão logo o usuário digite algo no teclado, partindo do princípio de que o usuárioconclui o comando iniciado. O tempo de espera zero desabilita completamente otempo de espera (que é também o padrão).

O valor do tempo de espera máximo possível é 35996 (pouco menos de uma hora).

PROMPT val_flagSe val_flag for 0, só exibirá o prompt de inicialização se Shift ou Alt estiverpressionado ou Caps Lock ou Scroll Lock estiver definido (que é o padrão). Seval_flag for 1, exibirá sempre o prompt de inicialização.F2 nome_do_arquivoF1 nome_do_arquivo..etc... F9 nome_do_arquivoF10nome_do_arquivo

Exibe o arquivo indicado na tela quando uma tecla de função é pressionada noprompt de inicialização. Isso pode ser usado para implementar a ajuda online depré-inicialização (supostamente para as opções de linha do comando do kernel).Para compatibilidade com versões anteriores, F10 também pode ser digitado comoF0 . Observe que atualmente não há meio de vincular nomes de arquivo a F11 eF12 .

44 Referência

Page 45: Reference Pt BR

1.3.5 Preparando o sistema de destino parainicialização PXE

Prepare o BIOS do sistema para a inicialização PXE incluindo a opção PXE na ordemde inicialização do BIOS.

ATENÇÃO

Não coloque a opção PXE na frente da opção de inicialização do disco rígidono BIOS. Caso contrário, este sistema tentará reinstalar-se toda vez que vocêo inicializar.

1.3.6 Preparando o sistema de destino paraWake on LAN

Wake on LAN (WOL) requer que a opção de BIOS adequada seja habilitada antes dainstalação. Além disso, anote o endereço MAC do sistema de destino. Esses dados sãonecessários para iniciar o Wake on LAN.

1.3.7 Wake on LANWake on LAN permite que a máquina seja ligada por um pacote de rede especial quecontém o endereço MAC da máquina. Como toda máquina no mundo tem umidentificador MAC exclusivo, você não precisa se preocupar em ligar acidentalmentea máquina errada.

IMPORTANTE

Se a máquina controladora não estiver localizada no mesmo segmento de redeque o destino de instalação que deve ser desperto, configure as solicitaçõesWOL para serem enviadas como multicasts ou controle remotamente umamáquina naquele segmento de rede para atuar como remetente das solicitações.

Instalação remota 45

Page 46: Reference Pt BR

1.3.8 Wake on LAN manual1 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 odestino:ether-wakemac_do_destino

Substitua mac_do_destino pelo endereço MAC real do destino.

1.4 Inicializando o sistema de destinopara instalação

Basicamente, há duas maneiras diferentes de personalizar o processo de inicializaçãopara instalação, além das mencionadas na Seção 1.3.7, “Wake on LAN” (p 45) e naSeção 1.3.3, “Inicialização PXE” (p 39). Você pode usar as opções de inicializaçãopadrão e as teclas F ou usar o prompt de opções da tela de inicialização da instalaçãopara passar quaisquer opções de inicialização que o kernel de instalação possa precisarneste hardware específico.

1.4.1 Usando as opções padrão deinicialização

As opções de inicialização já foram descritas detalhadamente no Capítulo Instalaçãocom o YaST (↑Inicialização).

Geralmente, basta selecionar Instalação para iniciar o processo de inicialização deinstalação. Se problemas ocorrerem, use Instalação—ACPI Desabilitado ouInstalação—Configurações Seguras.

Para obter mais informações sobre solução de problemas no processo de instalação,consulte a Seção “Problemas de instalação” (Capítulo 9, Problemas comuns e suassoluções, ↑Inicialização).

46 Referência

Page 47: Reference Pt BR

1.4.2 Usando as teclas FA barra de menus na tela inferior oferece algumas funcionalidades avançadas necessáriasem algumas configurações. Usando as teclas F, você pode especificar opções adicionaispara passar as rotinas de instalação sem ter que conhecer a sintaxe detalhada dosparâmetros que você precisaria se os inserisse como opções de inicialização (consultea Seção 1.4.3, “Usando opções de inicialização personalizadas” (p 48)).

Consulte na tabela abaixo o conjunto completo das opções disponíveis.

Tabela 1.1 Teclas F durante a instalação

Valor padrãoOpções disponíveisObjetivoTecla

NenhumNenhumFornecer ajudaF1

InglêsTodos os idiomassuportados

Selecionar o idioma dainstalação

F2

Mudar a resolução de telapara instalação

F3 • O valor padrãodepende do seu

• Modo de texto

• VESA hardware devídeo

• resolução 1

• resolução 2

• ...

CD-ROM/DVDSelecionar a fonte deinstalação

F4 • CD-ROM/DVD

• SLP

• FTP

• HTTP

• NFS

• SMB

Instalação remota 47

Page 48: Reference Pt BR

Valor padrãoOpções disponíveisObjetivoTecla

• Disco rígido

NenhumDriverAplicar disco deatualização do driver

F5

1.4.3 Usando opções de inicializaçãopersonalizadas

Usar o conjunto adequado de opções de inicialização facilita o procedimento deinstalação. Vários parâmetros também podem ser configurados posteriormente usandoas rotinas linuxrc, mas usar as opções de inicialização é mais fácil. Em algumasconfigurações automatizadas, as opções de inicialização podem ser fornecidas cominitrd ou um arquivo info.

A tabela a seguir relaciona todos os cenários de instalação mencionados neste capítulocom os parâmetros necessários para inicialização e as opções de inicializaçãocorrespondentes. Basta anexar todos eles na ordem em que aparecem nesta tabela paraobter uma string de opção de inicialização que é passada para as rotinas de instalação.Por exemplo (todos em uma linha):install=... netdevice=... hostip=...netmask=... vnc=... vncpassword=...

Substitua todos os valores (...) nesta string pelos valores adequados para a suaconfiguração.

Tabela 1.2 Cenários de instalação (inicialização) usados neste capítulo

Opções de inicializaçãoParâmetrosnecessários parainicialização

Cenário de instalação

Nenhuma é necessáriaNenhum: o sistema éinicializadoautomaticamente

Capítulo Instalação como YaST (↑Inicialização)

48 Referência

Page 49: Reference Pt BR

Opções de inicializaçãoParâmetrosnecessários parainicialização

Cenário de instalação

Seção 1.1.1, “Instalaçãoremota simples por VNC:

• install=(nfs,http,ftp,smb)://caminho_mídia_inst

• Localização doservidor deinstalaçãoconfiguração de rede

estática” (p 18) • Dispositivo de rede • netdevice=um_disp_rede (necessário apenas• Endereço IP

• Máscara de rede se vários dispositivos derede estiverem disponíveis)• Gateway

• Habilitação VNC • hostip=um_ip• Senha VNC • netmask=uma

_máscara_rede• gateway=gateway_ip• vnc=1• vncpassword=uma_senha

Seção 1.1.2, “Instalaçãoremota simples por VNC:

• install=(nfs,http,ftp,smb)://caminho_mídia_inst

• Localização doservidor deinstalaçãoconfiguração de rede

dinâmica por DHCP”(p 19)

• Habilitação VNC • vnc=1• Senha VNC • vncpassword=uma

_senha

Não aplicável; processogerenciado via PXE e DHCP

Seção 1.1.3, “Instalaçãoremota por VNC:

• Localização doservidor deinstalaçãoinicialização PXE e

Wake on LAN” (p 21) • Localização doservidor TFTP

• Habilitação VNC• Senha VNC

Instalação remota 49

Page 50: Reference Pt BR

Opções de inicializaçãoParâmetrosnecessários parainicialização

Cenário de instalação

Seção 1.1.4, “Instalaçãoremota simples por SSH:

• install=(nfs,http,ftp,smb)://caminho_mídia_inst

• Localização doservidor deinstalaçãoconfiguração de rede

estática” (p 22) • Dispositivo de rede • netdevice=um_disp_rede (necessário apenas• Endereço IP

• Máscara de rede se vários dispositivos derede estiverem disponíveis)• Gateway

• Habilitação SSH • hostip=um_ip• Senha SSH • netmask=uma

_máscara_rede• gateway=gateway_ip• usessh=1• sshpassword=uma_senha

Seção 1.1.5, “Instalaçãoremota simples por SSH:

• install=(nfs,http,ftp,smb)://caminho_mídia_inst

• Localização doservidor deinstalaçãoconfiguração de rede

dinâmica por DHCP”(p 24)

• Habilitação SSH • usessh=1• Senha SSH • sshpassword=uma

_senha

Não aplicável; processogerenciado via PXE e DHCP

Seção 1.1.6, “Instalaçãoremota por SSH:

• Localização doservidor deinstalaçãoinicialização PXE e

Wake on LAN” (p 25) • Localização doservidor TFTP

• Habilitação SSH• Senha SSH

50 Referência

Page 51: Reference Pt BR

DICA

Saiba mais sobre as opções de inicialização linuxrc usadas para inicializar umsistema Linux em /usr/share/doc/packages/linuxrc/linuxrc.html.

1.5 Monitorando o processo deinstalação

Há várias opções para monitorar o processo de instalação remotamente. Se as opçõesde inicialização adequadas tiverem sido especificadas ao inicializar para instalação,VNC ou SSH podem ser usados para controlar a instalação e a configuração do sistemaa partir de uma estação de trabalho remota.

1.5.1 Instalação VNCUsando um software visualizador VNC, você pode controlar remotamente a instalaçãodo SUSE Linux de virtualmente qualquer sistema operacional. Esta seção apresenta aconfiguração usando um visualizador VNC ou um browser da Web.

Preparando para instalação VNCTudo o que você precisa fazer no destino da instalação para preparar uma instalaçãoVNC é fornecer as opções de inicialização adequadas na inicialização inicial parainstalação (consulte a Seção 1.4.3, “Usando opções de inicialização personalizadas”(p 48)). O sistema de destino inicializa em um ambiente baseado em texto e espera queum cliente VNC conecte-se ao programa de instalação.

O programa de instalação anuncia o endereço IP e exibe o número necessário paraconexão para a instalação. Se você tiver acesso físico ao sistema de destino, essasinformações são fornecidas logo depois do sistema ser inicializado para instalação.Digite esses dados quando eles forem solicitados pelo software cliente VNC e forneçaa sua senha VNC.

Como o destino da instalação anuncia a si mesmo por OpenSLP, você pode recuperara informação do endereço do destino da instalação com um browser SLP sem a

Instalação remota 51

Page 52: Reference Pt BR

necessidade de qualquer contato físico com a instalação em si, desde que a suaconfiguração de rede e todas as máquinas tenham suporte a OpenSLP:

1 Inicie o arquivo KDE e o browser da Web Konqueror.

2 Digite service://yast.installation.suse na barra de localização.

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 instalação. Outraalternativa é executar o seu software visualizador VNC com o endereço IPfornecido e adicionar :1 no final do endereço IP para exibir a instalação queestá sendo executada.

Conectando-se ao programa de instalaçãoBasicamente, há duas maneiras de se conectar a um servidor VNC (o destino deinstalação, neste caso). Você pode iniciar um visualizador VNC independente emqualquer sistema operacional ou conectar-se usando um browser da Web habilitadopara Java.

Com o VNC, é possível controlar a instalação de um sistema Linux de qualquer outrosistema operacional, incluindo outras variedades do Linux, Windows ou Mac OS.

Em uma máquina Linux, verifique se o pacote tightvnc está instalado. Em umamáquina Windows, instale a porta Windows deste aplicativo, que pode ser obtida nahome page do TightVNC (http://www.tightvnc.com/download.html).

Para conectar-se ao programa de instalação executado na máquina de destino, procedada seguinte maneira:

1 Inicie o visualizador VNC.

2 Digite o endereço IP e o número de exibição do destino de instalação comofornecidos pelo browser SLP ou pelo próprio programa de instalação:endereço_ip:número_exibição

Uma janela é aberta na área de trabalho, mostrando as telas do YaST como emuma instalação local normal.

52 Referência

Page 53: Reference Pt BR

Ao usar um browser da Web para conectar-se ao programa de instalação, você ficatotalmente independente de qualquer software VNC ou do sistema operacionalsubjacente. Visto que o aplicativo browser tenha o suporte Java habilitado, você podeusar qualquer browser (Firefox, Internet Explorer, Konqueror, Opera etc.) para executara instalação do sistema Linux.

Para executar uma instalação VCN, proceda da seguinte maneira:

1 Inicie o seu browser da Web favorito.

2 Digite o seguinte no prompt de endereço:http://endereço_ip_de_destino:5801

3 Digite sua senha VNC quando solicitado. A janela do browser agora exibe astelas do YaST como em uma instalação local normal.

1.5.2 Instalação SSHCom o SSH, você pode controlar remotamente a instalação da sua máquina Linuxusando qualquer software cliente SSH.

Preparando para instalação SSHAlém de instalar o pacote de software adequado (OpenSSH para Linux e PuTTY paraWindows), você só precisa passar as opções de inicialização adequadas para habilitaro SSH para instalação. Consulte a Seção 1.4.3, “Usando opções de inicializaçãopersonalizadas” (p 48) para obter detalhes. O OpenSSH é instalado por padrão emqualquer sistema operacional baseado no SUSE Linux.

Conectando-se ao programa de instalação1 Recupere o endereço IP do destino da instalação.

Se você tiver acesso físico à máquina de destino, basta usar o endereço IPfornecido pelas rotinas de instalação no console após a primeira inicialização.Caso contrário, use o endereço IP que foi atribuído a este host específico naconfiguração de servidor DHCP.

Instalação remota 53

Page 54: Reference Pt BR

2 Em uma linha de comando, digite o seguinte comando:ssh -X root@endereço_ip_do_destino

Substitua endereço_ip_do_destino pelo endereço IP real do destino deinstalação.

3 Quando for solicitado um nome de usuário, digite root.

4 Quando for solicitada uma senha, digite a senha que foi definida pela opção deinicialização do SSH.

Depois que você autenticar com êxito, será exibido um prompt de linha decomando para o destino da instalação.

5 Digite yast para iniciar o programa de instalação.

Uma janela é aberta mostrando as telas normais do YaST como descrito noCapítulo Instalação com o YaST (↑Inicialização).

54 Referência

Page 55: Reference Pt BR

2Configuração de disco avançadaAs configurações sofisticadas do sistema requerem configurações de disco especiais.Para obter uma nomeação persistente em dispositivos SCSI, use um script deinicialização específico ou udev. O LVM (Logical Volume Management - Gerenciamentode Volumes Lógicos) é um esquema de particionamento de disco projetado para sermuito mais flexível que o particionamento físico usado nas configurações padrão. Suafuncionalidade de instantâneo 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 tolerância a falhas.

2.1 Configuração da LVMEsta seção descreve brevemente os princípios por trás do LVM e os recursos básicosque o tornam úteis em várias circunstâncias. Na Seção 2.1.2, “Configuração do LVMcom o YaST” (p 58), aprenda como configurar o LVM com o YaST.

ATENÇÃO

A utilização do LVM pode se associada a um aumento de risco, como perdade dados. O risco também inclui falhas de aplicativo, de energia e em comandos.Grave os dados antes de implementar o LVM ou reconfigurar volumes. Nuncatrabalhe sem backup.

Configuração de disco avançada 55

Page 56: Reference Pt BR

2.1.1 Gerenciador de Volumes LógicosO LVM (Logical Volume Manager - Gerenciador de Volumes Lógicos) permite umadistribuição flexível de espaço em disco rígido em vários sistemas de arquivos. Ele foidesenvolvido porque algumas vezes a necessidade de mudar a segmentação do espaçono disco rígido surge apenas depois que é feito o particionamento inicial durante ainstalação. Como é difícil modificar partições em um sistema em execução, o LVMfornece um pool virtual, ou seja, VG (Volume Group - Grupo de Volume) de espaçoem memória com base no qual os LVs (Logical Volumes - Volumes Lógicos) podemser criados conforme o necessário. O sistema operacional acessa esses LVs, em vez deacessar as partições físicas. Os grupos de volume podem ocupar mais de um disco;portanto, vários discos ou partes deles podem constituir um único VG. Dessa forma, oLVM fornece um tipo de abstração a partir do espaço do disco físico que permite quesua segmentação seja mudada de uma forma mais fácil e segura do que oreparticionamento físico proporciona. É possível encontrar outras informações sobre oparticionamento físico em “Tipos de partição” (Capítulo 1, Instalação com o YaST,↑Inicialização) e na Seção “Particionador” (Capítulo 2, Configuração do sistema comYaST, ↑Inicialização).

Figura 2.1 Particionamento físico versus LVM

PART PART PART PART PART

DISK

PART PART PART

MP MP MP MP MP MP MP

DISK 1 DISK 2

VG 1 VG 2

LV 1 LV 2 LV 3 LV 4

A Figura 2.1, “Particionamento físico versus LVM” (p 56) compara o particionamentofísico (esquerda) com a segmentação do LVM (direita). Do lado esquerdo, um único

56 Referência

Page 57: Reference Pt BR

disco rígido foi dividido em três PART (Physical Partitions - Partições Físicas), cadauma com um MP (Mount Point - Ponto de Montagem) designado, de forma que osistema operacional possa acessá-las. Do lado direito, dois discos foram divididos emduas e três partições físicas cada. Foram definidos dois grupos de volume (VG1 e VG2)do LVM. O VG1 contém duas partições do DISCO 1 e uma do DISCO 2. O VG2contém as duas partições restantes do DISCO 2. No LVM, as partições físicas do discoincorporadas a um grupo de volume são chamadas de PVs (physical volumes - volumesfísicos). Nos grupos de volume, foram definidos quatro volumes lógicos (LV1 a LV4),que podem ser usados pelo sistema operacional por meio dos pontos de montagemassociados. A fronteira entre os volumes lógicos diferentes não deve ser alinhada comas fronteiras das partições. Veja a fronteira entre LV1 e LV2 neste exemplo.

Recursos do LVM:

• vários discos rígidos ou partições podem ser combinados em um grande volumelógico.

• Desde que a configuração seja adequada, um LV (como /usr) pode ser ampliadoquando o espaço em disco estiver esgotado.

• Usando o LVM, adicione discos rígidos ou LVs em um sistema em execução. Noentanto, esse procedimento requer um hardware altamente permutável, capaz deexecutar tais ações.

• É possível ativar um "modo de distribuição" que distribui o fluxo de dados de umvolume lógico em vários volumes físicos. Se esses volumes físicos residirem emdiscos diferentes, o desempenho de leitura e gravação poderá ser melhorado comoocorre com o RAID 0.

• O recurso instantâneo permite backups consistentes (especialmente para servidores)no sistema em execução.

Com esses recursos, a utilização do LVM é sensata em PCs domésticos muito usadosou pequenos servidores. Se você tem um estoque de dados crescente, como no caso debancos de dados, arquivos de música ou diretórios de usuário, o LVM é simplesmentea opção correta. Ele permite o uso de sistemas de arquivos maiores do que o disco rígidofísico. Outra vantagem do LVM é a possibilidade de adicionar até 256 LVs. Entretanto,lembre-se de que trabalhar com o LVM é diferente de trabalhar com partiçõesconvencionais. Instruções e informações adicionais sobre a configuração do LVM estãodisponíveis no HOWTO (Como Fazer) oficial do LVM, em http://tldp.org/HOWTO/LVM-HOWTO/.

Configuração de disco avançada 57

Page 58: Reference Pt BR

Começando na versão 2.6 do kernel, a versão 2 do LVM está disponível, sendocompatível com versões anteriores do LVM e permitindo o gerenciamento contínuo deantigos grupos de volume. Ao criar novos grupos de volume, decida se vai usar o novoformato ou a versão compatível com versões anteriores. O LVM 2 não requer qualquerpatch de kernel. Ele usa o mapeador de dispositivos integrado ao kernel 2.6. Esse kernelsuporta somente a versão 2 do LVM. Portanto, sempre que o LVM for abordado nestaseção, será considerada a versão 2.

2.1.2 Configuração do LVM com o YaSTA configuração do LVM com YaST pode ser feita com o Particionador Expert do YaST(consulte a Seção “Particionador” (Capítulo 2, Configuração do sistema com YaST,↑Inicialização)). Essa ferramenta de particionamento permite editar e apagar partiçõesexistentes, e criar novas que devem ser usadas com o LVM. Crie uma partição do LVMclicando primeiro em Criar → Não formatar e selecionando 0x8E Linux LVM comoidentificador de partição. Depois de criar todas as partições para usar o LVM, cliqueem LVM para iniciar sua configuração.

Criando grupos de volumeSe ainda não houver grupos de volume no sistema, você será solicitado a adicionar um(consulte a Figura 2.2, “Criando um grupo de volume” (p 59)). É possível criar gruposadicionais com a opção Adicionar, mas normalmente um único grupo de volume ésuficiente. O nome sugerido para o grupo de volume em que os arquivos do sistemaSUSE Linux se localizarão é system. O tamanho físico de extensão define o tamanhode um bloco físico no grupo de volume. Todo o espaço em disco de um grupo de volumeé gerenciado em pacotes desse tamanho. Esse valor é normalmente definido como 4MB e permite um tamanho máximo de 256 GB para volumes físicos e lógicos. Otamanho físico de extensão só deve ser aumentado, por exemplo, para 8, 16 ou 32 MB,se você precisar de volumes lógicos maiores que 256 GB.

58 Referência

Page 59: Reference Pt BR

Figura 2.2 Criando um grupo de volume

Configurando volumes físicosDepois que um grupo de volume é criado, a caixa de diálogo a seguir lista todas aspartições com os tipos “LVM do Linux” ou “nativas do Linux”. Não são exibidaspartições do DOS ou de troca. Se uma partição já tiver sido designada a um grupo devolume, o nome dele será exibido na lista. As partições não atribuídas são indicadascom “--”.

Se houver vários grupos de volume, defina o grupo de volume atual na caixa de seleçãodo canto superior esquerdo. Os botões do canto superior direito permitem criar gruposde volume adicionais, bem como apagar grupos de volumes existentes. Somente gruposde volume sem partições designadas podem ser apagados. Todas as partições designadasa um grupo de volume também são citadas como um PV (Physical Volume - VolumeFísico).

Configuração de disco avançada 59

Page 60: Reference Pt BR

Figura 2.3 Configuração do volume físico

Para adicionar uma partição previamente não designada ao grupo de volume selecionado,primeiro clique na partição, depois clique em Adicionar Volume. Nesse momento, onome do grupo de volume é inserido ao lado da partição selecionada. Designe todas aspartições reservadas para o LVM a um grupo de volume. Caso contrário, o espaço napartição permanecerá sem uso. Antes de sair da caixa de diálogo, é necessário designarpelo menos um volume físico a cada grupo de volume. Depois de designar todos osvolumes físicos, clique em Próximo para continuar a configuração de volumes lógicos.

Configurando volumes lógicosDepois de o grupo de volume ser preenchido com volumes físicos, defina os volumeslógicos que o sistema operacional deverá usar na próxima caixa de diálogo. Defina ogrupo de volume atual em uma caixa de seleção no canto superior esquerdo. Ao ladodela, é exibido o espaço livre no grupo de volumes atual. A lista a seguir contém todosos volumes lógicos do grupo de volume. Todas as partições normais do Linux às quaisum ponto de montagem é designado, todas as partições de troca e todos os volumeslógicos já existentes são listados aqui. Adicione, edite e remova volumes lógicosconforme o necessário, até esgotar todo o espaço do grupo de volume. Designe pelomenos um volume lógico a cada grupo de volume.

60 Referência

Page 61: Reference Pt BR

Figura 2.4 Gerenciamento de volume lógico

Para criar um novo volume lógico, clique em Adicionar e preencha a janela que é aberta.No que diz respeito ao particionamento, digite o tamanho, o sistema de arquivos e oponto de montagem. Normalmente, um sistema de arquivos, como reiserfs ou ext2, écriado em um volume lógico e então um ponto de montagem é designado a ele. Osarquivos armazenados nesse volume lógico podem ser encontrados nesse ponto demontagem do sistema instalado. Além disso, é possível distribuir o fluxo de dados novolume lógico entre vários volumes físicos. Se esses volumes físicos residirem emdiscos rígidos diferentes, os desempenhos de leitura e gravação podem ser melhorados(como ocorre com RAID 0). No entanto, um LV de distribuição com n distribuiçõessó poderá ser criado corretamente se o espaço em disco rígido necessário para o LVpuder ser distribuído uniformemente em n volumes físicos. Se, por exemplo, houverapenas dois volumes físicos disponíveis, será impossível haver um volume lógico comtrês distribuições.

ATENÇÃO: Distribuindo

A essa altura, o YaST não tem como verificar se suas entradas estão corretasno que diz respeito à distribuição. Qualquer erro realizado aqui será mostradosomente mais tarde, quando o LVM for implementado em disco.

Configuração de disco avançada 61

Page 62: Reference Pt BR

Figura 2.5 Criando volumes lógicos

Se você já configurou o LVM no sistema, os volumes lógicos existentes poderão serinseridos agora. Antes de continuar, designe pontos de montagem apropriados a essesvolumes lógicos também. Usando a opção Próximo, volte para o Particionador Expertdo YaST e conclua seu trabalho.

Gerenciamento direto do LVMSe você já configurou o LVM e só quer mudar alguma coisa, há uma forma alternativade fazê-lo. No Centro de Controle do YaST, selecione Sistema → LVM. Essa caixa dediálogo basicamente permite as mesmas ações descritas anteriormente, com a exceçãodo particionamento físico. Ela mostra os volumes físicos e os volumes lógicos existentesem duas listas, e você pode gerenciar seu sistema LVM usando os métodos já descritos.

62 Referência

Page 63: Reference Pt BR

2.2 Configuração de RAID de softwareA finalidade do RAID (redundant array of independent disks) é combinar várias partiçõesde disco rígido em um grande disco rígido virtual para otimizar o desempenho, asegurança dos dados ou ambos. A maioria das controladoras RAID usa o protocoloSCSI porque ele é capaz de lidar com um grande número de discos rígidos com maiseficiência que o protocolo IDE, além de ser mais apropriado para o processamento decomandos em paralelo. Algumas controladoras RAID suportam discos rígidos IDE ouSATA. O RAID de software fornece as vantagens de sistemas RAID sem o custoadicional de controladoras RAID de hardware. Porém, isso exige algum tempo de CPUe tem requisitos de memória que o tornam inadequado para computadores de altodesempenho.

2.2.1 Níveis de RAIDO SUSE Linux oferece a opção de combinar vários discos rígidos em um sistema RAIDde software com a ajuda do YaST, uma alternativa bastante razoável ao RAID dehardware. O RAID requer diversas estratégias para a combinação de vários discosrígidos em um sistema RAID, cada uma delas com diferentes objetivos, vantagens ecaracterísticas. Essas variações geralmente são conhecidas como níveis de RAID.

Os níveis de RAID comuns são:

RAID 0Esse nível melhora o desempenho do acesso aos dados dividindo blocos de cadaarquivo entre várias unidades de disco. Na verdade, isso não é realmente um RAID,porque não oferece backup dos dados, mas o nome RAID 0 para esse tipo de sistematornou-se uma norma. Com o RAID 0, dois ou mais discos rígidos são unidos emum pool. O desempenho é muito bom, mas, em caso de falha até mesmo de umdisco rígido, o sistema RAID é destruído e seus dados são perdidos.

RAID 1Esse nível fornece a segurança adequada para seus dados, porque eles são copiadospara outro disco rígido 1:1. Isso é conhecido como espelhamento de disco rígido.Se um disco for destruído, uma cópia de seu conteúdo estará disponível em outrodisco. Mesmo que todos os discos, com exceção de um, sejam danificados, vocênão corre o risco de perder seus dados. Porém, se não forem detectados danos, osdados danificados poderão ser espelhados no disco correto e assim ocorrerá a

Configuração de disco avançada 63

Page 64: Reference Pt BR

corrupção de dados. O desempenho de gravação fica um pouco prejudicado noprocesso de cópia, em comparação ao uso do acesso a um único disco (dez a vintepor cento mais lento), mas o acesso de leitura é significativamente mais rápido secomparado com o de qualquer um dos discos rígidos físicos normais, uma vez queos dados são duplicados e, conseqüentemente, podem ser explorados em paralelo.Em geral, pode-se dizer que o Nível 1 fornece praticamente o dobro da velocidadede transação de leitura dos discos individuais e quase a mesma velocidade detransação de gravação que eles.

RAID 2 e RAID 3Essas são implementações de RAID não muito comuns. O Nível 2 divide os dadosno nível de bits, em vez de no nível de blocos. O Nível 3 fornece a divisão no nívelde bytes com um disco de paridade dedicada, e não pode atender várias solicitaçõesao mesmo tempo. Ambos os níveis raramente são usados.

RAID 4O Nível 4 fornece a divisão no nível de blocos, exatamente como o Nível 0combinado com um disco de paridade dedicada. No caso de uma falha de disco dedados, os dados de paridade são usados para criar um disco de substituição. Noentanto, o disco de paridade pode criar um gargalo para o acesso de gravação.Mesmo assim, o Nível 4 às vezes é usado.

RAID 5O RAID 5 é um compromisso otimizado entre o Nível 0 e o Nível 1 em termos dedesempenho e redundância. O espaço em disco rígido é igual ao número de discosusados menos um. Os dados são distribuídos pelos discos rígidos, assim como noRAID 0. Os blocos de paridade, criados em uma das partições, estão lá por motivosde segurança. Eles são vinculados uns aos outros com XOR, o que permite que oconteúdo seja reconstruído pelo bloco de paridade correspondente no caso de umafalha do sistema. Com o RAID 5, apenas um disco rígido pode falhar por vez. Seum disco rígido falhar, ele deverá ser substituído assim que possível, para evitar orisco da perda de dados.

Outros níveis de RAIDVários outros níveis de RAID foram desenvolvidos (RAIDn, RAID 10, RAID 0+1,RAID 30, RAID 50, etc.), sendo alguns deles implementações proprietárias criadaspor fornecedores de hardware. Esses níveis não estão muitos difundidos, portanto,não serão explicados aqui.

64 Referência

Page 65: Reference Pt BR

2.2.2 Configuração de RAID de softwarecom o YaST

A configuração de RAID de software do YaST pode ser obtida a partir do ParticionadorExpert do YaST, descrito na Seção “Particionador” (Capítulo 2, Configuração dosistema com YaST, ↑Inicialização). Essa ferramenta de particionamento permite editare excluir partições existentes e criar novas partições que devem ser usadas com o RAIDde software. Nela, você cria partições RAID clicando em Criar→ Não formatar e, emseguida, selecionando 0xFD Linux RAID como identificador de partição. Para o RAID 0e o RAID 1, pelo menos duas partições são necessárias; para o RAID 1, geralmente sãonecessárias exatamente duas partições, não mais. Se o RAID 5 for usado, pelo menostrês partições serão necessárias. É recomendável usar apenas partições com o mesmotamanho. As partições RAID devem ser armazenadas em diferentes discos rígidos paradiminuir o risco da perda de dados caso um deles esteja danificado (RAID 1 e 5) e paraotimizar o desempenho do RAID 0. Após criar todas as partições para uso com o RAID,clique em RAID → Criar RAID para iniciar a configuração do RAID.

Na caixa de diálogo seguinte, escolha entre os níveis de RAID 0, 1 e 5 (consulte aSeção 2.2.1, “Níveis de RAID” (p 63) para obter detalhes). Após clicar em Próximo,a caixa de diálogo a seguir lista todas as partições com o tipo “RAID Linux” ou “nativodo Linux” (consulte a Figura 2.6, “Partições RAID” (p 66)). Não são exibidas partiçõesdo DOS ou de troca. Se uma partição já estiver atribuída a um volume RAID, o nomedo dispositivo de RAID (por exemplo, /dev/md0) será exibido na lista. As partiçõesnão atribuídas são indicadas com “--”.

Configuração de disco avançada 65

Page 66: Reference Pt BR

Figura 2.6 Partições RAID

Para adicionar uma partição anteriormente não atribuída ao volume RAID selecionado,primeiro clique na partição e, em seguida, em Adicionar. Nesse ponto, o nome dodispositivo de RAID é inserido ao lado da partição selecionada. Atribua todas aspartições reservadas para o RAID. Caso contrário, o espaço na partição permanecerásem uso. Após atribuir todas as partições, clique em Próximo para continuar na caixade diálogo de configurações, onde você pode ajustar o desempenho (consulte aFigura 2.7, “Configurações do sistema de arquivos” (p 67)).

66 Referência

Page 67: Reference Pt BR

Figura 2.7 Configurações 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 SuperblocoPersistente garante que as partições RAID sejam reconhecidas como tais na inicialização.Após concluir a configuração com Concluir, verifique o dispositivo /dev/md0 eoutros dispositivos indicados com RAID no particionador expert.

2.2.3 Solução de problemasVerifique o arquivo /proc/mdstats para saber se uma partição RAID foi destruída.No caso de uma falha do sistema, encerre o sistema Linux e substitua o disco rígidodanificado por um novo, particionado da mesma maneira. Depois, reinicie o sistema edigite o comando mdadm /dev/mdX --add /dev/sdX. Substitua 'X' por seuspróprios identificadores de dispositivo. Isso integra o disco rígido automaticamente aosistema RAID e o reconstrói totalmente.

Configuração de disco avançada 67

Page 68: Reference Pt BR

2.2.4 Mais informaçõesInstruções de configuração e mais detalhes sobre o RAID de software podem serencontrados nos HOWTOs, em:

• /usr/share/doc/packages/raidtools/Software-RAID.HOWTO.html

• http://en.tldp.org/HOWTO/Software-RAID-HOWTO.html

Também estão disponíveis listas de discussão relacionadas ao RAID do Linux, comoem http://marc.theaimsgroup.com/?l=linux-raid&r=1&w=2.

68 Referência

Page 69: Reference Pt BR

3Atualizando o gerenciamento desistemas e pacotesO SUSE Linux fornece a opção de atualizar um sistema existente sem ter que reinstalá-lo novamente por inteiro. Há dois tipos de atualização: atualização de pacotes desoftware individuais e atualização do sistema inteiro. Os pacotes também podem serinstalados manualmente com o gerenciador de pacotes RPM.

3.1 Atualizando o SUSE LinuxO software tende a “crescer” a cada versão. Portanto, verifique o espaço de partiçãodisponível com df antes de atualizar. Se você suspeitar de que tem pouco espaço emdisco, proteja os seus dados antes de atualizar e reparticionar o sistema. Não há nenhumaregra geral sobre quanto espaço deve haver em cada partição. Os requisitos de espaçodependem do seu perfil de particionamento específico, do software selecionado e daversão do SUSE Linux.

3.1.1 PreparaçõesAntes de atualizar, copie os arquivos de configuração antigos em uma mídia separada,como streamer, disco rígido removível, chaveiro USB ou unidade ZIP para proteger osdados. Isso se aplica basicamente aos arquivos armazenados em /etc, assim como aalguns dos diretórios e arquivos em /var e /opt. Você também pode gravar os dadosdo usuário em /home (os diretórios HOME) em uma mídia de backup. Faça o backupdesses dados como root. Apenas roottem permissão de leitura para todos os arquivoslocais.

Atualizando o gerenciamento de sistemas e pacotes 69

Page 70: Reference Pt BR

Antes de iniciar a atualização, anote a partição raiz. O comando df / relaciona o nomedo dispositivo da partição raiz. Em Exemplo 3.1, “Listar com df -h” (p 70), a partiçãoraiz a ser anotada é a /dev/hda3 (montada como /).

Exemplo 3.1 Listar com df -hFilesystem Size Used Avail Use% Mounted on/dev/hda3 74G 22G 53G 29% /tmpfs 506M 0 506M 0% /dev/shm/dev/hda5 116G 5.8G 111G 5% /home/dev/hda1 39G 1.6G 37G 4% /windows/C/dev/hda2 4.6G 2.6G 2.1G 57% /windows/D

3.1.2 Problemas possíveisSe você atualizar um sistema padrão da versão anterior para esta, o YaST fará e executaráas mudanças necessárias. Dependendo das suas personalizações, algumas etapas outodo o procedimento de atualização poderá falhar e você terá que copiar os dados debackup. Aqui, assinalamos mais questões a verificar antes de iniciar a atualização dosistema

Verificando passwd e group em /etcAntes de atualizar o sistema, verifique se/etc/passwd e/etc/group não contêmerros de sintaxe. Para isso, inicie os utilitários de verificação pwck e grpck comoraiz e elimine quaisquer erros reportados.

PostgreSQLAntes de atualizar PostgreSQL (postgres), descarte os bancos de dados. Consultea página de manual de pg_dump. Isso só será necessário se você realmente usouPostgreSQL antes da sua atualização.

3.1.3 Atualizando com o YaSTApós os procedimentos de preparação apresentados na Seção 3.1.1, “Preparações”(p 69), você já pode atualizar o sistema:

70 Referência

Page 71: Reference Pt BR

1 Inicialize o sistema como para a instalação, descrita na Seção “Inicialização dosistema para instalação” (Capítulo 1, Instalação com o YaST, ↑Inicialização). NoYaST, escolha um idioma e selecione Atualizar na caixa de diálogo Modo deInstalação. Não selecione Nova Instalação.

2 O YaST determina se há diversas partições raiz. Se houver apenas uma, continuecom a próxima etapa. Se houver várias, selecione a partição correta e confirmecom Próximo (/dev/hda3 foi selecionado no exemplo da Seção 3.1.1,“Preparações” (p 69)). O YaST lê o antigo fstab nessa partição para analisare montar os sistemas de arquivos listados.

3 Na caixa de diálogo Configurações de Instalação, ajuste as configurações deacordo com suas necessidades. Normalmente, você pode deixar as configuraçõespadrão intactas, mas se pretende aprimorar o sistema, verifique os pacotesoferecidos nos submenus Seleção de Software ou adicione suporte para idiomasextras.

Você também tem a possibilidade de fazer backups de vários componentes dosistema. Selecionar backups torna lento o processo de atualização. Use essa opçãose não tiver um backup de sistema recente.

4 Na caixa de diálogo a seguir, escolha atualizar apenas o software que já estáinstalado ou adicionar novos componentes de software ao sistema (modo deupgrade) É recomendável aceitar a composição sugerida, por exemplo,Atualização baseada na seleção "Sistema Padrão comKDE" ou "Sistema Padrãocom GNOME". Os ajustes podem ser feitos posteriormente com o YaST.

3.1.4 Atualizando pacotes individuaisIndependentemente do seu ambiente atualizado em geral, sempre é possível atualizarpacotes individuais. A partir desse ponto, porém, é sua responsabilidade garantir queo seu sistema permaneça consistente. Dicas sobre atualização podem ser encontradasem http://www.novell.com/linux/download/updates/.

Selecione os componentes da lista de seleção do pacote do YaST segundo as suasnecessidades. Se você selecionar um pacote essencial para a operação geral do sistema,o YaST emitirá um aviso. Os pacotes só devem ser atualizados no modo de atualização.Vários pacotes, por exemplo, contêm bibliotecas compartilhadas. Se você atualizar

Atualizando o gerenciamento de sistemas e pacotes 71

Page 72: Reference Pt BR

esses programas e aplicativos no sistema em execução, poderão ocorrer problemas defuncionamento.

3.2 Mudanças no software de versãopara versão

Os aspectos individuais mudados de versão para versão são resumidos detalhadamentea seguir. O resumo indica, por exemplo, se as configurações básicas foramcompletamente reconfiguradas, se arquivos de configuração foram movidos para outroslocais ou se os aplicativos comuns sofreram mudanças consideráveis. As modificaçõessignificativas que afetam o uso diário do sistema no nível do usuário ou no nível doadministrador são mencionadas aqui.

Os problemas e as questões especiais das respectivas versões são publicados online àmedida que são identificados. Consulte os links relacionados abaixo. As atualizaçõesimportantes de pacotes individuais podem ser acessadas em http://www.novell.com/products/linuxprofessional/downloads/ usando o YOU (YaSTOnline Update) — consulte a Seção “Atualizando software online” (Capítulo 2,Configuração do sistema com YaST, ↑Inicialização).

3.2.1 Do 9.0 ao 9.1Consulte o artigo “Known Problems and Special Features in SUSE Linux 9,1” no bancode dados de suporte do SUSE em http://portal.suse.com na palavra-chavespecial features. Os artigos são publicados em todas as versões do SUSE Linux.

Atualizando para o Kernel 2.6O SUSE Linux baseia-se agora inteiramente no kernel 2.6. A versão anterior 2.4 nãopode mais ser usada, porque os aplicativos fornecidos não funcionam com o kernel 2.4.Observe os seguintes detalhes:

• O carregamento de módulos é configurado por meio do arquivo /etc/modprobe.conf. O arquivo /etc/modules.conf está obsoleto. O YaST tenta convertero arquivo (consulte também o script /sbin/generate-modprobe.conf).

72 Referência

Page 73: Reference Pt BR

• Os módulos têm o sufixo .ko.

• O módulo ide-scsi não é mais necessário para a gravação de CDs.

• O prefixo snd_ foi removido das opções do módulo de som ALSA .

• sysfs agora complementa o sistema de arquivos /proc.

• O gerenciamento de energia (especialmente ACPI) foi aperfeiçoado e pode serconfigurado por meio de um módulo do YaST.

Montando partições VFATNa montagem de partições VFAT, o parâmetrocode deve ser mudado paracodepage.Se você tiver dificuldades de montar uma partição VFAT, verifique se o arquivo /etc/fstab contém o antigo nome de parâmetro.

Standby e suspender com ACPIO kernel 2.6 suporta standby e suspender com ACPI. Esta função ainda está no estágioexperimental e pode não ser suportada por alguns componentes do hardware. Para usá-la, será necessário o pacote powersave. Informações sobre esse pacote também estãodisponíveis em/usr/share/doc/packages/powersave. Um front end gráficopode ser encontrado no pacote kpowersave.

Dispositivos de entradaCom relação às mudanças em conexão com os dispositivos de entrada, consulte o artigodo 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-chavespecial features.

Biblioteca nativa de threads POSIX e glibc 2.3.xOs aplicativos associados ao NGPT (Next Generation POSIX Threading) não funcionamcom glibc 2.3.x. Todos os aplicativos afetados que não acompanham o SUSE Linuxdevem ser compilados com linuxthreads ou com NPTL (Native POSIX Thread Library

Atualizando o gerenciamento de sistemas e pacotes 73

Page 74: Reference Pt BR

- Biblioteca Nativa de Threads POSIX). O NPTL é preferível, porque é o padrão dofuturo.

Se o NPTL causar dificuldades, poderá ser usada a antiga implementação doslinuxthreads, configurando a seguinte variável de ambiente (substituirversão_do_kernel pelo número de versão do respectivo kernel):LD_ASSUME_KERNEL=versão-do-kernel

Os seguintes números de versão são possíveis:

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 usamerrno, h_errno e _res devem incluir os arquivos de cabeçalho (errno.h, netdb.h e resolv.h) com #include. Para programas C++ com suporte multithread queusam cancelamento de thread, a variável de ambienteLD_ASSUME_KERNEL=2.4.1deve ser usada para solicitar o uso da biblioteca linuxthreads.

Adaptações para Native POSIX Thread LibraryO NPTL está incluído no SUSE Linux 9.1 como o pacote de thread. O NPTL écompatível binariamente com a biblioteca dos antigos linuxthreads. Porém, as áreasem que os linuxthreads violam o padrão POSIX exigem adaptações NPTL. Isso incluio seguinte: o tratamento de sinais, getpid retornando o mesmo valor em todos osthreads e handlers de threads registrados com pthread_atfork que não funcionam sevfork for usado.

Configuração da interface de redeA configuração da interface de rede mudou. Anteriormente, o hardware era inicializadode acordo com a configuração de uma interface inexistente. Agora, o sistema procurao novo hardware e o inicializa imediatamente, habilitando a configuração da novainterface de rede.

74 Referência

Page 75: Reference Pt BR

Novos nomes foram apresentados para os arquivos de configuração. Como o nome deuma interface de rede é gerado dinamicamente e o uso dos dispositivos hotplug estáaumentando consideravelmente, um nome como eth0 ou eth1 não é mais adequadopara fins de configuração. Por essa razão, designações exclusivas, como endereço MACou slot PCI, são usadas para nomear configurações de interface. Você pode usar nomesde interface assim que aparecerem. Comandos como ifup eth0 ou ifdown eth0ainda são possíveis.

As configurações de dispositivo estão localizadas em/etc/sysconfig/hardware.As interfaces fornecidas por esses dispositivos geralmente estão localizadas em /etc/sysconfig/network (com nomes diferentes). Consulte a descrição detalhada em/usr/share/doc/packages/sysconfig/README.

Configuração de SomApós uma atualização, as placas de som devem ser reconfiguradas. Isso pode ser feitocom o módulo de som do YaST. Como root, digite /sbin/yast2 sound.

Domínio superior .local como domínio “link-local”A biblioteca resolver trata o domínio superior .local como domínio “link-local” eenvia solicitações do DNS multicast para a porta 5353 do endereço multicast224.0.0.251, em vez de consultas de DNS normais. É uma mudança incompatível.Se o domínio .local já é usado na configuração de nome de servidor, use um nomede domínio diferente. Para obter mais informações sobre multicast DNS, consultehttp://www.multicastdns.org.

Codificação UTF-8 em todo o sistemaA codificação padrão do sistema é UTF-8. Assim, quando você fizer uma instalaçãopadrão, um local será configurado com a codificação UTF-8, como en_US.UTF-8.Para obter mais informações, consulte http://www.suse.de/~mfabian/suse-cjk/locales.html.

Convertendo nomes de arquivo em UTF-8Os arquivos em sistemas de arquivos criados anteriormente não usam codificação UTF-8 para os nomes de arquivo (a menos que especificado de outra forma). Se houver

Atualizando o gerenciamento de sistemas e pacotes 75

Page 76: Reference Pt BR

caracteres não-ASCII nesses nomes de arquivo, eles não serão exibidos corretamente.Para corrigir, use o script convmv, que converte a codificação de nomes de arquivoem UTF-8.

Ferramentas shell compatíveis com padrão POSIX do2001Na configuração padrão, as ferramentas shell do pacote docoreutils (tail,chown,head, sort, etc.) não são mais compatíveis com o padrão POSIX de 1992 mas como padrão POSIX de 2001 (Single UNIX Specification, versão 3== IEEE Std 1003.1-2001 == ISO/IEC 9945:2002). O comportamento antigo pode ser forçado com umavariável de ambiente:_POSIX2_VERSION=199209

O novo valor é 200112 e é usado como padrão em _POSIX2_VERSION. O padrãoSUS pode ser analisado (gratuitamente, mas é necessário registro) em http://www.unix.org.

DICA

Software de terceiros podem ainda não ser compatíveis com o novo padrão.Nesse caso, configure a variável de ambiente como descrito acima.

/etc/gshadow Obsoleto/etc/gshadow foi abandonado e removido, porque esse arquivo é supérfluo pelasseguintes razões:

• Não é suportado por glibc.

• Não há interface oficial para esse arquivo. Nem mesmo a suíte transitória contémessa interface.

• A maioria das ferramentas que verifica a senha do grupo não oferece suporte aoarquivo e o ignora pelas referidas razões.

76 Referência

Page 77: Reference Pt BR

OpenLDAPComo o formato do banco de dados mudou, os bancos de dados devem ser geradosnovamente. Durante a atualização, o sistema tenta efetuar essa conversãoautomaticamente. Porém, haverá casos em que a conversão falha.

A verificação do esquema sofreu aprimoramentos substanciais. Assim, diversasoperações padrão não compatíveis que eram permitidas com o antigo servidor LDAPnão são mais possíveis.

A sintaxe do arquivo de configuração mudou parcialmente com uma visão para ACLs.Após a instalação, há informações com relação à atualização no arquivo/usr/share/doc/packages/powersave/README.thermal.

Apache 1.3 substituído por Apache 2O servidor Web do Apache (versão 1.3) foi substituído pelo Apache 2. A documentaçãodetalhada da versão 2.0 está disponível na página da Web http://httpd.apache.org/docs-2.0/en/. Em um sistema com uma instalação de servidor HTTP, umaatualização remove o pacote Apache e instala o Apache 2. Posteriormente, o sistemadeve ser adaptado com o YaST ou manualmente. Os arquivos de configuração em/etc/httpd agora estão localizados em /etc/apache2.

Threads ou processos podem ser selecionados para tratar várias consultas simultâneas.O gerenciamento do processo mudou para um módulo independente, o módulomultiprocessamento (MPM). Da mesma maneira, o Apache 2 precisa do pacoteapache2-prefork (recomendado para fins de estabilidade) ou do pacoteapache2-worker. Dependendo do MPM, o Apache 2 reage de forma diferente àsconsultas. Isso afeta o desempenho, assim como o uso dos módulos. Essas característicassão discutidas detalhadamente na Seção 26.4.4, “Módulos de multiprocessamento”(p 486).

O Apache 2 agora oferece suporte para o IPv6 (protocolo da Internet avançado).

Foi implementado um mecanismo para que os programadores de módulo possamespecificar a seqüência de carregamento desejada dos módulos, liberando os usuáriosdessa tarefa. Em geral, é importante a seqüência em que os módulos são executados.Nas versões anteriores, isso era determinado através da seqüência de carregamento.Por exemplo, um módulo que só dá acesso a determinados recursos para usuários

Atualizando o gerenciamento de sistemas e pacotes 77

Page 78: Reference Pt BR

autenticados deve ser carregado primeiro, para impedir que usuários sem permissão deacesso vejam as páginas.

As consultas e respostas do Apache podem ser processadas com filtros.

Do Samba 2.x ao Samba 3.xApós a atualização do Samba 2.x para o Samba 3.x, a autenticação winbind não estámais disponível. Os outros métodos de autenticação 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 tambémhttp://www.squid-cache.org/Doc/FAQ/FAQ-23.html#ss23.5.

Atualização do OpenSSH (versão 3.8p1)O suporte gssapi foi substituído pelo gssapi-with-mic para impedir possíveisataques do tipo MITM. Essas duas versões não são compatíveis. Isso significa que nãoé possível autenticar com tickets Kerberos a partir de distribuições mais antigas, vistoque outros métodos de autenticação são usados.

Aplicativos SSH e de terminalAo se estabelecer uma conexão de um host remoto (especialmente via SSH, telnet eRSH) entre a versão 9 (configuração padrão com UTF-8 ativado) e sistemas mais antigos(SUSE Linux 9.0 e versões anteriores em que UTF-8 não está ativado por padrão ounão é suportado), aplicativos de terminal podem exibir caracteres com erro.

Isso ocorre porque o OpenSSH não encaminha as configurações locais. Portanto, sãousados os padrões do sistema que podem não corresponder às configurações do terminalremoto. Isso afeta o YaST no modo de texto e os aplicativos executados de um hostremoto como usuário normal (não root). Os aplicativos iniciados por root sãoafetados somente quando os usuários mudam os locais padrão de root (apenasLC_CTYPE é definido por padrão).

78 Referência

Page 79: Reference Pt BR

libiodbc descartadoOs usuários do FreeRADIUS devem se conectar ao unixODBC, pois o libiodbc foidescartado.

Recursos XML em /usr/share/xml

Os recursos XML (DTDs, folhas de estilo, etc.) são instalados em /usr/share/xml.Portanto, alguns diretórios não estão mais disponíveis em /usr/share/sgml. Sevocê tiver problemas, modifique os scripts e makefiles ou use os catálogos oficiais(principalmente /etc/xml/catalog ou /etc/sgml/catalog).

Mídia removível com subfsA mídia removível está agora integrada ao uso de subfs. Não é mais necessário montara mídia manualmente com mount. Para montar a mídia, basta mudar o respectivodiretório de dispositivo em/media. A mídia não pode ser ejetada enquanto for acessadapor um programa.

3.2.2 Do 9,1 ao 9,2Consulte o artigo “Known Problems and Special Features in SUSE LINUX 9.2” nobanco de dados de suporte do SUSE emhttp://portal.suse.com com a palavra-chave special features.

Ativação do firewall na caixa de diálogo de propostadurante a instalaçãoPara aumentar a segurança, a solução de firewall SuSEFirewall2 fornecida é ativadano fim da instalação na caixa de diálogo de proposta. Isso significa que todas as portasestão fechadas inicialmente e podem ser abertas na caixa de diálogo de proposta, senecessário. Por padrão, não é possível efetuar login de sistemas remotos. Tambéminterfere na navegação na rede e aplicativos multicast, como SLP, Samba ("Ambientede rede") e alguns jogos. Você pode fazer o ajuste fino das configurações firewall como YaST.

Atualizando o gerenciamento de sistemas e pacotes 79

Page 80: Reference Pt BR

Se for necessário acesso à rede durante a instalação ou configuração de um serviço, omódulo respectivo do YaST abre as portas TCP e UDP exigidas de todas as interfacesinternas e externas. Se não desejar, o usuário poderá fechar as portas no módulo doYaST ou especificar outras configurações de firewall detalhadas.

KDE e suporte IPv6Por padrão, o suporte IPv6 não está habilitado para KDE. É possível habilitá-lo usandoo editor do YaST /etc/sysconfig. A razão de desabilitar esse recurso é que osendereços IPv6 não recebem o suporte adequado de todos os provedores de serviçosde Internet e, em conseqüência, leva a mensagens de erro ao navegar na Web e atrasosna exibição de páginas da Web

YaST Online Update e pacotes DeltaO YaST Online Update agora suporta um tipo especial de pacotes RPM que armazenaapenas a diferença binária de determinado pacote básico. Essa técnica reduzconsideravelmente o tamanho do pacote e o tempo de download em detrimento de umamaior 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 técnicos.

Configuração do sistema de impressãoAo término da instalação (caixa de diálogo de proposta), as portas necessárias para osistema de impressão devem ser abertas na configuração do firewall. A porta 631/TCPe a porta 631/UDP são necessárias para o CUPS e não devem ser fechadas para operaçãonormal. A porta 515/TCP (para o antigo protocolo LPD) e as portas usadas pelo Sambatambém devem ser abertas para impressão via LPD ou SMB.

Mudar para X.OrgA mudança de XFree86 para X.Org é facilitada pelos links de compatibilidade quehabilitam acesso a arquivos e comandos importantes com os nomes antigos.

80 Referência

Page 81: Reference Pt BR

Tabela 3.1 Comandos

X.OrgXFree86

XorgXFree86

xorgconfigxf86config

xorgcfgxf86cfg

Tabela 3.2 Arquivos de registro em /var/log

X.OrgXFree86

Xorg.0.logXFree86.0.log

Xorg.0.log.oldXFree86.0.log.old

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

Emuladores de terminal para X11Removemos diversos emuladores de terminal porque não eram mais mantidos ou nãofuncionavam no ambiente padrão, especialmente por não oferecerem suporte para UTF-8. O SUSE Linux oferece terminais padrão, como xterm, os terminais KDE e GNOMEe mlterm (emulador de terminal multilingüe para X), que podem ser substitutos doaterm e do term.

Mudanças no pacote powersaveOs arquivos de configuração em /etc/sysconfig/powersave mudaram:

Atualizando o gerenciamento de sistemas e pacotes 81

Page 82: Reference Pt BR

Tabela 3.3 Divida os arquivos de configuração em /etc/sysconfig/powersave

Agora divida emAntigos

common/etc/sysconfig/powersave/common

cpufreq

events

battery

sleep

thermal

/etc/powersave.conf tornou-se obsoleto. As variáveis existentes mudaram paraos arquivos relacionados na Tabela 3.3, “Divida os arquivos de configuração em/etc/sysconfig/powersave” (p 82). Se você modificou as variáveis “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 Referência

Page 83: Reference Pt BR

OpenOffice.org (OOo)Diretórios:

OOo agora está instalado em /usr/lib/ooo-1.1 em vez de em /opt/OpenOffice.org. O diretório padrão para configurações de usuário agora é/usr/lib/ooo-1.1 em vez de /opt/OpenOffice.org.

Agrupador:Há alguns agrupadores novos para inicializar os componentes OOo. Os novosnomes são mostrados na Tabela 3.4, “Agrupador” (p 83).

Tabela 3.4 Agrupador

NovaAntigos

/usr/bin/oocalc/usr/X11R6/bin/OOo-calc

/usr/bin/oodraw/usr/X11R6/bin/OOo-draw

/usr/bin/ooimpress/usr/X11R6/bin/OOo-impress

/usr/bin/oomath/usr/X11R6/bin/OOo-math

/usr/sbin/oopadmin/usr/X11R6/bin/OOo-padmin

–/usr/X11R6/bin/OOo-setup

/usr/bin/oofromtemplate/usr/X11R6/bin/OOo-template

/usr/bin/ooweb/usr/X11R6/bin/OOo-web

/usr/bin/oowriter/usr/X11R6/bin/OOo-writer

/usr/bin/ooffice/usr/X11R6/bin/OOo

/usr/bin/ooo-wrapper/usr/X11R6/bin/OOo-wrapper

O agrupador agora tem suporte para a opção --icons-set para alternar entreos ícones KDE e GNOME. As opções a seguir não são mais suportadas:--default-configuration, --gui, --java-path, --skip-check,

Atualizando o gerenciamento de sistemas e pacotes 83

Page 84: Reference Pt BR

--lang (o idioma agora é determinado por meio de locais),--messages-in-window e --quiet.

Suporte a KDE e GNOME:As extensões KDE e GNOME estão disponíveis nos pacotesOpenOffice_org-kde e OpenOffice_org-gnome.

Mixer de som kmixO mixer de som kmix é predefinido como o padrão. No caso de hardware high-end, háoutros mixers, como QAMix. KAMix, envy24control (apenas ICE1712) ou hdspmixer(apenas RME Hammerfall).

Gravação de DVDsNo passado, era aplicado um patch ao arquivo bináriocdrecord do pacotecdrecordpara garantir o suporte à gravação de DVDs. Agora, está instalado um novo arquivobinário cdrecord-dvd que tem esse patch.

O programa growisofs do pacote dvd+rw-tools agora pode gravar todas asmídias de DVD (DVD+R, DVD-R, DVD+RW, DVD-RW, DVD+RL). Tente usar esta,em vez de cdrecord-dvd com patch.

Vários kernelsÉ possível instalar diversos kernels lado a lado. Esse recurso visa possibilitar osadministradores 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 não tenha suporte para esse recurso, kernels podem ser instaladose desinstalados facilmente do shell usando rpm -i package.rpm.

Os menus padrão de carregador de boot contêm uma entrada de kernel. Antes de instalardiversos kernels, é útil adicionar uma entrada para os kernels extras, de maneira quepossam ser facilmente selecionados. O kernel que estava ativo antes da instalação deum novo kernel pode ser acessado como vmlinuz.previous e initrd.previous. Ao se criar uma entrada de carregador de boot similar à entrada padrãoe tendo em vista que essa entrada faz referência a vmlinuz.previous e initrd.previous em vez de a vmlinuz e initrd, é possível acessar o kernelanteriormente ativo. Como opção, GRUB e LILO tem suporte para entradas de

84 Referência

Page 85: Reference Pt BR

carregador de boot de curingas. Consulte as páginas de informações sobre GRUB(info grub) e a página de manual sobre o lilo.conf (5) para obter mais detalhes.

3.2.3 Do 9.2 ao 9.3Consulte o artigo “Known Problems and Special Features in SUSE Linux 9,3” no bancode dados de suporte do SUSE em http://portal.suse.com na palavra-chavespecial features.

Iniciando a instalação manual no prompt do kernelO modo Instalação Manual não aparece mais na tela do carregador de boot. Você aindapode obter linuxrc no modo manual usando manual=1 no prompt do boot.Normalmente isso não é necessário porque você pode configurar as opções de instalaçãodiretamente no prompt do kernel, como textmode=1 ou um URL como a fonte deinstalação.

Kerberos para autenticação de redeKerberos é o padrão para autenticação de rede em vez de heimdal. Não é possívelconverter automaticamente uma configuração heimdal existente. Durante uma atualizaçãodo sistema, são criadas cópias de backup dos arquivos de configuração como mostradona Tabela 3.5, “Arquivos de backup” (p 85).

Tabela 3.5 Arquivos de backup

Arquivo de backupArquivo antigo

/etc/krb5.conf.heimdal/etc/krb5.conf

/etc/krb5.keytab.heimdal/etc/krb5.keytab

A configuração de cliente (/etc/krb5.conf) é muito similar à heimdal. Se não foiconfigurado nada especial, basta substituir o parâmetro kpasswd_server poradmin_server.

Não é possível copiar os dados relacionados ao servidor (kdc e kadmind). Após aatualização do sistema, o antigo banco de dados heimdal ainda está disponível em

Atualizando o gerenciamento de sistemas e pacotes 85

Page 86: Reference Pt BR

/var/heimdal. O MIT kerberos mantém o banco de dados em /var/lib/kerberos/krb5kdc.

JFS: não é mais suportadoDevido a problemas técnicos com JFS, ele não é mais suportado. O driver do sistemade arquivo kernel ainda existe, mas o YaST não oferece particionamento com JFS.

AIDE como substituto do TripwireComo sistema de detecção de intrusos, use AIDE (nome do pacote aide), que é lançadosob o GPL. O Tripwire não está mais disponível no SUSE Linux.

Arquivo de configuração X.OrgA ferramenta de configuração SaX2 grava as definições da configuração X.Org em/etc/X11/xorg.conf. Durante uma instalação do zero, nenhum link decompatibilidade é criado de XF86Config para xorg.conf.

Suporte XView e OpenLook suspensoOs pacotesxview,xview-devel,xview-devel-examples,olvwm extoolplforam suspensos. No passado, fornecíamos apenas o sistema base XView (OpenLook).As bibliotecas XView não são mais fornecidas após a atualização do sistema. Maisimportante ainda, o OLVWM (OpenLook Virtual Window Manager) não está maisdisponível.

Configuração PAMNovos arquivos de configuração (que contém comentários para obter maisinformações)

common-authConfiguração PAM padrão da seção auth

common-accountConfiguração PAM padrão da seção account

86 Referência

Page 87: Reference Pt BR

common-passwordConfiguração PAM padrão para mudança de senha

common-sessionConfiguração PAM padrão para gerenciamento de sessão

É preciso incluir esses arquivos de configuração padrão do seu arquivo de configuraçãoespecífico do aplicativo, porque é mais fácil modificar e manter um arquivo em vezdos cerca de 40 arquivos que existiam no sistema. Se você instalar um aplicativoposteriormente, ele herdará as mudanças já aplicadas e o administrador não será obrigadoa se lembrar de ajustar a configuração.

As mudanças são simples. Se você tiver o arquivo de configuração a seguir (que deveser o padrão na maioria dos aplicativos):#%PAM-1.0auth required pam_unix2.soaccount required pam_unix2.sopassword required pam_pwcheck.sopassword required pam_unix2.so use_first_pass use_authtok#password required pam_make.so /var/ypsession required pam_unix2.so

poderá mudá-lo para:#%PAM-1.0auth include common-authaccount include common-accountpassword include common-passwordsession include common-session

Sintaxe tar mais restritaO uso da sintaxe tar está mais restrito agora. As opções do tar devem vir antes dasespecificações de arquivo ou diretório. Opções de adição, como--atime-preserveou --numeric-owner, provocam a falha de tar se colocadas depois dasespecificações de arquivo ou diretório. Verifique os seus scripts de backup. Comandoscomo os seguintes não funcionam mais:tar czf etc.tar.gz /etc --atime-preserve

Consulte as páginas de informações sobre tar para obter mais detalhes.

Atualizando o gerenciamento de sistemas e pacotes 87

Page 88: Reference Pt BR

3.2.4 Do 9.3 ao 10.0Consulte o artigo “Known Problems and Special Features in SUSE Linux 10” no bancode dados de suporte do SUSE em http://portal.suse.com na palavra-chavespecial features.

Tornando-se um superusuário usando o su

Por padrão, chamar su para tornar-se root não define PATH para raiz. Chame su- para iniciar um login de shell com o ambiente completo para raiz ou definaALWAYS_SET_PATH como sim em /etc/default/su, caso deseje mudar ocomportamento padrão de su.

Variáveis da configuração powersaveOs nomes das variáveis da configuração powersave mudaram para fins de consistência,mas os arquivos sysconfig ainda são os mesmos. Mais informações podem serencontradas na Seção 33.5.1, “Configurando o Pacote powersave” (p 610).

PCMCIAcardmgr não gerencia mais as placas PC. Em vez disso, como nas placas Cardbus eoutros subsistemas, elas são gerenciadas pelo módulo kernel. Todas as ações necessáriassão executadas por hotplug. O script de inicialização do pcmcia fo removido ecardctl foi substituído por pccardctl. Para obter mais informações, consulte/usr/share/doc/packages/pcmciautils/README.SUSE.

Configurando o D-BUS para a comunicação entreprocessos em .xinitrcMuitos aplicativos agora usam o D-BUS para a comunicação entre processos (IPC).Chamar dbus-launch inicia dbus-daemon. O /etc/X11/xinit/xinitrcem 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 contrário,aplicativos como f-spot, banshee, tomboy ou Network Manager banshee podem falhar.

88 Referência

Page 89: Reference Pt BR

Salve o seu ~/.xinitrc antigo. Em seguida, copie o novo arquivo de modelo noseu diretório pessoal com:

cp /etc/skel/.xinitrc.template ~/.xinitrc

Finalmente, adicione suas personalizações do .xinitrc salvo.

Arquivos relacionados a NTP renomeadosPor motivos de compatibilidade com o LSB (Linux Standard Base - Base de padrõesLinux), a maioria dos arquivos de configuração e o script init foram renomeados dexntp para ntp. Os novos nomes de arquivo são:

/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 udevEventos de hotplug agora são totalmente tratados pelo daemon udev (udevd). Nãousamos 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 hotplugdiretamente, de acordo com suas regras. Regras de udev e ferramentas auxiliares sãofornecidas por udev e diversos outros pacotes.

Folhas de estilo TEI XSLLocalize as folhas de estilo TEI XSL (tei-xsl-stylesheets) com um novolayout de diretório em/usr/share/xml/tei/stylesheet/rahtz/current.A partir daí, por exemplo, use base/p4/html/tei.xsl para produzir saídas paraHTML. Para obter mais informações, consulte http://www.tei-c.org/Stylesheets/teic/

Atualizando o gerenciamento de sistemas e pacotes 89

Page 90: Reference Pt BR

Notificação de mudança de sistema de arquivos paraaplicativos GNOMEPara a funcionalidade adequada, os aplicativos GNOME dependem do suporte danotificação de mudança de sistema de arquivos. Para sistemas de arquivos somentelocais, instale o pacote (preferido) ou execute o daemon FAM. Para sistemas de arquivoremotos, execute o FAM no servidor e no cliente e abra o firewall para chamadas doRPC pelo FAM.

O GNOME (gnome-vfs2 e libgda) contém um agrupador que seleciona gamin ou fampara fornecer a notificação de mudança de sistema de arquivos:

• Se o daemon FAM não estiver em execução, o gamin será preferível. (Motivo:Inotify é suportado somente por gamin e é mais eficiente para sistemas de arquivoslocais).

• Se o daemon FAM estiver em execução, o FAM será preferível (Motivo: Se o FAMestiver em execução, você provavelmente desejará notificação remota, que ésuportada somente pelo FAM).

3.2.5 Do 10.0 ao 10.1Consulte o artigo “Known Problems and Special Features in SUSE Linux 10” no bancode dados de suporte do SUSE em http://portal.suse.com na palavra-chavespecial features.

Apache 2.2Para o Apache versão 2.2, o Capítulo 26, Servidor HTTP Apache (p 463) foicompletamente reformulado. Além disso, encontre informações de atualização genéricasemhttp://httpd.apache.org/docs/2.2/upgrading.html e a descriçãode novos recursos emhttp://httpd.apache.org/docs/2.2/new_features_2_2.html.

90 Referência

Page 91: Reference Pt BR

Iniciando um servidor FTP (vsftpd)Por padrão, xinetd não inicia mais o servidor FTP vsftpd. Agora é um daemonindependente e você deve configurá-lo com o editor de tempo de execução do YaST.

Firefox 1.5: O comando aberto de URLCom o Firefox 1.5, o método para aplicativos abrirem uma janela ou instância do Firefoxfoi modificado. O novo método já estava parcialmente disponível em versões anterioresonde o comportamento foi implementado no script do agrupador.

Se o seu aplicativo não usamozilla-xremote-client oufirefox -remote,não é necessário efetuar mudanças. Caso contrário, o novo comando para abrir um URLé firefox url e não importa se o Firefox já está em execução ou não. Se ele jáestiver em execução, seguirá a preferência configurada em Abrir links de outrosaplicativos em.

A partir da linha de comando, você pode influenciar o comportamento usandofirefox-new-window url ou firefox -new-tab url.

3.3 RPM— o Gerenciador de pacotesNo SUSE Linux, o RPM (Gerenciador de pacotes RPM) é usado para gerenciar ospacotes de software. Seus principais programas são o rpm e o rpmbuild. O bancode dados avançado RPM pode ser consultado pelos usuários, administradores de sistemae construtores de pacotes para obtenção de informações detalhadas sobre o softwareinstalado.

Essencialmente, o rpm tem cinco modos: instalação, desinstalação ou atualização depacotes de software; reconstrução do banco de dados RPM; consulta de bases RPM ouarquivos RPM individuais; verificação de integridade de pacotes; e assinatura de pacotes.O rpmbuild pode ser usado para construir pacotes instaláveis de fontes antigas.

Os arquivos RPM instaláveis são compactados em um formato binário especial. Essessão arquivos de programa para instalação e determinadas metainformações usadasdurante a instalação pelo comandorpm para configurar o pacote de softwares. Tambémsão armazenados no banco de dados RPM com o objetivo de documentação. Os arquivosRPM normalmente têm a extensão .rpm.

Atualizando o gerenciamento de sistemas e pacotes 91

Page 92: Reference Pt BR

DICA: Pacotes de desenvolvimento de software

Para vários pacotes, os componentes necessários para o desenvolvimento desoftware (bibliotecas, cabeçalhos, arquivos de inclusão, etc.) foram colocadosem pacotes separados. Os pacotes de desenvolvimento são necessários somentese você desejar compilar seu próprio software, por exemplo, os pacotes GNOMEmais recentes. Eles podem ser identificados pela extensão de nome -devel,como os pacotes alsa-devel, gimp-devel e kdelibs3-devel.

3.3.1 Verificando a autenticidade do pacoteOs pacotes RPM do SUSE Linux têm a assinatura GnuPG. A chave que inclui aimpressão digital é:Chave de assinatura de pacote do SUSE: 1024D/9C800ACA 2000-10-19 <[email protected]> Impressão digital da chave = 79C1 79B2 E1C8 20C1 890F 9994 A84E DAE8 9C80 0ACA

O comandorpm --checksig pacote-1.2.3.rpm pode ser usado para verificara assinatura de um pacote RPM e determinar se ele realmente se origina do SUSE Linuxou de outra instalação confiável. Isso é especialmente recomendado para pacotes deatualização da Internet. A chave pública de assinatura de pacote do SUSE Linuxnormalmente se localiza em /root/.gnupg/. A chave também está localizada nodiretório /usr/lib/rpm/gnupg/ para permitir que usuários comuns verifiquem aassinatura de pacotes RPM.

3.3.2 Gerenciando pacotes: instalação,atualização e desinstalação

Normalmente, a instalação do arquivo RPM é bastante simples: rpm -ipacote.rpm. Com esse comando, o pacote será instalado, mas somente se asdependências forem preenchidas e não houver conflitos com outros pacotes. Com umamensagem de erro, o rpm solicita os pacotes que devem ser instalados para atender arequisitos de dependência. No segundo plano, o banco de dados RPM garante que nãosurjam conflitos: um arquivo específico só pode pertencer a um pacote. Ao escolheropções diferentes, você pode forçar o rpm a ignorar esses padrões, mas isso é somentepara especialistas. Caso contrário, há o risco de comprometer a integridade do sistemae possivelmente colocar em risco a capacidade de atualização do sistema.

92 Referência

Page 93: Reference Pt BR

As opções -U ou --upgrade e -F ou --freshen podem ser usadas para atualizarum pacote, por exemplo, rpm -F pacote.rpm. Esse comando remove os arquivosda versão antiga e instala os novos arquivos imediatamente. A diferença entre as duasversões é que o -U instala pacotes que não existiam no sistema anteriormente, mas -Fatualiza somente pacotes previamente instalados. Durante a atualização, o rpm atualizaarquivos de configuração cuidadosamente com a seguinte estratégia:

• Se um arquivo de configuração não tiver sido modificado pelo administrador desistema, o rpm instalará a nova versão do arquivo apropriado. O administrador desistema não precisa adotar nenhuma ação.

• Se um arquivo de configuração tiver sido modificado pelo administrador de sistemaantes da atualização, o rpm salvará o arquivo modificado com a extensão.rpmorig ou .rpmsave (arquivo de backup) e instalará a versão do novo pacote,mas somente se o arquivo instalado originalmente e a versão mais nova foremdiferentes. Nesse caso, compare o arquivo de backup (.rpmorig ou .rpmsave)com o arquivo recém-instalado e faça novamente as modificações no novo arquivo.Depois, verifique se apagou todos os arquivos .rpmorig e .rpmsave para evitarproblemas em atualizações futuras.

• Arquivos .rpmnew são exibidos se o arquivo de configuração já existir e se orótulo noreplace tiver sido especificado no arquivo .spec.

Após uma atualização, os arquivos .rpmsave e .rpmnew devem ser removidosdepois de comparados para que não impeçam atualizações futuras. A extensão.rpmorig será atribuída se o arquivo não tiver sido previamente reconhecido pelobanco de dados RPM.

Caso contrário, o .rpmsave será usado. Em outras palavras, o .rpmorig resulta daatualização de um formato estranho ao RPM. O .rpmsave resulta da atualização deum RPM mais antigo para um RPM mais novo. O .rpmnew não revela nenhumainformação sobre se o administrador de sistema fez modificações no arquivo deconfiguração. Uma lista destes arquivos está disponível em /var/adm/rpmconfigcheck. Alguns arquivos de configuração (como /etc/httpd/httpd.conf) não são sobregravados para permitir operação continuada.

O switch -U não é somente um equivalente para a desinstalação com a opção -e e ainstalação com a opção -i. Use -U sempre que possível.

Para remover um pacote, digite rpm -e package. O rpm apaga o pacote somentese todas as dependências tiverem sido resolvidas. É teoricamente impossível apagar

Atualizando o gerenciamento de sistemas e pacotes 93

Page 94: Reference Pt BR

Tcl/Tk, por exemplo, enquanto outro aplicativo exigir sua existência. Mesmo nessecaso, o RPM pede ajuda do banco de dados. Se tal exclusão for, por qualquer motivoe sob circunstâncias não comuns, impossível, mesmo se não houver dependênciasadicionais, talvez seja útil reconstruir o banco de dados RPM com a opção--rebuilddb.

3.3.3 RPM e patchesPara garantir a segurança operacional de um sistema, pacotes de atualização devem serinstalados no sistema periodicamente. Anteriormente, um erro em um pacote só poderiaser eliminado com a substituição de todo o pacote. Pacotes grandes com erros emarquivos pequenos podiam facilmente resultar em grande quantidade de dados. Porém,o RPM do SUSE oferece um recurso que permite a instalação de patches em pacotes.

Como exemplo, as considerações mais importantes são demonstradas com o pine:

O RPM com patch é adequado para meu sistema?Para verificar isso, consulte primeiro a versão instalada do pacote. No caso do pine,isso pode ser feito comrpm -q pinepine-4.44-188

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

Esse patch é adequado para três versões diferentes do pine. A versão instalada noexemplo também está listada para que o patch possa ser instalado.

Quais arquivos serão substituídos pelo patch?Os arquivos afetados por um patch podem ser facilmente vistos no RPM com patch.O parâmetro rpm -P permite a seleção de recursos de patch especiais. Exiba a listade 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 Referência

Page 95: Reference Pt BR

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

Como instalar um RPM com patch no sistema?RPMs com patch são usados como RPMs comuns. A única diferença é que umRPM adequado já deve estar instalado.

Quais patches já estão instalados no sistema e para quais versões do pacote?É possível exibir uma lista de todos os patches instalados no sistema com o comandorpm -qPa. Se somente um patch for instalado em um novo sistema (como noexemplo), a lista será exibida como a seguir:rpm -qPapine-4.44-224

Se posteriormente você desejar saber qual versão de pacote foi originalmenteinstalada, essas informações também estarão disponíveis no banco de dados RPM.No caso do pine, é possível exibir essas informações com o seguinte comando:rpm -q --basedon pinepine = 4.44-188

Mais informações, incluindo informações sobre o recurso de patch do RPM, estãodisponíveis nas páginas de manual de rpm e rpmbuild.

3.3.4 Pacotes RPM DeltaOs pacotes RPM Delta possuem uma diferença entre uma versão nova e antiga de umpacote RPM. Aplicar um RPM delta em um RPM antigo resulta em um RPMcompletamente novo. Não é necessário ter uma cópia do RPM antigo, pois um RPMdelta também pode funcionar com um RPM instalado. Os pacotes RPM delta têmtamanho ainda menor que os RPMs com patch, o que é uma vantagem durante atransferência de pacotes de atualização na Internet. A desvantagem é que operações deatualização que envolvem RPMs delta consomem consideravelmente mais ciclos deCPU do que as operações com RPMs com patch ou simples. Para que o YaST usepacotes RPM delta durante sessões do YOU, defina YOU_USE_DELTAS como yesem /etc/sysconfig/onlineupdate. Neste caso, esteja preparado para ter amídia de instalação disponível. Se YOU_USE_DELTAS estiver vazio ou definido parafilesystem, o YOU tentará fazer o download de pacotes delta que se apliquem aarquivos instalados. Você não precisa da mídia de instalação nesse caso, mas o tempo

Atualizando o gerenciamento de sistemas e pacotes 95

Page 96: Reference Pt BR

de download poderia ser maior. Se estiver definido para no, o YOU usará somenteRPMs com patch e RPMs comuns.

Os binários prepdeltarpm, writedeltarpm e applydeltarpm são parte deuma suíte de RPM delta (pacote deltarpm) e ajudam na criação e aplicação de pacotesRPM delta. Com os seguintes comandos, crie um RPM delta chamado new.delta.rpm. O comando a seguir pressupõe que old.rpm e new.rpm estão presentes:prepdeltarpm -s seq -i info old.rpm > old.cpioprepdeltarpm -f new.rpm > new.cpio

xdelta delta -0 old.cpio new.cpio delta

writedeltarpm new.rpm delta info new.delta.rpmrm old.cpio new.cpio delta

Usando applydeltarpm, você pode reconstruir o novo RPM do arquivo de sistemase 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 opção -r:applydeltarpm -r old.rpm new.delta.rpm new.rpm

Consulte/usr/share/doc/packages/deltarpm/README" para obter detalhestécnicos.

3.3.5 Consultas de RPMCom a opção -q, o rpm inicia consultas, o que permite inspecionar um arquivo RPM(adicionando-se a opção -p) e também consultar o banco de dados RPM de pacotesinstalados. Vários switches estão disponíveis para especificar o tipo de informaçãonecessária. Consulte a Tabela 3.6, “Opções mais importantes de consulta de RPM”(p 96).

Tabela 3.6 Opções mais importantes de consulta de RPM

Informações de pacote-i

Lista de arquivos-l

96 Referência

Page 97: Reference Pt BR

Consulte o pacote que contém o arquivo ARQUIVO (ocaminho completo deve ser especificado com ARQUIVO)

-f ARQUIVO

Lista de arquivos com informações de status (requer -l)-s

Lista somente arquivos de documentação (requer -l)-d

Lista somente arquivos de configuração (requer -l)-c

Lista de arquivos com detalhes completos (a ser usada com-l, -c ou -d)

--dump

Lista recursos do pacote que outro pacote pode solicitarcom --requires

--provides

Recursos exigidos pelo pacote--requires, -R

Scripts de instalação (pré-instalação, pós-instalação,desinstalação)

--scripts

Por exemplo, o comando rpm -q -i wget exibe as informações exibidas noExemplo 3.2, “rpm -q -i wget” (p 97).

Exemplo 3.2 rpm -q -i wgetName : wget Relocations: (not relocatable)Version : 1.9.1 Vendor: SUSE LINUX AG, Nuernberg, GermanyRelease : 50 Build Date: Sat 02 Oct 2004 03:49:13 AM CESTInstall date: Mon 11 Oct 2004 10:24:56 AM CEST Build Host: f53.suse.deGroup : Productivity/Networking/Web/Utilities Source RPM: wget-1.9.1-50.src.rpmSize : 1637514 License: GPLSignature : DSA/SHA1, Sat 02 Oct 2004 03:59:56 AM CEST, Key ID a84edae89c800acaPackager : http://www.suse.de/feedbackURL : http://wget.sunsite.dk/Summary : A tool for mirroring FTP and HTTP serversDescription :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

Page 98: Reference Pt BR

A opção -f funciona somente se você especificar o nome de arquivo e seu caminhocompletos. Forneça quantos nomes de arquivo desejar. Por exemplo, o seguinte comandorpm -q -f /bin/rpm /usr/bin/wget

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

Se somente parte do nome de arquivo for conhecido, use um script de shell conformemostrado no Exemplo 3.3, “Script para pesquisar pacotes” (p 98). Passe o nome dearquivo parcial para o script mostrado como um parâmetro ao executá-lo.

Exemplo 3.3 Script para pesquisar pacotes#! /bin/shfor 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 informaçõesde mudança sobre um pacote específico, classificada por data. Este exemplo mostrainformações sobre o pacote rpm.

Com a ajuda do banco de dados RPM instalado, é possível realizar verificações. Inicieas verificações com -V, -y ou --verify. Com essa opção, o rpm mostra todos osarquivos em um pacote que foram modificados desde a instalação. O rpm usa oitosímbolos de caracteres para fornecer algumas dicas sobre as seguintes mudanças:

Tabela 3.7 Opções de verificação do RPM

Resumo de verificação MD55

Tamanho do arquivoS

Link simbólicoL

Tempo de modificaçãoT

Números de dispositivo principais e auxiliaresD

98 Referência

Page 99: Reference Pt BR

ProprietárioU

GrupoG

Modo (tipo de arquivo e permissões)S

No caso de arquivos de configuração, a letra c é impressa. Por exemplo, para mudançaspara /etc/wgetrc (wget):rpm -V wgetS.5....T c /etc/wgetrc

Os arquivos do banco de dados RPM são colocados em/var/lib/rpm. Se a partição/usr tiver o tamanho de 1 GB, esse banco de dados poderá ocupar praticamente 30 MB,especialmente após uma atualização completa. Se o banco de dados for maior do queo esperado, será útil reconstruir o banco de dados com a opção --rebuilddb. Antesdisso, faça um backup do banco de dados antigo. O script cron cron.daily fazcópias diárias do banco de dados (compactado com gzip) e armazena essas cópias em/var/adm/backup/rpmdb. O número de cópias é controlado pela variávelMAX_RPMDB_BACKUPS (padrão: 5) em /etc/sysconfig/backup. O tamanhode um único backup é de aproximadamente 1 MB para 1 GB em /usr.

3.3.6 Instalando e compilando pacotes defonte

Todos os pacotes de fontes do SUSE Linux carregam uma extensão .src.rpm (RPMde fonte).

DICA

Pacotes de fonte podem ser copiados da mídia de instalação para o disco rígidoe descompactados com o YaST. Porém, eles não são marcados como instalados([i]) no gerenciador de pacotes. Isso porque os pacotes de fontes não sãoinseridos no banco de dados RPM. Somente o software do sistema operacionalinstalado está listado no banco de dados RPM. Quando você “instalar” umpacote de fontes, somente o código-fonte será adicionado ao sistema.

Atualizando o gerenciamento de sistemas e pacotes 99

Page 100: Reference Pt BR

Os diretórios a seguir devem estar disponíveis para rpm e rpmbuild em /usr/src/packages (a menos que você tenha especificado configurações personalizadas emum arquivo como /etc/rpmrc):

SOURCESpara as fontes originais (arquivos .tar.bz2 ou .tar.gz, etc.) e para ajustesespecíficos de distribuição (geralmente arquivos .diff ou .patch)

SPECSpara os arquivos .spec, similares a um metaMakefile, que controla o processo deconstrução

BUILDdiretório em que todas as fontes são descompactadas, modificadas e compiladas

RPMSlocal em que os pacotes binários concluídos são armazenados

SRPMSlocal em que estão os RPMs de fonte

Quando você instala um pacote de fontes com o YaST, todos os componentes necessáriossão instalados em /usr/src/packages: as fontes e os ajustes em SOURCES e oarquivo .spec relevante em SPECS.

ATENÇÃO

Não 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. Após 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 Referência

Page 101: Reference Pt BR

rpmbuild -b X /usr/src/packages/SPECS/wget.spec inicia acompilação. X é um curinga para vários estágios do processo de construção (consultea saída de --help ou a documentação do RPM para obter detalhes). Veja a seguiruma breve explicação:

-bpPrepara fontes em /usr/src/packages/BUILD: decompacta e modifica.

-bcFaz o mesmo que -bp, mas com compilação adicional.

-biFaz o mesmo que -bp, mas com a instalação adicional do software criado. Cuidado:se o pacote não aceitar o recurso BuildRoot, talvez você sobregrave os arquivosde configuração.

-bbFaz o mesmo que -bi, mas com a criação adicional do pacote binário. Se acompilação tiver sido bem-sucedida, o binário deverá estar em /usr/src/packages/RPMS.

-baFaz o mesmo que -bb, mas com a criação adicional do RPM de fonte. Se acompilação tiver sido bem-sucedida, o binário deverá estar em /usr/src/packages/SRPMS.

--short-circuitIgnora algumas etapas.

O RPM binário criado agora pode ser instalado com rpm -i ou, de preferência, comrpm -U. A instalação com rpm faz com que ele apareça no banco de dados RPM.

3.3.7 Compilando pacotes RPM com buildO perigo de vários pacotes é que arquivos indesejados são adicionados ao sistema emexecução durante o processo de construção. Para evitar isso, use build, o que cria umambiente definido para construção do pacote. Para estabelecer esse ambiente chroot, oscript build deve ser fornecido com uma árvore de pacote completa. Essa árvore podeser disponibilizada no disco rígido, através do NFS ou DVD. Defina a posição combuild --rpms diretório. Ao contrário do comando rpm, o comando build

Atualizando o gerenciamento de sistemas e pacotes 101

Page 102: Reference Pt BR

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

Depois disso, um ambiente mínimo é estabelecido em /var/tmp/build-root. Opacote é criado nesse ambiente. Após a conclusão, os pacotes resultantes estarãolocalizados em /var/tmp/build-root/usr/src/packages/RPMS.

O script build oferece várias opções adicionais. Por exemplo, faz com que o scriptprefira seus próprios RPMs, omite a inicialização do ambiente de construção ou limitao comando rpm a um dos estágios mencionados acima. Acesse informações adicionaiscom build --help e a leitura da página de manual build.

3.3.8 Ferramentas para arquivos RPM ebanco de dados RPM

O Midnight Commander (mc) pode exibir o conteúdo de arquivos RPM e copiar partesdeles. Ele representa arquivos como sistemas de arquivos virtuais, oferecendo todas asopções de menu usuais do Midnight Commander. Exiba o HEADER com F3 . Exiba aestrutura de arquivos com as teclas de cursor e Enter . Copie componentes de arquivoscom F5 .

O KDE oferece a ferramenta kpackage como front-end para rpm. Um gerenciador depacotes com recursos completos está disponível como um módulo do YaST (consultea Seção “Instalando e removendo software” (Capítulo 2, Configuração do sistema comYaST, ↑Inicialização)).

102 Referência

Page 103: Reference Pt BR

Parte 2. Administração

Page 104: Reference Pt BR
Page 105: Reference Pt BR

4Segurança no LinuxO mascaramento e um firewall garantem um fluxo de dados e um intercâmbio de dadoscontrolados. O SSH (secure shell) permite que você efetue login em hosts remotos poruma conexão criptografada. A criptografia de arquivos ou partições inteiras protegeseus dados no caso de terceiros obterem acesso ao seu sistema. Encontre instruçõestécnicas e informações sobre aspectos de segurança das redes Linux.

4.1 Mascaramento e firewallsSempre que o Linux é usado em um ambiente de rede, você pode usar as funções dekernel que permitem a manipulação de pacotes de rede, para manter uma separaçãoentre as áreas de rede interna e externa. O framework do filtro de rede do Linux oferecemeios de estabelecer um firewall eficiente que mantém redes diferentes distanciadas.Com a ajuda de iptables, uma estrutura de tabela genérica para a definição de conjuntosde regras, controle precisamente os pacotes com permissão de passagem por umainterface de rede. Um filtro de pacote como esse pode ser configurado facilmente coma ajuda do SuSEfirewall2 e o módulo YaST correspondente.

4.1.1 Filtragem de pacotes com iptablesOs componentes netfilter e iptables são responsáveis pela filtragem e manipulação depacotes de rede, assim como pela NAT (Network Address Translation - Conversão deEndereços de Rede). Os critérios de filtragem e quaisquer ações associadas a eles sãoarmazenados em cadeias, que precisam estar relacionadas uma após a outra, por pacotesde rede individuais, à medida que forem chegando. As cadeias a serem relacionadas

Segurança no Linux 105

Page 106: Reference Pt BR

são armazenadas em tabelas. O comando iptables permite alterar esses conjuntosregras e tabelas.

O kernel do Linux mantém três tabelas, cada qual para uma categoria de funçõesespecíficas do filtro do pacote:

filterEssa tabela contém o volume das regras do filtro, pois ele implementa o mecanismode filtragem de pacotes em sentido restrito, que determina se os pacotes passampor (ACCEPT) ou se são descartados (DROP), por exemplo.

natEssa tabela define quaisquer mudanças feitas nos endereços de origem e de destinodos pacotes. O uso dessas funções permite implementar um mascaramento, que éum caso especial da NAT, usado para vincular uma rede privada à Internet.

mangleAs regras determinadas nessa tabela possibilitam manipular valores armazenadosem cabeçalhos IP (como o tipo do serviço).

Figura 4.1 iptables: Caminhos possíveis de um pacote

Routing

Routing

in the localsystem

Processes

outgoing packet

incoming packet

filter

nat

mangle

POSTROUTING

PREROUTING

nat

mangle

FORWARD

mangle

filter

INPUT

mangle

filter

OUTPUT

nat

mangle

Estas tabelas contêm várias cadeias predefinidas para relacionar pacotes:

106 Referência

Page 107: Reference Pt BR

PREROUTINGEsta cadeia é aplicada a pacotes recebidos.

INPUTEsta cadeia é aplicada a pacotes destinados aos processos internos do sistema.

FORWARDEsta cadeia é aplicada a pacotes roteados somente pelo sistema.

OUTPUTEsta cadeia é aplicada a pacotes originados do próprio sistema.

POSTROUTINGEsta cadeia é aplicada a todos os pacotes enviados.

A Figura 4.1, “iptables: Caminhos possíveis de um pacote” (p 106) ilustra os caminhospelos quais um pacote de rede pode viajar em um determinado sistema. Para manter asimplicidade, a figura lista tabelas como partes de cadeias. Contudo, na realidade, essascadeias estão contidas nas próprias tabelas.

Em um dos casos mais simples possível, um pacote recebido destinado ao própriosistema chega na interface eth0. Primeiro, o pacote é reconhecido pela cadeiaPREROUTING 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 dopacote é um processo do próprio sistema. Depois de passar pelas cadeias INPUT dastabelas mangle e filter, o pacote por fim chega ao seu destino, desde que as regrasda tabela filter tenham sido realmente relacionadas.

4.1.2 Informações básicas sobremascaramento

Mascaramento é a forma específica do Linux para a NAT. Pode ser usado para conectaruma LAN pequena (em que hosts usam endereços IP da faixa privada — consulte aSeção 18.1.2, “Máscaras de rede e roteamento” (p 335)) à Internet (em que endereçosIP oficiais são usados). Para que os hosts da LAN sejam capazes de se conectar àInternet, seus endereços privados são convertidos em um oficial. Isso é feito no roteador,que atua como gateway entre a LAN e a Internet. O princípio subjacente é bastantesimples: o roteador possui mais de uma interface de rede, normalmente uma placa derede e uma interface separada conectadas à Internet. Enquanto a última vincula o roteador

Segurança no Linux 107

Page 108: Reference Pt BR

ao mundo externo, uma ou várias outras o vinculam-no aos hosts da LAN. Com esseshosts na rede local conectados à placa de rede (como o eth0) do roteador, eles podemenviar qualquer pacote não destinado à rede local para seus roteadores ou gatewayspadrão.

IMPORTANTE: Usando a máscara de rede correta

Ao configurar a rede, verifique se o endereço de broadcast e a máscara derede são os mesmos para todos os hosts locais. Sem essa verificação, os pacotespoderão não ser roteados corretamente.

Conforme mencionado, sempre que um dos hosts da LAN enviar um pacote destinadoa um endereço da Internet, ele irá para o roteador padrão. Entretanto, o roteador precisaráestar configurado antes de encaminhar esse pacote. Por razões de segurança, o SUSELinux não habilita essa função em sua instalação padrão. Para habilitá-la, configure avariável IP_FORWARD no arquivo /etc/sysconfig/sysctl paraIP_FORWARD=yes.

O host de destino da conexão poderá ver o roteador, mas não saberá sobre o host darede interna, do qual os pacotes são provenientes. Essa é a razão de a técnica ser chamadade mascaramento. Devido à conversão do endereço, o roteador é o primeiro destino dequalquer pacote de resposta. O roteador precisa identificar esses pacotes recebidos econverter seus endereços de destino, para que os pacotes possam ser encaminhados aohost correto na rede local.

Com o roteamento do tráfego de entrada, dependendo da tabela de mascaramento, nãohá como abrir uma conexão para um host interno pela parte externa. Para uma conexãocomo essa, não haveria entrada na tabela. Além disso, qualquer conexão já estabelecidapossui uma entrada de status que lhe foi designada na tabela; portanto, a entrada nãopode ser usada por outra conexão.

Como conseqüência de tudo isso, talvez você tenha alguns problemas com um númerode protocolos de aplicativos, como ICQ, cucme, IRC (DCC, CTCP) e FTP (no modoPORTA). Netscape, o programa padrão de FTP, e muitos outros usam o modo PASV.Esse modo passivo é bem menos problemático, contanto que o mascaramento e afiltragem de pacotes estejam envolvidos.

108 Referência

Page 109: Reference Pt BR

4.1.3 Informações básicas sobre firewallFirewall é, provavelmente, o termo mais amplamente usado para descrever ummecanismo que fornece e gerencia um link entre redes e, ao mesmo tempo, controla ofluxo de dados entre eles. Falando estritamente, o mecanismo descrito nesta seção échamado de filtro de pacote. Um filtro de pacote regula o fluxo de dados de acordocom certos critérios, como protocolos, portas e endereços IP. Isso permite bloquearpacotes que, de acordo com seus respectivos endereços, não deveriam entrar em suarede. Para permitir acesso público ao seu servidor Web, por exemplo, abra explicitamentea porta correspondente. Entretanto, um filtro de pacote não explora o conteúdo depacotes com endereços legítimos, como aqueles direcionados para o servidor Web. Porexemplo, se pacotes recebidos tivessem a finalidade de comprometer um programa CGIno servidor Web, o filtro de pacote os deixaria entrar mesmo assim.

Um mecanismo mais eficiente, porém mais complexo, é a combinação de vários tiposde sistemas, como um filtro de pacote interagindo com um proxy ou gateway deaplicativo. Nesse caso, o filtro de pacote rejeita qualquer pacote destinado a portasdesabilitadas. Somente pacotes direcionados ao gateway do aplicativo são aceitos. Essegateway ou proxy finge ser o cliente real do servidor. De certo modo, tal proxy poderiaser considerado um host de mascaramento no nível 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 através do proxy. Quaisquerpáginas HTTP solicitadas são atendidas pelo cache do proxy e as não encontradas nocache são obtidas na Internet pelo proxy. Como exemplo adicional, o SUSE proxy-suite(proxy-suite) oferece um proxy para o protocolo FTP.

A seção a seguir enfoca o filtro de pacote que vem com o SUSE Linux. Para obter maisinformações sobre firewall e filtragem de pacotes, leia o HOWTO do Firewall, incluídono pacote howto. Se esse pacote estiver instalado, leia o HOWTO com oless /usr/share/doc/howto/en/txt/Firewall-HOWTO.gz.

4.1.4 SuSEfirewall2O SuSEfirewall2 é um script que lê as variáveis configuradas em /etc/sysconfig/SuSEfirewall2 para gerar um conjunto de regras iptables. Ele define três zonas desegurança, apesar de somente a primeira e a segunda serem consideradas na configuraçãode amostra a seguir:

Segurança no Linux 109

Page 110: Reference Pt BR

Zona externaConsiderando que não há como controlar o que ocorre na rede externa, os hostsprecisam ser protegidos contra ela. Na maioria dos casos, a rede externa é a Internet,mas poderia ser outra rede sem segurança, como uma WLAN.

Zona internaEla se refere à rede privada, normalmente, a LAN. Se os hosts dessa rede usamendereços IP do intervalo privado (consulte a Seção 18.1.2, “Máscaras de rede eroteamento” (p 335)), habilite a NAT, para que os hosts da rede interna possamacessar a externa.

DMZ (Demilitarized Zone - Zona Desmilitarizada)Apesar de os hosts localizados nessa zona poderem ser localizados tanto da redeexterna quanto da interna, eles não conseguem acessar sozinhos a rede interna.Essa configuração pode ser usada para incluir uma linha adicional de defesa nafrente da rede interna, pois os sistemas DMZ ficam isolados da rede interna.

Qualquer tipo de tráfego de rede não explicitamente permitido pelo conjunto de regrasde filtragem é suprimido por iptables. Portanto, cada uma das interfaces com tráfegorecebido precisa ser posicionada em uma das três zonas. Para cada uma das zonas,defina os serviços ou protocolos permitidos. O conjunto de regras é aplicado somenteem pacotes originados de hosts remotos. Pacotes gerados localmente não são capturadospelo firewall.

A configuração pode ser executada com o YaST (consulte “Configurando com o YaST”(p 110)). Também pode ser feita manualmente no arquivo /etc/sysconfig/SuSEfirewall2, que contém vários comentários. Além disso, vários cenários deexemplo estão disponíveis em/usr/share/doc/packages/SuSEfirewall2/EXAMPLES.

Configurando com o YaST

IMPORTANTE: Configuração automática de firewall

Depois da instalação, o YaST inicia um firewall automaticamente em todas asinterfaces configuradas. Se um servidor for configurado e ativado no sistema,o YaST poderá modificar a configuração de firewall gerada automaticamentecom as opções Abrir Portas da Interface Selecionada no Firewall ou Abrir Portasno Firewall nos módulos de configuração do servidor. Algumas caixas de diálogo

110 Referência

Page 111: Reference Pt BR

do módulo do servidor incluem o botão Detalhes do Firewall para ativar serviçose portas adicionais. O módulo de configuração de firewall do YaST pode serusado para ativar, desativar ou reconfigurar o firewall.

As caixas de diálogo do YaST para a configuração gráfica podem ser acessadas noCentro de Controle do YaST. Selecione Segurança e Usuários → Firewall. Aconfiguração é dividida em sete seções que podem ser acessadas diretamente da estruturaem árvore no lado esquerdo.

InicializaçãoConfigure o comportamento de inicialização nesta caixa de diálogo. Em umainstalação padrão, o SUSEfirewall2 é iniciado automaticamente. Você tambémpode iniciar e parar o firewall aqui. Para implementar suas novas configuraçõesem um firewall em execução, use Salvar Configurações e Reiniciar Firewall Agora.

Figura 4.2 A configuração de firewall do YaST

InterfacesTodas as interfaces de rede conhecidas estão listadas aqui. Para remover umainterface de uma zona, selecione-a, pressione Modificar e escolha Nenhuma ZonaDesignada. Para adicionar uma interface a uma zona, selecione-a, pressioneModificar e escolha qualquer das zonas disponíveis. Você também pode criar umainterface especial com suas próprias configurações usando Personalizar.

Segurança no Linux 111

Page 112: Reference Pt BR

Serviços permitidosEssa opção é necessária para oferecer serviços do seu sistema para uma zona daqual ele é protegido. Por padrão, o sistema é protegido somente de zonas externas.Permita, de forma explícita, os serviços que devem estar disponíveis para hostsexternos. Ative os serviços após selecionar a zona desejada em Serviços permitidospara zona selecionada.

MascaramentoO mascaramento oculta sua rede interna das redes externas, como a Internet, ehabilita hosts na rede interna para acessarem a rede externa de forma transparente.As solicitações da rede externa para a interna são bloqueadas e as solicitações darede interna parecem ser emitidas pelo servidor de mascaramento quando vistasexternamente. Se serviços especiais de uma máquina interna precisarem estardisponíveis para a rede externa, adicione regras especiais de redirecionamento aoserviço.

BroadcastNessa caixa de diálogo, configure as portas UDP que permitem broadcasts. Adicioneos serviços ou números de porta solicitados à zona apropriada, separados porespaços. Consulte também o arquivo /etc/services.

O registro de broadcasts não aceitos pode ser habilitado aqui. Isso pode serproblemático, pois os hosts do Windows usam broadcasts para sua identificaçãoe, assim, geram muitos pacotes que não são aceitos.

Suporte a IPsecConfigure nesta caixa de diálogo se o serviço IPsec deve estar disponível para arede externa. Configure quais pacotes são confiáveis em Detalhes.

Nível de registroHá duas regras para o registro: pacotes aceitos e não aceitos. Pacotes não aceitossão DESCARTADOS ou REJEITADOS. Selecione Registrar Tudo, RegistrarApenas Críticos ou Não Registrar Nenhum para as duas opções.

Ao concluir a configuração do firewall, saia dessa caixa de diálogo com Próximo. Seráaberto um resumo orientado por zona da configuração do firewall. Nele, verifique todasas configurações. Todos os serviços, portas e protocolos permitidos estão listados nesseresumo. Para modificar a configuração, use Voltar. Pressione Aceitar para gravar asconfigurações.

112 Referência

Page 113: Reference Pt BR

Configurando manualmenteOs parágrafos a seguir fornecem instruções passo a passo para executar uma configuraçãobem-sucedida. Cada item de configuração é marcado se é relevante para firewall oupara mascaramento. Os aspectos relacionados à DMZ, conforme mencionado no arquivode configuração, não serão abordados aqui. Eles são aplicáveis somente a uma infra-estrutura de rede mais complexa, encontrada em organizações maiores (redescorporativas), que exigem uma configuração extensa e conhecimento profundo sobreo assunto.

Primeiro, use o módulo do YaST Serviços do Sistema (Nível de Execução) para habilitaro SuSEfirewall2 no seu nível de execução (provavelmente, 3 ou 5). Ele configura ossymlinks para o SuSEfirewall2_* scripts nos diretórios /etc/init.d/rc?.d/.

FW_DEV_EXT (firewall, mascaramento)O dispositivo vinculado à Internet. Para obter uma conexão via modem, digiteppp0. Para obter um link ISDN, use o ippp0. As conexões DSL usam o dsl0.Especifique auto para usar a interface que corresponde à rota padrão.

FW_DEV_INT (firewall, mascaramento)O dispositivo vinculado à rede privada, interna (como a eth0). Deixe esse espaçovazio se não houver rede interna e o firewall protegerá somente o host em queestiver sendo executado.

FW_ROUTE (firewall, mascaramento)Se você precisar da função mascaramento, configure como yes. Os hosts internosnão ficarão visíveis de fora, pois seus endereços de rede privada (por exemplo,192.168.x.x) serão ignorados pelos roteadores da Internet.

Para um firewall sem mascaramento, configure como yes somente se desejarpermitir acesso à rede interna. Os hosts internos precisam usar IPs registradosoficialmente nesse caso. No entanto, normalmente você não deveria permitir oacesso externo à sua rede interna.

FW_MASQUERADE (mascaramento)Configure como yes, se você precisar da função mascaramento. Com isso, vocêterá uma conexão praticamente direta com a Internet para os hosts internos. É maisseguro haver um servidor proxy entre os hosts da rede interna e a Internet. Omascaramento não é necessário para serviços fornecidos por um servidor proxy.

Segurança no Linux 113

Page 114: Reference Pt BR

FW_MASQ_NETS (mascaramento)Especifique as redes ou os hosts que devem ser mascarados, deixando um espaçoentre 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 quesurgirem em sua rede interna. Os serviços só estarão disponíveis para a rede internase estiverem explicitamente habilitados. Consulte também os serviçosFW_SERVICES_INT_TCP e FW_SERVICES_INT_UDP.

FW_SERVICES_EXT_TCP (firewall)Digite as portas TCP que devem ficar disponíveis. Deixe esse espaço vazio parauma estação de trabalho residencial normal, que não deve oferecer serviços.

FW_SERVICES_EXT_UDP (firewall)Deixe esse espaço vazio, a menos que você execute um serviço UDP e desejedisponibilizá-lo externamente. Os serviços que usam o UDP incluem os servidoresDNS, IPSec, TFTP, DHCP e outros. Nesse caso, digite as portas UDP a seremusadas.

FW_SERVICES_INT_TCP (firewall)Com essa variável, defina os serviços disponíveis para a rede interna. A notação éa mesma do FW_SERVICES_EXT_TCP, mas as configurações são aplicadas àrede interna. A variável só precisará ser configurada se oFW_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 configuração. Os conjuntos de regras defirewall são criados digitando SuSEfirewall2 start como root. Depois, usetelnet, por exemplo, de um host externo para ver se a conexão foi realmente negada.Depois disso, reveja /var/log/messages, em que deverá aparecer algo semelhantea: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 Referência

Page 115: Reference Pt BR

Outros pacotes que testam a configuração de um firewall são o nmap ou o nessus. Adocumentação do nmap pode ser encontrada em /usr/share/doc/packages/nmap e a do nessus no diretório /usr/share/doc/packages/nessus-coredepois que o respectivo pacote estiver instalado.

4.1.5 Mais informaçõesAs informações mais recentes e outras documentações sobre o pacoteSuSEfirewall2podem ser encontradas em /usr/share/doc/packages/SuSEfirewall2. Ahome page do projeto iptables e netfilter, http://www.netfilter.org, ofereceuma grande coleção de documentos em vários idiomas.

4.2 SSH: operações seguras de redeCom cada vez mais computadores instalados em ambientes de rede, sempre torna-senecessário acessar hosts de um local remoto. Isso normalmente significa que um usuárioenvia strings de login e senha para fins de autenticação. Como essas strings sãotransmitidas como texto simples, elas podem ser interceptadas e usadas de formaincorreta para obter acesso à conta do usuário sem que o usuário autorizado sequersaiba disso. Além da possibilidade de todos os arquivos do usuário serem abertos porum invasor, a conta ilegal pode ser usada para obter acesso de administrador ou root,ou para penetrar em outros sistemas. Anteriormente, as conexões remotas eramestabelecidas com telnet, que não oferece proteção contra espionagem na forma decriptografia nem de outros mecanismos de segurança. Há outros canais de comunicaçãosem proteção, como o tradicional protocolo FTP e alguns programas de cópia remotos.

A suíte do SSH fornece a proteção necessária, criptografando as strings de autenticação(normalmente um nome de login e uma senha) e todos os outros dados que sofremintercâmbio nos hosts. Com o SSH, o fluxo de dados ainda pode ser registrado porterceiros, mas o conteúdo é criptografado e não pode ser revertido em texto simples, amenos que a chave de criptografia seja conhecida. Dessa forma, o SSF permite acomunicação segura em redes desprotegidas, como a Internet. O padrão de SSH quevem com o SUSE Linux é o OpenSSH.

Segurança no Linux 115

Page 116: Reference Pt BR

4.2.1 Pacote OpenSSHO SUSE Linux instala o pacote OpenSSH por padrão. Os programas ssh, scp e sftp sãoalternativas disponíveis ao telnet, rlogin, rsh, rcp e ftp. Na configuração padrão, o acessoa um sistema SUSE Linux só é possível com os utilitários do OpenSSH e somente seo firewall permitir acesso.

4.2.2 Programa sshUsando o programa ssh, é possível fazer login em sistemas remotos e trabalhar de formainterativa. Ele substitui o telnet e o rlogin. O programa slogin é apenas um link simbólicopara o ssh. Por exemplo, efetue login no host sun com o comando ssh sun. O hostsolicita a senha para o sun.

Depois da autenticação bem-sucedida, você pode trabalhar na linha de comando remotaou usar aplicativos interativos, como o YaST. Se o nome de usuário local for diferentedo nome de usuário remoto, você poderá efetuar login usando um nome de logindiferente, com ssh -l augustine sun ou ssh augustine@sun.

Além 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 sune crie um diretório com o nome tmp. A saída do programa será exibida no terminallocal 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 são necessárias aqui para enviar as duas instruções com um comando. Somentecom esse procedimento o segundo comando é executado no sun.

4.2.3 scp (Secure Copy - Cópia Segura)O scp copia arquivos em uma máquina remota. Ele é um substituto seguro e criptografadopara o rcp. Por exemplo, scp MyLetter.tex sun: copia o arquivo MyLetter.tex do host earth para o host sun. Se o nome de usuário do earth for diferente donome de usuário do sun, especifique o do sun usando o formato [email protected]ão há opção -l para esse comando.

116 Referência

Page 117: Reference Pt BR

Depois que a senha correta é digitada, o scp inicia a transferência de dados e mostrauma linha crescente de asteriscos para simular uma barra de progresso. Além disso, oprograma exibe o tempo estimado de chegada à direita da barra de progresso. Suprimatoda a saída fornecendo a opção -q.

O scp também fornece um recurso de cópia recursiva para diretórios inteiros. O comandoscp -r src/ sun:backup/ copia todo o conteúdo do diretório src, incluindotodos os subdiretórios, no diretório backup do host sun. Se esse subdiretório aindanão existir, ele será criado automaticamente.

A opção -p avisa ao scp para não mudar a marcação de horário dos arquivos. A opção-C compacta a transferência 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 -Transferência Segura de Arquivos)

O programa sftp pode ser usado como alternativa ao scp para a transferência segura dearquivos. Durante uma sessão do sftp, você pode usar muitos comandos conhecidos doftp. O programa sftp pode ser uma alternativa melhor ao scp, especialmente natransferência de dados em que os nomes de arquivos são desconhecidos.

4.2.5 Daemon SSH (sshd) - executado noservidor

Para trabalhar com os programas clientes do SSH ssh e scp, o servidor daemon SSHdeve estar em execução em segundo plano, escutando conexões na porta TCP/IP22. O daemon garante três pares de chaves quando é iniciado pela primeira vez. Cadapar de chaves consiste em uma chave privada e uma pública. Portanto, esse procedimentoé conhecido como baseado em chave pública. Para garantir a segurança da comunicaçãovia SSH, o acesso a arquivos de chave privada deve ser restrito ao administrador dosistema. As permissões de arquivos são definidas adequadamente pela instalação padrão.As chaves privadas só são exigidas localmente pelo daemon SSH e não devem serfornecidas a ninguém mais. Os componentes da chave pública (reconhecidos pelaextensão de nome .pub) são enviados para o cliente que solicita a conexão. Todos osusuários podem lê-los.

Segurança no Linux 117

Page 118: Reference Pt BR

O cliente SSH inicia uma conexão. O daemon SSH e o cliente SSH que solicitou aconexão fazem um intercâmbio de dados de identificação para comparar as versões desoftware e o protocolo, e para evitar conexões pela porta errada. Como um processofilho do daemon SSH original responde à solicitação, várias conexões de SSH podemser feitas ao mesmo tempo.

Para a comunicação entre o servidor SSH e o cliente SSH, o OpenSSH suporta asversões 1 e 2 do protocolo SSH. Os sistemas SUSE Linux recentes têm a versão 2 comopadrão. Para continuar usando a versão 1 depois de uma atualização, siga as instruçõesde /usr/share/doc/packages/openssh/README.SuSE. Este documentotambém descreve como um ambiente SSH 1 pode ser transformado em um ambientede trabalho SSH 2 em apenas algumas etapas.

Ao usar a versão 1 do SSH, o servidor envia sua chave pública de host e uma chave deservidor, que é gerada novamente pelo daemon SSH a cada hora. Ambas permitem queo cliente SSH criptografe uma chave de sessão escolhida livremente, que é enviada aoservidor SSH. O cliente SSH também comunica ao servidor qual método de criptografia(cifra) deve ser usado.

A versão 2 do protocolo de SSH não requer uma chave de servidor. Os dois lados usamum algoritmo de acordo com Diffie-Helman para fazer o intercâmbio de suas chaves.

O host privado e as chaves do servidor são absolutamente necessários paradescriptografar a chave da sessão e não podem ser derivados de partes públicas. Somenteo daemon SSH contatado pode descriptografar a chave da sessão usando suas chavesprivadas (consulteman/usr/share/doc/packages/openssh/RFC.nroff).Essa fase inicial de conexão pode ser observada de perto, se você ativar a opção dedepuração verbosa -v do cliente SSH.

A versão 2 do protocolo SSH é usada por padrão. Substitua-a pela versão 1 do protocolocom o switch -1. O cliente armazena todas as chaves públicas do host no arquivo ~/.ssh/known_hosts depois de seu primeiro contato com um host remoto. Esseprocedimento evita ataques man-in-the-middle (MITM) - tentativas de servidores SSHestrangeiros usarem nomes e endereços IP falsos. Esses ataques são detectados por umachave de host não incluída em ~/.ssh/known_hosts ou pela incapacidade doservidor de descriptografar a chave da sessão na ausência de um correlativo privadoapropriado.

É recomendável fazer backup das chaves públicas e privadas armazenadas em /etc/ssh/ em um local externo seguro. Desta forma, as modificações das chaves podem

118 Referência

Page 119: Reference Pt BR

ser detectadas e as chaves antigas podem ser usadas novamente depois de umareinstalação. Esse procedimento poupa os usuários de avisos de desproteção. Verificou-se que, apesar do aviso - na realidade trata-se do servidor SSH correto -, a entrada parao sistema existente deve ser removida de ~/.ssh/known_hosts.

4.2.6 Mecanismos de autenticação do SSHAgora é hora da verdadeira autenticação, que, em sua forma mais simples, consiste nadigitação de uma senha, conforme mencionado anteriormente. A meta do SSH éapresentar um software seguro que também seja fácil de usar. Como ele deve substituiro rsh e o rlogin, o SSH também deve ser capaz de fornecer um método de autenticaçãoapropriado para uso diário. O SSH consegue isso por meio de outro par de chaves,gerado pelo usuário. O pacote do SSH fornece um programa de auxílio para isso: ssh-keygen. Depois da digitação 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 aschaves serão armazenadas.

Confirme a configuração padrão e responda à solicitação de uma frase secreta. Mesmose o software sugerir que a frase secreta fique em branco, é recomendável inserir umtexto de 10 a 30 caracteres para o procedimento descrito aqui. Não use palavras e frasescurtas e simples. Confirme a frase secreta repetindo-a. Depois, você verá o local dearmazenamento das chaves pública e privada, neste exemplo os arquivos id_rsa eid_rsa.pub.

Use ssh-keygen -p -t rsa ou ssh-keygen -p -t dsa para mudar sua frasesecreta antiga. Copie o componente da chave pública (id_rsa.pub, no exemplo) namáquina remota e salve-o como ~/.ssh/authorized_keys. Você será solicitadoa autenticar-se com sua frase secreta na próxima vez em que estabelecer uma conexão.Se isso não ocorrer, verifique o local e o conteúdo 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 mantém as chavesprivadas durante uma sessão X. Toda a sessão X é iniciada como um processo-filho dossh-agent. A forma mais fácil de fazer isso é definir a variável usessh no começo doarquivo .xsession como yes e efetuar login por meio de um gerenciador de vídeo,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 distribuído sua chavepública como descrito acima, não será mais solicitado a informar sua senha. Fique

Segurança no Linux 119

Page 120: Reference Pt BR

atento para concluir a sessão X ou bloqueá-la com um aplicativo de proteção de senha,como o xlock.

Todas as mudanças relevantes resultantes do lançamento da versão 2 do protocolo SSHtambém estão documentadas no arquivo/usr/share/doc/packages/openssh/README.SuSE.

4.2.7 X, autenticação e mecanismos deencaminhamento

Além das melhorias relativas a segurança descritas anteriormente, o SSH tambémsimplifica o uso dos aplicativos X remotos. Se você executar ssh com a opção -X, avariável DISPLAY será automaticamente definida na máquina remota, e todas as saídasX serão exportadas para a máquina remota pela conexão SSH existente. Ao mesmotempo, os aplicativos X iniciados remotamente e visualizados localmente com essemétodo não poderão ser interceptados por pessoas sem autorização.

Com a adição da opção -A, o mecanismo de autenticação ssh-agent passa para a próximamáquina. Dessa forma, você poderá trabalhar em máquinas diferentes sem precisardigitar a senha, mas somente se tiver distribuído sua chave pública nos hosts de destinoe a gravado adequadamente neles.

Os dois mecanismos são desativados nas configurações padrão, mas podem ser ativadosde forma permanente a qualquer momento no arquivo de configuração de todo o sistema/etc/ssh/sshd_config ou pelo ~/.ssh/config do usuário.

O ssh também pode ser usado para redirecionar conexões 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 conexão direcionada para a porta 25 (SMTP) do earth éredirecionada para a porta SMTP do sun por meio de um canal criptografado. Esserecurso é especialmente útil para os que usam servidores SMTP sem os recursos SMTP-AUTH ou POP-before-SMTP. De qualquer local arbitrário conectado a uma rede, épossível transferir e-mails para o servidor de correio eletrônico “doméstico” para entrega.Da mesma forma, todas as solicitações de POP3 (porta 110) do earth podem serencaminhadas para a porta POP3 do sun com esse comando.ssh -L 110:sun:110 earth

120 Referência

Page 121: Reference Pt BR

Os dois comandos devem ser executados como root, pois a conexão é feita para portaslocais privilegiadas. Os e-mails são enviados e recuperados por usuários normais emuma conexão SSH existente. Os hosts SMTP e POP3 devem ser definidos comolocalhost para que isso funcione. Outras informações podem ser encontradas naspáginas de manual referentes a cada programa descrito acima, bem como nos arquivosem /usr/share/doc/packages/openssh.

4.3 Criptografando partições earquivos

Todo usuário tem alguns dados confidenciais que não devem ser acessados por terceiros.Quanto mais abrangentes forem sua conexão e mobilidade, mais cuidado você deve terpara tratar seus dados. A criptografia de arquivos ou de partições inteiras serárecomendável se outras pessoas tiverem acesso por uma conexão de rede ou acessofísico direto.

ATENÇÃO: A mídia criptografada é uma proteção limitada

Lembre-se de que, com os métodos descritos nesta seção, você não podeimpedir que seu sistema em execução seja comprometido. Após a montagemda mídia criptografada, todas as pessoas com permissões adequadas terãoacesso a ela. A mídia criptografada será útil se você perder seu computadorou se ele for roubado e pessoas não autorizadas quiserem ler seus dadosconfidenciais.

A lista a seguir apresenta diversos cenários de uso imagináveis.

LaptopsSe você levar seu laptop em uma viagem, é uma boa idéia criptografar as partiçõesdo disco rígido que contenham dados confidenciais. Se você perder o laptop ou seele for roubado, seus dados ficarão fora de alcance se residirem em um sistema dearquivos criptografado ou em um único arquivo criptografado.

Mídia removívelUnidades flash USB ou discos rígidos externos são tão suscetíveis a roubo quantolaptops. Um sistema de arquivos criptografado fornece proteção contra o acessode terceiros.

Segurança no Linux 121

Page 122: Reference Pt BR

Estações de trabalhoEm empresas nas quais quase todas as pessoas têm acesso ao seu computador, podeser útil criptografar a partição ou arquivos individuais.

4.3.1 Configurando um sistema de arquivoscriptografado com o YaST

O YaST permite a criptografia de arquivos ou partições durante a instalação, bem comoem um sistema já instalado. É possível criar um arquivo criptografado a qualquermomento, pois ele se ajusta perfeitamente ao layout de uma partição existente. Paracriptografar uma partição inteira, separe uma no layout de partições. A proposta padrãode particionamento, como sugerida pelo YaST, não inclui por padrão uma partiçãocriptografada. Adicione-a manualmente na caixa de diálogo de particionamento.

Criando uma partição criptografada durante ainstalação

ATENÇÃO: Entrada de senha

Observe os avisos sobre segurança de senhas ao definir a senha de partiçõescriptografadas e memorize-a também. Sem a senha, os dados criptografadosnão podem ser acessados nem restaurados.

A caixa de diálogo do especialista do YaST em particionamento, descrita naSeção “Particionador” (Capítulo 2,Configuração do sistema com YaST, ↑Inicialização),oferece as opções necessárias para criar uma partição criptografada. Clique em Criarcomo se estivesse criando uma partição normal. Na caixa de diálogo exibida, digite osparâmetros de particionamento para a nova partição, como a formatação desejada e oponto de montagem. Para concluir o processo, clique em Sistema de ArquivoCriptografado. Na caixa de diálogo seguinte, digite a senha duas vezes. A nova partiçãocriptografada é criada depois que você clica em OK para fechar a caixa de diálogo departicionamento. Durante a inicialização, o sistema operacional solicita a senha antesda montagem da partição.

Se você não quiser montar a partição criptografada durante a inicialização, clique emEnter quando a senha for solicitada. Em seguida, não digite a senha novamente. Nessecaso, o sistema de arquivos criptografado não será montado, e o sistema operacional

122 Referência

Page 123: Reference Pt BR

continuará a inicialização bloqueando o acesso aos seus dados. Uma vez montada, apartição estará disponível a todos os usuários.

Se o sistema de arquivos criptografado somente for montado quando necessário, habilitea opção Não Montar na Inicialização do Sistema na caixa de diálogo Opções de fstab.A respectiva partição não será montada durante a inicialização do sistema. Para torná-la disponível no futuro, monte-a manualmente commount nome_da_partição ponto_de_montagem. Digite a senha quandosolicitada. Após terminar o trabalho na partição, desmonte-a comumount nome_da_partição para protegê-la contra o acesso de outros usuários.

Criando uma partição criptografada em um sistemaem execução

ATENÇÃO: Ativando a criptografia em um sistema em execução

Também é possível criar partições criptografadas em um sistema em execuçãocomo ocorre na instalação. Contudo, a criptografia de uma partição existentedestrói todos os respectivos dados.

Em um sistema em execução, selecione Sistema → Particionamento no centro decontrole do YaST. Clique em Sim para continuar. Em vez de selecionar Criar comomencionado acima, clique em Editar. O restante do procedimento é igual.

Instalando arquivos criptografadosEm vez de usar uma partição, é possível criar sistemas de arquivos criptografados dentrode arquivos individuais para armazenar dados confidenciais. Esses sistemas são criadosna mesma caixa de diálogo do YaST. Selecione Arquivo Crypt e digite o caminho doarquivo a ser criado, bem como seu tamanho pretendido. Aceite as configurações deformatação propostas e o tipo do sistema de arquivos. Em seguida, especifique o pontode montagem e decida se o sistema de arquivos criptografado deve ser montado quandoo sistema for inicializado.

A vantagem dos arquivos criptografados é que eles podem ser adicionados sem oreparticionamento do disco rígido. Eles são montados com a ajuda de um dispositivode loop e se comportam como partições normais.

Segurança no Linux 123

Page 124: Reference Pt BR

Usando o vi para criptografar arquivosA desvantagem de usar partições criptografadas é que, enquanto elas são montadas,pelo menos root pode acessar os dados. Para evitar isso, o vi pode ser usado no modocriptografado.

Use vi -x nomedoarquivo para editar um novo arquivo. O vi solicita que vocêdefina uma senha e, em seguida, criptografa o conteúdo do arquivo. Sempre que vocêacessar esse arquivo, o vi solicitará a senha correta.

Para obter mais segurança, você pode incluir o arquivo de texto criptografado em umapartição criptografada. Isso é recomendável porque a criptografia usada no vi não émuito eficiente.

4.3.2 Criptografando o conteúdo da mídiaremovível

O YaST trata a mídia removível, ou seja, discos rígidos externos ou unidades flashUSB, como qualquer outro disco rígido. É possível criptografar arquivos ou partiçõesnesse tipo de mídia, como descrito acima. Contudo, não faça a montagem dessas mídiasdurante a inicialização do sistema, pois normalmente elas só ficam conectadas enquantoo sistema está em execução.

4.4 Delimitando privilégios com oAppArmor

Muitas vulnerabilidades de segurança resultam de erros em programas confiáveis. Umprograma confiável é executado com privilégios que algum invasor gostaria de ter e oprograma deixa de manter aquela confiança se houver um erro no programa permitindoque o ataque adquira esses privilégios.

O Novell® AppArmor é uma solução de segurança de aplicativos projetadaespecificamente para fornecer menos delimitação de privilégios para programassuspeitos. O AppArmor permite que o administrador especifique o domínio de atividadesque o programa pode realizar, desenvolvendo um perfil de segurança para aquele

124 Referência

Page 125: Reference Pt BR

aplicativo (uma lista de arquivos que o programa pode acessar e as operações que oprograma pode realizar).

A proteção avançada e efetiva de um sistema de computador requer a minimização donúmero de programas que media privilégios, dessa forma protegendo os programastanto quanto possível. Com o Novell AppArmor, você só precisa criar perfil para osprogramas que são expostos a ataques em seu ambiente, o que reduz drasticamente otrabalho necessário para proteger melhor o seu computador. Os perfis do AppArmorobrigam as políticas a verificar que os programas cumpram sua função e nada mais.

Os administradores só precisam cuidar dos aplicativos que são vulneráveis a ataques egerar perfis para eles. A proteção avançada de sistema equivale, pois, a construir emanter o conjunto de perfis do AppArmor e a monitorar quaisquer violações de políticaou exceções registradas pelo gerador de relatórios do AppArmor.

A construção de perfis do AppArmor para delimitar um aplicativo é muito fácil eintuitiva. O AppArmor fornece várias ferramentas que auxiliam na criação de perfis.O AppArmor não requer que você faça nenhuma programação nem manipulação descripts. A única tarefa exigida do administrador é determinar uma política de acessomais rígida e executar permissões para cada aplicativo que necessite de uma proteçãoavançada.

Atualizações ou modificações aos perfis do aplicativo só são necessárias se aconfiguração do software ou a faixa de atividades desejada mudar. O AppArmor ofereceferramentas intuitivas para manipular atualizações ou modificações de perfil.

Os usuários nem perceberão o AppArmor. Ele é executado “por trás dos bastidores” enão requer nenhuma interação com o usuário. O desempenho não será afetado de maneiraa ser percebida pelo AppArmor. Se alguma atividade do aplicativo não for protegidapor um perfil do AppArmor ou se alguma atividade do aplicativo for impedida peloAppArmor, o administrador deve ajustar o perfil deste aplicativo para cobrir este tipode comportamento.

Este guia resume as tarefas básicas que devem ser realizadas com o AppArmor paraimplementar uma proteção avançada e efetiva a um sistema. Para obter mais informações,consulte o Guia de Administração do Novell AppArmor 2.0.

Segurança no Linux 125

Page 126: Reference Pt BR

4.4.1 Instalando o Novell AppArmorOs usuários que instalam um GNOME ou a seleção de área de trabalho KDE podemignorar esta seção, porque o Novell AppArmor é instalado, por padrão, como partedestas seleções.

Se não instalar nenhuma destas áreas de trabalho nem for para um ambiente inteiramentebaseado em texto, faça o seguinte para instalar os pacotes necessários usando ogerenciador de pacotes do YaST.

1 Efetue login como root e inicie o YaST.

2 No Centro de Controle do YaST selecione Software → Gerenciamento deSoftware.

3 Use a funcionalidade de pesquisa do YaST (palavra-chave “AppArmor”) parainstalar os seguintes pacotes:

• apparmor-parser• libapparmor• apparmor-docs• yast2-apparmor• apparmor-profiles• apparmor-utils

4 Selecione todos estes pacotes para instalação e selecione Aceitar. O YaST resolvequaisquer dependências e instala todos os pacotes para você.

5 Quando o YaST terminar de atualizar a configuração do sistema, selecioneConcluir para sair do gerenciador de pacote.

4.4.2 Habilitando o Novell AppArmorQuando o Novell AppArmor estiver instalado, habilite-o explicitamente para que eleseja iniciado sempre que o sistema inicializar. Use o módulo do YaST Serviços doSistema (Nível de Execução) para esta tarefa:

1 Efetue login como root e inicie o YaST.

126 Referência

Page 127: Reference Pt BR

2 Inicie Sistema → Serviços do Sistema (Runlevel).

3 Na lista de serviços exibidos, selecione apparmor. Consulte a Figura 4.3,“Habilitando o Novell AppArmor através do YaST” (p 127).

4 Clique em Habilitar para habilitar o AppArmor permanentemente.

5 Clique em Concluir para aceitar suas configurações.

Figura 4.3 Habilitando o Novell AppArmor através do YaST

Usando a ferramenta Runlevel do YaST, é possível habilitar os serviçospermanentemente. Estas configurações sobrevivem à reinicialização do seu sistema.Para habilitar o AppArmor temporariamente, pela duração de uma sessão apenas, façao 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 emConfigurar → Habilitar → OK.

Segurança no Linux 127

Page 128: Reference Pt BR

4 Aplique suas configurações com Concluído.

4.4.3 Noções básicas de aplicativos de perfisPrepare uma distribuição bem-sucedida do Novell AppArmor no seu sistemaconsiderando 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 necessários como resumido em “Construindo e modificandoperfis” (p 129). Verifique os resultados e ajuste os perfis quando necessário.

3 Para controlar o que está acontecendo no sistema, execute os relatórios doAppArmor e trabalhe com eventos de segurança. Consulte “Configurandonotificação de evento e relatórios do Novell AppArmor” (p 131).

4 Atualize seus perfis sempre que seu ambiente mudar ou você precisar reagir aeventos de segurança registrados pela ferramenta de relatório do AppArmor.Consulte “Atualizando seus perfis” (p 133).

Escolhendo os aplicativos para os quais criar perfilÉ necessário proteger apenas os programas expostos a ataques na sua configuraçãoparticular, assim, só use perfis para os aplicativos que você realmente executa. Use aseguinte lista para determinar os candidatos mais prováveis:

Agentes de redeProgramas (servidores e clientes) têm portas de rede abertas e agentes de rede sãoprogramas de servidor que respondem a estas portas de rede. Clientes de usuário(como clientes de correio e browsers da Web) também têm portas de rede abertase mediam privilégios.

Aplicativos da WebScripts Perl CGI, páginas PHP e aplicativos mais complexos da Web podem serchamados através de um browser da Web.

128 Referência

Page 129: Reference Pt BR

Tarefas cronProgramas que o daemon cron executa periodicamente lêem entradas de diversasfontes.

Para saber que processos estão sendo executados atualmente com portas de rede abertase podem precisar de um perfil para delimitá-los, execute unconfined como root.

Exemplo 4.1 Saída de unconfined19848 /usr/sbin/cupsd not confined19887 /usr/sbin/sshd not confined19947 /usr/lib/postfix/master not confined29205 /usr/sbin/sshd confined by '/usr/sbin/sshd (enforce)'

Cada um dos processos no exemplo acima rotulado de não delimitado podeprecisar de um perfil personalizado para delimitá-lo. Os processos rotuladosdelimitado por já são protegidos pelo AppArmor.

DICA: Mais informações

Para obter mais informações sobre a escolha dos aplicativos corretos para osquais criar perfil, consulte o Capítulo Selecionando programas a imunizar (Guiade Administração do Novell AppArmor 2.0).

Construindo e modificando perfisO Novell AppArmor no SUSE Linux é fornecido com um conjunto de perfis pré-configurado para os aplicativos mais importantes. Além disso, você pode usar oAppArmor para criar seus próprios perfis para um conjunto de aplicativos definidosem /etc/apparmor/README.profiles.

Há duas maneiras de gerenciar perfis. Uma é usar o gráfico front end fornecido pelosmódulos Novell AppArmor do YaST e a outra é usar as ferramentas de linha de comandofornecidas pela própria suíte do AppArmor. Ambos os métodos funcionam basicamenteda mesma maneira.

Executar não delimitado como descrito em “Escolhendo os aplicativos para os quaiscriar perfil” (p 128) identifica uma lista de aplicativos que podem precisar de um perfilpara serem executados de modo seguro.

Para cada aplicativo, realize as seguintes etapas para criar um perfil:

Segurança no Linux 129

Page 130: Reference Pt BR

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 eespecificando o caminho completo do aplicativo para o qual criar perfil.

Um perfil básico é traçado e o AppArmor é colocado no modo de aprendizado,o que significa que ele registra qualquer atividade do programa que você estejaexecutando mas não o restringe.

2 Execute a gama completa de ações do aplicativo para que o AppArmor obtenhaum quadro bastante específico de suas atividades.

3 Deixe o AppArmor analisar os arquivos de registro gerados na Passo 2 (p 130).Faça-o digitando S em genprof

ou

clicando em Explorar eventos do AppArmor no registro do sistema no Assistentepara Adicionar Perfil e siga as instruções fornecidas no assistente até concluiro perfil.

O AppArmor explora os registros feitos durante a execução do aplicativo e pedepara você configurar os direitos de acesso para cada evento para o qual foiefetuado login. Configure-os para cada arquivo ou use globbing.

4 Uma vez que todas as permissões de acesso estejam configuradas, o seu perfil édefinido para o modo forçado. O perfil é aplicado e o AppArmor restringe oaplicativo de acordo com o perfil que acabou de ser criado.

Se iniciou genprof para um aplicativo que tinha um perfil existente que estavano modo de reclamação, este perfil permanecerá no modo de aprendizado atésair deste ciclo de aprendizado. Para obter mais informações sobre como mudaro modo de um perfil, consulte a Seção Modo de reclamação ou aprendizado(Capítulo 3, Construindo perfis do Novell AppArmor,Guia de Administração doNovell AppArmor 2.0) e a SeçãoModo Forçado (Capítulo 3, Construindo perfisdo Novell AppArmor, Guia de Administração do Novell AppArmor 2.0).

130 Referência

Page 131: Reference Pt BR

Teste as suas configurações de perfil realizando todas as tarefas com o aplicativo queacabou de delimitar. Normalmente, o programa delimitado tem uma execução uniformee você não percebe as atividades do AppArmor. No entanto, se observar um certocomportamento inadequado no seu aplicativo, verifique os registros do sistema e vejase o AppArmor está delimitando demais o seu aplicativo. Localize os registros adequadosem /var/log/messages ou execute dmesg.

Qualquer saída semelhante ao exemplo a seguir sugere que o AppArmor está delimitandodemais 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 oAssistente para Adicionar Perfil novamente como descritoacima e deixe que ele analise as mensagens de registro relativas ao aplicativo específico.Determine os direitos ou restrições de acesso quando solicitado pelo YaST.

DICA: Mais informações

Para obter mais informações sobre construção e modificação de perfil, consulteo Capítulo Construindo perfis do Novell AppArmor (Guia de Administração doNovell AppArmor 2.0).

Configurando notificação de evento e relatórios doNovell AppArmorConfigure a notificação de evento no Novell AppArmor para que você possa analisaros eventos de segurança. A notificação de evento é um recurso do Novell AppArmorque informa um destinatário específico de e-mail sobre a ocorrência de uma atividadesistêmica no Novell AppArmor no nível de gravidade escolhido. Esse recurso estádisponível atualmente na interface do YaST.

Para configurar a notificação de evento no YaST, proceda da seguinte maneira:

1 Verifique se o servidor de correio está sendo executado no seu sistema parafornecer as notificações de evento.

2 Efetue login comoroot e inicie o YaST. Em seguida, selecioneNovell AppArmor→ Painel de Controle do AppArmor.

Segurança no Linux 131

Page 132: Reference Pt BR

3 Na seção Habilitar Notificação de Evento de Segurança, selecione Configurar.

4 Para cada tipo registrado (Conciso, Resumo e Verboso) configure uma freqüênciade relatório, digite um endereço de e-mail para receber os relatórios e determinea gravidade dos eventos a registrar. Se quiser incluir eventos desconhecidos nosrelatórios de evento, marque Incluir Eventos de Gravidade Desconhecidos.

NOTA

A menos que você esteja familiarizado com categorização de evento doAppArmor, escolha ser notificado sobre eventos de todos os níveis desegurança.

5 Deixe esta caixa de diálogo comOK→Concluir para aplicar suas configurações.

Configure relatórios do Novell AppArmor. Usando relatórios, é possível ler eventosde segurança importantes do Novell AppArmor relatados nos arquivos de registro semprecisar peneirar manualmente as mensagens pesadas, úteis apenas para a ferramentalogprof. É possível restringir o tamanho do relatório, filtrando por faixa de data ounome de programa.

Para configurar os relatórios do AppArmor proceda da seguinte maneira:

1 Efetue login como root e inicie o YaST. Selecione Novell AppArmor →Relatórios do AppArmor.

2 Selecione o tipo de relatório que você quer examinar ou configurar de Resumode Segurança Executivo, Auditoria de Aplicativos e Relatório de Incidente deSegurança.

3 Edite a freqüência de geração de relatório, endereço de e-mail, formato deexportação e a localização dos relatórios selecionando Editar e fornecendo osdados solicitados.

4 Para executar um relatório do tipo selecionado, clique em Executar Agora.

5 Pesquise nos relatórios arquivados de um determinado tipo, selecionandoVisualizar Arquivo e especificando o tipo de relatório.

ou

132 Referência

Page 133: Reference Pt BR

Apague os relatórios desnecessários ou adicione novos.

DICA: Mais informações

Para obter mais informações sobre configuração de notificação de evento noNovell AppArmor, consulte a Seção “Configurando notificações de evento”(Capítulo 4, Gerenciando aplicativos em perfil, Guia de Administração do NovellAppArmor 2.0). Mais informações sobre configuração de relatório sãoencontradas na Seção “Relatórios” (Capítulo 4, Gerenciando aplicativos emperfil, no Guia de Administração do Novell AppArmor 2.0).

Atualizando seus perfisConfigurações de software e sistema mudam com o tempo. Por isso a sua configuraçãode perfil para o AppArmor pode precisar de um ajuste manual periodicamente. OAppArmor verifica o seu registro de sistema em busca de violações de política ou outroseventos do AppArmor e deixa você ajustar a sua configuração de perfil adequadamente.Qualquer comportamento de aplicativo que esteja fora de qualquer definição de perfiltambém 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 qualquerexecutável ao qual tenha sido efetuado login quando solicitado.

4 Saia do YaST após ter respondido a todas as perguntas. Suas mudanças sãoaplicadas aos respectivos perfis.

DICA: Mais informações

Para obter mais informações sobre atualização dos seus perfis dos registros dosistema, consulte a Seção “Atualizando perfis a partir de entradas de registrosdo sistema” (Capítulo 3, Construindo perfis do Novell AppArmor, Guia deAdministração do Novell AppArmor 2.0).

Segurança no Linux 133

Page 134: Reference Pt BR

4.5 Segurança e confidencialidadeUma das principais características de um sistema Linux ou UNIX é sua capacidade demanter vários usuários ao mesmo tempo (multiusuário) e permitir que esses usuáriosexecutem inúmeras tarefas (multitarefas) no mesmo computador simultaneamente.Além disso, o sistema operacional é transparente à rede. Os usuários normalmente nãosabem se os dados e aplicativos que usam são fornecidos localmente por suas máquinasou disponibilizados pela rede.

Com o recurso multiusuário, os dados de usuários diferentes precisam ser armazenadosseparadamente. A segurança e privacidade precisam ser garantidas. A segurança dosdados já era considerada uma questão importante, mesmo antes de os computadorespoderem se vincular através de redes. Como nos dias de hoje, a maior preocupação eraa capacidade de manter os dados disponíveis, apesar da perda ou danificação do meiodos dados, na maioria das vezes, um disco rígido.

Esta seção enfoca, principalmente, problemas de confidencialidade e formas de protegera privacidade de usuários. Porém, ela não se estende o suficiente para abordar o conceitoabrangente de segurança, que deve sempre incluir procedimentos para ter um backupregularmente atualizado, utilizável e testado à disposição. Sem isso, você pode ter muitadificuldade na recuperação de seus dados — não só no caso de algum defeito dehardware, mas também se suspeitar de alguém ter adquirido acesso não autorizado efalsificado arquivos.

4.5.1 Segurança local e de redeHá várias formas de acessar dados:

• comunicação pessoal com quem possui as informações desejadas ou acesso aosdados através de um computador

• diretamente do console de um computador (acesso físico)

• através de uma linha serial

• usando um link de rede

Em todos esses casos, o usuário deve ser autenticado antes de acessar os recursos oudados em questão. Um servidor da Web talvez seja menos restritivo a esse respeito,

134 Referência

Page 135: Reference Pt BR

ainda assim, você não gostaria que ele divulgasse todos os seus dados pessoais paraqualquer pessoa na rede.

Na lista acima, o primeiro caso é onde a maior quantidade de interação humana estáenvolvida, por exemplo, quando você contacta um funcionário de um banco e ele solicitaque você prove que é a pessoa proprietária daquela conta de banco. Então, solicitamsua assinatura, um PIN ou uma senha para provar que você é aquela pessoa. Em algunscasos, pode ser possível extrair informações de uma pessoa esclarecida apenasmencionando poucos detalhes conhecidos, suficientes para ganhar a confiança dessapessoa, usando uma retórica inteligente. A vítima pode ser levada a revelar,gradativamente, mais informações, talvez sem nem mesmo se dar conta disso. Entre oshackers, isso é chamado de engenharia social. A única forma de se proteger contra issoé educar as pessoas e saber lidar com linguagem e informações de uma forma consciente.Antes de invadirem sistemas de computador, os invasores geralmente tentam atingirrecepcionistas, auxiliares que trabalham na empresa ou até mesmo membros de umafamília. Em muitos casos, como um ataque baseado em engenharia social, ele só édescoberto muito tempo depois.

Uma pessoa que deseja obter acesso não autorizado aos seus dados poderia tambémtentar obtê-lo da forma tradicional, diretamente através do seu hardware. Portanto, amáquina deve ser protegida contra qualquer falsificação, para que ninguém possaremover, substituir ou danificar seus componentes. Isso também se aplica a backups e,até mesmo, a qualquer cabo de rede ou de energia. Proteja também o procedimento deinicialização, pois há algumas combinações de tecla bastante conhecidas que podemprovocar um comportamento anormal. Proteja-se contra isso, configurando senhas parao BIOS e para o carregador de boot.

Os terminais seriais conectados a portas seriais ainda são usados em muitos locais.Diferente das interfaces de rede, eles não usam um protocolo de rede para se comunicarcom o host. Um cabo simples ou porta infravermelha envia e retorna caracteres simplesentre os dispositivos. O próprio cabo é o ponto mais fraco de um sistema desses: comuma impressora mais antiga conectada a ele, é fácil registrar qualquer coisa que sejatransmitida pelos cabos. O que se consegue com uma impressora também pode ser feitode outras formas, dependendo do esforço envolvido no ataque.

Ler um arquivo localmente em um host exige outras regras de acesso, diferentes deabrir uma conexão de rede com um servidor em um host diferente. Não há distinçãoentre segurança local e segurança de rede. A linha é desenhada onde os dados devemser colocados em pacotes para serem enviados para outro local.

Segurança no Linux 135

Page 136: Reference Pt BR

Segurança localA segurança local começa com o ambiente físico, no local onde o computador éexecutado. Configure sua máquina em um local onde a segurança esteja de acordo comsuas expectativas e necessidades. O principal objetivo da segurança local é manterusuários separados entre si, para que nenhum assuma a permissão ou a identidade dooutro. Essa é uma regra geral a ser observada, mas é extremamente verdadeira para oroot do usuário, que contém a força suprema do sistema. root pode assumir aidentidade de qualquer usuário local sem que lhe seja solicitada uma senha e pode lerqualquer arquivo armazenado localmente.

SenhasEm um sistema Linux, as senhas não são armazenadas como texto simples e a stringde texto digitada não corresponde diretamente com o padrão salvo. Se fosse assim,todas as contas do seu sistema estariam comprometidas assim que alguém tivesse acessoao arquivo correspondente. Em vez disso, a senha armazenada é criptografada e, todavez que é digitada, é novamente criptografada para que as duas strings criptografadassejam comparadas. Isso oferece mais segurança somente se a senha criptografada nãopuder ser computada de forma inversa na string de texto original.

Isso pode ser feito através de um tipo especial de algoritmo, também chamado dealgoritmo trapdoor, pois ele só funciona em uma direção. Um invasor que obteve astring criptografada não é capaz de obter sua senha simplesmente aplicando o mesmoalgoritmo novamente. Em vez disso, seria preciso testar todas as combinações decaracteres possíveis, até encontrar uma que se parecesse com sua senha quandocriptografada. Em senhas com oito caracteres, há um número considerável decombinações possíveis de serem calculadas.

Nos anos setenta, dizia-se que esse método seria mais seguro do que outros, devido àrelativa lentidão do algoritmo usado, que levava alguns segundos para criptografarapenas uma senha. Entretanto, enquanto isso, os PCs foram se tornando mais potenteso suficiente para executar centenas de milhares ou até milhões de criptografias porsegundo. Por causa disso, as senhas criptografadas não devem ficar visíveis para usuáriosregulares (/etc/shadow não pode ser lida por usuários normais). É até maisimportante que senhas não sejam fáceis de adivinhar, no caso de um arquivo de senhaficar visível por algum erro. Conseqüentemente, não é de muita utilidade “traduzir”uma senha como “tantalize” para “t@nt@1lz3”.

136 Referência

Page 137: Reference Pt BR

Substituir algumas letras da palavra por números parecidos não é seguro o suficiente.Programas para fraudar senhas, que usam dicionários para adivinhar palavras, tambémtestam substituições como essa. Uma forma melhor é criar uma palavra sem umsignificado comum, mas que só faça sentido para você, como as primeiras letras daspalavras de uma frase ou do título de um livro, como “The Name of the Rose” byUmberto Eco (O Nome da Rosa, de Umberto Eco). A senha segura criada ficaria assim:“TNotRbUE9”. Diferentemente, senhas como “beerbuddy” ou “jasmine76” são de fáciladivinhação, mesmo por alguém que tenha pouco conhecimento a seu respeito.

O procedimento de inicializaçãoConfigure o sistema de forma que não possa ser inicializado de um disquete ou CD,removendo totalmente as unidades ou configurando uma senha para o BIOS econfigurando-o para que inicialize somente a partir de um disco rígido. Normalmente,um sistema Linux é iniciado por um carregador de boot, permitindo que você passeopções adicionais para o kernel inicializado. Para evitar que outros usem essesparâmetros durante a inicialização, configure uma senha adicional em /boot/grub/menu.lst (consulte o Capítulo 9,OCarregador de Boot (p 201)). Isso é imprescindívelpara a segurança do sistema. O kernel não só é executado com permissões de root,como também é a primeira autoridade a conceder permissões de root na inicializaçãodo sistema.

Permissões de arquivoComo regra geral, sempre trabalhe com os privilégios mais restritivos possíveis parauma determinada tarefa. Por exemplo, definitivamente, não é necessário ser root paraler ou gravar e-mails. Se o programa de correio possuir um bug, esse bug pode serexplorado para um ataque que atue com as permissões exatas do programa quando foiinicializado. Ao seguir a regra acima, os possíveis danos serão minimizados.

As permissões de mais de 200.000 arquivos incluídos em uma distribuição SUSE sãoescolhidos cuidadosamente. Um administrador de sistemas que instale softwaresadicionais ou outros arquivos deve ser cuidadoso ao fazê-lo, especialmente quandoconfigurar os bits de permissão. Administradores de sistemas experientes e atentos àsegurança sempre usam a opção -l com o comando ls, para obter uma lista de arquivosextensa, que ajuda na detecção imediata de qualquer permissão de arquivo incorreta.Um atributo de arquivo incorreto não significa somente que os arquivos podem sermudados ou apagados. Esses arquivos modificados podem ser executados pelo rootou, no caso de arquivos de configuração, programas poderiam usar tais arquivos com

Segurança no Linux 137

Page 138: Reference Pt BR

as permissões do root. Isso aumenta significativamente as possibilidades de um ataque.Ataques como esse são chamados de cuckoo eggs (ovos de cuco), pois o programa (oovo) é executado (quebrado) por um usuário diferente (pássaro), exatamente como umcuco engana outros pássaros para quebrar seus ovos.

Um sistema SUSE Linux inclui os arquivos permissions, permissions.easy,permissions.secure e permissions.paranoid, todos no diretório /etc.A função desses arquivos é definir permissões especiais, como diretórios graváveismundialmente ou, para arquivos, o bit do setuser ID (programas com o conjunto de bitssetuser ID não são executados com as permissões do usuário que os inicializou e simcom as do proprietário do arquivo, na maioria dos casos, o root). Um administradorpode usar o arquivo /etc/permissions.local para adicionar suas própriasconfigurações.

Para definir qual dos arquivos acima é usado pelos programas de configuração do SUSEpara definir permissões compatíveis, selecione Segurança no YaST. Para saber maissobre esse tópico, leia os comentários em /etc/permissions ou consulte a páginado manual do chmod (man chmod).

Bugs de string de formato e overflows de bufferDeve-se ter extremo cuidado sempre que um programa cuja função é processar dadospossa ser modificado por um usuário. Porém, esse é um problema mais para oprogramador de um aplicativo do que para usuários regulares. O programador deveverificar se o aplicativo interpreta os dados de forma correta, sem gravá-lo em áreas damemória muito pequenas para mantê-lo. Da mesma forma, o programa deve manter osdados de forma consistente, usando as interfaces definidas para esse fim.

Um overflow de buffer pode ocorrer se o tamanho real do buffer da memória não forlevado em conta quando uma gravação for feita nesse buffer. Há casos em que essesdados (como os gerados pelo usuário) usam mais espaço do que o disponibilizado nobuffer. Como conseqüência, os dados são gravados além da área final do buffer, o que,em certas circunstâncias, possibilita que um programa execute seqüências de programainfluenciado pelo usuário (e não pelo programador), em vez de apenas processar osdados do usuário. Um bug desse tipo pode trazer sérias conseqüências, especialmentese o programa estiver sendo executado com privilégios especiais (consulte “Permissõesde arquivo” (p 137)).

Bugs de string de formato funciona um pouco diferente, porém novamente é a entradado usuário que pode controlar a bandeja do programa. Na maioria dos casos, esses erros

138 Referência

Page 139: Reference Pt BR

de programação são explorados com programas executados com permissões especiais— programas setuid e setgid — o que também significa que você pode proteger osdados e o sistema desses bugs, removendo dos programas os privilégios de execuçãocorrespondentes. Novamente, a melhor forma é aplicar uma política de uso de privilégiosmais baixos possíveis (consulte “Permissões de arquivo” (p 137)).

Como os overflows de buffer e bugs de string de formato são bugs relacionados aomanuseio de dados do usuário, eles não são só exploráveis se o acesso tiver sidoconcedido a uma conta local. Muitos dos bugs relatados também podem ser exploradospor um link de rede. Da mesma forma, bugs de string de formato e overflows de bufferdevem ser classificados como relevantes tanto para a segurança de rede quanto a local.

VírusContrário ao que dizem algumas pessoas, há vírus que são executados no Linux.Entretanto, os vírus conhecidos foram criados por seus autores como um protótipo,para provar que a técnica funciona como determinado. Nenhum desses vírus foi apontadoem lugar algum até agora.

Os vírus não conseguem sobreviver e se espalharem sem que haja um host onde possampermanecer. Nesse caso, o host seria um programa ou uma área de armazenamentoimportante do sistema, como o MBR (Master Boot Record), que precisa ser gravávelpara o código de programa do vírus. Devido aos seus recursos de multiusuário, o Linuxpode restringir o acesso de gravação a certos arquivos especialmente importantes paraarquivos do sistema. Portanto, se você trabalhou normalmente com as permissões deroot, as chances de o sistema ser infectado por vírus aumentarão. Por outro lado, sevocê seguiu os princípios do uso de privilégios mais baixos possíveis, conformemencionado anteriormente, há poucas chances de um vírus entrar no computador.

Independente disso, nunca execute um programa às pressas a partir de algum site daInternet que você não conheça bem. Os pacotes RPM do SUSE possuem uma assinaturacriptográfica como rótulo digital indicando o extremo cuidado utilizado durante suacriação. Os vírus são um sinal típico de que o administrador ou o usuário não possuemuma precaução de segurança necessária, colocando em risco um sistema que deveriaestar altamente protegido.

Vírus não devem ser confundidos com worms, que pertencem inteiramente ao mundodas redes. Worms não precisam de um host para se espalharem.

Segurança no Linux 139

Page 140: Reference Pt BR

Segurança de redeA segurança da rede é importante para a proteção contra um ataque iniciadoexternamente. O procedimento de login típico, que exige um nome de usuário e senhapara a autenticação do usuário ainda é uma questão de segurança local. No casoespecífico de efetuar login em uma rede, existe uma diferença entre os dois aspectosde segurança. O que acontece até a autenticação real é a segurança da rede e tudo o queacontece depois disso é a segurança local.

Sistema x window e autenticação xConforme mencionado no início, a transparência da rede é uma das característicasprincipais de um sistema UNIX. X, o sistema de janelas dos sistemas operacionais doUNIX, usa esse recurso de uma forma impressionante. Com X, basicamente não háproblemas para efetuar login em um host remoto e iniciar um programa gráfico queserá, depois, enviado para a rede para ser exibido no computador.

Quando um cliente X deve ser exibido remotamente usando um servidor X, o últimodeve proteger o recurso gerenciado por ele (a tela) de acessos não autorizados. Emtermos mais concretos, certas permissões precisam ser fornecidas ao programa cliente.Com o sistema X Window, há duas formas de fazer isso, chamadas controle de acessobaseado em host e controle de acesso baseado em cookie. O anterior se baseia noendereço IP do host onde o cliente deve ser executado. O programa que controla issoé o xhost. O xhost. insere o endereço IP de um cliente legítimo em um banco de dadosmínimo pertencente ao servidor X. Entretanto, basear-se em endereços IP paraautenticação não é muito seguro. Por exemplo, se houvesse um segundo usuáriotrabalhando no host que envia o programa cliente, esse usuário também teria acesso aoservidor X — o mesmo acesso de alguém que desejasse roubar o endereço IP. Devidoa essas faltas, esse método de autenticação não é descrito mais detalhadamente aqui,mas você pode obter mais informações 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 usuário legítimo, da mesma forma que umaplaca ID de algum tipo. Esse cookie (a palavra é originada não de cookies (biscoitos)comuns, mas dos fortune cookies chineses (biscoitos da sorte chineses) que contêm umepigrama) é armazenado durante o login no arquivo .Xauthority no diretórioprincipal do usuário e fica disponível para qualquer cliente X que deseje usar o servidorX para exibir uma janela. O arquivo .Xauthority pode ser examinado pelo usuáriocom a ferramenta xauth. Se você renomeasse o .Xauthority ou se apagasse

140 Referência

Page 141: Reference Pt BR

acidentalmente o arquivo do seu diretório principal, não conseguiria abrir nenhumajanela ou cliente X novos. Leia mais sobre os mecanismos de segurança do sistema XWindow na página do manual do Xsecurity (man Xsecurity).

O SSH (secure shell) pode ser usado para criptografar uma conexão de redecompletamente e encaminhá-la para um servidor X de forma transparente, sem que omecanismo de criptografia seja percebido pelo usuário. Também é chamado deencaminhamento de X. O encaminhamento de X é feito simulando um servidor X nolado do servidor e configurando uma variável DISPLAY para o shell no host remoto.Informações detalhadas sobre o SSH podem ser encontradas na Seção 4.2, “SSH:operações seguras de rede” (p 115).

ATENÇÃO

Se você não considera seguro o host onde efetua login, não use oencaminhamento de X. Com o encaminhamento de X habilitado, um invasorpode se autenticar através da conexão SSH e invadir o servidor X para farejarsua entrada de teclado, por exemplo.

Bugs de string de formato e overflows de bufferConforme discutido na “Bugs de string de formato e overflows de buffer” (p 138), osbugs de overflows de buffer e de strings de formato devem ser classificados comorelevantes tanto para a segurança de rede quanto a local. Como as variantes locais dessesbugs, os overflows de buffer em programas de rede, quando são explorados com sucesso,quase sempre são usados para obter permissões de root. Mesmo que não seja o caso,um invasor poderia usar o bug para ter acesso a uma conta local não privilegiada paraexplorar quaisquer outras vulnerabilidades que pudessem existir no sistema.

Bugs de overflows de buffer e de strings de formato exploráveis em um link de redesão, certamente, a forma mais freqüente de ataques remotos em geral. As exploraçõesdesses programas — que exploram furos de segurança recentemente encontrados —geralmente são enviadas para listas de discussão de segurança. Elas podem ser usadaspara identificar a vulnerabilidade, sem saber os detalhes do código. Através dos anos,a experiência mostrou que a disponibilidade de códigos de exploração contribuiu paraa criação de sistemas operacionais mais seguros, obviamente devido ao fato de oscriadores de sistemas operacionais terem sido forçados a consertar os problemas emseus softwares. Com software livre, qualquer pessoa tem acesso ao código fonte (oSUSE Linux vem com todos os códigos fonte disponíveis) e qualquer um que encontre

Segurança no Linux 141

Page 142: Reference Pt BR

uma vulnerabilidade e seu código de exploração poderá submeter um patch para consertaro bug correspondente.

DoS (Denial of Service)A finalidade de um ataque DoS (denial of service) é bloquear um programa de servidorou mesmo todo o sistema, algo que pode ser realizado de várias formas: sobrecarregaro servidor, mantendo-o ocupado com pacotes de lixo ou explorar um overflow de bufferremoto. Geralmente, a única finalidade de um ataque DoS é fazer o serviço desaparecer.Entretanto, quando um determinado serviço não está mais disponível, as comunicaçõespodem ficar vulneráveis a ataques man-in-the-middle (farejamento, roubo de conexãode TCP, falsificação) e envenenamento do DNS.

Man in the middle: farejamento, roubo, falsificaçãoEm geral, qualquer ataque remoto executado por um invasor que se coloca entre oshosts de comunicação é chamado de ataque man-in-the-middle. O que a maioria dostipos de ataques man-in-the-middle tem em comum é que a vítima, geralmente, nãopercebe o que está acontecendo. Há muitas variantes possíveis, por exemplo, o invasorpode escolher uma solicitação de conexão e encaminhá-la para a máquina de destino.Agora, a vítima estabeleceu, involuntariamente, uma conexão com o host errado, porquea outra extremidade está posando como a máquina de destino legítima.

A forma mais simples de um ataque man-in-the-middle é o farejamento — o invasor“apenas” escuta a passagem do tráfego de rede. Em um ataque mais complexo, o “manin the middle” pode tentar controlar uma conexão já estabelecida (roubar). Para fazerisso, o invasor precisa analisar os pacotes durante algum tempo, para ser capaz de preveros números da seqüência do TCP pertencentes à conexão. Quando o invasor finalmenteidentifica a função do host de destino, as vítimas percebem isso, pois elas recebem umamensagem de erro informando que a conexão foi encerrada devido a uma falha. O quefacilita os invasores é o fato de haver protocolos pouco seguros contra roubos atravésde criptografia, que apenas executam um procedimento de autenticação simples quandoestabelecem a conexão.

Falsificação é um ataque onde os pacotes são modificados para conter dados de origemfalsificada, normalmente, o endereço IP. A maioria dos ataques ativos consiste emenviar esses pacotes falsos — algo que, em uma máquina Linux, só pode ser feito pelosuperusuário (root).

142 Referência

Page 143: Reference Pt BR

Muitos dos ataques mencionados são executados junto com um DoS. Se um invasorvir uma oportunidade de desativar abruptamente um host, mesmo que por um curtoperíodo, será mais fácil para ele usar o ataque ativo, pois o host não será capaz deinterferir contra o ataque por algum tempo.

Envenenamento de DNSO envenenamento de DNS significa que o invasor corrompe o cache de um servidorDNS respondendo a ele com pacotes de respostas de DNS falsificados, para tentar fazercom que o servidor envie certos dados a uma vítima que esteja solicitando informaçõesa esse servidor. Muitos servidores mantêm uma relação de confiança com outros hosts,baseada nos endereços IP ou nos nomes de host. O invasor precisa ter um bomconhecimento da estrutura real das relações de confiança entre os hosts, para serdistinguido como um dos hosts confiáveis. Normalmente, o invasor analisa algunspacotes recebidos do servidor para obter as informações necessárias. O invasorgeralmente também precisa planejar um ataque DoS bem programado ao servidor denomes. Proteja-se, usando conexões criptografadas que possam verificar a identidadedos hosts aos quais deve se conectar.

WormsWorms geralmente são confundidas com vírus, mas há uma clara diferença entre osdois. Diferente dos vírus, worms não precisam infectar um programa de host paraviverem. Em vez disso, suas especialidades são se espalharem o mais rápido possívelpor estruturas de rede. Os worms que apareciam antigamente, como Ramen, Lion ouAdore, faziam uso de falhas conhecidas na segurança dos programas de servidor, comobind8 ou lprNG. A proteção contra worms é relativamente fácil. Considerando que umcerto tempo decorre entre a descoberta de uma falha na segurança e o momento em queo worm entra no servidor, há uma boa chance de uma versão atualizada do programaafetado estar disponível a tempo. Isso só tem utilidade se o administrador realmenteinstalar as atualizações de segurança nos sistemas em questão.

4.5.2 Algumas dicas e truques gerais desegurança

Para usar a segurança de forma competente, é importante estar atualizado com os novosprodutos desenvolvidos e manter-se informado sobre as questões de segurança mais

Segurança no Linux 143

Page 144: Reference Pt BR

recentes. Uma boa forma de proteger o sistema contra problemas de todos os tipos éobter e instalar os pacotes atualizados recomendados pelos anúncios de segurança omais rápido possível. Os anúncios de segurança do SUSE são publicados em uma listade discussão na qual você pode se inscrever através do link http://www.novell.com/linux/security/securitysupport.html. A [email protected] é a fonte principal de informações referentea pacotes atualizados e inclui membros da equipe de segurança do SUSE entre seuscontribuintes ativos.

A lista de discussão [email protected] é um bom local para discutirquaisquer problemas de segurança de seu interesse. Inscreva-se nela na mesma páginada Web.

[email protected] é uma das listas de discussão sobre segurançamais conhecidas no mundo. A leitura dessa lista, que recebe entre 15 a 20 publicaçõespor dia, é recomendada. Mais informações podem ser encontradas em http://www.securityfocus.com.

A seguir, uma lista de regras que podem ser úteis para lidar com questões de segurançabásica:

• De acordo com a regra de uso do conjunto de permissões mais restritivo para cadatrabalho, evite fazer seus trabalho regulares no root. Isso reduzirá o risco de obterum cuckoo egg (ovo do cuco) ou um vírus e protegerá seu computador dos seuspróprios erros.

• Se possível, tente sempre usar conexões criptografadas para trabalhar em umamáquina remota. O uso de ssh (shell seguro) para substituir telnet, ftp, rshe rlogin deve ser uma prática padrão.

• Evite usar métodos de autenticação baseados em endereços IP isolados.

• Tente manter os pacotes relacionados à rede mais importantes atualizados e inscreva-se nas listas de discussão correspondentes, para receber anúncios sobre novasversões desses programas (bind, sendmail, ssh, etc.). O mesmo deve se aplicar aossoftwares relevantes à segurança local.

• Mude o arquivo /etc/permissions, para otimizar as permissões dos arquivoscruciais para a segurança do seu sistema. Se você remover o setuid bit de umprograma, haverá grandes chances de ele não ser mais capaz de executar suasrespectivas funções da forma devida. Por outro lado, considere que, na maioria dos

144 Referência

Page 145: Reference Pt BR

casos, o programa não será mais um risco potencial à segurança. Você pode usarum método semelhante, com arquivos e diretórios internacionalmente graváveis.

• Desabilite quaisquer serviços de rede que não sejam absolutamente necessáriospara o servidor funcionar adequadamente. Isso torna o sistema mais seguro. Portasabertas, com o estado do socket LISTEN, podem ser encontradas no programanetstat. Quanto às opções, é recomendável usarnetstat-ap ounetstat-anp.A opção -p permite que você veja que processo está ocupando uma porta com qualnome.

Compare os resultados do netstat com os de uma exploração de porta mais completafeita fora do host. Um programa excelente para esse trabalho é o nmap, que não sóverifica as portas da máquina, como também conclui quais serviços estão aguardandoatrás delas. Entretanto, a exploração da porta pode ser interpretada como um atoagressivo, portanto, não a faça em um host sem a aprovação explícita doadministrador. Por fim, lembre-se de que é importante não só explorar as portasTCP, mas também as portas UDP (opções -sS e -sU).

• Para monitorar a integridade dos arquivos do seu sistema de forma confiável, useo programa AIDE (Advanced Intrusion Detection Environment), disponível noSUSE Linux. Criptografe o banco de dados criado pelo AIDE, para evitar quealguém o falsifique. Além disso, mantenha um backup desse banco de dadosdisponível fora da máquina, armazenado em um meio de dados externo nãoconectado à rede.

• Instale cuidadosamente qualquer software de terceiros. Houve casos de um hackerter criado um Cavalo de Tróia no arquivo tar de um pacote de softwares desegurança, mas, felizmente, o ataque foi descoberto rapidamente. Se você instalarum pacote binário, não tenha dúvidas quanto ao site de onde foi feito o seudownload.

Os pacotes RPM do SUSE são gpg-signed (assinados pelo gpg). A chave usadapelo SUSE para a assinatura é:

Chave de assinatura de pacote do SUSE: ID:9C800ACA 2000-10-19<[email protected]>

Impressão digital da chave = 79C1 79B2 E1C8 20C1 890F 9994 A84E DAE8 9C800ACA

Segurança no Linux 145

Page 146: Reference Pt BR

O comando rpm --checksig package.rpm mostra se o checksum e aassinatura de um pacote desinstalado estão corretos. Encontre a chave no primeiroCD de distribuição e na maioria dos servidores de chaves em todo o mundo.

• Verifique os backups de arquivos do sistema e usuário regularmente. Considereque, se você não testar os backups para ver se funcionam, eles serão, na verdade,inúteis.

• Verifique seus arquivos de registro. Sempre que possível, grave um pequeno scriptpara pesquisar entradas suspeitas. Com certeza, essa não é exatamente uma tarefatrivial. No final, somente você saberá quais entradas não são comuns e quais são.

• Use o tcp_wrapper para restringir o acesso a serviços individuais executadosna sua máquina, para que você tenha controle total sobre quais endereços IP podemse conectar a um serviço. Para obter informações adicionais referentes aotcp_wrapper, consulte as páginas do manual do tcpd e do hosts_access (man 8tcpd, man hosts_access).

• Use o SuSEfirewall para aprimorar a segurança fornecida pelo tcpd (tcp_wrapper).

• Defina suas medidas de segurança para serem redundantes: uma mensagem vistaduas vezes é melhor do que não ver mensagem alguma.

4.5.3 Usando o Central Security ReportingAddress (Endereço de Relatórios de

Segurança Central)Se encontrar um problema relacionado à segurança (verifique, primeiro, os pacotes deatualização disponíveis), escreva um e-mail para [email protected]. Inclua umadescrição detalhada do problema e o número de versão do pacote em questão. O SUSEtentará enviar uma resposta o mais rápido possível. Você é incentivado a criptografarpor pgp suas mensagens de e-mail. A chave pgp do SUSE é:ID:3D25D3D9 1999-03-06 SUSE Security Team <[email protected]> Impressão digital da chave = 73 5F 2E 99 DF DB 94 C4 8F 5A A3 AE AF 22 F2 D5

Essa chave também está disponível para download emhttp://www.novell.com/linux/security/securitysupport.html.

146 Referência

Page 147: Reference Pt BR

5Listas de controle de acesso noLinuxAs ACLs (listas de controle de acesso) POSIX podem ser usadas como expansão doconceito tradicional de permissão para objetos do sistema de arquivos. Com as ACLs,as permissões podem ser definidas com mais flexibilidade do que permite o conceitode permissão tradicional.

O termoACLPOSIX sugere que este é um verdadeiro padrão POSIX (portable operatingsystem interface). Os respectivos padrões de rascunho POSIX 1003.1e e POSIX 1003.2cforam removidos por vários motivos. Contudo, as ACLs, como encontradas em váriossistemas pertencentes à família UNIX, são baseadas nesses rascunhos, e a implementaçãodas ACLs do sistema de arquivos, como descrita neste capítulo, também segue essespadrões. Elas podem ser vistas em http://wt.xpilot.org/publications/posix.1e/.

5.1 Permissões de arquivo tradicionaisOs fundamentos básicos das permissões de arquivo tradicionais do Linux são explicadasna Seção “Usuários e permissões de acesso” (Capítulo 3, Trabalhando com o Shell,↑Inicialização). Mais recursos avançados são setuid, setgid e sticky bit.

5.1.1 setuid BitEm determinadas situações, as permissões de acesso podem ser muito restritivas. Noentanto, o Linux possui configurações adicionais para permitir a mudança temporáriado usuário atual e da identidade do grupo para uma ação específica. Por exemplo, o

Listas de controle de acesso no Linux 147

Page 148: Reference Pt BR

programapasswd normalmente requer permissões de root para acessar/etc/passwd.Este arquivo contém algumas informações importantes, como os diretórios pessoais deusuários e IDs de usuário e grupo. Sendo assim, um usuário normal não poderia mudarpasswd, já que seria muito arriscado conceder a todos os usuários acesso direto a estearquivo. Uma possível solução para esse problema é o mecanismo setuid. O setuid(definir ID do usuário) é um atributo de arquivo especial que instrui o sistema a executarprogramas marcados adequadamente com um ID de usuário específico. Considere ocomando 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 permissão do usuário.Por meio do setuid bit, todos os usuários iniciando o comando passwd o executamcomo root.

5.1.2 setgid BitO setuid bit se aplica a usuários. Entretanto, existe também uma propriedade equivalentepara grupos: o setgid bit. Um programa para o qual esse bit foi definido é executadocom o ID do grupo no qual ele foi gravado, independentemente do usuário que iniciouo programa. No entanto, em um diretório com o setgid bit, todos os arquivos e diretórioscriados recentemente são atribuídos ao grupo ao qual o diretório pertence. Considereo seguinte diretório 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 permissão do usuário.O proprietário do diretório e membros do grupoarchive poderão acessar este diretório.Os usuários que não são membros deste grupo são “mapeados” para o grupo respectivo.O ID de grupo efetivo de todos os arquivos gravados será archive. Por exemplo, umprograma de backup que é executado com o ID de grupo archive é capaz de acessareste diretório mesmo sem privilégios de root.

5.1.3 Sticky BitTambém existe o sticky bit. Existe uma diferença caso ele pertença a um programaexecutável ou a um diretório. Se ele pertencer a um programa, qualquer arquivo marcadodessa forma será carregado na memória RAM a fim de evitar a necessidade de obtê-lono disco rígido toda vez que for usado. Esse atributo é usado raramente, pois os discos

148 Referência

Page 149: Reference Pt BR

rígidos modernos são muito rápidos. Se este bit estiver designado a um diretório, eleimpedirá que usuários apaguem arquivos de outros usuários. Exemplos típicos incluemos diretórios /tmp e /var/tmp:drwxrwxrwt 2 root root 1160 2002-11-19 17:15 /tmp

5.2 Vantagens das ACLsTradicionalmente, três conjuntos de permissões são definidos para cada objeto dearquivo em um sistema Linux. Esses conjuntos incluem as permissões de leitura (r),gravação (w) e execução (x) para cada um dos três tipos de usuários: o proprietário doarquivo, o grupo e os outros usuários. Além disso, é possível definir o set user id, o setgroup id e o sticky bit. Este conceito simples é completamente adequado para a maioriados casos práticos. Porém, para os cenários mais complexos ou aplicativos avançados,os administradores de sistema tiveram que usar anteriormente várias estratégias parase esquivar das limitações do conceito tradicional de permissão.

As ACLs podem ser usadas como extensão do conceito tradicional de permissão paraarquivos. Elas admitem a atribuição de permissões a usuários individuais ou a grupos,mesmo que eles não correspondam ao proprietário original ou ao grupo proprietário.As listas de controle de acesso são um recurso do kernel do Linux e são atualmentesuportadas por ReiserFS, Ext2, Ext3, JFS e XFS. Com as ACLs, cenários complexospodem ser realizados sem a implementação de modelos de permissão complexos nonível do aplicativo.

As vantagens das ACLs ficam evidentes quando você substitui um servidor Windowspor um servidor Linux. Algumas das estações de trabalho conectadas podem continuarem execução no Windows, mesmo após a migração. O sistema Linux oferece serviçosde arquivo e impressão para os clientes Windows com Samba. Com o suporte do Sambaàs listas de controle de acesso, as permissões de usuário podem ser configuradas emservidores Linux e Windows com uma interface gráfica do usuário (somente WindowsNT e posterior). Com o winbindd, parte da suíte do samba, é possível até mesmoatribuir permissões a usuários que existem somente no domínio do Windows semnenhuma conta no servidor Linux.

Listas de controle de acesso no Linux 149

Page 150: Reference Pt BR

5.3 Definiçõesclasse de usuário

O conceito convencional de permissão POSIX utiliza três classes de usuários paraatribuir permissões no sistema de arquivos: o proprietário, o grupo proprietário eos outros usuários. Três bits de permissões podem ser definidos para cada classede usuário, concedendo permissão de leitura (r), gravação (w) e execução (x).

ACL de acessoAs permissões de acesso de usuário e grupo para todos os tipos de objetos Sistemade arquivos (arquivos e diretórios) são determinadas através das ACLs de acesso.

ACL padrãoAs ACLs padrão podem ser aplicadas somente a diretórios. Elas determinam aspermissões que um objeto Sistema de arquivos herda de seu diretório pai quandoé criado.

entrada de ACLCada ACL consiste em um conjunto de entradas de ACL. Uma entrada de ACLcontém um tipo, um qualificador para o usuário ou grupo ao qual a entrada se referee um conjunto de permissões. Para alguns tipos de entrada, o qualificador para ogrupo ou usuários é indefinido.

5.4 Gerenciando ACLsA Tabela 5.1, “Tipos de entrada de ACL” (p 151) resume os seis tipos possíveis deentradas de ACL, cada um definindo permissões para um usuário ou um grupo deusuários. A entrada proprietário define as permissões do usuário proprietário do arquivoou diretório. A entrada grupo proprietário define as permissões do grupo proprietáriodo arquivo. O superusuário pode mudar o proprietário ou o grupo proprietário comchown ou chgrp. Neste caso, as entradas de proprietário e grupo proprietário referem-se ao novo usuário e grupo proprietário. Cada entrada usuário nomeado define aspermissões do usuário especificado no campo qualificador da entrada. Cada entradagrupo nomeado define as permissões do grupo especificado no campo qualificador daentrada. Somente as entradas usuário nomeado e grupo nomeado possuem um campoqualificador que não está vazio. A entrada outros define as permissões de todos osoutros usuários.

150 Referência

Page 151: Reference Pt BR

A entrada máscara limita ainda mais as permissões concedidas pelas entradas usuárionomeado, grupo nomeado e grupo proprietário, pois define quais das permissões nessasentradas são efetivas e quais estão mascaradas. Se existirem permissões em uma dasentradas mencionadas, assim como na máscara, elas serão efetivas. As permissõescontidas somente na máscara ou somente na entrada real não são efetivas, significandoque as permissões não são concedidas. Todas as permissões definidas nas entradasproprietário e grupo proprietário são sempre efetivas. O exemplo na Tabela 5.2,“Mascarando permissões de acesso” (p 151) demonstra este mecanismo.

Existem duas classes básicas de ACLs. Uma ACLmínima contém somente as entradasdos tipos proprietário, grupo proprietário e outros, que correspondem aos bits depermissão convencionais para arquivos e diretórios. Uma ACL estendida vai além disso.Ela deve conter uma entrada máscara e pode conter várias entradas dos tipos usuárionomeado e grupo nomeado.

Tabela 5.1 Tipos de entrada de ACL

Formato do textoTipo

user::rwxproprietário

user:name:rwxusuário nomeado

group::rwxgrupo proprietário

group:name:rwxgrupo nomeado

mask::rwxmáscara

other::rwxoutros

Tabela 5.2 Mascarando permissões de acesso

PermissõesFormato do textoTipo de entrada

r-xuser:geeko:r-xusuário nomeado

rw-mask::rw-máscara

Listas de controle de acesso no Linux 151

Page 152: Reference Pt BR

PermissõesFormato do textoTipo de entrada

r--permissões efetivas:

5.4.1 Entradas de ACL e bits de permissãodo modo do arquivo

A Figura 5.1, “ACL mínima: entradas de ACL comparadas a bits de permissão” (p 152)e a Figura 5.2, “ACL estendida: entradas de ACL comparadas a bits de permissão”(p 153) ilustram os dois casos de uma ACL mínima e de uma ACL estendida. As figurassão estruturadas em três blocos: o bloco esquerdo mostra as especificações de tipo dasentradas de ACL, o bloco central mostra um exemplo de ACL e o bloco direito mostraos respectivos bits de permissão, de acordo com o conceito convencional de permissão;por exemplo, como mostrado pelo comando ls -l. Em ambos os casos, as permissõesclasse proprietária são mapeadas para a entrada de ACL proprietário. As permissõesoutra classe são mapeadas para a respectiva entrada de ACL. Porém, o mapeamentodas permissões classe de grupo é diferente nos dois casos.

Figura 5.1 ACL mínima: entradas de ACL comparadas a bits de permissão

No caso de uma ACL mínima (sem máscara), as permissões classe de grupo sãomapeadas para a entrada de ACL grupo proprietário. Você pode ver isso na Figura 5.1,“ACL mínima: entradas de ACL comparadas a bits de permissão” (p 152). No caso deuma ACL estendida (com máscara), as permissões classe de grupo são mapeadas paraa entrada máscara. Você pode ver isso na Figura 5.2, “ACL estendida: entradas de ACLcomparadas a bits de permissão” (p 153).

152 Referência

Page 153: Reference Pt BR

Figura 5.2 ACL estendida: entradas de ACL comparadas a bits de permissão

Este método de mapeamento assegura uma interação uniforme de aplicativos, tenhameles suporte a ACL ou não. As permissões de acesso que foram atribuídas através debits de permissão representam o limite superior para todos os outros “ajustes finos”feitos com uma ACL. As mudanças feitas nos bits de permissão são refletidas pela ACLe vice-versa.

5.4.2 Diretório com uma ACL de acessoCom getfacl e setfacl na linha de comando, você pode acessar ACLs. O usodesses comandos é demonstrado no exemplo a seguir.

Antes de criar o diretório, use o comando umask para definir quais permissões deacesso devem ser mascaradas toda vez que um objeto de arquivo for criado. O comandoumask 027 define as permissões ao conceder ao proprietário todas as permissões (0),ao negar o acesso de gravação de grupo (2) e ao não conceder nenhuma permissão aosoutros usuários (7). O comando umask, na verdade, mascara os bits de permissãocorrespondentes ou os desativa. Para obter detalhes, consulte a página de manualcorrespondente a umask.

O comando mkdir meudir cria o diretório meudir com as permissões padrão,como definido por umask. Usels -dl meudir para verificar se todas as permissõesforam atribuídas corretamente. A saída para este exemplo é:drwxr-x--- ... tux project3 ... meudir

Com o comando getfacl meudir, verifique o estado inicial da ACL. Ele forneceinformações como:# file: meudir # owner: tux # group: project3

Listas de controle de acesso no Linux 153

Page 154: Reference Pt BR

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

As primeiras três linhas de saída mostram o nome, o proprietário e o grupo proprietáriodo diretório. As próximas três linhas contêm as três entradas de ACL proprietário, grupoproprietário e outros. Na verdade, no caso desta ACL mínima, o comando getfaclnão produz nenhuma informação que você não pudesse obter com o comando ls.

Modifique a ACL para atribuir permissões de leitura, gravação e execução para umusuário geeko adicional e um grupo mascotes com:setfacl -m user:geeko:rwx,group:mascotes:rwx meudir

A opção -m solicita que setfacl modifique a ACL existente. O argumento a seguirindica as entradas de ACL a serem modificadas (várias entradas são separadas porvírgulas). A parte final especifica o nome do diretório no qual essas modificações devemser 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::---

Além das entradas iniciadas para o usuário geeko e o grupo mascotes, uma entradamáscara foi gerada. A entrada máscara é definida automaticamente para que todas aspermissões sejam efetivas. O comando setfacl adapta automaticamente as entradasmáscara existentes às configurações modificadas, a não ser que você desative esterecurso com -n. máscara define as permissões máximas de acesso efetivas para todasas entradas na classe de grupo. Isso inclui usuário nomeado, grupo nomeado e grupoproprietário. Os bits de permissão de classe de grupo exibidos pelo comando ls -dlmeudir agora correspondem à entrada máscara.drwxrwx---+ ... tux project3 ... meudir

A primeira coluna da saída agora contém um sinal de + extra para indicar que existeuma ACL estendida para esse item.

De acordo com a saída do comando ls, as permissões para a entrada máscara incluemacesso de gravação. Tradicionalmente, esses bits de permissão significariam que ogrupo proprietário (aqui, project3) também teria acesso de gravação no diretório

154 Referência

Page 155: Reference Pt BR

meudir. Porém, as permissões de acesso efetivas para o grupo proprietáriocorrespondem à parte sobreposta das permissões definidas para o grupo proprietário epara a máscara, que é r-x em nosso exemplo (consulte a Tabela 5.2, “Mascarandopermissões de acesso” (p 151)). Em relação às permissões efetivas do grupo proprietáriodo exemplo, nada mudou mesmo após a adição das entradas de ACL.

Edite a entrada máscara com setfacl ou chmod. Por exemplo, use chmod g-wmeudir. O comando ls -dl meudir mostrará:drwxr-x---+ ... tux project3 ... meudir

getfacl meudir fornece a seguinte saída:# 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::---

Após executar o comando chmod para remover a permissão de gravação dos bits classede grupo, a saída do comando ls será suficiente para indicar que os bits máscara devemter mudado de acordo: a permissão de gravação é novamente limitada ao proprietáriode meudir. A saída de getfacl confirma isso. Esta saída inclui um comentário paratodas as entradas nas quais os bits de permissão efetiva não correspondem às permissõesoriginais, porque eles são filtrados de acordo com a entrada máscara. As permissõesoriginais podem ser restauradas a qualquer momento com chmod g+w meudir.

5.4.3 Diretório com uma ACL padrãoOs diretórios podem ter uma ACL padrão, que é um tipo especial de ACL que definepermissões de acesso herdadas pelos objetos no diretório quando são criados. UmaACL padrão afeta subdiretórios e arquivos.

Efeitos em uma ACL padrãoExistem dois modos de passar as permissões de uma ACL padrão do diretório para osseus arquivos e subdiretórios:

Listas de controle de acesso no Linux 155

Page 156: Reference Pt BR

• Um subdiretório herda a ACL padrão do diretório pai como sua ACL padrão ecomo uma ACL de acesso.

• Um arquivo herda a ACL padrão como a sua ACL de acesso.

Todas as chamadas de sistema que criam objetos Sistema de arquivos utilizam umparâmetro mode que define as permissões de acesso para o objeto Sistema de arquivosrecém-criado. Se o diretório pai não tiver uma ACL padrão, os bits de permissão, comodefinidos por umask, serão subtraídos das permissões quando passados pelo parâmetromode, e o resultado será atribuído ao novo objeto. Se existir uma ACL padrão para odiretório pai, os bits de permissão atribuídos ao novo objeto corresponderão à partesobreposta das permissões do parâmetro mode e daqueles definidos na ACL padrão.O comando umask é desconsiderado neste caso.

Aplicação das ACLs padrãoOs três exemplos a seguir mostram as operações principais de diretórios e ACLs padrão:

1. Adicione uma ACL padrão ao diretório meudir existente com:setfacl -d -m group:mascotes:r-x meudir

A opção -d do comando setfacl solicita que setfacl realize as seguintesmodificações (opção -m) na ACL padrão.

Preste bem atenção 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 Referência

Page 157: Reference Pt BR

getfacl retorna a ACL de acesso e a ACL padrão. A ACL padrão é formadapor todas as linhas que começam com default. Embora você tenhasimplesmente executado o comando setfacl com uma entrada para o grupomascotes na ACL padrão, setfacl copiou automaticamente todas as outrasentradas da ACL de acesso para criar uma ACL padrão válida. As ACLs padrãonão têm efeito imediato nas permissões de acesso. Elas apenas surgem quandoos objetos Sistema de arquivos são criados. Esses novos objetos herdampermissões somente da ACL padrão de seu diretório pai.

2. No próximo exemplo, use mkdir para criar um subdiretório em meudir, queherda a ACL padrão.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 subdiretório meusubdir recém-criado tem permissões daACL padrão do diretório pai. A ACL de acesso de meusubdir é um reflexoexato da ACL padrão de meudir. A ACL padrão que este diretório transmitirápara os seus objetos subordinados também é a mesma.

3. Use o comandotouch para criar um arquivo no diretóriomeudir, por exemplo,touch meudir/meuarq. O comandols -l meudir/meuarqmostrará:-rw-r-----+ ... tux project3 ... meudir/meuarq

O resultado de getfacl meudir/meuarq será:# file: meudir/meuarq # owner: tux # group: project3 user::rw- group::r-x # effective:r-- group:mascotes:r-x # effective:r--

Listas de controle de acesso no Linux 157

Page 158: Reference Pt BR

mask::r-- other::---

touch usa um mode com o valor 0666 quando cria novos arquivos, o quesignifica que os arquivos são criados com permissões de leitura e gravação paratodas as classes de usuários, desde que não existam outras restrições em umaskou na ACL padrão (consulte “Efeitos em uma ACL padrão” (p 155)). Na verdade,isto significa que todas as permissões de acesso não contidas no valor mode sãoremovidas de suas respectivas entradas de ACL. Embora nenhuma permissãotenha sido removida da entrada de ACL da classe de grupo, a entrada máscarafoi modificada para mascarar permissões não definidas em mode.

Este método assegura uma interação uniforme de aplicativos, como compiladores,com as ACLs. Você pode criar arquivos com permissões de acesso restritas emarcá-los como executáveis. O mecanismo mask garante que os usuários egrupos corretos poderão executá-los como desejado.

5.4.4 Algoritmo de verificação da ACLUm algoritmo de verificação é aplicado antes que qualquer processo ou aplicativoreceba acesso a um objeto Sistema de arquivos protegido por ACL. Como regra básica,as entradas de ACL são examinadas na seguinte seqüência: proprietário, usuárionomeado, grupo proprietário ou grupo nomeado e outros. O acesso é gerenciado deacordo com a entrada que melhor se adequar ao processo. Permissões não sãocumulativas.

A situação será mais complicada se um processo pertencer a mais de um grupo e precisarse adaptar a várias entradas de grupo. Uma entrada é selecionada aleatoriamente dasentradas adequadas com as permissões necessárias. Não importa qual das entradasaciona o resultado final “acesso concedido”. Do mesmo modo, se nenhuma das entradasadequadas de grupo contiver as permissões necessárias, uma entrada selecionadaaleatoriamente acionará o resultado final “acesso negado”.

5.5 Suporte a ACL em aplicativosAs ACLs podem ser usadas para implementar cenários de permissão complexos quesatisfaçam os requisitos dos aplicativos modernos. O conceito tradicional de permissão

158 Referência

Page 159: Reference Pt BR

e as ACLs podem ser combinados de maneira inteligente. Os comandos de arquivobásicos (cp, mv, ls etc.) suportam ACLs, assim como o Samba e o Konqueror.

Infelizmente, muitos editores e gerenciadores de arquivos ainda não possuem suportea ACL. Quando se copia arquivos com o Emacs, por exemplo, as ACLs desses arquivossão perdidas. Quando se modifica arquivos com um editor, as ACLs dos arquivos àsvezes são mantidas, outras vezes não, dependendo do modo de backup do editor usado.Se o editor gravar as mudanças no arquivo original, a ACL de acesso será mantida. Seo editor gravar o conteúdo atualizado em um novo arquivo renomeado posteriormentecom o antigo nome de arquivo, as ACLs poderão ser perdidas, a não ser que o editorsuporte as ACLs. Não existe atualmente nenhum aplicativo de backup que mantenhaACLs, exceto o star archiver.

5.6 Mais informaçõesInformações detalhadas sobre as ACLs estão disponíveis emhttp://acl.bestbits.at/. Consulte também as páginas de manual de getfacl(1), acl(5) esetfacl(1).

Listas de controle de acesso no Linux 159

Page 160: Reference Pt BR
Page 161: Reference Pt BR

6Utilitários de monitoramento dosistemaVários programas e mecanismos, alguns dos quais apresentamos aqui, podem ser usadospara examinar o status do sistema. Também são descritos alguns utilitários para otrabalho de rotina, bem como seus parâmetros mais importantes.

Para cada comando apresentado, são fornecidos exemplos das saídas relevantes. Nessesexemplos, a primeira linha é o comando propriamente dito (após o sinal de > ou #). Asomissões são indicadas entre colchetes ([...]) e linhas extensas são reduzidas quandonecessário. Quebras de linhas extensas são indicadas por uma barra invertida (\).# comando -x -y linha de saída 1 linha de saída 2 linha de saída 3 é muito longa, por isso \ quebramos para a linha de saída 3 [...] linha de saída 98 linha de saída 99

Procuramos oferecer descrições curtas para podermos mencionar o maior númeropossível de utilitários. Para obter mais informações sobre os comandos, consulte aspáginas de manual. A maior parte dos comandos também compreende o parâmetro--help, que gera uma breve lista de parâmetros possíveis.

6.1 Lista de arquivos abertos: lsofPara 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:

Utilitários de monitoramento do sistema 161

Page 162: Reference Pt BR

tester@linux:~> lsof -p $$COMMAND PID USER FD TYPE DEVICE SIZE NODE NAMEbash 5552 tester cwd DIR 3,3 1512 117619 /home/testerbash 5552 tester rtd DIR 3,3 584 2 /bash 5552 tester txt REG 3,3 498816 13047 /bin/bashbash 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/passwdbash 5552 tester mem REG 3,3 208464 11867 \ /usr/lib/locale/en_GB.utf8/LC_CTYPEbash 5552 tester mem REG 3,3 882134 11868 \ /usr/lib/locale/en_GB.utf8/LC_COLLATEbash 5552 tester mem REG 3,3 1386997 8837 /lib/libc-2.3.6.sobash 5552 tester mem REG 3,3 13836 8843 /lib/libdl-2.3.6.sobash 5552 tester mem REG 3,3 290856 12204 /lib/libncurses.so.5.5bash 5552 tester mem REG 3,3 26936 13004 /lib/libhistory.so.5.1bash 5552 tester mem REG 3,3 190200 13006 /lib/libreadline.so.5.1bash 5552 tester mem REG 3,3 54 11842 \ /usr/lib/locale/en_GB.utf8/LC_NUMERICbash 5552 tester mem REG 3,3 2375 11663 \ /usr/lib/locale/en_GB.utf8/LC_TIMEbash 5552 tester mem REG 3,3 290 11736 \ /usr/lib/locale/en_GB.utf8/LC_MONETARYbash 5552 tester mem REG 3,3 52 11831 \ /usr/lib/locale/en_GB.utf8/LC_MESSAGES/SYS_LC_MESSAGESbash 5552 tester mem REG 3,3 34 11862 \ /usr/lib/locale/en_GB.utf8/LC_PAPERbash 5552 tester mem REG 3,3 62 11839 \ /usr/lib/locale/en_GB.utf8/LC_NAMEbash 5552 tester mem REG 3,3 127 11664 \ /usr/lib/locale/en_GB.utf8/LC_ADDRESSbash 5552 tester mem REG 3,3 56 11735 \ /usr/lib/locale/en_GB.utf8/LC_TELEPHONEbash 5552 tester mem REG 3,3 23 11866 \ /usr/lib/locale/en_GB.utf8/LC_MEASUREMENTbash 5552 tester mem REG 3,3 21544 9109 \ /usr/lib/gconv/gconv-modules.cachebash 5552 tester mem REG 3,3 366 9720 \ /usr/lib/locale/en_GB.utf8/LC_IDENTIFICATIONbash 5552 tester mem REG 3,3 97165 8828 /lib/ld-2.3.6.sobash 5552 tester 0u CHR 136,5 7 /dev/pts/5bash 5552 tester 1u CHR 136,5 7 /dev/pts/5bash 5552 tester 2u CHR 136,5 7 /dev/pts/5bash 5552 tester 255u CHR 136,5 7 /dev/pts/5

Foi usada a variável de shell especial $$, cujo valor é o ID do processo do shell.

O comando lsof lista todos os arquivos atualmente abertos quando usado comquaisquer outros parâmetros. Como há milhares de arquivos abertos, raramente é útillistá-los. No entanto, a lista de todos os arquivos pode ser combinada com funções de

162 Referência

Page 163: Reference Pt BR

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

6.2 Arquivos de acesso do usuário:fuser

Pode ser útil determinar os processos ou usuários que estão acessando atualmentedeterminados arquivos. Suponha, por exemplo, que você queira desmontar um sistemade arquivos montado em /mnt. unmount retorna "device is busy" (dispositivoocupado). O comando fuser pode ser usado para determinar os processos que estãoacessando o dispositivo:tester@linux:~> fuser -v /mnt/*

USER PID ACCESS COMMAND/mnt/notes.txt tester 26597 f.... less

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

6.3 Propriedades de arquivo: statO comando stat exibe propriedades de arquivo:tester@linux:~> stat /etc/profile File: `/etc/profile' Size: 7930 Blocks: 16 IO Block: 4096 regular fileDevice: 303h/771d Inode: 40657 Links: 1

Utilitários de monitoramento do sistema 163

Page 164: Reference Pt BR

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

O parâmetro--filesystem produz detalhes das propriedades do sistema de arquivosno qual o arquivo específico está localizado:tester@linux:~> stat /etc/profile --filesystem File: "/etc/profile" ID: 0 Namelen: 255 Type: reiserfsBlock size: 4096 Fundamental block size: 4096Blocks: Total: 2622526 Free: 1809771 Available: 1809771Inodes: Total: 0 Free: 0

6.4 Dispositivos USB: lsusbO comando lsusb lista todos os dispositivos USB. Com a opção -v, imprima umalista mais detalhada. As informações detalhadas são lidas do diretório /proc/bus/usb/. A seguir está a saída de lsusb com os seguintes dispositivos USB anexados:hub, dispositivo de memória, disco rígido e um mouse.linux:/ # lsusbBus 004 Device 007: ID 0ea0:2168 Ours Technology, Inc. Transcend JetFlash \ 2.0 / Astone USB DriveBus 004 Device 006: ID 04b4:6830 Cypress Semiconductor Corp. USB-2.0 IDE \ AdapterBus 004 Device 005: ID 05e3:0605 Genesys Logic, Inc.Bus 004 Device 001: ID 0000:0000Bus 003 Device 001: ID 0000:0000Bus 002 Device 001: ID 0000:0000Bus 001 Device 005: ID 046d:c012 Logitech, Inc. Optical MouseBus 001 Device 001: ID 0000:0000

6.5 Informações sobre um dispositivoSCSI: scsiinfo

O comando scsiinfo lista informações sobre um dispositivo SCSI. Com a opção-l, liste todos os dispositivos SCSI conhecidos pelo sistema (informações semelhantessão obtidas com o comando lsscsi). Veja abaixo a saída de scsiinfo -i/dev/sda, que fornece informações sobre o disco rígido. A opção -a fornece aindamais informações.

164 Referência

Page 165: Reference Pt BR

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

A opção -d exibe uma lista de defeitos com duas tabelas de blocos defeituosos de umdisco rígido: primeiro, o oferecido pelo fornecedor (tabela do fabricante) e, depois, alista de blocos deficientes que apareceu na operação (tabela de crescimento). Se onúmero de entradas da tabela de crescimento aumentar, convém substituir o disco rígido.

6.6 Processos: topO comando top, que é o acrônimo de "tabela de processos" em inglês, exibe uma listade processos que são atualizados a cada dois segundos. Para finalizar o programa,pressione Q . O parâmetro -n 1 finaliza o programa após uma única exibição da listade processos. Veja abaixo um exemplo da saída do comando top -n 1:tester@linux:~> top -n 1top - 17:06:28 up 2:10, 5 users, load average: 0.00, 0.00, 0.00Tasks: 85 total, 1 running, 83 sleeping, 1 stopped, 0 zombieCpu(s): 5.5% us, 0.8% sy, 0.8% ni, 91.9% id, 1.0% wa, 0.0% hi, 0.0% siMem: 515584k total, 506468k used, 9116k free, 66324k buffersSwap: 658656k total, 0k used, 658656k free, 353328k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 16 0 700 272 236 S 0.0 0.1 0:01.33 init 2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 3 root 10 -5 0 0 0 S 0.0 0.0 0:00.27 events/0

Utilitários de monitoramento do sistema 165

Page 166: Reference Pt BR

4 root 10 -5 0 0 0 S 0.0 0.0 0:00.01 khelper 5 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread 11 root 10 -5 0 0 0 S 0.0 0.0 0:00.05 kblockd/0 12 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid 472 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pdflush 473 root 15 0 0 0 0 S 0.0 0.0 0:00.06 pdflush 475 root 11 -5 0 0 0 S 0.0 0.0 0:00.00 aio/0 474 root 15 0 0 0 0 S 0.0 0.0 0:00.07 kswapd0 681 root 10 -5 0 0 0 S 0.0 0.0 0:00.01 kseriod 839 root 10 -5 0 0 0 S 0.0 0.0 0:00.02 reiserfs/0 923 root 13 -4 1712 552 344 S 0.0 0.1 0:00.67 udevd 1343 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khubd 1587 root 20 0 0 0 0 S 0.0 0.0 0:00.00 shpchpd_event 1746 root 15 0 0 0 0 S 0.0 0.0 0:00.00 w1_control 1752 root 15 0 0 0 0 S 0.0 0.0 0:00.00 w1_bus_master1 2151 root 16 0 1464 496 416 S 0.0 0.1 0:00.00 acpid 2165 messageb 16 0 3340 1048 792 S 0.0 0.2 0:00.64 dbus-daemon 2166 root 15 0 1840 752 556 S 0.0 0.1 0:00.01 syslog-ng 2171 root 16 0 1600 516 320 S 0.0 0.1 0:00.00 klogd 2235 root 15 0 1736 800 652 S 0.0 0.2 0:00.10 resmgrd 2289 root 16 0 4192 2852 1444 S 0.0 0.6 0:02.05 hald 2403 root 23 0 1756 600 524 S 0.0 0.1 0:00.00 hald-addon-acpi 2709 root 19 0 2668 1076 944 S 0.0 0.2 0:00.00 NetworkManagerD 2714 root 16 0 1756 648 564 S 0.0 0.1 0:00.56 hald-addon-stor

Se você pressionar F enquanto o comando top estiver em execução, aparecerá ummenu no qual será possível mudar o formato da saída.

O parâmetro-U UIDmonitora apenas os processos associados a um usuário específico.Substitua UID pelo ID do usuário. O comando top -U `id -u` retorna o UID dousuário na base do nome do usuário e exibe seus processos.

6.7 Lista de processos: psO comando ps gera uma lista de processos. A maioria dos parâmetros deve ser escritasem o sinal de subtração. Consulte ps --help para obter uma ajuda breve ou a páginade manual para ajuda ampla.

Para listar todos os processos com informações de linha de comando e usuário, use psaxu:tester@linux:~> ps axuUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.0 696 272 ? S 12:59 0:01 init [5]root 2 0.0 0.0 0 0 ? SN 12:59 0:00 [ksoftirqd/0]root 3 0.0 0.0 0 0 ? S< 12:59 0:00 [events/0]

166 Referência

Page 167: Reference Pt BR

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

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

A lista de processos pode ser formatada de acordo com suas necessidades. A opção -Lretorna uma lista com todas as palavras-chave. Digite o comando a seguir para geraruma lista de todos os processos classificados conforme o uso de memória: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

Utilitários de monitoramento do sistema 167

Page 168: Reference Pt BR

6.8 Árvore de processos: pstreeO comando pstree gera uma lista de processos na forma de árvore:tester@linux:~> pstreeinit-+-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 parâmetro -p adiciona o ID do processo a um nome determinado. Para que as linhasde comando também sejam exibidas, use o parâmetro -a:

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

168 Referência

Page 169: Reference Pt BR

Se algum usuário do sistema tiver efetuado login remotamente, o parâmetro -fmostraráos computadores dos quais ele estabeleceu a conexão.

6.10 Uso da memória: freeO utilitário free examina o uso da RAM. São mostrados detalhes da memória livre eda memória utilizada (em áreas de troca):ester@linux:~> free total used free shared buffers cachedMem: 515584 501704 13880 0 73040 334592-/+ buffers/cache: 94072 421512Swap: 658656 0 658656

As opções -b,-k,-m,-g mostram a saída em bytes, KB, MB ou GB, respectivamente.O parâmetro -d delay assegura que a exibição seja atualizada a cada atrasosegundos. Por exemplo, free -d 1.5 produz uma atualização a cada 1,5 segundo.

6.11 Buffer do anel de kernel: dmesgO kernel Linux mantém certas mensagens em um buffer em anel. Para ver essasmensagens, digite o comando dmesg:$ dmesg[...]end_request: I/O error, dev fd0, sector 0subfs: unsuccessful attempt to mount media (256)e100: eth0: e100_watchdog: link up, 100Mbps, half-duplexNET: Registered protocol family 17IA-32 Microcode Update Driver: v1.14 <[email protected]>microcode: CPU0 updated from revision 0xe to 0x2e, date = 08112004IA-32 Microcode Update Driver v1.14 unregisteredbootsplash: status on console 0 changed to onNET: Registered protocol family 10Disabled Privacy Extensions on device c0326ea0(lo)IPv6 over IPv4 tunneling driverpowernow: This module only works with AMD K7 CPUsbootsplash: status on console 0 changed to on

Eventos mais antigos são registrados nos arquivos /var/log/messages e /var/log/warn.

Utilitários de monitoramento do sistema 169

Page 170: Reference Pt BR

6.12 Sistemas de arquivos e suautilização: mount, df e du

O comando mountmostra o sistema de arquivos (dispositivo e tipo) que está montadoe 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 informações sobre a utilização total dos sistemas de arquivos com o comandodf. O parâmetro -h (ou --human-readable) transforma a saída em um formatointeligível para o usuário comum.tester@linux:~> df -hFilesystem Size Used Avail Use% Mounted on/dev/hda3 11G 3.2G 6.9G 32% /udev 252M 104K 252M 1% /dev/dev/hda1 16M 6.6M 7.8M 46% /boot/dev/hda4 27G 34M 27G 1% /local

Exiba o tamanho total de todos os arquivos de um determinado diretório e seussubdiretórios com o comando du. O parâmetro -s suprime a saída de informaçõesdetalhadas. -h novamente transforma os dados em forma legível:tester@linux:~> du -sh /local1.7M /local

6.13 O sistema de arquivos /procO sistema de arquivos /proc é um pseudossistema de arquivos no qual o kernel reservainformações importantes na forma de arquivos virtuais. Por exemplo, exiba o tipo deCPU com este comando:ester@linux:~> cat /proc/cpuinfoprocessor : 0vendor_id : AuthenticAMD

170 Referência

Page 171: Reference Pt BR

cpu family : 6model : 8model name : AMD Athlon(tm) XP 2400+stepping : 1cpu MHz : 2009.343cache size : 256 KBfdiv_bug : no[...]

A alocação e o uso de interrupções 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 ide1NMI: 0LOC: 0ERR: 0MIS: 0

Alguns arquivos importantes e seu conteúdo:

/proc/devicesdispositivos disponíveis

/proc/modulesmódulos kernel carregados

/proc/cmdlinelinha de comando do kernel

/proc/meminfodetalhes sobre a utilização da memória

/proc/config.gzarquivo de configuração gzip compactado do kernel executado atualmente

Utilitários de monitoramento do sistema 171

Page 172: Reference Pt BR

Mais informações estão disponíveis no arquivo de texto /usr/src/linux/Documentation/filesystems/proc.txt. Você pode encontrar informaçõessobre os processos em execução nos diretórios /proc/NNN, onde NNN é o ID doprocesso (PID) relevante. Cada processo pode encontrar suas próprias característicasem /proc/self/:tester@linux:~> ls -l /proc/selflrwxrwxrwx 1 root root 64 2006-01-09 13:03 /proc/self -> 5356tester@linux:~> ls -l /proc/self/total 0dr-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 cmdlinelrwxrwxrwx 1 tester users 0 2006-01-09 17:04 cwd -> /home/tester-r-------- 1 tester users 0 2006-01-09 17:04 environlrwxrwxrwx 1 tester users 0 2006-01-09 17:04 exe -> /bin/lsdr-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_scorelrwxrwxrwx 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 statusdr-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 atribuição de endereço de executáveis e bibliotecas pode ser encontrada no arquivomaps:tester@linux:~> cat /proc/self/maps08048000-0804c000 r-xp 00000000 03:03 17753 /bin/cat0804c000-0804d000 rw-p 00004000 03:03 17753 /bin/cat0804d000-0806e000 rw-p 0804d000 00:00 0 [heap]b7d27000-b7d5a000 r--p 00000000 03:03 11867 \ /usr/lib/locale/en_GB.utf8/LC_CTYPEb7d5a000-b7e32000 r--p 00000000 03:03 11868 \ /usr/lib/locale/en_GB.utf8/LC_COLLATEb7e32000-b7e33000 rw-p b7e32000 00:00 0b7e33000-b7f45000 r-xp 00000000 03:03 8837 /lib/libc-2.3.6.sob7f45000-b7f46000 r--p 00112000 03:03 8837 /lib/libc-2.3.6.sob7f46000-b7f48000 rw-p 00113000 03:03 8837 /lib/libc-2.3.6.sob7f48000-b7f4c000 rw-p b7f48000 00:00 0b7f52000-b7f53000 r--p 00000000 03:03 11842 \ /usr/lib/locale/en_GB.utf8/LC_NUMERIC[...]

172 Referência

Page 173: Reference Pt BR

b7f5b000-b7f61000 r--s 00000000 03:03 9109 \ /usr/lib/gconv/gconv-modules.cacheb7f61000-b7f62000 r--p 00000000 03:03 9720 \ /usr/lib/locale/en_GB.utf8/LC_IDENTIFICATIONb7f62000-b7f76000 r-xp 00000000 03:03 8828 /lib/ld-2.3.6.sob7f76000-b7f78000 rw-p 00013000 03:03 8828 /lib/ld-2.3.6.sobfd61000-bfd76000 rw-p bfd61000 00:00 0 [stack]ffffe000-fffff000 ---p 00000000 00:00 0 [vdso]

6.13.1 procinfo

Informações importantes do sistema de arquivos /proc são resumidas pelo comandoprocinfo: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: Total Used Free Shared Buffers Mem: 515584 509472 6112 0 73024 Swap: 658656 0 658656

Bootup: Mon Jan 9 12:59:08 2006 Load average: 0.10 0.04 0.05 1/86 5406

user : 00:02:070,98 0,8% page in : 442638 disk 1: 20125r 13476w nice : 00:02:200,91 0,9% page out: 134950 system: 0:00:42.93 0.3% page act: 70577 IOwait: 0:01:25.40 0.6% page dea: 11696 hw irq: 0:00:08.94 0.1% page flt: 1423622 sw irq: 00:00:010,29 0.0% swap in : 0 idle : 04:06:300,54 97,3% swap out: 0 uptime: 4:13:20.72 context : 3813145

irq 0: 3799268 timer irq 8: 2 rtc irq 1: 130 i8042 irq 9: 1 acpi, uhci_hcd:usb1,

irq 2: 0 cascade [4] irq 10: 0 uhci_hcd:usb3 irq 3: 8 irq 11: 75905 uhci_hcd:usb2, eth0

irq 4: 8 irq 12: 101150 i8042 irq 5: 564535 Intel 82801DB-ICH4 irq 14: 33733 ide0 irq 6: 9 irq 15: 157045 ide1 irq 7: 1 parport0 [3]

Para ver todas as informações, use o parâmetro-a. O parâmetro-nN produz atualizaçõesdas informações a cada N segundos. Nesse caso, termine o programa pressionando Q .

Utilitários de monitoramento do sistema 173

Page 174: Reference Pt BR

Por padrão, são exibidos valores cumulativos. O parâmetro -d produz valoresdiferenciais. procinfo -dn5 exibe os valores modificados nos últimos cincosegundos:

6.14 Recursos PCI: lspciO comando lspci lista os recursos PCI:linux:~ # lspci00: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 Referência

Page 175: Reference Pt BR

Informações sobre a resolução de nomes do dispositivo podem ser obtidas do arquivo/usr/share/pci.ids. Os IDs do PCI não listados nesse arquivo são marcadoscomo “Unknown device” (arquivo desconhecido).

O parâmetro -w produz todas as informações que poderiam ser consultadas peloprograma. Para ver valores puramente numéricos, use o parâmetro -n.

6.15 Chamadas do sistema de umaexecução de programa: strace

O utilitário strace permite rastrear todas as chamadas do sistema de um processo emexecução. Digite o comando normalmente, adicionando strace ao início da linha:tester@linux:~> strace lsexecve("/bin/ls", ["ls"], [/* 61 vars */]) = 0uname({sys="Linux", node="linux", ...}) = 0brk(0) = 0x805c000access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)open("/etc/ld.so.cache", O_RDONLY) = 3fstat64(3, {st_mode=S_IFREG|0644, st_size=89696, ...}) = 0mmap2(NULL, 89696, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7ef2000close(3) = 0open("/lib/librt.so.1", O_RDONLY) = 3read(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) \ = 512fstat64(3, {st_mode=S_IFREG|0755, st_size=36659, ...}) = 0[...]stat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) \ = 0xb7ca7000write(1, "bin Desktop Documents music\tM"..., 55bin Desktop Documents \ \ music Music public_html tmp) = 55close(1) = 0munmap(0xb7ca7000, 4096) = 0exit_group(0) = ?

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

Utilitários de monitoramento do sistema 175

Page 176: Reference Pt BR

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

Para rastrear todos os processos-filho, use o parâmetro-f. O comportamento e o formatoda saída de strace podem ser amplamente controlados. Para obter informações, consulteman strace.

6.16 Chamadas da biblioteca de umaexecução de programa: ltrace

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

6.17 Especificação da bibliotecanecessária: ldd

O comando ldd pode ser usado para descobrir as bibliotecas que carregariam oexecutável dinâmico 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 Referência

Page 177: Reference Pt BR

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

Binários estáticos não precisam de bibliotecas dinâmicas:tester@linux:~> ldd /bin/sash not a dynamic executabletester@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 Informações adicionais sobrebinários ELF

O conteúdo dos binários pode ser lido com o utilitário readelf. Isso também funcionacom arquivos ELF criados para outras arquiteturas de hardware:tester@linux:~> readelf --file-header /bin/lsELF 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 Comunicação entre processos:ipcs

O comando ipcs produz uma lista dos recursos IPC em uso:

Utilitários de monitoramento do sistema 177

Page 178: Reference Pt BR

------ Shared Memory Segments --------key shmid owner perms bytes nattch status0x00000000 58261504 tester 600 393216 2 dest0x00000000 58294273 tester 600 196608 2 dest0x00000000 83886083 tester 666 43264 20x00000000 83951622 tester 666 192000 20x00000000 83984391 tester 666 282464 20x00000000 84738056 root 644 151552 2 dest

------ Semaphore Arrays --------key semid owner perms nsems0x4d038abf 0 tester 600 8

------ Message Queues --------key msqid owner perms used-bytes messages

6.20 Medição do tempo com timeO tempo usado pelos comandos pode ser determinado com o utilitário time. Esseutilitário está disponível em duas versões: como shell interno e como programa(/usr/bin/time).tester@linux:~> time find . > /dev/null

real 0m4.051suser 0m0.042ssys 0m0.205s

178 Referência

Page 179: Reference Pt BR

Parte 3. Sistema

Page 180: Reference Pt BR
Page 181: Reference Pt BR

7Aplicativos de 32 bits e 64 bits emum ambiente de sistema de 64 bitsO SUSE Linux está disponível para várias plataformas de 64 bits. Isso não significanecessariamente que todos os aplicativos incluídos tenham sido transpostos paraplataformas de 64 bits. O SUSE Linux suporta o uso de aplicativos de 32 bits em umambiente de sistema de 64 bits. Este capítulo oferece uma breve visão geral de comoeste suporte é implementado em plataformas Linux de 64 bits. Ele explica comoaplicativos de 32 bits são executados (suporte do tempo de execução) e como aplicativosde 32 bits devem ser compilados para que possam ser executados em ambientes desistema de 32 bits e 64 bits. Além disso, você vai encontrar informações sobre API doKernel e uma explicação sobre como aplicativos de 32 bits podem ser executados comum kernel de 64 bits.

O SUSE Linux para as plataformas de 64 bits AMD64 e EM64T foi criado para queos aplicativos de 32 bits existentes sejam executados no ambiente de 64 bits “semnecessidade de mudanças”. Este suporte significa que você pode continuar a usar osaplicativos de 32 bits de sua preferência sem esperar que uma porta de 64 bitscorrespondente se torne disponível.

7.1 Suporte ao tempo de execuçãoIMPORTANTE: Conflitos entre versões de aplicativos

Se um aplicativo estiver disponível para ambientes de 32 bits e de 64 bits, ainstalação paralela das duas versões provavelmente resultará em problemas.Em tais casos, opte pela instalação e pelo uso de uma das duas versões.

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

Page 182: Reference Pt BR

Para que os aplicativos sejam executados corretamente, cada um deles requer umavariedade de bibliotecas. Infelizmente, os nomes das versões de 32 bits e 64 bits dasbibliotecas são idênticos. Eles devem ser diferenciados uns dos outros de outra forma.

Para obter compatibilidade com a versão de 32 bits, as bibliotecas são armazenadas nomesmo local no sistema e no ambiente de 32 bits. A versão de 32 bits de libc.so.6está 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 estão localizados emdiretórios denominados lib64. Os arquivos de objetos de 64 bits que normalmentesão encontrados em /lib, /usr/lib e usr/X11R6/lib agora estão em /lib64,/usr/lib64 e /usr/X11R6/lib64. Isso significa que há espaço para bibliotecasde 32 bits em /lib /usr/lib e /usr/X11R6/lib, de forma que os nomes dearquivo das duas versões possam permanecer inalterados.

Nenhum subdiretório dos diretórios de objetos cujo conteúdo de dados não dependa dotamanho da palavra será movido. Por exemplo, as fontes X11 ainda se encontram nolocal habitual, em /usr/X11R6/lib/X11/fonts. Este esquema está emconformidade com a LSB (Linux Standards Base - Base de padrões Linux) e com oFHS (File System Hierarchy Standard - Padrão de hierarquia de sistema de arquivos).

7.2 Desenvolvimento de softwareUma cadeia de ferramentas de desenvolvimento biarch permite a geração de objetosde 32 bits e 64 bits. O padrão é compilar objetos de 64 bits. É possível gerar objetos de32 bits usando sinalizadores especiais. Para GCC, o sinalizador especial é -m32.

Todos os arquivos de cabeçalho devem ser escritos em um formato independente dearquitetura. As bibliotecas de 32 bits e 64 bits instaladas devem ter uma API (applicationprogramming interface - interface de programação de aplicativo) que corresponda aosarquivos de cabeçalho instalados. O ambiente SUSE normal é projetado de acordo comesse princípio. No caso de bibliotecas atualizadas manualmente, solucione essesproblemas por conta própria.

182 Referência

Page 183: Reference Pt BR

7.3 Compilação de software emplataformas biarch

Para desenvolver binários para outra arquitetura em uma arquitetura biarch, as respectivasbibliotecas da segunda arquitetura devem ser instaladas adicionalmente. Esses pacotessão chamados derpmname-32bit. Você também precisará dos respectivos cabeçalhose bibliotecas dos pacotes rpmname-devel e das bibliotecas de desenvolvimento paraa segunda arquitetura de rpmname-devel-32bit.

A maioria dos programas de código-fonte aberto usa uma configuração de programabaseada em autoconf. Para usar o autoconf com o objetivo de configurar umprograma para a segunda arquitetura, sobregrave as configurações do compilador normale do linker de autocong executando o scriptconfigure com variáveis de ambienteadicionais.

Os exemplos a seguir se referem a um sistema AMD64 ou EM64T com x86 comosegunda 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 subdiretório 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

Page 184: Reference Pt BR

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

Nem todas essas variáveis são necessárias para todos os programas. Adapte-as para orespectivo programa.CC="gcc -m64" \LDFLAGS="-L/usr/lib64;" \ .configure \ --prefix=/usr \ --libdir=/usr/lib64makemake install

7.4 Especificações do kernelOs kernels de 64 bits para AMD64 e EM64T oferecem uma ABI (application binaryinterface - interface binária de aplicativo) de kernel de 32 bits e de 64 bits. A de 64 bitsé idêntica à ABI do kernel de 32 bits correspondente. Isso significa que o aplicativo de32 bits pode se comunicar com o kernel de 64 bits da mesma forma que com o kernelde 32 bits.

A emulação de 32 bits de chamadas do sistema para um kernel de 64 bits não suportavárias APIs usadas pelos programas do sistema. Isso depende da plataforma. Por estarazão, alguns aplicativos, como lspci ou os programas de administração LVM, devemser compilados como programas de 64 bits para funcionar adequadamente.

Um kernel de 64 bits só pode carregar módulos de kernel de 64 bits especificamentecompilados para esse kernel. Não é possível usar módulos de kernel de 32 bits.

DICA

Alguns aplicativos requerem módulos separados carregáveis pelo kernel. Sevocê pretende usar um aplicativo de 32 bits desse tipo em um ambiente desistema de 64 bits, entre em contato com o provedor do aplicativo e do SUSEpara verificar se a versão de 64 bits do módulo carregável pelo kernel e a versãocompilada de 32 bits da API do kernel estão disponíveis para esse módulo.

184 Referência

Page 185: Reference Pt BR

8Inicializando e configurando umsistema LinuxA inicialização de um sistema Linux envolve vários componentes. Este capítulo descreveos princípios subjacentes e realça os componentes envolvidos, além de abordar o conceitode runlevels e a configuração do sistema SUSE com osysconfig.

8.1 Processo de inicialização do LinuxO processo de inicialização do Linux consiste em vários estágios, e cada um deles érepresentado por outro componente. A lista a seguir resume o processo de inicializaçãoe apresenta todos os principais componentes envolvidos.

1. BIOS Depois que o computador é desligado, o BIOS inicializa a tela e oteclado e testa a memória principal. Até esse estágio, a máquina não acessanenhuma mídia de armazenamento em massa. Em seguida, as informações sobrea data e o horário atuais e sobre os periféricos mais importantes são carregadasdos valores do CMOS. Quando o primeiro disco rígido e sua geometria sãoreconhecidos, o controle do sistema passa do BIOS para o carregador de boot.

2. Carregador de boot O primeiro setor de dados físico de 512 bytes do primeirodisco rígido é carregado na memória principal e o carregador de boot existenteno início desse setor assume o controle. Os comandos executados pelo carregadorde boot determinam a parte restante do processo de boot. Desse modo, osprimeiros 512 bytes do primeiro disco rígido são chamados de MBR (MasterBoot Record - Registro Mestre de Inicialização). O carregador de boot passa ocontrole para o sistema operacional real, nesse caso, o kernel Linux. Mais

Inicializando e configurando um sistema Linux 185

Page 186: Reference Pt BR

informações sobre o GRUB, o carregador de boot do Linux, podem serencontradas no Capítulo 9, O Carregador de Boot (p 201).

3. Kernel e initramfs Para passar o controle do sistema, o carregador de bootcarrega na memória o kernel e um sistema de arquivos inicial baseado em RAM(initramfs). O conteúdo do ramfs inicial pode ser usado diretamente pelo kernel.O init ramfs contém um pequeno executável chamado init que realiza a montagemdo sistema de arquivos raiz. Em versões anteriores do SUSE Linux, essas tarefaseram realizadas pelo initrd e linuxrc, respectivamente. Para obter maisinformações sobre o initramfs, consulte a Seção 8.1.1, “initramfs” (p 186).

4. init no initramfs Este programa executa todas as ações necessárias paramontar o sistema de arquivos raiz adequado, por exemplo, fornecer afuncionalidade de kernel para o sistema de arquivos e os drivers de dispositivonecessários aos controladores de armazenamento em massa com udev. Uma vezencontrado o sistema de arquivos raiz, ele é verificado quanto a erros e montado.Se esse procedimento for bem-sucedido, o initramfs será limpo e o programainit no sistema de arquivos raiz será executado. Para obter mais informaçõessobre o init, consulte a Seção 8.1.2, “init no initramfs” (p 187). Há maisinformações a respeito do udev no Capítulo 12, Gerenciamento de dispositivode kernel dinâmico com udev (p 261).

5. init O init realiza a inicialização do sistema através de diversos níveis,oferecendo funcionalidades diferentes. Ele é descrito na Seção 8.2, “O processoinit” (p 189).

8.1.1 initramfsinitramfs é um pequeno arquivo cpio que pode ser carregado pelo kernel em um discoRAM. Ele fornece um ambiente Linux mínimo que permite a execução de programasantes da montagem do sistema de arquivos raiz. Esse ambiente é carregado na memóriapelas rotinas de BIOS e não têm requisitos de hardware específicos, além de memóriasuficiente. O initramfs deve sempre fornecer um executável chamado init que deveexecutar o programa init no sistema de arquivos raiz para a continuação do processode boot.

Antes da montagem do sistema de arquivos raiz e a inicialização do sistema operacional,o kernel precisa dos drivers correspondentes para acessar o dispositivo em que o sistemade arquivos raiz está localizado. Esses drivers podem incluir drivers especiais para

186 Referência

Page 187: Reference Pt BR

determinados tipos de unidades de disco rígido ou até drivers de rede para acesso a umsistema de arquivos de rede. Os módulos necessários para o sistema de arquivos raizpodem ser carregados pelo init no initramfs. Após os módulos serem carregados, o udevfornece ao initramfs os dispositivos necessários. O initramfs está disponível durantetodo o processo de boot. Assim, é possível manipular todos os eventos de dispositivogerados durante o boot.

Se você precisar mudar o hardware (discos rígidos) em um sistema instalado e essehardware necessitar da existência de diversos drivers no kernel durante o boot, seránecessário atualizar o initramfs. Para isso, basta chamar o mkinitrd, o que tambémera feito no initrd, predecessor do initramfs. A chamada de mkinitrd sem argumentoscria um initramfs. A chamada de mkinitrd -R cria um initrd. No SUSE Linux, osmódulos a serem carregados são especificados pela variável INITRD_MODULES em/etc/sysconfig/kernel. Após a instalação, essa variável é definidaautomaticamente com o valor correto. Os módulos são carregados na mesma ordemem que são exibidos em INITRD_MODULES. Isso será especialmente importante sevários drivers SCSI forem usados, pois, caso contrário, os nomes dos discos rígidosseriam mudados. Em suma, seria suficiente apenas carregar os drivers necessários paraacessar o sistema de arquivos raiz. Contudo, todos os drivers SCSI necessários àinstalação são carregados por meio do initramfs ou initrd porque o carregamentoposterior poderia ser problemático.

IMPORTANTE: Atualizando o initramfs ou o initrd

O carregador de boot carrega o initramfs ou initrd da mesma maneira que okernel. Não é necessário reinstalar o GRUB após a atualização do initramfs ouinitrd, pois o GRUB procura o arquivo correto no diretório durante ainicialização.

8.1.2 init no initramfsO principal objetivo do init no initramfs é preparar a montagem do sistema de arquivosraiz e o acesso a este. Dependendo da configuração do sistema, o init é responsávelpelas tarefas a seguir.

Carregamento de módulos KernelDependendo da configuração do seu hardware, drivers especiais podem sernecessários para acessar os componentes de hardware do computador (sendo queo componente mais importante é a unidade de disco rígido). Para acessar o sistema

Inicializando e configurando um sistema Linux 187

Page 188: Reference Pt BR

de arquivos raiz final, o kernel precisa carregar os drivers adequados do sistemade arquivos.

Fornecendo arquivos de bloco especiaisPara cada módulo carregado, o kernel gera eventos de dispositivo. O udev gerenciaesses eventos e gera os arquivos especiais de dispositivo necessários em um sistemade arquivos RAM em /dev. Sem esses arquivos especiais, o sistema de arquivosnão estaria acessível.

Gerenciamento de configurações RAID e LVMSe você tiver configurado o sistema para armazenar o sistema de arquivos raiz naRAID ou LVM, o init configurará a LVM ou a RAID para permitir acesso posteriorao sistema de arquivos raiz. Informações sobre a RAID podem ser encontradas naSeção 2.2, “Configuração de RAID de software” (p 63). Informações sobre a LVMpodem ser encontradas na Seção 2.1, “Configuração da LVM” (p 55).

Gerenciamento de conexões de redeSe você tiver configurado o sistema para usar um sistema de arquivos raiz montadoem rede (via NFS), o init deverá ter certeza de que os drivers de rede corretos foramcarregados e de que estejam configurados para permitir acesso ao sistema dearquivos raiz.

Quando o init é chamado durante a primeira inicialização como parte do processo deinstalação, suas tarefas são diferentes daquelas mencionadas anteriormente:

Localização da mídia de instalaçãoQuando o processo de instalação é iniciado, a máquina carrega um kernel deinstalação e um initrd especial com o instalador do YaST proveniente da mídia deinstalação. O instalador do YaST, que é executado em um sistema de arquivosRAM, precisa ter informações sobre a localização da mídia de instalação paraacessá-la e instalar o sistema operacional.

Inicialização do reconhecimento de hardware e carregamento dos módulos kerneladequados

Como mencionado na Seção 8.1.1, “initramfs” (p 186), o processo de boot iniciacom um conjunto mínimo de drivers que pode ser usado com a maioria dasconfigurações de hardware. O init inicia um processo de exploração de hardwareque determina o conjunto de drivers adequado para sua configuração de hardware.Esses valores são posteriormente gravados em INITRD_MODULES no /etc/sysconfig/kernel a fim de habilitar qualquer processo de boot subsequente

188 Referência

Page 189: Reference Pt BR

para usar um initrd personalizado ou em um arquivo /etc/sysconfig/hardware/hwconfig-* se o dispositivo não for necessário durante o processode boot. Durante o processo de instalação, o init carrega esse conjunto de módulos.

Carregamento do sistema de instalação ou do sistema de recuperaçãoDepois que o hardware for reconhecido adequadamente, os drivers adequadosforem carregados e o udev tiver criado os arquivos especiais de dispositivo, o initiniciará o sistema de instalação, que contém o instalador do YaST ou o sistema derecuperação.

Inicialização do YaSTPor fim, o init inicia o YaST que, por sua vez, inicia a instalação do pacote e aconfiguração do sistema.

8.2 O processo initO programa init é o processo com número de ID 1. Ele é responsável pela inicializaçãodo sistema da maneira necessária e, além disso, tem uma função especial. Ele é iniciadodiretamente pelo kernel e resiste ao sinal 9, que normalmente elimina os processos.Todos os outros programas são iniciados diretamente pelo init ou por um de seusprocessos-filho.

O init é configurado centralmente no arquivo /etc/inittab em que os runlevelssão definidos (consulte a Seção 8.2.1, “Runlevels” (p 189)). O arquivo também especificaos serviços e os daemons disponíveis em cada um dos níveis. Dependendo das entradasem /etc/inittab, vários scripts são executados pelo init. Para fins de clareza, essesscripts, chamados scripts init, residem no diretório /etc/init.d (consulte aSeção 8.2.2, “Scripts Init” (p 192)).

Todo o processo de inicialização e encerramento do sistema é mantido pelo init. Desseponto de vista, o kernel pode ser considerado um processo em segundo plano cuja tarefaé manter todos os outros processos e ajustar o horário da CPU e o acesso ao hardware,de acordo com as solicitações de outros programas.

8.2.1 RunlevelsNo Linux, os runlevels definem como o sistema é iniciado e quais serviços estãodisponíveis no sistema em execução. Após a inicialização, o sistema é iniciado conforme

Inicializando e configurando um sistema Linux 189

Page 190: Reference Pt BR

definido em /etc/inittab na linha initdefault. Normalmente, é 3 ou 5.Consulte a Tabela 8.1, “Runlevels disponíveis” (p 190). Como alternativa, é possívelespecificar o runlevel durante a inicialização (no prompt, por exemplo). Os parâmetrosque não forem avaliados diretamente pelo próprio kernel serão passados para o init.

Tabela 8.1 Runlevels disponíveis

DescriçãoRunlevel

Desligamento do sistema0

Modo de usuário único; do prompt de inicialização, somente commapeamento de teclado americano

S

Modo de usuário único1

Modo multiusuário local sem rede remota (NFS, etc.)2

Modo multiusuário completo com rede3

Não usado4

Modo multiusuário completo com rede e gerenciador de vídeo X— KDM, GDM ou XDM

5

Reinicialização do sistema6

IMPORTANTE: Evite o Nível de execução 2 com uma partição montadavia NFS

Você não deverá usar o nível de execução 2 se seu sistema montar uma partiçãocomo /usr através do NFS. O sistema pode comportar-se de forma inesperadase as bibliotecas ou arquivos de programa estiverem ausentes pois o serviçoNFS não está disponível no nível de execução 2 (modo multiusuário local semrede remota).

Para mudar os níveis de execução durante a execução do sistema, digite telinit eo número correspondente como um argumento. Somente o administrador do sistema

190 Referência

Page 191: Reference Pt BR

pode fazer isso. A lista a seguir resume os comandos mais importantes na área derunlevel.

telinit 1 ou shutdown nowO sistema muda para omodo de usuário único. Esse modo é usado para manutençãodo sistema e tarefas de administração.

telinit 3Todos os programas e serviços essenciais (incluindo a rede) são iniciados, e osusuários comuns podem efetuar login e trabalhar no sistema sem um ambientegráfico.

telinit 5O ambiente gráfico é habilitado. Geralmente um gerenciador de exibição comoXDM, GDM ou KDM é iniciado. Se o login automático estiver habilitado, o usuáriolocal será conectado ao gerenciador de janelas pré-selecionado (GNOME ou KDEou qualquer outro gerenciador de janelas).

telinit 0 ou shutdown -h nowO sistema é desligado.

telinit 6 ou shutdown -r nowO sistema é desligado e, em seguida, reinicializado.

Runlevel 5 é o runlevel padrão em todas as instalações padrão do SUSE Linux. Ésolicitado o login dos usuários com uma interface gráfica ou o usuário padrão estáconectado automaticamente. Se o runlevel padrão for 3, o Sistema Windows X deveráser configurado adequadamente, conforme descrito no Capítulo 14,O sistema XWindow(p 281), antes que o runlevel seja alternado para 5. Se isso for feito, verifique se o sistemafunciona da maneira desejada, digitando telinit 5. Se tudo ocorrer conforme oesperado, você poderá usar o YaST para definir o runlevel padrão como 5.

Geralmente, há duas situações quando os runlevels são mudados. Primeiro, os scriptsde parada do runlevel atual são iniciados, fechando alguns programas essenciais aorunlevel atual. Em seguida, os scripts do novo runlevel são iniciados. Na maioria doscasos, vários programas são iniciados. Por exemplo, ocorre o seguinte quando o runlevel3 muda para 5:

1. O administrador (root) solicita que o init mude para um nível de execuçãodiferente digitando telinit 5.

Inicializando e configurando um sistema Linux 191

Page 192: Reference Pt BR

2. O init consulta seu arquivo de configuração (/etc/inittab) e determina seele deve iniciar /etc/init.d/rc com o novo runlevel como parâmetro.

3. O rc chama todos os scripts de parada do runlevel atual, mas somente aquelespara os quais não há script de início no novo runlevel. Neste exemplo, todos osscripts residem em /etc/init.d/rc3.d (o runlevel antigo era 3) e iniciamcom K. O número depois de K especifica a ordem de início, pois algumasdependências devem ser consideradas.

4. Os scripts do novo runlevel são os últimos a serem iniciados. Neste exemplo,eles estão em /etc/init.d/rc5.d e começam com S. O mesmoprocedimento relativo à ordem em que eles foram iniciado se aplica nesse caso.

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

8.2.2 Scripts InitHá dois tipos de scripts em /etc/init.d:

Scripts executados diretamente pelo initIsso só ocorrerá durante o processo de boot ou se um encerramento imediato dosistema for iniciado (falha de energia ou pressionamento de Ctrl + Alt + Del ).A execução desses scripts é definida em /etc/inittab.

Scripts executados indiretamente pelo initSão executados durante a mudança do runlevel e sempre chamam o script master/etc/init.d/rc, que garante a ordem correta dos scripts relevantes.

Todos os scripts estão localizados em /etc/init.d. Scripts que são executadosdurante o boot são chamados através de links simbólicos de /etc/init.d/boot.d. Os scripts para mudança do nível de execução são chamados através de linkssimbólicos em um dos subdiretórios (/etc/init.d/rc0.d para /etc/init.d/rc6.d). Isso só serve para fins de clareza, além de evitar scripts duplicados se foremusados em vários runlevels. Como todos os scripts podem ser executados como de inícioou de parada, eles devem entender os parâmetros start e stop. Os scripts tambémentendem as opções restart, reload, force-reload e status. Essas diversas

192 Referência

Page 193: Reference Pt BR

opções são explicadas na Tabela 8.2, “Opções possíveis do script init” (p 193). Os scriptsexecutados diretamente pelo init não têm esses links. Eles são executadosindependentemente do runlevel, quando necessário.

Tabela 8.2 Opções possíveis do script init

DescriçãoOpção

Inicia o serviço.start

Pára o serviço.stop

Se o serviço estiver sendo executado, o pára e o reinicia.Se não estiver, o inicia.

restart

Recarrega a configuração sem parar e reiniciar o serviço.reload

Recarrega a configuração se o serviço suportá-la. Casocontrário, age como se restart tivesse sido ativado.

force-reload

Mostra o status atual do serviço.status

Os links em cada subdiretório específico de runlevel possibilitam a associação de scriptsa diferentes runlevels. Durante a instalação ou desinstalação de pacotes, esses links sãoadicionados e removidos com a ajuda do programa insserv (ou usando /usr/lib/lsb/install_initd, que é um script que chama esse programa). Consulte a páginade manual insserv(8) para obter detalhes.

Veja a seguir uma pequena apresentação dos scripts de boot e de parada iniciadosprimeiro e por último, respectivamente, bem como uma explicação do script demanutenção.

bootExecutado na inicialização do sistema usando diretamente o init. É independentedo runlevel escolhido e só é executado uma vez. Nesse momento, os sistemas dearquivos proc e pts são montados e o blogd (boot logging daemon) é ativado.Se o sistema for inicializado pela primeira vez após uma atualização ou instalação,a configuração inicial do sistema será iniciada.

Inicializando e configurando um sistema Linux 193

Page 194: Reference Pt BR

O daemon blogd é um serviço iniciado por boot e rc antes de qualquer outro. Eleserá parado depois que os acionamentos feitos pelos scripts acima (por meio daexecução de vários subscripts, por exemplo) forem concluídos. O blogd gravará asaída de tela no arquivo de registro /var/log/boot.msg, mas somente se equando/var for montado para leitura-gravação. Caso contrário, o blogd armazenaráno buffer todos os dados de tela até que /var se torne disponível. Obtenha maisinformações sobre o blogd na página de manual blogd(8).

O script boot também é responsável pela inicialização de todos os scripts em/etc/init.d/boot.d com um nome iniciado com S. Nesse local, todos ossistemas de arquivos são verificados e os dispositivos de loop são configurados senecessário. O horário do sistema também é definido. Se ocorrer um erro durante averificação e o reparo automáticos do sistema de arquivos, o administrador dosistema poderá intervir após digitar a senha raiz. Por fim, é executado o scriptboot.local.

boot.localDigite aqui comandos adicionais a serem executados na inicialização antes demudar para um runlevel. Ele pode ser comparado ao AUTOEXEC.BAT em sistemasDOS.

boot.setupEste script é executado quando o modo de usuário único é mudado para outrorunlevel e é responsável por várias configurações básicas, como o layout do tecladoe a inicialização dos consoles virtuais.

haltEste script é executado somente durante a mudança para o nível de execução 0 ou6. Ele é executado como halt ou reboot. O modo como halt é chamadodetermina se o sistema deve ser encerrado ou reinicializado.

rcEste script chama os scripts de parada adequados do runlevel atual e os scripts deinício do runlevel recém-selecionado.

Você pode criar seus próprios scripts e integrá-los facilmente no esquema descritoacima. Para obter instruções sobre como formatar, nomear e organizar scriptspersonalizados, consulte as especificações do LSB e as páginas de manual do init,init.d e insserv. Além disso, consulte as páginas de manual do startproc ekillproc.

194 Referência

Page 195: Reference Pt BR

ATENÇÃO: Scripts init defeituosos podem desligar o seu sistema

Scripts init defeituosos podem travar sua máquina. Edite esses scripts commuito cuidado e, se possível, submeta-os a testes detalhados no ambientemultiusuário. Algumas informações úteis sobre os scripts init podem serencontradas na Seção 8.2.1, “Runlevels” (p 189).

Para criar um script init personalizado para determinado programa ou serviço, use oarquivo /etc/init.d/skeleton como gabarito. Grave uma cópia desse arquivocom o novo nome e edite o programa relevante e nomes de arquivos, caminhos e outrosdetalhes necessários. Você também pode precisar aprimorar o script com suas própriaspartes, de modo que os acionamentos corretos sejam feitos pelo procedimento init.

O bloco INIT INFO na parte superior é uma parte necessária do script e deve sereditada. Consulte o Exemplo 8.1, “Um bloco INIT INFO mínimo” (p 195).

Exemplo 8.1 Um bloco INIT INFO mínimo### BEGIN INIT INFO# Provides: FOO# Required-Start: $syslog $remote_fs# Required-Stop: $syslog $remote_fs# Default-Start: 3 5# Default-Stop: 0 1 2 6# Description: Start FOO to allow XY and provide YZ### END INIT INFO

Na primeira linha do bloco INFO, após Provides:, especifique o nome do programaou serviço controlado pelo script init. Nas linhas Required-Start: eRequired-Stop:, especifique todos os serviços que precisam ser iniciados ouparados antes de o próprio serviço ser iniciado ou parado. Essas informações são usadasposteriormente para gerar a numeração dos nomes de script, como encontrada nosdiretórios de runlevel. Após Default-Start: e Default-Stop:, especifiqueos runlevels em que o serviço deve ser iniciado ou parado automaticamente. Por fim,para Description:, forneça uma breve descrição do serviço em questão.

Para criar os links dos diretórios de runlevel (/etc/init.d/rc?.d/) para os scriptscorrespondentes em /etc/init.d/, digite o comando insservnew-script-name. O programa insserv avalia o cabeçalho INIT INFO para criaros links necessários para os scripts de início e parada nos diretórios de runlevel (/etc/init.d/rc?.d/). O programa também se encarrega da ordem correta de início eparada para cada runlevel, incluindo os números necessários nos nomes desses links.

Inicializando e configurando um sistema Linux 195

Page 196: Reference Pt BR

Se você preferir uma ferramenta gráfica para criar esses links, use o editor de runlevelfornecido pelo YaST, como descrito na Seção 8.2.3, “Configurando serviços do sistema(runlevel) com o YaST” (p 196).

Se um script já existir em /etc/init.d/, deve ser integrado ao esquema de runlevelexistente. Crie os links nos diretórios de runlevel imediatamente com insserv ou pormeio do serviço correspondente no editor de runlevel do YaST. As mudanças serãoaplicadas durante a próxima reinicialização, e o novo serviço será iniciadoautomaticamente.

Não defina esses links manualmente. Se houver algum erro no bloco INFO, surgirãoproblemas quando insserv for executado posteriormente para algum outro serviço.O serviço adicionado manualmente será removido com a próxima execução deinsserv.

8.2.3 Configurando serviços do sistema(runlevel) com o YaST

Depois que o módulo YaST é iniciado com YaST → Sistema → Serviços do Sistema(Runlevel), ele exibe uma visão geral que lista todos os serviços disponíveis e o statusatual de cada um deles (desabilitado ou habilitado). Decida se o módulo deve ser usadono Modo Simples ou no Modo de Especialista. O Modo Simples padrão deve sersuficiente na maior parte dos casos. A coluna à esquerda mostra o nome do serviço, acoluna ao centro indica seu status atual e a coluna à direita fornece uma descriçãoresumida. Para o serviço selecionado, uma descrição mais detalhada é fornecida naparte inferior da janela. Para habilitar um serviço, selecione-o na tabela e, em seguida,selecione Habilitar. As mesmas etapas se aplicam para desabilitar um serviço.

196 Referência

Page 197: Reference Pt BR

Figura 8.1 Serviços do Sistema (Runlevel)

Para ter mais controle sobre os runlevels em que um serviço é iniciado ou parado oupara mudar o runlevel padrão, selecione primeiro Modo de Especialista. O runlevelpadrão atual ou o “initdefault” (o runlevel em que o sistema é inicializado por padrão)é exibido na parte superior. Normalmente, o runlevel padrão de um sistema SUSE Linuxé o 5 (modo multiusuário completo com rede e X). Uma alternativa adequada poderiaser o runlevel 3 (modo multiusuário completo com rede).

Esta caixa de diálogo do YaST permite a seleção de um dos runlevels (como listado naTabela 8.1, “Runlevels disponíveis” (p 190)) como o novo padrão. Além disso, use atabela mostrada nessa janela para habilitar ou desabilitar serviços e daemons individuais.A tabela lista os serviços e daemons disponíveis, mostra se eles estão habilitados nosistema e, se estiverem, para quais runlevels. Após selecionar uma das linhas com omouse, clique nas caixas de seleção que representam os runlevels (B, 0, 1, 2, 3, 5, 6 eS) para definir os runlevels em que o serviço ou daemon selecionado deve estar emexecução. O runlevel 4 é inicialmente indefinido para permitir a criação de um runlevelpersonalizado. Uma breve descrição do serviço ou daemon selecionado no momento éfornecida abaixo da visão geral da tabela.

Com Iniciar, Parar ou Atualizar, decida se um serviço deve ser ativado. Situação daRenovação verifica o status atual. Inicializar/Reinicializar permite selecionar se vocêdeseja aplicar as mudanças ao sistema ou restaurar as configurações existentes antes

Inicializando e configurando um sistema Linux 197

Page 198: Reference Pt BR

da inicialização do editor de runlevel. A seleção de Concluir grava no disco asconfigurações mudadas.

ATENÇÃO: Configurações de runlevel defeituosas podem danificar osistema

Configurações de runlevel defeituosas podem tornar um sistema inutilizável.Antes de aplicar as mudanças, tenha absoluta certeza sobre suas conseqüências.

8.3 Configuração do sistema via/etc/sysconfig

A configuração principal do SUSE Linux é controlada pelos arquivos de configuraçãoem /etc/sysconfig. Os arquivos individuais em /etc/sysconfig são lidossomente pelos scripts para os quais são relevantes. Isso garante que as configuraçõesde rede, por exemplo, somente precisem ser analisadas pelos scripts relacionados àrede. Muitos outros arquivos de configuração do sistema são gerados de acordo comas configurações em /etc/sysconfig. Essa tarefa é executada pelo SuSEconfig.Por exemplo, se você mudar a configuração da rede, o SuSEconfig também poderáfazer mudanças no arquivo /etc/host.conf, pois esse é um dos arquivos relevantespara a configuração da rede. Esse conceito permite realizar mudanças básicas naconfiguração sem a necessidade de reinicializar o sistema.

Há duas maneiras de editar a configuração do sistema. Use o Editor sysconfig do YaSTou edite manualmente os arquivos de configuração.

8.3.1 Mudando a configuração do sistemausando o Editor sysconfig do YaST

O editor sysconfig do YaST fornece um front end fácil de usar para a configuração dosistema. Sem conhecimento do local da variável de configuração que precisa ser mudada,você pode apenas usar a função de pesquisa interna desse módulo, mudar o valor dessavariável conforme o necessário, e permitir que o YaST se encarregue de aplicar essasmudanças, atualizando as configurações que dependem dos valores definidos nosysconfig e reiniciando os serviços.

198 Referência

Page 199: Reference Pt BR

ATENÇÃO: A modificação dos arquivos /etc/sysconfig/* pode danificar ainstalação

Não modifique os arquivos /etc/sysconfig se você não tiver experiênciae conhecimento prévios. Isso pode causar sérios danos ao sistema. Os arquivosem /etc/sysconfig contêm um pequeno comentário sobre cada variávelpara explicar seu efeito real.

Figura 8.2 Configuração do sistema usando o Editor sysconfig

A caixa de diálogo do Editor sysconfig do YaST é divida em três partes. A parte esquerdamostra uma tela de árvore de todas as variáveis configuráveis. Quando você selecionauma variável, a parte direita exibe a seleção e a definição atuais dessa variável. Abaixo,uma terceira janela exibe uma pequena descrição da finalidade da variável, os valorespossíveis, o valor padrão e o arquivo de configuração do qual essa variável se origina.A caixa de diálogo também fornece informações sobre qual script de configuração éexecutado após a mudança da variável e qual novo serviço é iniciado como resultadoda mudança. O YaST solicita a confirmação das mudanças e informa quais scripts serãoexecutados depois que você sair da caixa de diálogo selecionandoConcluir. Além disso,selecione os serviços e scripts que devem ser ignorados agora e iniciados mais tarde.O YaST aplica todas as mudanças automaticamente e reinicia os serviços envolvidospara que elas sejam efetivadas.

Inicializando e configurando um sistema Linux 199

Page 200: Reference Pt BR

8.3.2 Mudando manualmente aconfiguração do sistema

Para mudar manualmente a configuração do sistema, faça o seguinte

1 Torne-se root.

2 Coloque o sistema no modo de usuário único (nível de execução 1) com init1.

3 Mude os arquivos de configuração, conforme o necessário, com um editor desua preferência.

Se você não usar o YaST para mudar os arquivos de configuração em /etc/sysconfig, verifique se os valores das variáveis vazias estão representadospor duas aspas (KEYTABLE="") e se os valores com espaços em branco estãodelimitados por aspas. Os valores constituídos de somente uma palavra nãoprecisam ficar entre aspas.

4 Execute SuSEconfig para verificar se as mudanças foram efetivadas.

5 Coloque o sistema de volta no runlevel anterior com o comando initdefault_runlevel. Substitua runlevel_padrão pelo runlevel padrãodo sistema. Escolha 5 para retornar ao modo multiusuário completo com rede eX ou escolha 3 se preferir trabalhar no modo multiusuário completo com rede.

Esse procedimento é relevante principalmente durante a mudança das configuraçõesem todo o sistema, como a configuração da rede. Pequenas mudanças não devemrequerer alternar para o modo de usuário único, mas você pode fazer isso para ter certezade que todos os programas em questão foram reiniciados corretamente.

DICA: Definindo a configuração automatizada do sistema

Para desabilitar a configuração automatizada do sistema pelo SuSEconfig, definaa variável ENABLE_SUSECONFIG em /etc/sysconfig/suseconfig comono. Não desabilite o SuSEconfig se quiser usar o suporte de instalação do SUSE.Também é possível desabilitar parcialmente a configuração automática.

200 Referência

Page 201: Reference Pt BR

9O Carregador de BootEste capítulo descreve como configurar o GRUB, o carregador de boot utilizado noSUSE Linux. Para realizar todas as configurações, há disponível um módulo especialYaST. Se você não estiver familiarizado com a idéia de entrar para o Linux, leia asseções a seguir para obter algumas informações de apoio. Este capítulo também descrevealguns problemas freqüentemente encontrados quando se inicializa com o GRUB emostra as soluções para eles.

Este capítulo se concentra no gerenciamento de boot e na configuração do carregadorde boot do GRUB. O procedimento de boot como um todo é detalhado no Capítulo 8,Inicializando e configurando um sistema Linux (p 185). O carregador de boot representaa interface entre a máquina (BIOS) e o sistema operacional (SUSE Linux). Aconfiguração do carregador de boot influencia diretamente o boot do sistema operacional.

Os termos a seguir aparecem com freqüência neste capítulo e talvez precisem de algumaexplicação:

Registro Mestre de InicializaçãoA estrutura do MBR é definida por uma convenção que independe do sistemaoperacional. Os primeiros 446 bytes são reservados para o código do programa.Eles geralmente mantêm o programa do carregador de boot, neste caso, GRUBstage 1. Os próximos 64 bytes fornecem espaço para uma tabela de partição comaté quatro entradas (consulte “Tipos de partição” (Capítulo 1, Instalação com oYaST, ↑Inicialização)). A tabela de partição contém informações sobre oparticionamento do disco rígido e sobre o tipo de sistema de arquivos. O sistemaoperacional precisa dessa tabela para lidar com o disco rígido. Com o GRUB stage1 no MBR, exatamente uma partição deve ser marcada como ativa. Os dois últimos

O Carregador de Boot 201

Page 202: Reference Pt BR

bytes do MBR devem conter um “número mágico” estático (AA55). Um MBRcontendo um valor diferente é considerado como inválido pelo BIOSs.

Setores de BootOs setores de boot são os primeiros setores das partições do disco rígido, com aexecução da partição estendida, que serve meramente como “container” para outraspartições. Esses setores de boot têm 512 bytes de espaço para o código usado parainicializar um sistema operacional instalado na partição respectiva. Isso se aplicaaos setores de boot das partições formatadas do DOS, Windows e OS/2, que tambémcontêm alguns dados básicos importantes do sistema de arquivos. Por outro lado,os setores de boot das partições do Linux estão inicialmente vazios depois de seconfigurar um sistema de arquivos diferente do XFS. Portanto, uma partição doLinux não é inicializável por si mesma, mesmo que contenha um kernel e umsistema válido de arquivos raiz. Um setor de boot com código válido para inicializaro sistema tem o mesmo número mágico que o MBR em seus dois últimos bytes(AA55).

9.1 Selecionando um carregador deboot

Por padrão, o carregador de boot GRUB é usado no SUSE Linux. No entanto, em algunscasos e para grupos especiais de hardwares e softwares, o LILO pode ser necessário.Se você atualizar de uma versão 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á informações disponíveis sobre a instalação e a configuração doLILO.

9.2 Inicializando com o GRUBO GRUB (Grand Unified Bootloader) tem dois estágios. O stage1 consiste em 512 bytese sua única tarefa é carregar o segundo estágio do carregador de boot. Depois disso, ostage2 é carregado. Este estágio contém a parte principal do carregador de boot.

202 Referência

Page 203: Reference Pt BR

Em algumas configurações, um estágio intermediário 1.5 pode ser usado, que localizae carrega o estágio 2 de um sistema de arquivos apropriado. Se possível, este métodoé escolhido por padrão durante a instalação ou durante a configuração inicial do GRUBcom o YaST.

O stage2 consegue acessar vários sistemas de arquivos. Atualmente, são suportados oExt2, 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 também sãosuportados. Desde a versão 0.95, o GRUB também pode ser inicializado de um CD ouDVD que contenha um sistema de arquivos padrão ISO 9660 que está de acordo coma especificação “El Torito”. Mesmo antes de o sistema ser inicializado, o GRUB podeacessar os sistemas de arquivos dos dispositivos de disco BIOS suportados (disquetesou discos rígidos, unidades de CD e unidades de DVD detectadas pelo BIOS). Portanto,as alterações realizadas no arquivo de configuração do GRUB (menu.lst) não exigema reinstalação do gerenciador de boot. Quando o sistema é inicializado, o GRUB carregao arquivo de menu com os caminhos e dados de partição válidos do kernel ou do discoRAM inicial (initrd) e localiza os arquivos.

A configuração atual do GRUB se baseia em três arquivos que são descritos a seguir:

/boot/grub/menu.lstEste arquivo contém todas as informações sobre partições ou sistemas operacionaisque podem ser inicializados com o GRUB. Sem essas informações, a linha decomando do GRUB pergunta ao usuário como proceder (consulte “Editando asentradas de menu durante o procedimento de boot” (p 208) para obter detalhes).

/boot/grub/device.mapEsse arquivo traduz os nomes dos dispositivos da notação do GRUB e do BIOSpara os nomes de dispositivos do Linux.

/etc/grub.confEsse arquivo contém os comandos, os parâmetros e as opções que o shell do GRUBprecisa para instalar corretamente o carregador de boot.

O GRUB pode ser controlado de várias maneiras. As entradas de boot de umaconfiguração existente podem ser selecionadas no menu gráfico (tela de apresentação).A configuração é carregada a partir do arquivo menu.lst.

No GRUB, todos os parâmetros de boot podem ser alterados antes do boot. Por exemplo,os erros cometidos durante a edição do arquivo de menu podem ser corrigidos destamaneira. Os comandos de boot também podem ser inseridos de forma interativa através

O Carregador de Boot 203

Page 204: Reference Pt BR

de um tipo de prompt de entrada (consulte “Editando as entradas de menu durante oprocedimento de boot” (p 208)). O GRUB oferece a possibilidade de determinar alocalização do kernel e do initrd antes do boot. Dessa maneira, você pode atéinicializar um sistema operacional instalado para o qual não existe entrada naconfiguração do carregador de boot.

O GRUB existe em duas versões: como carregador de boot e como programa normaldo Linux em /usr/sbin/grub. Esse programa é conhecido como shell do GRUB.Ele fornece uma emulação do GRUB no sistema instalado e pode ser usado para instalaro GRUB ou testar novas configurações antes de aplicá-las. A funcionalidade parainstalar o GRUB como carregador de boot em um disco rígido ou em um disquete éintegrada no GRUB na forma dos comandos install e setup. Isso está disponívelno shell do GRUB quando o Linux é carregado.

9.2.1 O menu de boot do GRUBA tela de apresentação gráfica com o menu de boot baseia-se no arquivo de configuraçãodo GRUB /boot/grub/menu.lst, que contém todas as informações sobre todasas partições ou sistemas operacionais que podem ser inicializados pelo menu.

Todas as vezes em que o sistema é inicializado, o GRUB carrega o arquivo de menu apartir do sistema de arquivos. Por essa razão, o GRUB não precisa ser reinstalado depoisde todas as modificações no arquivo. Use o carregador de boot YaST para modificar aconfiguração do GRUB conforme descrito no Seção 9.3, “Configurando o carregadorde boot com o YaST” (p 212).

O arquivo de menu contém comandos. A sintaxe é muito simples. Cada linha contémum comando seguido de parâmetros opcionais separados por espaços, como ocorre noshell. Por razões históricas, alguns comandos admitem um = na frente do primeiroparâmetro. Os comentários são introduzidos por um hash (#).

Para identificar os itens do menu na visão geral do menu, defina um título para cadaentrada. O texto (incluindo os espaços) que vem depois da palavra-chave título éexibido como opção selecionável no menu. Todos os comandos até o próximo títulosão executados quando se seleciona esse item de menu.

O caso mais simples é o redirecionamento para os carregadores de boot de outrossistemas operacionais. O comando é chainloader, e o argumento é geralmente obloco de boot de outra partição na notação do bloco do GRUB. Por exemplo:

204 Referência

Page 205: Reference Pt BR

chainloader (hd0,3)+1

Os nomes de dispositivo no GRUB são explicados em “Convenções de nomenclaturapara discos rígidos e partições” (p 205). Este exemplo especifica o primeiro bloco daquarta partição do primeiro disco rígido.

Use o comandokernel para especificar uma imagem do kernel. O primeiro argumentoé o caminho para a imagem do kernel em uma partição. Os outros argumentos sãopassados para o kernel na linha de comando.

Se o kernel não contiver drivers incorporados para acesso à partição raiz ou um sistemaLinux recente com recursos de hotplug avançados for usado, o initrd deve serespecificado com um comando separado do GRUB cujo único argumento é o caminhopara o arquivo initrd. Como o endereço de carregamento do initrd é gravado naimagem do kernel carregado, o comando initrd deve vir imediatamente após ocomando kernel.

O comando root simplifica a especificação do kernel e dos arquivos initrd. O únicoargumento de root é um dispositivo ou uma partição. Esse dispositivo é usado paratodos os kernels, initrd, ou para outros caminhos de arquivo para os quais não hádispositivos explicitamente especificados até o próximo comando root.

O comando boot está implícito no fim de cada entrada do menu, assim ele não precisaser gravado no arquivo de menu. No entanto, para usar o GRUB interativamente parao boot, você deve inserir o comando boot no final. O comando em si não temargumentos. Ele meramente inicializa a imagem do kernel carregado ou do carregadorde cadeia especificado.

Depois de gravar todas as entradas de menu, defina uma delas como entrada default.Do contrário, é utilizada a primeira (entrada 0). Você também pode especificar umtempo de espera em segundos, após o qual a entrada padrão deve inicializar. timeoute default geralmente precedem as entradas de menu. Um arquivo de exemplo édescrito em “Um exemplo de arquivo de menu” (p 206).

Convenções de nomenclatura para discos rígidos epartiçõesAs convenções de nomenclatura que o GRUB utiliza para discos rígidos e partiçõesdiferem daquelas usadas para os dispositivos normais do LINUX. No GRUB, anumeração das partições começa no zero. Isso significa que (hd0,0) é a primeira

O Carregador de Boot 205

Page 206: Reference Pt BR

partição do primeiro disco rígido. Em uma máquina desktop comum, com um discorígido conectado como master principal, o nome do dispositivo correspondente no Linuxé /dev/hda1.

As quatro partições principais possíveis são atribuídas aos números de partição de 0 a3. As partições lógicas são numeradas a partir de 4:(hd0,0) primeira partição primária do primeiro disco rígido (hd0,1) segunda partição primária (hd0,2) terceira partição primária (hd0,3) quarta partição primária (em geral uma partição estendida) (hd0,4) primeira partição lógica (hd0,5) segunda partição lógica

Sendo dependente de dispositivos BIO, o GRUB não distingue entre dispositivos IDE,SATA, SCSI e RAID de hardware. Todos os discos rígidos reconhecidos pelo BIOSou por outras controladoras são numerados de acordo com a seqüência de bootpredefinido no BIOS.

Infelizmente, geralmente não é possível mapear os nomes dos dispositivos do Linuxexatamente para os nomes dos dispositivos do BIOS. Ele gera esse mapeamento coma ajuda de um algoritmo e o salva no arquivodevice.map, que pode ser editado senecessário. Na Seção 9.2.2, “O arquivo device.map” (p 209), há informações sobre oarquivo device.map.

O caminho completo do GRUB consiste em um nome de dispositivo escrito entreparênteses e no caminho para o arquivo no sistema de arquivos na partição especificada.O caminho começa com uma barra. Por exemplo, o kernel inicializável poderia serespecificado como segue em um sistema com um disco rígido único de IDE que contémo Linux em sua primeira partição:(hd0,0)/boot/vmlinuz

Um exemplo de arquivo de menuO exemplo a seguir mostra a estrutura de um arquivo de menu do GRUB. A instalaçãode exemplo compreende uma partição de boot do Linux em/dev/hda5, uma partiçãoraiz em /dev/hda7 e uma instalação do Windows em /dev/hda1.gfxmenu (hd0,4)/messagecolor white/blue black/light-graydefault 0timeout 8

title linux

206 Referência

Page 207: Reference Pt BR

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 configuração da tela de apresentação:

gfxmenu (hd0,4)/messageA mensagem da imagem de segundo plano localiza-se em /dev/hda5.

color white/blue black/light-grayEsquema de cor: branco (primeiro plano), azul (segundo plano), preto (seleção) ecinza-claro (segundo plano da seleção). O esquema de cores não tem efeito sobrea tela de apresentação, apenas sobre o menu personalizável do GRUB que vocêpode acessar saindo da tela de apresentação com Esc .

default 0Por padrão, a primeira entrada do menu, title linux, é a utilizada parainicializar.

timeout 8Após oito segundos sem nenhuma entrada do usuário, o GRUB inicializaautomaticamente a entrada default. Para desativar o boot automático, exclua a linhatimeout. Se você definir timeout 0, o GRUB inicializa a entrada defaultimediatamente.

O segundo e maior bloco lista os vários sistemas operacionais inicializáveis. As seçõespara os sistemas operacionais individuais são introduzidas pelo título.

• A primeira entrada (title linux) é responsável por inicializar o SUSE Linux.O kernel (vmlinuz) localiza-se na primeira partição lógica (a partição de boot)do primeiro disco rígido. Os parâmetros do kernel, tais como a partição raiz e omodo VGA, são anexados aqui. A partição raiz é especificada de acordo com aconvenção de nomenclatura do Linux (/dev/hda7/), pois essas informações são

O Carregador de Boot 207

Page 208: Reference Pt BR

lidas pelo kernel e não têm nada a ver com o GRUB. O initrd também se localizana primeira partição lógica do primeiro disco rígido.

• A segunda entrada é responsável por carregar o Windows. O Windows é inicializadoa partir da primeira partição do primeiro disco rígido (hd0,0). O comandochainloader +1 faz com que o GRUB leia e execute o primeiro setor dapartição especificada.

• A próxima entrada permite o boot a partir do disco rígido sem modificar asconfigurações do BIOS.

• A opção de boot failsafe inicia o Linux com uma seleção de parâmetros dokernel que permite que o Linux seja inicializado nos sistemas problemáticos.

O arquivo de menu pode ser alterado sempre que for necessário. O GRUB utiliza, então,as configurações modificadas durante o próximo boot. Edite o arquivo permanentementeusando o YaST ou um editor da sua escolha. Como alternativa, faça as alteraçõestemporárias de forma interativa usando a função de edição do GRUB. Consulte “Editandoas entradas de menu durante o procedimento de boot” (p 208).

Editando as entradas de menu durante oprocedimento de bootNo menu gráfico de boot, selecione o sistema operacional a ser inicializado com asteclas de seta. Se selecionar um sistema Linux, você pode inserir parâmetros extras deboot no prompt de boot. Para editar diretamente as entradas individuais do menu,pressione Esc para sair da tela de apresentação e entrar no menu baseado em texto doGRUB e depois pressione E . As alterações feitas desta maneira só se aplicam ao bootatual, não sendo adotadas permanentemente.

IMPORTANTE: Layout do teclado durante o procedimento de boot

O layout do teclado norte-americano é o único disponível na hora de inicializar.

Editar entradas de menu facilita o reparo de um sistema com defeito que não pode maisser inicializado, pois o arquivo de configuração defeituoso do carregador de boot podeser evitado ao se inserir parâmetros manualmente. A inserção manual de parâmetrosdurante o procedimento de boot também é útil para testar novas configurações semdanificar o sistema nativo.

208 Referência

Page 209: Reference Pt BR

Depois de ativar o modo de edição, use as teclas de seta para selecionar a entrada demenu cuja configuração deve ser editada. Para tornar a configuração editável, pressioneE novamente. Dessa maneira, edite as especificações incorretas das partições ou docaminho antes que tenham um efeito negativo sobre o processo de boot. PressioneEnter para sair do modo de edição e retornar ao menu. Depois pressione B parainicializar essa entrada. No texto de ajuda da parte inferior, são mostradas mais açõespossíveis.

Para inserir permanentemente as opções alteradas de boot e passá-las para o kernel,abra o arquivo menu.lst como raiz do usuário e anexe os respectivos parâmetrosdo kernel à linha existente, separados por espaços:title linux kernel (hd0,0)/vmlinuz root=/dev/hda3 additional parameter initrd (hd0,0)/initrd

O GRUB adota automaticamente os novos parâmetros na próxima vez em que o sistemaé inicializado. Como alternativa, essa alteração também pode ser feita com o módulodo carregador de boot YaST. Anexe os novos parâmetros à linha existente, separadospor espaços.

9.2.2 O arquivo device.mapO arquivo device.map mapeia os nomes de dispositivos do GRUB e do BIOS paraos nomes de dispositivos do Linux. Em um sistema misto que contém discos rígidosIDE e SCSI, o GRUB deve tentar determinar a seqüência de boot através de umprocedimento especial, pois o GRUB não tem acesso às informações do BIOS naseqüência de boot. O GRUB salva o resultado desta análise no arquivo /boot/grub/device.map. Para um sistema no qual a seqüência de boot no BIOS é configuradacomo IDE antes de SCSI, o arquivodevice.map poderia aparecer da seguinte forma:(fd0) /dev/fd0(hd0) /dev/hda(hd1) /dev/sda

Como a ordem da IDE, da SCSI e de outros discos rígidos depende de vários fatores,e como o Linux não consegue identificar o mapeamento, a seqüência no arquivodevice.map pode ser configurada manualmente. Se você encontrar problemas na hora doboot, verifique se a seqüência neste arquivo corresponde à seqüência no BIOS e use oprompt do GRUB para modificá-la temporariamente, se necessário. Depois que o sistemaLinux for inicializado, o arquivo device.map pode ser permanentemente editadocom o módulo do carregador de boot YaST ou com um editor da sua preferência.

O Carregador de Boot 209

Page 210: Reference Pt BR

IMPORTANTE: Discos SATA

Dependendo do controlador, os discos SATA são reconhecidos como dispositivosIDE (/dev/hdx) ou SCSI (/dev/sdx).

Depois de alterar manualmente o device.map, execute o seguinte comando parareinstalar o GRUB. Este comando faz com que o arquivodevice.map seja recarregadoe os comandos listados em grub.conf sejam executados:grub --batch < /etc/grub.conf

9.2.3 O arquivo /etc/grub.confO terceiro arquivo importante de configuração do GRUB, depois do menu.lst e dodevice.map, é o /etc/grub.conf. Esse arquivo contém os comandos, osparâmetros e as opções que o shell do GRUB precisa para instalar corretamente ocarregador 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 partiçãológica do primeiro disco rígido (o local dos arquivos de boot).

install parameterO comando grub deve ser executado com o parâmetro install. O stage1 docarregador de boot deve ser instalado no container da partição estendida(/grub/stage1 (hd0,3)). O stage2 deve ser carregado no endereço damemória 0x8000 (/grub/stage2 0x8000). A última entrada((hd0,4)/grub/menu.lst) mostra para o GRUB onde ele deve procurar oarquivo de menu.

9.2.4 Configurando uma senha de bootMesmo antes de o sistema operacional ser inicializado, o GRUB permite acesso aossistema de arquivos. Os usuários que não têm permissões raiz podem acessar os arquivos

210 Referência

Page 211: Reference Pt BR

no seu sistema Linux aos quais não têm acesso depois que o sistema é inicializado. Parabloquear esse tipo de acesso ou impedir que os usuários inicializem certos sistemasoperacionais, defina uma senha de boot.

IMPORTANTE: Senha de boot e tela de apresentação

Se você usar uma senha de boot para o GRUB, a tela normal de apresentaçãonão será exibida.

Como a raiz do usuário, 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> md5cryptPassword: ****Encrypted: $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/

3 Cole a string criptografada na seção global do arquivo menu.lst:gfxmenu (hd0,4)/messagecolor white/blue black/light-graydefault 0timeout 8password --md5 $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/

Agora os comandos do GRUB só podem ser executados no prompt raiz depoisque se pressionar P e se inserir a senha. No entanto, os usuários ainda podeminicializar todos os sistemas operacionais a partir do menu de boot.

4 Para impedir que um ou vários sistemas operacionais sejam inicializados a partirdo menu de boot, acrescente a entrada lock em cada seção no menu.lst quenão 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 autenticação

O Carregador de Boot 211

Page 212: Reference Pt BR

Pressione Enter para inserir o menu. Depois pressione P para obter o promptda senha. Depois de inserir a senha e pressionar Enter , o sistema operacionalselecionado (o Linux, neste caso) não deve inicializar.

9.3 Configurando o carregador deboot com o YaST

O modo mais fácil de configurar o carregador de boot em seu sistema SUSE Linux éutilizar o módulo do YaST. No Centro de Controle do YaST, selecione Sistema →Configuração do Carregador de Boot. Como na Figura 9.1, “Configurando o carregadorde boot com o YaST” (p 212), isso mostra a configuração do carregador de boot atualdo sistema e permite fazer mudanças.

Figura 9.1 Configurando o carregador de boot com o YaST

Use a guia Gerenciamento de Seções para editar, mudar e apagar seções do carregadorde boot referentes aos sistemas operacionais individuais. Para adicionar uma opção,clique em Adicionar. Para mudar o valor de uma opção existente, selecione-o com omouse e clique em Editar. Se não quiser usar nenhuma opção existente, selecione-a e

212 Referência

Page 213: Reference Pt BR

clique em Apagar. Se não estiver familiarizado com as opções do carregador de boot,leia primeiro a Seção 9.2, “Inicializando com o GRUB” (p 202).

Use a guia Instalação do Carregador de Boot para exibir e mudar configurações relativasa tipo, local e configurações de carregador avançadas.

9.3.1 Tipo de Carregador de BootDefina o tipo de carregador de boot em Instalação do Carregador de Boot. O carregadorde boot padrão no SUSE Linux é o GRUB. Para usar o LILO, proceda da seguintemaneira:

Procedimento 9.1 Mudando o tipo de carregador de boot

1 Selecione a guia Instalação do Carregador de Boot.

2 Para Carregador de Boot, selecione LILO.

3 Na caixa de diálogo aberta, selecione uma das seguintes ações:

Propor Nova ConfiguraçãoFaça com que o YaST proponha uma nova configuração.

Converter Configuração AtualFaça com que o YaST converta a configuração atual. Na conversão daconfiguração, algumas definições podem ser perdidas.

Iniciar Nova Configuração do InícioGrave uma configuração personalizada. Esta ação não fica disponível durantea instalação do SUSE Linux.

Ler Configuração Salva em DiscoCarregue o /etc/lilo.conf. Esta ação não fica disponível durante ainstalação do SUSE Linux.

4 Clique em OK para gravar as mudanças.

5 Clique em Concluir na caixa de diálogo principal para aplicar as mudanças.

O Carregador de Boot 213

Page 214: Reference Pt BR

Durante a conversão, a antiga configuração do GRUB é gravada no disco. Para utilizá-la, basta voltar o tipo de carregador de boot para GRUB e selecionar RecuperarConfiguração Salva Antes da Conversão. Esta ação fica disponível somente em umsistema instalado.

NOTA: Carregador de boot personalizado

Se quiser usar um carregador de boot que não seja o GRUB nem o LILO,selecione Não Instalar Nenhum Carregador de Boot. Leia a documentação doseu carregador de boot cuidadosamente antes de escolher esta opção.

9.3.2 Localização do carregador de bootPara mudar o local do carregador de boot, siga estas etapas:

Procedimento 9.2 Mudando a localização do carregador de boot

1 Selecione a guia Instalação do Carregador de Boot e selecione uma das seguintesopções para Localização do Carregador de Boot:

MBR (Master Boot Record) de /dev/hdXIsso instalará o carregador de boot no MBR de um disco. X identifica o discorígido, por exemplo, a, b, c ou d:hda => ide0 master hdb => ide0 slavehdc => ide1 master hdd => ide1 slave

Setor de Boot da Partição de Boot /dev/hdXYSetor de inicialização da partição /boot. Esta opção será padrão se vocêtiver vários sistemas operacionais instalados no disco rígido. O Y correspondeà partição (1, 2, 3, 4, 5, etc.) como em:/dev/hda1

Setor de Boot da Partição Raiz /dev/hdXYO setor de inicialização da partição / (raiz). A menos que uma partição/boot seja necessária ou o MBR precise ser usado, esse é o padrão preferido.

214 Referência

Page 215: Reference Pt BR

OutrosUse esta opção para especificar a localização do carregador de bootmanualmente.

2 Clique em Concluir para aplicar suas mudanças.

9.3.3 Sistema padrãoPara mudar o sistema que é inicializado por padrão, proceda da seguinte maneira:

Procedimento 9.3 Definindo o sistema padrão

1 Abra a guia Gerenciamento de Seções.

2 Selecione o sistema desejado na lista.

3 Clique em Definir como Padrão.

4 Clique em Concluir para ativar essas mudanças.

9.3.4 Tempo de espera do carregador deboot

O carregador de boot não inicializa o sistema padrão imediatamente. Durante o tempode espera, você pode selecionar o sistema para inicializar ou gravar alguns parâmetrosde kernel. Para definir o tempo de espera do carregador de boot, proceda da seguintemaneira:

Procedimento 9.4 Mudando o tempo de espera do carregador de boot

1 Abra a guia Instalação do Carregador de Boot.

2 Clique em Opções do Carregador de Boot.

3 Marque a opção Mostrar Menu de Boot.

O Carregador de Boot 215

Page 216: Reference Pt BR

4 NoMenu de Boot, mude o valor de Tempo de Espera do Menu de Boot digitandoum novo valor, clicando na tecla de seta apropriada com o mouse ou utilizandoas teclas de seta do teclado.

5 Clique em OK.

6 Clique em Concluir para salvar as mudanças.

Defina o menu de boot para que seja exibido permanentemente sem o tempo de esperaatravés da desabilitação de Continuar Boot após Tempo de Espera.

9.3.5 Configurações de segurançaUtilizando este módulo do YaST, é possível definir uma senha para proteger ainicialização. Este procedimento aumenta o nível de segurança.

Procedimento 9.5 Configurando uma senha do carregador de boot

1 Abra a guia Instalação do Carregador de Boot.

2 Clique em Opções do Carregador de Boot.

3 Em Proteção por Senha, marque a opção Proteger Carregador de Boot comSenha e defina a senha.

4 Clique em OK.

5 Clique em Concluir para salvar as mudanças.

9.3.6 Ordem do discoSe o seu computador tiver mais de um disco rígido, é possível especificar a seqüênciade inicialização dos discos para corresponder à configuração do BIOS da máquina(consulte a Seção 9.2.2, “O arquivo device.map” (p 209)). Para fazer isso, proceda daseguinte maneira:

216 Referência

Page 217: Reference Pt BR

Procedimento 9.6 Configurando a ordem do disco

1 Abra a guia Instalação do Carregador de Boot.

2 Clique em Detalhes de Instalação do Carregador de Boot.

3 Se mais de um disco for listado, selecione um disco e clique em Para cima ouPara baixo para reordenar os discos exibidos.

4 Clique em OK para gravar as mudanças.

5 Clique em Concluir para salvar as mudanças.

Utilizando este módulo, também é possível substituir o MBR por um código genérico,que inicializa a partição ativa. Clique em Substituir MBR por Código Genérico emAtualização da Área do Sistema do Disco. Habilite Ativar Partição do Carregador deBoot para ativar a partição que contém o carregador de boot. Clique em Concluir parasalvar as mudanças.

9.4 Desinstalando a controladora deboot do Linux

O YaST pode ser usado para desinstalar o carregador de boot do Linux e recuperar oMBR para o estado que ele tinha antes da instalação do Linux. Durante a instalação, oYaST cria automaticamente uma cópia de backup do MBR original e o restaura sobsolicitação.

Para desinstalar o GRUB, inicie o módulo do carregador de boot YaST (Sistema →Configuração do Carregador de Boot). Nessa primeira caixa de diálogo, selecioneRedefinir → Restaurar MBR do Disco Rígido e clique em Concluir para sair.

9.5 Criando CDs de bootSe a inicialização do sistema com um gerenciador de boot apresentar problemas ou seo gerenciador de boot não puder ser instalado no MBR do disco rígido ou do disquete,

O Carregador de Boot 217

Page 218: Reference Pt BR

também será possível criar um CD inicializável com os arquivos de inicializaçãonecessários para o Linux. É necessário haver um gravador de CD instalado no sistema.

A criação de um CR-ROM inicializável com GRUB requer simplesmente um formatoespecial de stage2 chamadostage2_eltorito e, opcionalmente, um menu.lstpersonalizado. Os clássicos arquivos stage1 e stage2 não são necessários.

Procedimento 9.7 Criando CDs de boot

1 Crie um diretório no qual você criará a imagem ISO, por exemplo:cd /tmpmkdir iso

2 Crie um subdiretório 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 /boot/vmlinuz iso/boot/cp /boot/initrd iso/boot/cp /boot/message iso/boot/cp /boot/grub/menu.lst iso/boot/grub

4 Ajuste as entradas do caminho em iso/boot/menu.lst para que apontempara um dispositivo de CD-ROM. Faça isso substituindo o nome do dispositivodos discos rígidos, listados no formato (hd*), nos nomes de caminho, pelonome de dispositivo da unidade do CD-ROM, que é (cd):gfxmenu (cd)/boot/messagetimeout 8default 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 Referência

Page 219: Reference Pt BR

6 Grave o arquivo resultantegrub.iso em um CD usando seu utilitário preferido.

9.6 A tela gráfica do SUSEDesde o SUSE Linux 7.2, a tela gráfica do SUSE é exibida no primeiro console se aopção “vga=<value>” for usada como parâmetro de kernel. Se você fizer a instalaçãousando o YaST, essa opção é automaticamente ativada de acordo com a resolução e aplaca de vídeo selecionadas. Há três maneiras de desativar a tela SUSE, se desejado:

Desabilitando a tela do SUSE quando necessárioInsira o comando echo 0 >/proc/splash na linha de comando para desativara tela gráfica. Para ativá-la novamente, insira echo 1 >/proc/splash.

Desabilitando a tela do SUSE por padrão.Acrescente o parâmetro de kernel splash=0 à configuração do seu carregadorde boot. O Capítulo 9, O Carregador de Boot (p 201) fornece mais informaçõessobre isso. No entanto, se você preferir o modo de texto, que foi o padrão nasversões anteriores, configure vga=normal.

Desativando completamente a tela SUSECompile um novo kernel e desative a opção Usar a tela de apresentação em vezdo logotipo de boot no suporte a framebuffer.

DICA

A desabilitação do suporte a framebuffer no kernel também desabilitaautomaticamente a tela de apresentação. O SUSE não pode fornecer suporteao seu sistema se você o executar com um kernel personalizado.

9.7 Solução de problemasEssa seção lista alguns dos problemas freqüentemente encontrados na hora de inicializarcom o GRUB e uma breve descrição das possíveis soluções. Alguns desses problemassão analisados em artigos do Banco de Dados de Suporte, emhttp://portal.suse.de/sdb/en/index.html. Se o seu problema específico não estiver incluído nestalista, use a caixa de diálogo de pesquisa do Banco de Dados de Suporte, no endereço

O Carregador de Boot 219

Page 220: Reference Pt BR

https://portal.suse.com/PM/page/search.pm, para pesquisar palavras-chave como GRUB, boot e carregador de boot.

GRUB e XFSO XFS não deixa espaço para o stage1 no bloco de boot da partição. Portanto,não especifique uma partição XFS como local do carregador de boot. Esse problemapode ser resolvido com a criação de uma partição separada de boot que não éformatada com o XFS.

GRUB e JFSEmbora tecnicamente possível, a combinação do GRUB com o JFS é problemática.Nesse caso, crie uma partição separada de boot (/boot) e formate-a com o Ext2.Instale o GRUB nessa partição.

O GRUB relata um erro de geometria no GRUBO GRUB verifica a geometria dos discos rígidos conectados quando o sistema éinicializado. Às vezes, a BIOS retorna informações inconsistentes e o GRUB criaum 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á informações detalhadassobre a instalação, configuração e manutenção do LILO.

O GRUB também retorna essa mensagem de erro se o Linux foi instalado em umdisco rígido adicional não registrado no BIOS. O stage1 do carregador de boot foiencontrado e carregado corretamente, mas o stage2 não foi encontrado. Esseproblema pode ser remediado registrando-se o novo disco rígido na BIOS.

O sistema contendo discos rígidos IDE e SCSI não inicializaDurante a instalação, o YaST talvez tenha determinado incorretamente a seqüênciade boot dos discos rígidos. Por exemplo, o GRUB pode considerar /dev/hdacomo hd0 e /dev/sda como hd1, embora a seqüência de boot no BIOS seja aocontrário (SCSI antes de IDE).

Nesse caso, corrija os discos rígidos durante o processo de boot com a ajuda dalinha de comando do GRUB. Depois que o sistema for inicializado, edite device.map para aplicar o novo mapeamento permanentemente. Depois verifique osnomes de dispositivo do GRUB nos arquivos /boot/grub/menu.lst e/boot/grub/device.map e reinstale o carregador de boot com o seguintecomando:grub --batch < /etc/grub.conf

220 Referência

Page 221: Reference Pt BR

Inicializando o Windows do segundo disco rígidoAlguns sistemas operacionais, como o Windows, podem ser inicializados apenasdo primeiro disco rígido. Se um sistema operacional desse tipo for instalado emum disco rígido que não for o primeiro, você pode efetuar uma mudança lógica narespectiva 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 rígido. Para essafinalidade, a ordem lógica dos discos rígidos é alterada com map. Essa alteraçãonão afeta a lógica dentro do arquivo de menu do GRUB. Portanto, o segundo discorígido deve ser especificado para chainloader.

9.8 Mais informaçõesEm http://www.gnu.org/software/grub/, há informações abrangentessobre o GRUB. Consulte também a página de informações grub. Você também podepesquisar a palavra-chave “GRUB” no Banco de Dados de Suporte, em http://portal.suse.de/sdb/en/index.html, para obter informações sobre problemasespecíficos.

O Carregador de Boot 221

Page 222: Reference Pt BR
Page 223: Reference Pt BR

10Recursos especiais do SUSE LinuxEste capítulo começa com informações sobre vários pacotes de software, os consolesvirtuais e o layout de teclado. Abordamos componentes de software como bash, crone logrotate, porque eles foram mudados ou aperfeiçoados durante os últimos ciclosde lançamento. Mesmo que eles sejam pequenos ou considerados de menor importância,talvez os usuários desejem mudar o seu comportamento padrão, porque essescomponentes muitas vezes estão intimamente ligados ao sistema. O capítulo terminacom uma seção sobre configurações específicas de país e idioma (I18N e L10N).

10.1 Informações sobre pacotes desoftware especiais

Os programas bash, cron, logrotate, locate, ulimit e free, e o arquivoresolv.conf são muito importantes para os administradores de sistema e para váriosusuários. Páginas do manual e de informações são duas fontes úteis de informaçõessobre comandos, mas nem sempre ambas estão disponíveis. O GNU Emacs é um editorde texto popular e muito configurável.

10.1.1 O pacote bash e /etc/profileBash é o shell padrão no SUSE Linux. Quando usado com um shell de login, ele lêvários arquivos de inicialização. O Bash os processa na ordem que são exibidos na lista.

1. /etc/profile

Recursos especiais do SUSE Linux 223

Page 224: Reference Pt BR

2. ~/.profile

3. /etc/bash.bashrc

4. ~/.bashrc

Configurações personalizadas podem ser feitas em ~/.profile ou em ~/.bashrc.Para assegurar o processamento correto desses arquivos, é necessário copiar asconfigurações básicas de /etc/skel/.profile ou /etc/skel/.bashrc nodiretório pessoal do usuário. É recomendável copiar as configurações de /etc/skelapós uma atualização. Execute os seguintes comandos de shell para evitar a perda deajustes pessoais:mv ~/.bashrc ~/.bashrc.oldcp /etc/skel/.bashrc ~/.bashrcmv ~/.profile ~/.profile.oldcp /etc/skel/.profile ~/.profile

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

10.1.2 O pacote cronSe você deseja executar comandos de maneira regular e automática 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 são fornecidascom o sistema e os usuários podem gravar as suas próprias tabelas, se necessário.

As tabelas cron estão localizadas em/var/spool/cron/tabs. A/etc/crontabatua como uma tabela cron global do sistema. Digite o nome de usuário para executaro comando diretamente após a tabela de tempo e antes do comando. No Exemplo 10.1,“Entrada in /etc/crontab” (p 224), root é digitado. Tabelas específicas de pacote,localizadas em /etc/cron.d, possuem o mesmo formato. Consulte a página demanual cron (man cron).

Exemplo 10.1 Entrada in /etc/crontab1-59/5 * * * * root test -x /usr/sbin/atrun && /usr/sbin/atrun

Você não pode editar /etc/crontab chamando o comando crontab -e. Estearquivo deve ser carregado diretamente em um editor, modificado e, em seguida,gravado.

224 Referência

Page 225: Reference Pt BR

Alguns pacotes instalam scripts de shell nos diretórios /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly e /etc/cron.monthly, cuja execução écontrolada por /usr/lib/cron/run-crons. /usr/lib/cron/run-cronsé executado a cada 15 minutos da tabela principal (/etc/crontab). Isso garante queos processos que tenham sido negligenciados possam ser executados no momentoadequado.

Para executar os scripts de manutenção por hora, diário ou outros scripts demanutenção periódica em horários personalizados, remova os arquivos de marcaçãode horário regularmente, utilizando as entradas /etc/crontab (consulte oExemplo 10.2, “/etc/crontab: Remoção de Arquivos de Marcação de Hora” (p 225), queremove a opção por hora antes de cada hora cheia, a opção diário uma vez aodia às 2h14, etc.).

Exemplo 10.2 /etc/crontab: Remoção de Arquivos de Marcação de Hora59 * * * * root rm -f /var/spool/cron/lastrun/cron.hourly14 2 * * * root rm -f /var/spool/cron/lastrun/cron.daily29 2 * * 6 root rm -f /var/spool/cron/lastrun/cron.weekly44 2 1 * * root rm -f /var/spool/cron/lastrun/cron.monthly

Os trabalhos de manutenção diária de sistema foram distribuídos a vários scripts pormotivos de clareza. Eles estão contidos no pacote aaa_base. /etc/cron.dailycontém, por exemplo, os componentes suse.de-backup-rpmdb, suse.de-clean-tmp ou suse.de-cron-local.

10.1.3 Arquivos de registro: Pacotelogrotate

Existem vários serviços de sistema (daemons) que, junto com o próprio kernel, gravamregularmente o status do sistema e eventos específicos em arquivos de registro. Destamaneira, o administrador pode verificar regularmente o status do sistema em umdeterminado momento, reconhecer erros ou funções defeituosas e solucioná-los comtotal precisão. Esses arquivos de registro são normalmente armazenados em /var/log, como especificado pelo FHS e crescem em uma base diária. O pacotelogrotateajuda a controlar o crescimento desses arquivos.

Configure o logrotate com o arquivo /etc/logrotate.conf. Em particular, aespecificaçãoinclude 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

Page 226: Reference Pt BR

arquivos de configuração individual em /etc/logrotate.d. Por exemplo, taisprogramas 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) após rotacionar os antigos criados

# ative esta opção se deseja que os arquivos de registro sejam compactados#compactar

# As informações de rotação de registro de drop de pacotes RPM neste diretório

incluem /etc/logrotate.d

# nenhum pacote possui lastlog ou wtmp - nós iremos rotacioná-los aqui #/var/log/wtmp { # mensal # criar 0664 root utmp # rotacionar 1 #}

# registros específicos de sistema também podem ser configurados aqui.

logrotate é controlado pelo cron e é chamado diariamente por /etc/cron.daily/logrotate.

IMPORTANTE

A opção create lê todas as configurações feitas pelo administrador em /etc/permissions*. Certifique-se de que não haja conflitos devido a modificaçõespessoais.

10.1.4 O comando locatelocate, um comando para localização rápida de arquivos, não está incluído no escopopadrão do software instalado. Se desejado, instale o pacote find-locate. O processo

226 Referência

Page 227: Reference Pt BR

updatedb é iniciado automaticamente a cada noite ou aproximadamente 15 minutosapós a inicialização do sistema.

10.1.5 O comando ulimitCom o comando ulimit (user limits), é possível definir limites para o uso de recursosdo sistema e fazer com que sejam exibidos. ulimit é particularmente útil para alimitação da memória disponível para aplicativos. Com ele, pode-se evitar que umaplicativo utilize muita memória, o que poderia travar o sistema.

O comando ulimit pode ser usado com várias opções. Para limitar o uso da memória,use as opções listadas na Tabela 10.1, “ulimit: Configuração de Recursos para oUsuário” (p 227).

Tabela 10.1 ulimit: Configuração de Recursos para o Usuário

Tamanho máximo da memória física-m

Tamanho máximo da memória virtual-v

Tamanho máximo da pilha-s

Tamanho máximo dos arquivos básicos-c

Exibição de definição de limites-a

Entradas globais de sistema podem ser feitas em/etc/profile. Lá, habilite a criaçãode arquivos básicos, necessários para os programadores para depuração. Um usuárionormal não pode aumentar os valores especificados em /etc/profile peloadministrador do sistema, mas pode fazer entradas especiais em ~/.bashrc.

Exemplo 10.4 ulimit: Configurações em ~/.bashrc# limite de memória física: ulimit -m 98304

# limite de memória virtual: ulimit -v 98304

As quantidades de memória devem ser especificadas em KB. Para obter informaçõesmais detalhadas, consulte man bash.

Recursos especiais do SUSE Linux 227

Page 228: Reference Pt BR

IMPORTANTE

Nem todos os shells suportam as diretivas ulimit. O PAM (por exemplo,pam_limits) oferece possibilidades abrangentes de ajustes se você dependede configurações abrangentes para essas restrições.

10.1.6 O comando freeO comando free é um pouco confuso se a sua meta é determinar a quantidade dememória RAM usada no momento. Essas informações podem ser encontradas em/proc/meminfo. Atualmente, os usuários com acesso a um sistema operacionalmoderno, como o Linux, não precisam se preocupar muito com memória. O conceitode RAM disponível surgiu antes da época do gerenciamento unificado de memória. Osloganmemória livre é memória ruim se aplica bem ao Linux. Como resultado, o Linuxsempre se esforçou para equilibrar caches externos sem realmente permitir memórialivre ou sem uso.

Basicamente, o kernel não tem conhecimento direto de nenhum aplicativo ou dados deusuário. Em vez disso, ele gerencia aplicativos e dados de usuário em um cache depágina. Se a memória diminuir, partes dele são gravadas na partição de troca ou emarquivos, dos quais podem ser lidas inicialmente com a ajuda do comando mmap(consulte man mmap).

O kernel também contém outros caches, como o cache slab, onde os caches usadospara acesso a rede são armazenados. Isso pode explicar as diferenças entre os contadoresem /proc/meminfo. A maioria deles (mas não todos) pode ser acessada via /proc/slabinfo.

10.1.7 O arquivo /etc/resolv.confA resolução de nome de domínio é tratada pelo arquivo /etc/resolv.conf.Consulte o Capítulo 20,Domain Name System (Sistema de Nomes de Domínio) (p 381).

Este arquivo é atualizado pelo script/sbin/modify_resolvconf exclusivamente,e nenhum outro programa tem permissão para modificar diretamente o /etc/resolv.conf. Forçar esta regra é a única maneira de garantir que a configuração de rede dosistema e os arquivos relevantes sejam mantidos em um estado consistente.

228 Referência

Page 229: Reference Pt BR

10.1.8 Páginas de manual e de informaçõesPara alguns aplicativos GNU (como o tar), as páginas de manuais não são mais mantidas.Para esses comandos, use a opção --help para obter um rápido resumo das páginasde informações, que fornecem instruções mais detalhadas. O info é um sistema hipertextodo GNU. Leia uma introdução sobre este sistema digitando info info. As páginasde informações podem ser exibidas com Emacs ao se digitar emacs -f info oudiretamente em um console com info. Também é possível usar tkinfo, xinfo ou osistema de ajuda do SUSE para exibir as páginas de informações.

10.1.9 Configurações para GNU EmacsO GNU Emacs é um complexo ambiente de trabalho. As seções a seguir descrevem osarquivos de configuração processados quando o GNU Emacs é iniciado. Há maisinformações em http://www.gnu.org/software/emacs/.

Na inicialização, o Emacs lê vários arquivos que contêm as configurações do usuário,administrador do sistema e distribuidor para personalização ou pré-configuração. Oarquivo de inicialização ~/.emacs é instalado nos diretórios pessoais dos usuáriosindividuais 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-emacspara o diretório pessoal (com cp /etc/skel/.gnu-emacs ~/.gnu-emacs)e faça as configurações desejadas nesse diretório.

O .gnu-emacs define o arquivo ~/.gnu-emacs-custom como arquivopersonalizado. Se os usuários fizerem as configurações com as opçõespersonalizar no Emacs, as configurações serão salvas no arquivo ~/.gnu-emacs-custom.

Com o SUSE Linux, o pacote do emacs instala o arquivo site-start.el nodiretório /usr/share/emacs/site-lisp. O arquivo site-start.el écarregado antes do arquivo de inicialização ~/.emacs. Entre outras coisas, o arquivosite-start.el assegura que os arquivos de configuração especial distribuídos comos pacotes de expansão do Emacs, como o psgml, sejam carregados automaticamente.Os arquivos de configuração deste tipo estão localizados em /usr/share/emacs/site-lisp, também, e sempre começam com o nome suse-start-. Oadministrador do sistema local pode especificar configurações globais do sistema noarquivo default.el.

Recursos especiais do SUSE Linux 229

Page 230: Reference Pt BR

Mais informações sobre esses arquivos estão disponíveis no arquivo de informaçõesdo Emacs em Init File: info:/emacs/InitFile. Informações sobre comodesabilitar o carregamento desses arquivos, se necessário, também são fornecidas nestelocal.

Os componentes do Emacs são divididos em vários pacotes:

• O pacote base emacs.

• emacs-x11 (normalmente instalado): o programa com suporte X11.

• emacs-nox: o programa sem suporte X11.

• emacs-info: documentação online em formato info.

• emacs-el: os arquivos de biblioteca não compilados em Emacs Lisp. Eles nãosão necessários em tempo de execução.

• Numerosos pacotes de expansão podem ser instalados, se houver necessidade:emacs-auctex (para LaTeX), psgml (para SGML e XML), gnuserv (paraoperação de cliente e servidor) e outros.

10.2 Consoles virtuaisO Linux é um sistema multiusuário e multitarefa. As vantagens desses recursos podemser apreciadas mesmo em um sistema de PC independente. No modo de texto, existemseis consoles virtuais disponíveis. Alterne entre eles utilizando a combinação de teclasAlt + F1 para Alt + F6 . O sétimo console é reservado para X e o décimo consolemostra as mensagens do kernel. Podem ser atribuídos mais ou menos consoles com amodificação do arquivo /etc/inittab.

Para alternar para um console de X sem fechá-lo, use a combinação de teclas Ctrl +Alt + F1 para Ctrl + Alt + F6 . Para voltar para X, pressione Alt + F7 .

10.3 Mapeamento de tecladoPara padronizar o mapeamento de teclado de programas, foram feitas mudanças nosseguintes arquivos:

230 Referência

Page 231: Reference Pt BR

/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 mudanças afetam apenas aplicativos que utilizam entradas terminfo ou cujosarquivos de configuração são mudados diretamente (vi, less, etc.). Os aplicativosque não acompanham o SUSE Linux devem ser adaptados a esses padrões.

Em X, a chave de composição (multikey) pode ser acessada utilizando Ctrl + Shift(direita). Consulte também a entrada correspondente em /usr/X11R6/lib/X11/Xmodmap.

Outras configurações são possíveis utilizando a Extensão de Teclado X (XKB). Estaextensão também é usada pelos ambientes de área de trabalho do GNOME (gswitchit)e KDE (kxkb).

DICA: Mais informações

Informações sobre o XKB estão disponíveis em /etc/X11/xkb/README enos documentos ali relacionados.

Informações detalhadas sobre a entrada dos idiomas chinês, japonês e coreano(CJK) estão disponíveis na página de Mike Fabian em: http://www.suse.de/~mfabian/suse-cjk/input.html.

10.4 Configurações de idioma eespecíficas de país

O SUSE Linux é amplamente internacionalizado e pode ser modificado para satisfazeras necessidades locais de maneira flexível. Em outras palavras, a internacionalização(I18N) permite localizações específicas (L10N). As abreviações I18N e L10N são

Recursos especiais do SUSE Linux 231

Page 232: Reference Pt BR

derivadas das primeiras e últimas letras das palavras e, no meio, está o número de letrasomitidas.

As configurações são feitas com variáveis LC_ definidas no arquivo /etc/sysconfig/language. Estas referem-se não somente ao suporte ao idioma nativo,mas também às categorias Mensagens (Idioma), Conjunto de Caracteres, Ordem deClassificação, Hora e Data, Números e Moeda. Cada uma dessas categorias pode serdefinida diretamente com sua própria variável ou indiretamente com uma variávelmaster no arquivo language (consulte a página de manual local).

RC_LC_MESSAGES, RC_LC_CTYPE, RC_LC_COLLATE, RC_LC_TIME,RC_LC_NUMERIC, RC_LC_MONETARY

Essas variáveis são passadas para o shell sem o prefixo RC_ e representa ascategorias listadas. Os perfis shell de referência estão listados abaixo. Aconfiguração atual pode ser exibida com o comando locale.

RC_LC_ALLEsta variável, se definida, sobregrava os valores das variáveis já mencionadas.

RC_LANGSe nenhuma das variáveis anteriores for definida, este é o fallback. Por padrão, oSUSE Linux apenas define RC_LANG. Isto facilita o processo para que os usuáriosinformem seus próprios valores.

ROOT_USES_LANGUma variável yes ou no. Se for definida como no, root sempre funcionará noambiente POSIX.

As variáveis podem ser definidas com o editor sysconfig do YaST (consulte aSeção 8.3.1, “Mudando a configuração do sistema usando o Editor sysconfig do YaST”(p 198)). O valor de tal variável contém o código do idioma, código do país, codificaçãoe modificador. Os componentes individuais são conectados por caracteres especiais:LANG=<language>[[_<COUNTRY>].<Encoding>[@<Modifier>]]

10.4.1 Alguns exemplosVocê deve sempre definir os códigos do idioma e do país juntos. As configurações doidioma seguem o padrão ISO 639 disponível em http://www.evertype.com/standards/iso639/iso639-en.html e http://www.loc.gov/

232 Referência

Page 233: Reference Pt BR

standards/iso639-2/. Os códigos de país estão listados na variável ISO 3166disponível em http://www.din.de/gremien/nas/nabd/iso3166ma/codlstp1/en_listp1.html.

Só faz sentido definir valores para os quais os arquivos de descrição utilizáveis podemser encontrados em /usr/lib/locale. Arquivos de descrição adicionais podemser criados de arquivos em /usr/share/i18n utilizando o comando localedef.Os arquivos de descrição fazem parte do pacote glibc-i18ndata. Um arquivo dedescrição para en_US.UTF-8 (para inglês e Estados Unidos) pode ser criado com:localedef -i en_US -f UTF-8 en_US.UTF-8

LANG=en_US.UTF-8Esta é a configuração padrão se Inglês americano for selecionado durante ainstalação. Se você selecionou outro idioma, aquele idioma será habilitado, masainda com o UTF-8 como a codificação de caractere.

LANG=en_US.ISO-8859-1Este define o idioma para inglês, país para Estados Unidos e a definição de caracterepara ISO-8859-1. Esta definição de caractere não suporta o sinal de Euro, masàs vezes pode ser útil para programas que não foram atualizados para suportarUTF-8. A string que define o conjunto de caracteres (ISO-8859-1 neste caso)é então avaliada por programas como o Emacs.

LANG=en_IE@euroO exemplo acima inclui explicitamente o sinal de Euro em uma configuração deidioma. Falando estritamente, esta configuração é atualmente obsoleta, porque oUTF-8 também cobre o símbolo de Euro. Ela é útil apenas se um aplicativo nãosuportar o UTF-8, mas o ISO-8859-15.

O SuSEconfig lê as variáveis em/etc/sysconfig/language e grava as mudançasnecessárias 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 tornaas configurações disponíveis em todo o sistema.

Os usuários podem anular os padrões do sistema editando o seu ~/.bashrc de acordo.Por exemplo, se você não quiser usar o en_US global de sistema para mensagens deprograma, inclua LC_MESSAGES=es_ES, então as mensagens serão exibidas emespanhol.

Recursos especiais do SUSE Linux 233

Page 234: Reference Pt BR

10.4.2 Configurações locais em ~/.i18n

Se você não estiver satisfeito com padrões de sistema locais, mude as configuraçõesem ~/.i18n. As entradas em ~/.i18n substituem padrões de sistema de /etc/sysconfig/language. Use os mesmos nomes de variáveis mas sem os prefixosde namespace RC_, por exemplo, use LANG em vez de RC_LANG.

10.4.3 Configurações de suporte de idiomaArquivos na categoria Mensagens são, como regra, armazenados somente no diretóriodo idioma correspondente (como en) para ter um fallback. Se você definir LANG paraen_US e o arquivo de mensagem em /usr/share/locale/en_US/LC_MESSAGES não existir, ele voltará para /usr/share/locale/en/LC_MESSAGES.

Uma cadeia de fallback também pode ser definida, por exemplo, de bretão para francêsou galego para espanhol ou português:

LANGUAGE="br_FR:fr_FR"

LANGUAGE="gl_ES:es_ES:pt_PT"

Se desejado, use as variantes norueguesas Nynorsk e Bokmål (com fallback adicionalpara não):

LANG="nn_NO"

LANGUAGE="nn_NO:nb_NO:no"

ou

LANG="nb_NO"

LANGUAGE="nb_NO:nn_NO:no"

Observe que em norueguês, LC_TIME também é tratado de maneira diferente.

Um problema que pode surgir é um separador usado para delimitar grupos de dígitosnão ser reconhecido corretamente. Isso acontece se LANG for definido para um códigode idioma com somente duas letras, como de, mas o arquivo de definição que o glibc

234 Referência

Page 235: Reference Pt BR

utiliza está localizado em /usr/share/lib/de_DE/LC_NUMERIC. Por isso,LC_NUMERIC deve ser definido para de_DE para tornar a definição de separadorvisível para o sistema.

10.4.4 Mais informações• TheGNUCLibrary ReferenceManual, Capítulo “Locales and Internationalization”.

Ele está incluído 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

Page 236: Reference Pt BR
Page 237: Reference Pt BR

11Operação da impressoraCUPS é o sistema de impressão padrão do SUSE Linux. O CUPS é altamente orientadoao usuário. Em muitos casos, é compatível com LPRng ou pode ser adaptado comrelativamente pouco esforço. O LPRng é incluído no SUSE Linux apenas por motivosde compatibilidade.

As impressoras podem ser distinguidas pela interface, como USB ou rede, e pelalinguagem de impressão. Ao comprar uma impressora, verifique se a interface doequipamento é suportada pelo hardware e se a linguagem da impressora é adequada.As impressoras podem ser categorizadas com base em três classes de linguagem:

Impressoras PostScriptPostScript é a linguagem de impressora na qual a maior parte dos trabalhos deimpressão Linux e Unix são gerados e processados pelo sistema de impressãointerno. Essa linguagem já existe há bastante tempo e é muito eficiente. Sedocumentos PostScript puderem ser diretamente processados pela impressora enão precisarem ser convertidos em estágios adicionais do sistema de impressão, onúmero de origens de erro potenciais será reduzido. Como as impressoras PostScriptestão sujeitas a custos de licenciamento substanciais, elas geralmente custam maisque as impressoras sem interpretador PostScript.

Impressora padrão (linguagens como PCL e ESC/P)Embora essas linguagens de impressora tenham surgido há bastante tempo, aindasão usadas e sofrem constantes desenvolvimentos para se adaptarem aos novosrecursos de impressoras. No caso de linguagens conhecidas, o sistema podeconverter tarefas de impressão PostScript na respectiva linguagem de impressãocom a ajuda do Ghostscript. Esse estágio de processamento é chamado deinterpretação. As linguagens mais conhecidas são a PCL, mais usada pelas

Operação da impressora 237

Page 238: Reference Pt BR

impressoras HP e seus clones, e a ESC/P, utilizada nas impressoras Epson.Geralmente, essas linguagens são suportadas no Linux e produzem um resultadode impressão satisfatório. Pode ocorrer de o Linux não conseguir lidar com algumasfunções de impressoras muito novas e sofisticadas, já que os desenvolvedores docódigo-fonte aberto ainda estarão trabalhando nesses recursos. Além da HP, quedesenvolve os drivers hpijs, nenhum outro fabricante cria ou disponibiliza driversLinux aos distribuidores como licença de código-fonte aberto. A maior parte dessasimpressoras está na faixa de preços intermediária.

Impressoras proprietárias (geralmente, impressoras GDI)Em geral, apenas um ou vários drivers Windows estão disponíveis para impressorasproprietárias. Essas impressoras não aceitam nenhuma das linguagens de impressãocomuns, e as que usam estão sujeitas a alteração quando uma nova edição de ummodelo é lançada. Consulte a Seção 11.7.1, “Impressoras sem suporte de linguagemde impressora padrão” (p 253) para obter mais informações.

Antes de comprar uma nova impressora, consulte as seguintes fontes para verificar aabrangência 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 dosite LinuxPrinting.org

• http://www.cs.wisc.edu/~ghost/ — site do Ghostscript na Web

• /usr/share/doc/packages/ghostscript/catalog.devices —lista de drivers incluídos

Os bancos de dados online sempre mostram o status de suporte Linux mais recente. Noentanto, a distribuição do Linux só pode integrar os drivers disponíveis no momentoda produção. Da mesma forma, uma impressora atualmente classificada como“perfeitamente suportada” poderá não apresentar esse status quando a próxima versãodo SUSE Linux for lançada. Assim, os bancos de dados não indicarão necessariamenteo status correto, mas apenas uma informação aproximada.

238 Referência

Page 239: Reference Pt BR

11.1 Fluxo de trabalho do sistema deimpressão

O usuário cria uma tarefa de impressão. Essa tarefa consiste nos dados a seremimpressos, além de informações para o spooler, como nome da impressora ou nome dafila de impressão e, opcionalmente, dados para o filtro, como opções específicas daimpressora.

Existe uma fila de impressão dedicada para cada impressora. O spooler mantém a tarefade impressão 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 backend.

O filtro converte os dados que o usuário deseja imprimir (ASCII, PostScript, PDF,JPEG etc.) em dados específicos de impressora (PostScript, PCL, ESC/P etc.). Osrecursos da impressora são descritos nos arquivos PPD. O arquivo PPD contém opçõesda impressora com os parâmetros necessários para habilitá-los. O sistema de filtrosverifica se as opções selecionadas pelo usuário foram habilitadas.

Se você usa uma impressora PostScript, o sistema de filtros converte os dados emPostScript específico da impressora. Isso não exige um driver de impressora. Se vocêusa uma impressora não-PostScript, o sistema de filtros converte os dados em dadosespecíficos da impressora usando o Ghostscript. Isso exige um driver Ghostscriptadequado à sua impressora. O back end recebe do filtro os dados específicos daimpressora e os repassa a ela.

11.2 Métodos e protocolos deconexão de impressoras

Existem várias possibilidades para conectar uma impressora ao sistema. A configuraçãodo sistema de impressão CUPS não faz distinção entre uma impressora local e umaimpressora conectada ao sistema pela rede. No Linux, impressoras locais devem serconectadas conforme descrito no manual do respectivo fabricante. O CUPS suportaconexões seriais, USB, paralelas e SCSI. Para obter mais informações sobre a conexãode impressoras, leia o artigo CUPS in a Nutshell (Aprendendo mais um pouco sobre

Operação da impressora 239

Page 240: Reference Pt BR

CUPs) no Banco de Dados de Suporte, em http://portal.suse.com. Paraencontrar o artigo, digite cups na caixa de diálogo de pesquisa.

ATENÇÃO: Conexão do cabo à máquina

Ao conectar a impressora à máquina, não esqueça de que apenas dispositivosUSB podem ser conectados ou desconectados durante a operação. Desligue osistema antes de modificar outros tipos de conexão.

11.3 Instalação do softwarePPD (descrição de impressora PostScript) é a linguagem de computador que descreveas propriedades, como resolução, e as opções, como disponibilidade de uma unidadeduplex. Essas descrições são necessárias para o uso de várias opções de impressora noCUPS. Sem um arquivo PPD, os dados de impressão seriam encaminhados à impressoraem estado “bruto”, o que normalmente não é desejado. Durante a instalação do SUSELinux, vários arquivos PPD são pré-instalados, habilitando o uso de até mesmoimpressoras sem suporte a PostScript.

Para configurar uma impressora PostScript, a melhor opção é obter um arquivo PPDadequado. Há vários arquivos PPD disponíveis no pacote de PPDs do fabricante,que são automaticamente instalados no escopo da instalação padrão. Consulte aSeção 11.6.3, “Arquivos PPD em pacotes diferentes” (p 251) e a Seção 11.7.2, “Nenhumarquivo PPD adequado disponível para impressora PostScript” (p 254).

Novos arquivos PPD podem ser armazenados no diretório /usr/share/cups/model/ ou adicionados ao sistema de impressão por meio do YaST (consulte“Configuração manual” (p 242)). Posteriormente, é possível selecionar o arquivo PPDdurante a instalação.

Tenha cuidado se o fabricante pedir que você instale pacotes de software inteiros paramodificar arquivos de configuração. Em primeiro lugar, esse tipo de instalação poderesultar na perda do suporte oferecido pelo SUSE Linux. Em segundo lugar, os comandosde impressão poderão funcionar de forma diferente, e talvez o sistema não consigaabordar dispositivos de outros fabricantes. Por isso, não recomendamos instalar osoftware do fabricante.

240 Referência

Page 241: Reference Pt BR

11.4 Configuração da impressoraApós conectar a impressora ao computador e instalar o software, instale a impressorano sistema. Faça isso usando as ferramentas que acompanham o SUSE Linux. Comoo SUSE Linux enfatiza a segurança, ferramentas de terceiros não funcionarão bem comas restrições de segurança e causarão mais problemas que benefícios. Consulte aSeção 11.6.1, “Servidor e firewall do CUPS” (p 248) e a Seção 11.6.2, “Mudanças noserviço de impressão do CUPS” (p 249) para obter mais informações sobre comosolucionar problemas.

11.4.1 Impressoras locaisSe for detectada uma impressora local não configurada quando você efetuar login, oYaST será iniciado para configurá-la. Serão usadas as mesmas caixas de diálogomostradas abaixo para a descrição da configuração.

Para configurar a impressora, selecioneHardware→ Impressora no centro de controledo YaST. Isso abrirá a janela de configuração principal da impressora, onde osdispositivos detectados são listados na parte superior. A parte inferior relaciona as listasconfiguradas até então. Se sua impressora não foi detectada, configure-a manualmente.

IMPORTANTE

Se a entrada Impressora não estiver disponível no centro de controle do YaST,provavelmente o pacote yast2-printer não está instalado. Para solucionaresse problema, instale o pacote yast2-printer e reinicie o YaST.

Configuração automáticaO YaST poderá configurar a impressora automaticamente se for possível configurarautomaticamente a porta paralela ou USB e se a impressora conectada puder serdetectada. O banco de dados da impressora também deve conter a string do ID daimpressora que o YaST recupera durante a detecção automática do hardware. Se o IDdo hardware for diferente do da designação do modelo, selecione o modelo manualmente.

Operação da impressora 241

Page 242: Reference Pt BR

Para assegurar que tudo funcione adequadamente, cada configuração deve ser verificadacom a função de teste de impressão do YaST. A página de teste também forneceinformações importantes sobre a configuração testada.

Configuração manualSe os requisitos da configuração automática não forem atendidos, ou se você quiserfazer uma configuração personalizada, configure a impressora manualmente.Dependendo do sucesso da detecção automática e da quantidade de informações sobreo modelo de impressora encontradas no banco de dados, o YaST poderá determinar asconfigurações corretas automaticamente ou, pelo menos, fazer uma pré-seleção razoável.

Os seguintes parâmetros devem ser configurados:

Conexão de Hardware (Porta)A configuração da conexão de hardware dependerá da habilidade do YaST emencontrar a impressora durante a detecção automática de hardware. Se o YaSTconseguir detectar o modelo de impressora automaticamente, poderemos deduzirque a conexão da impressora está funcionando no nível de hardware, não sendonecessário modificar qualquer configuração a esse respeito. Se o YaST não conseguirdetectar automaticamente o modelo de impressora, poderá haver algum problemana conexão no nível do hardware. Nesse caso, será necessária alguma intervençãomanual para configurar a conexão.

Na caixa de diálogoConfiguração da Impressora, pressione Adicionar para iniciaro fluxo de trabalho de configuração manual. Selecione o Tipo de Impressora (porexemplo, Impressora USB) e, clicando em Próximo, digite a Conexão deImpressora e selecione o dispositivo.

Nome da FilaO nome da fila é usado quando emitimos comandos de impressão. O nome deveser relativamente curto e composto apenas por letras minúsculas e números. Digiteo Nome para impressão na próxima caixa de diálogo (Nome da fila).

Modelo de Impressora e Arquivo PPDTodos os parâmetros específicos da impressora, como o driver Ghostscript a serusado e os parâmetros do filtro de impressão, são armazenados em um arquivoPPD (PostDescription Printer Description). Consulte a Seção 11.3, “Instalação dosoftware” (p 240) para obter mais informações sobre arquivos PPD.

242 Referência

Page 243: Reference Pt BR

Para muitos modelos de impressora, haverá vários arquivos PPD disponíveis se,por exemplo, vários drivers Ghostscript funcionarem com o modelo em questão.Quando você selecionar um fabricante e um modelo na próxima caixa de diálogo(Modelo de impressora), o YaST selecionará o arquivo PPD que corresponde àimpressora. Se houver vários arquivos PPD disponíveis para o modelo, o YaSTassumirá um deles como padrão (normalmente aquele marcado comorecomendado). É possível modificar o arquivo PPD escolhido na próxima caixade diálogo usando Editar.

Para modelos não-PostScript, todos os dados específicos da impressora sãoproduzidos pelo driver Ghostscript. Por esse motivo, a configuração do driver é ofator mais importante a determinar a qualidade da impressão. A impressão é afetadapelo tipo de driver Ghostscript (arquivo PPD) selecionado e pelas opçõesespecificadas para ele. Se necessário, mude as opções adicionais (conformedisponibilizadas pelo arquivo PPD) depois de selecionar Editar.

Figura 11.1 Seleção do modelo de impressora

Sempre verifique se suas configurações estão funcionando como esperado. Paraisso, imprima a página de teste. Se a impressão sair com erros (por exemplo, comvárias páginas praticamente vazias), pare a impressão removendo todo o papel e,em seguida, interrompendo o teste no YaST.

Operação da impressora 243

Page 244: Reference Pt BR

Se o banco de dados da impressora não incluir uma entrada para o modelo, serápossível adicionar um novo arquivo PPD selecionando Adicionando Arquivo PPDao Banco de Dados ou usando um grupo de arquivos PPD genéricos para forçar aimpressora a usar uma das linguagens de impressão padrão. Para isso, selecioneFABRICANTE DESCONHECIDO como fabricante da impressora.

Configurações AvançadasNormalmente, não é necessário alterar essas configurações.

11.4.2 Impressoras de redeUma impressora de rede pode suportar vários protocolos, alguns deles simultaneamente.Embora a maioria dos protocolos suportados sejam padronizados, alguns fabricantesexpandem (modificam) o padrão porque eles testam sistemas que não implementaramo padrão corretamente ou porque querem fornecer certas funções que não estãodisponíveis no padrão. Os fabricantes fornecem drivers apenas para alguns sistemasoperacionais, eliminando dificuldades relativas a eles. Infelizmente, raros são os driverspara Linux. Na situação atual, não é possível agir como se todos os protocolosfuncionassem perfeitamente no Linux. Portanto, talvez seja necessário testar váriasopções para obter uma configuração funcional.

O CUPS suporta os protocolossoquete, LPD, IPP esmb. Veja abaixo alguns detalhessobre esses protocolos:

soqueteSoquete se refere a uma conexão na qual os dados são enviados a um soquete deInternet sem precedência de handshake de dados. Alguns dos números de portasde soquete normalmente usados são 9100 ou 35. Um exemplo de URI dedispositivo é socket://host-printer:9100/.

LPD (daemon de impressora de linha)O protocolo LPD comprovado é descrito em RFC 1179. Nesse protocolo, algunsdados relativos à tarefa, como ID da fila de impressão, são enviados antes dos dadosde impressão propriamente ditos. Portanto, deve ser especificada uma fila deimpressão durante a configuração do protocolo LPD para a transmissão de dados.As implementações de fabricantes de impressoras diferentes são flexíveis osuficiente para aceitar qualquer nome como fila de impressão. Se necessário, omanual da impressora indicará o nome a ser usado. LPT, LPT1, LP1 ou semelhantessão os nomes normalmente usados. Também é possível configurar uma fila LPD

244 Referência

Page 245: Reference Pt BR

em um host Linux ou Unix diferente no sistema CUPS. O número de porta para oserviço LPD é 515. Um exemplo de URI de dispositivo élpd://host-printer/LPT1.

IPP (protocolo de impressão de Internet)O IPP é um protocolo relativamente novo (1999) baseado no protocolo HTTP.Com o IPP, mais dados referentes à tarefa são transmitidos. O CUPS usa o IPP emtransmissões internas de dados. É o protocolo escolhido para a fila deencaminhamento entre dois servidores CUPS. É necessário indicar o nome da filade impressão para que o IPP seja configurado corretamente. A porta padrão do IPPé 631. Exemplos de URIs de dispositivo são ipp://host-printer/ps eipp://host-cupsserver/printers/ps.

SMB (compartilhamento Windows)O CUPS também suporta a impressão em impressoras conectadas acompartilhamentos Windows. O protocolo usado para essa finalidade é o SMB. OSMB usa os números de porta 137, 138 e 139. Exemplos de URIs de dispositivossão 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 configuração.Se o fabricante não fornecer as informações necessárias, o comando nmap, que vemcom o pacote nmap, poderá ser usado para descobrir o protocolo. nmap verificar asportas abertas do host. Por exemplo:nmap -p 35,137-139,515,631,9100-10000 printerIP

Configuração do CUPS na rede com YaSTAs impressoras de rede devem ser configuradas com o YaST. O YaST facilita aconfiguração e é mais bem equipado para lidar com restrições de segurança no CUPS(consulte a Seção 11.6.2, “Mudanças no serviço de impressão do CUPS” (p 249)). Paraobter orientações sobre a instalação do CUPS na rede, leia o artigo CUPS in a Nutshellno Banco de Dados de Suporte, em http://portal.suse.com.

Inicie a configuração da impressora e clique em Adicionar. Se não houver orientaçãocontrária do administrador de rede, tente a opção Imprimir Diretamente em Impressorade Rede e prossiga de acordo com os requisitos locais.

Operação da impressora 245

Page 246: Reference Pt BR

Configuração com ferramentas da linha de comandoO CUPS também pode ser configurado com ferramentas de linha de comando comolpadmin e lpoptions. Você precisará de um URI de dispositivo consistente emum back end, como usb, e parâmetros como /dev/usb/lp0. Por exemplo, o URIcompleto poderia ser parallel:/dev/lp0 (impressora conectada à primeira portaparalela) ou usb:/dev/usb/lp0 (primeira impressora conectada à porta USB).

Comlpadmin, o administrador do servidor CUPS pode adicionar, remover ou gerenciarfilas de classe e de impressão. Para adicionar uma fila de impressão, use a seguintesintaxe:lpadmin -p queue -v device-URI \-P PPD-file -E

O dispositivo (-v) estará disponível como fila (-p), usando o arquivo PPDespecificado (-P). Isso significa que você deve conhecer o arquivo PPD e o nome dodispositivo se quiser configurar a impressora manualmente.

Não use -E como primeira opção. Em todos os comandos CUPS, -E como primeiroargumento define o uso de uma conexão criptografada. Para habilitar a impressora, -Edeve 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 opções de lpadmin, consulte a página de manual lpadmin(1).

Durante a configuração da impressora, algumas opções são definidas como padrão.Essas opções podem ser modificadas para cada tarefa de impressão (dependendo daferramenta de impressão utilizada). Também é possível modificar essas opções padrãocom o YaST. Usando ferramentas de linha de comando, defina opções padrão da seguinteforma:

1 Primeiro, liste todas as opções:lpoptions -p queue -l

Exemplo:

246 Referência

Page 247: Reference Pt BR

Resolução/Resolução de Saída: 150dpi *300dpi 600dpi

A opção padrão ativada fica evidente com o asterisco precedente (*).

2 Mude a opção com lpadmin:lpadmin -p queue -o Resolution=600dpi

3 Verifique a nova configuração:lpoptions -p queue -l

Resolução/Resolução de Saída: 150dpi 300dpi *600dpi

As configurações são gravadas em~/.lpoptions quando um usuário normal executalpoptions. As configurações deroot são gravadas em/etc/cups/lpoptions.

11.5 Configuração de aplicativosOs aplicativos, assim como as ferramentas da linha de comando, dependem das filasde impressora existentes. Geralmente, não é necessário reconfigurar a impressora deum aplicativo específico porque provavelmente você conseguirá imprimir usando asfilas disponíveis.

Para imprimir da linha de comando, digite lp-d nome da fila nome doarquivo, substituindo os nomes correspondentes do nome da fila e nome doarquivo.

Alguns aplicativos dependem do comando lp para imprimir. Nesse caso, digite ocomando correto na caixa de diálogo do aplicativo, geralmente sem especificar nomedo arquivo, por exemplo lp -dnome da fila. Para que isso funcione comprogramas KDE, habilite Impressão através de programa externo. Caso contrário, vocênão poderá digitar o comando de impressão.

Ferramentas como o xpp e o programa kprinter do KDE oferecem uma interface gráficaque permite escolher filas e definir opções padrão do CUPS e específicas da impressoradisponibilizadas por meio do arquivo PPD. Você pode usar o kprinter como interfacede impressão padrão de aplicativos não KDE especificando kprinter oukprinter--stdin como comando de impressão nas caixas de diálogo dessesaplicativos. O comportamento do aplicativo determinará o comando a ser escolhido.

Operação da impressora 247

Page 248: Reference Pt BR

Se configurado corretamente, o aplicativo deverá chamar a caixa de diálogo kprintersempre que uma tarefa de impressão for emitida. Por isso, você pode usar a caixa dediálogo para selecionar uma fila e definir outras opções de impressão. Isso requer quea configuração de impressão do próprio aplicativo não conflite com a do kprinter, e queas opções de impressão somente sejam modificadas por meio de kprinter depois queeste seja habilitado.

11.6 Recursos especiais do SUSE LinuxVários recursos do CUPS foram adaptados para o SUSE Linux. Algumas das mudançasmais importantes são abordadas aqui.

11.6.1 Servidor e firewall do CUPSExistem várias 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 meioda qual encaminhará todas as tarefas ao servidor de rede correspondente (fila deencaminhamento). Geralmente, essa abordagem não é recomendada porque todasas máquinas clientes devem ser reconfiguradas sempre que a configuração doservidor de rede sofrer alguma mudança.

2. As tarefas de impressão também podem ser encaminhadas diretamente a umservidor de rede. Para esse tipo de configuração, não execute um daemon CUPSlocal. A chamada de lp ou da biblioteca correspondente de outros programaspode enviar tarefas diretamente ao servidor de rede. No entanto, essa configuraçãonão funcionará se você também quiser imprimir em uma impressora local.

3. O daemon CUPS pode ouvir pacotes de transmissão IPP que outros servidoresde rede enviam para anunciar as filas disponíveis.

Essa é a melhor configuração do CUPS para impressão em servidores CUPSremotos. No entanto, há o risco de que um invasor envie transmissões IPP comfilas e o daemon local acesse uma fila falsa. Se ele exibir a fila com o mesmonome de outra fila no servidor local, o proprietário da tarefa poderá acreditarque a tarefa foi enviada a um servidor local, enquanto, na verdade, ela foi enviadaao servidor do invasor.

248 Referência

Page 249: Reference Pt BR

O YaST pode localizar os servidores CUPS verificando os hosts de rede local para verse eles oferecem o serviço IPP ou ouvindo transmissões IPP. Isso exige que o firewallpermita a transmissão de pacotes recebidos na porta 631/UDP (cliente de serviço IPP).Isso será habilitado automaticamente quando você tiver configurado sua máquina paraestar na zona de firewall interna. Abrir uma porta para configurar acesso a filas remotasna zona externa pode constituir um risco de segurança porque o invasor pode transmitirum servidor que talvez seja aceito pelos usuários. Por padrão, as transmissões de IPPsão rejeitadas na zona externa. Consulte “Configurando com o YaST” (p 110) para obterdetalhes sobre a configuração de firewall.

O usuário também pode detectar os servidores CUPS verificando ativamente os hostsde rede locais ou configurar filas manualmente. No entanto, por causa das razõesmencionadas no início desta seção, esse método não é recomendado.

11.6.2 Mudanças no serviço de impressãodo CUPS

Estas mudanças foram inicialmente aplicadas para o SUSE Linux 9.1.

Execuções de cupsd como usuário lpNa inicialização, cupsd muda do usuário root para o usuário lp. Isso oferece umnível de segurança muito maior porque o serviço de impressão CUPS não é executadocom permissões irrestritas, mas somente com as permissões necessárias para o serviçode impressão.

Entretanto, a autenticação (a verificação de senha) não pode ser executada via /etc/shadow, porque lp não tem acesso a /etc/shadow. Em vez disso, deve ser usadaa autenticação específica do CUPS via /etc/cups/passwd.md5. Para esses fins,o administrador do CUPS com o grupo de administração do CUPS sys e a senha doCUPS devem ser digitados em/etc/cups/passwd.md5. Para isso, digite o seguintecomo root:lppasswd -g sys -a CUPS-admin-name

Esta configuração também é essencial se você quiser usar o front end da Web deadministração CUPS ou a ferramenta de administração da impressora KDE.

Operação da impressora 249

Page 250: Reference Pt BR

Quando cupsd é executado como lp, /etc/printcap não pode ser gerado, porquelp não pode criar arquivos em /etc/. Portanto, cupsd gera /etc/cups/printcap. Para assegurar que os aplicativos que lêem somente nomes de fila de/etc/printcap continuem a funcionar adequadamente, /etc/printcap é umlink simbólico que aponta para /etc/cups/printcap.

Quando cupsd é executado como lp, a porta 631 não pode ser aberta. Portanto,cupsd não pode ser recarregado com rccups reload. Use rccups restart.

Funcionalidade genérica para BrowseAllow eBrowseDeny

As permissões de acesso para BrowseAllow e BrowseDeny se aplicam a todos ostipos de pacotes enviados para cupsd. As configurações padrão em /etc/cups/cupsd.conf são as seguintes:BrowseAllow @LOCALBrowseDeny 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 são hosts cujos endereços IP pertencem a uma interface não-PPP(interfaces cujos sinalizadores IFF_POINTOPOINT não estão definidos) e pertencemà mesma rede do servidor CUPS. Pacotes de todos os outros hosts serão rejeitadosimediatamente.

cupsd ativado por padrãoEm uma instalação padrão, cupsd é ativado automaticamente, permitindo fácil acessoa filas de servidores de rede CUPS sem qualquer ação manual adicional. Os itens em“Execuções de cupsd como usuário lp” (p 249) e “Funcionalidade genérica paraBrowseAllow e BrowseDeny” (p 250) são pré-condições essenciais desse recurso,caso contrário a segurança não seria suficiente para ativação automática de cupsd.

250 Referência

Page 251: Reference Pt BR

11.6.3 Arquivos PPD em pacotes diferentesA configuração de impressora do YaST define as filas do CUPS usando apenas osarquivos PPD instalados em /usr/share/cups/model/ no sistema. Para localizaros arquivos PPD adequados ao modelo de impressora, o YaST compara o fabricante eo modelo determinados durante a detecção do hardware aos fabricantes e modelos detodos os arquivos PPD disponíveis em /usr/share/cups/model/ no sistema.Para isso, a configuração de impressora do YaST gera um banco de dados com asinformações de fabricante e modelo extraídas dos arquivos PPD. Quando você selecionauma impressora na lista de fabricantes e modelos, recebe os arquivos PPD quecorrespondem ao fabricante e modelo adequados.

A configuração usando apenas arquivos PPD e nenhuma outra fonte de informação tema vantagem de permitir a livre modificação de arquivos PPD em/usr/share/cups/model/. A configuração de impressora do YaST reconhece as mudanças e geranovamente o banco de dados de fabricantes e modelos. Por exemplo, se você tem apenasimpressoras PostScript, normalmente não precisa dos arquivos PPD Foomatic do pacotecups-drivers ou os arquivos PPD Gimp-Print do pacote cups-drivers-stp.Em vez disso, os arquivos PPD de suas impressoras PostScript podem ser copiadosdiretamente para /usr/share/cups/model/ (se já não existem no pacotemanufacturer-PPDs) para que você obtenha uma configuração ideal para suasimpressoras.

Arquivos PPD do CUPS do pacote cups

Os arquivos PPD genéricos do pacote cups foram complementados com arquivos PPDFoomatic adaptados para impressoras PostScript nível 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 comGhostscript para impressoras não-PostScript. Os arquivos PPD Foomatic adequadostêm as entradas *NickName: ... Foomatic/Ghostscript driver e

Operação da impressora 251

Page 252: Reference Pt BR

*cupsFilter: ... foomatic-rip. Esses arquivos PPD estão localizados nopacote cups-drivers.

O YaST preferirá um arquivo PPD Foomatic se um arquivo destes com a entrada*NickName: ... Foomatic ... (recommended) corresponder ao modelode impressora e o pacote manufacturer-PPDs não contiver um arquivo PPD maisadequado.

Arquivos PPD Gimp-Print do pacotecups-drivers-stp

Em vez de foomatic-rip, o filtro CUPSrastertoprinter do Gimp-Print podeser usado em várias impressoras não-PostScript. Esse filtro e os arquivos PPD Gimp-Print adequados estão disponíveis no pacote cups-drivers-stp. Os arquivos PPDGimp-Print estão localizados em /usr/share/cups/model/stp/ e têm asentradas *NickName: ... CUPS+Gimp-Print e *cupsFilter: ...rastertoprinter.

Arquivos PPD de fabricantes de impressoras nopacote manufacturer-PPDs

O pacote manufacturer-PPDs contém arquivos PPD de fabricantes de impressorasque são liberados mediante uma licença suficientemente permissiva. ImpressorasPostScript devem ser configuradas com o arquivo PPD adequado do fabricante daimpressora, já que esse arquivo permite o uso de todas as funções da impressoraPostScript. O YaST preferirá um arquivo PPD do pacote manufacturer-PPDs seas seguintes condições forem atendidas:

• O fabricante e o modelo determinados durante a detecção do hardware correspondemao fabricante e ao modelo de um arquivo PPD do pacote manufacturer-PPDs.

• O arquivo PPD do pacotemanufacturer-PPDs é o único arquivo PPD adequadopara o modelo de impressora ou existe um arquivo PPD Foomatic com uma entrada*NickName: ... Foomatic/Postscript (recommended)que tambémcorresponde ao modelo de impressora.

Assim, o YaST não usa nenhum arquivo PPD do pacote manufacturer-PPDs nosseguintes casos:

252 Referência

Page 253: Reference Pt BR

• O arquivo PPD do pacote manufacturer-PPDs não corresponde ao fabricantee ao modelo. Isso poderá ocorrer se o pacote manufacturer-PPDs contiverapenas um arquivo PPD para modelos semelhantes, por exemplo, se não houverarquivo PPD separado para os modelos individuais de uma série de modelos, maso nome do modelo for especificado na forma Funprinter 1000 series noarquivo PPD.

• O arquivo PPD Foomatic PostScript não é recomendado. Isso talvez ocorra porqueo modelo de impressora não funciona suficientemente bem no modo PostScript;por exemplo, a impressora pode não ser confiável nesse modo porque tem poucamemória ou é muito lenta porque seu processador é fraco. Além disso, a impressorapode não suportar PostScript por padrão porque, por exemplo, o suporte a PostScriptsó está disponível como módulo opcional.

Se um arquivo PPD do pacote manufacturer-PPDs for adequado para umaimpressora PostScript, mas o YaST não puder configurá-lo por esses motivos, selecionemanualmente o modelo de impressora respectivo no YaST.

11.7 Solução de problemasAs seções a seguir abordam alguns dos problemas mais encontrados em relação ahardware e software de impressora, bem como formas de solucionar ou superar essesproblemas.

11.7.1 Impressoras sem suporte delinguagem de impressora padrão

As impressoras que não suportam nenhuma linguagem de impressora comum e sópodem ser endereçadas com seqüências de controle especiais são chamadas deimpressoras GDI. Essas impressoras só funcionam com as versões do sistemaoperacional para as quais o fabricante oferece driver. GDI é uma interface deprogramação desenvolvida pela Microsoft para dispositivos gráficos. O verdadeiroproblema não é a interface de programação, mas o fato de que as impressoras GDI sópodem ser endereçadas com a linguagem de impressora proprietária do respectivomodelo de impressora.

Operação da impressora 253

Page 254: Reference Pt BR

Algumas impressoras podem ser modificadas para funcionar no modo GDI ou em umadas linguagens de impressora padrão. Alguns fabricantes oferecem drivers proprietáriospara suas impressoras GDI. A desvantagem dos drivers de impressora proprietários éque não há garantia de que vão funcionar com o sistema de impressão instalado e deque são adequados para as diferentes plataformas de hardware. Em contraste, impressorasque suportam uma linguagem de impressora padrão não dependem de uma versão dosistema de impressão especial ou de plataforma de hardware especial.

Em vez de desperdiçar tempo tentando fazer um driver Linux proprietário funcionar,pode ser mais eficaz comprar uma impressora suportada. Isso solucionaria o problemado driver de uma vez por todas, eliminando a necessidade de instalar e configurarsoftware de driver especial e obter atualizações do driver eventualmente necessáriasdevido a novos avanços no sistema de impressão.

11.7.2 Nenhum arquivo PPD adequadodisponível para impressora PostScript

Se o pacote manufacturer-PPDs não contiver qualquer arquivo PPD adequadopara uma impressora PostScript, será possível usar o arquivo PPD do CD do driver dofabricante da impressora ou fazer download de um arquivo PPD adequado da páginada Web do fabricante.

Se o arquivo PPD for fornecido como arquivo compactado (.zip) ou arquivo compactadode auto-extração (.exe), faça a descompactação com unzip. Primeiro, reveja ostermos de licença do arquivo PPD. Use o utilitário cupstestppd para verificar se oarquivo PPD é compatível com a “Especificação de Formato do Arquivo de Descriçãode Impressora Adobe PostScript, versão 4.3”. Se o utilitário retornar “FAIL”, os errosdos arquivos PPD são sérios e provavelmente causarão grandes problemas. Os problemasreportados pelo cupstestppd devem ser eliminados. Se necessário, peça o arquivoPPD adequado ao fabricante da impressora.

11.7.3 Portas paralelasA abordagem mais segura é conectar a impressora diretamente à primeira porta paralelae selecionar as configurações de porta paralela no BIOS:

• Endereço de E/S: 378 (hexadecimal)

254 Referência

Page 255: Reference Pt BR

• Interrupção: irrelevante

• Modo: Normal, SPP ou Output Only

• DMA: desabilitado

Se a impressora não puder ser endereçada na porta paralela apesar dessas configurações,digite o endereço de E/S explicitamente de acordo com a configuração no BIOS noformato0x378 em/etc/modprobe.conf. Se houver duas portas paralelas definidaspara os endereços de E/S 378 e 278 (hexadecimal), digite-os no formato0x378,0x278.

Se a interrupção 7 estiver livre, poderá ser ativada com a entrada mostrada noExemplo 11.1, “/etc/modprobe.conf: Modo de interrupção para a primeira porta paralela”(p 255). Antes de ativar o modo de interrupção, verifique o arquivo /proc/interrupts para ver quais interrupções já estão sendo usadas. Somente asinterrupções usadas atualmente são exibidas. Isso pode mudar dependendo doscomponentes de hardware ativos. A interrupção da porta paralela não deve ser usadapor outro dispositivo. Se não tiver certeza, use o modo de polling com irq=none.

Exemplo 11.1 /etc/modprobe.conf: Modo de interrupção para a primeira portaparalela

alias parport_lowlevel parport_pcoptions parport_pc io=0x378 irq=7

11.7.4 Conexões da impressora de redeIdentificação de problemas de rede

Conecte a impressora diretamente ao computador. Para fins de teste, configure-acomo impressora local. Se isso funcionar, o problema está na rede.

Verificando a rede TCP/IPA rede TCP/IP e a resolução de nomes devem ser funcionais.

Verificando um lpd remotoUse o comando a seguir para testar o estabelecimento de uma conexão TCP comlpd (porta 515) no host.netcat -z host 515 && echo ok || echo failed

Operação da impressora 255

Page 256: Reference Pt BR

Se a conexão com lpd não for estabelecida, o lpd pode não estar ativo ou podehaver problemas básicos de rede.

Como usuário root, use o seguinte comando para consultar um relatório de status(possivelmente muito longo) sobre a fila no host remoto, considerando que orespectivo lpd esteja ativo e o host aceite consultas:echo -e "\004queue" \ | netcat -w 2 -p 722 host 515

Se o lpd não responder, ele pode não estar ativo ou pode haver problemas básicosde rede. Se o lpd responder, a resposta deve mostrar por que não é possívelimprimir nafila dohost. Se você receber uma resposta como a do Exemplo 11.2,“Mensagem de erro do lpd” (p 256), o problema está sendo causado pelo lpdremoto.

Exemplo 11.2 Mensagem de erro do lpdlpd: your host does not have line printer accesslpd: queue does not existprinter: spooling disabledprinter: printing disabled

Verificando um cupsd remotoPor padrão, o servidor de rede CUPS deve transmitir suas filas a cada 30 segundosna porta UDP 631. Por isso, o seguinte comando pode ser usado para testar aexistência 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 transmissão, a saída aparecerá conformemostrado no Exemplo 11.3, “Transmissão do servidor de rede CUPS” (p 256).

Exemplo 11.3 Transmissão do servidor de rede CUPSipp://host.domain:631/printers/queue

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

Se a conexão com cupsd não for estabelecida, o cupsd pode não estar ativo ouexistem problemas básicos de rede. lpstat -h host -l -t retorna umrelatório de status (possivelmente muito longo) para todas as filas do host, desdeque o respectivo cupsd esteja ativo e o host aceite consultas.

256 Referência

Page 257: Reference Pt BR

O próximo comando pode ser usado para testar se a fila do host aceita umatarefa de impressão consistindo em um único caractere de retorno de carro. Nadaserá impresso. Possivelmente, será ejetada uma página em branco.echo -en "\r" \ | lp -d fila -h host

Solução de problemas da impressora de rede ou da caixa do servidor de impressãoAlgumas vezes, spoolers executados na caixa do servidor de impressão causamproblemas quando precisam lidar com muitas tarefas de impressão. Como isso écausado pelo spooler nessa caixa, não há solução para o problema. Como paliativo,desvie o spooler na caixa do servidor de impressão endereçando a impressoraconectada à caixa diretamente por meio do soquete TCP. Consulte a Seção 11.4.2,“Impressoras de rede” (p 244).

Dessa forma, a caixa do servidor de impressão é reduzida a um conversor entre asvárias formas de transferência de dados (conexão de rede TCP/IP e impressoralocal). Para usar esse método, você precisa conhecer a porta TCP da caixa doservidor de impressão. Se a impressora estiver conectada à caixa do servidor deimpressão e ligada, a porta TCP poderá, geralmente, ser determinada com o utilitárionmap do pacote nmap depois que essa caixa for ativada. Por exemplo,nmapendereço IP pode resultar na seguinte saída para a caixa do servidor deimpressão:Port State Service23/tcp open telnet80/tcp open http515/tcp open printer631/tcp open cups9100/tcp open jetdirect

Essa saída indica que a impressora conectada à caixa do servidor de impressãopode ser endereçada via soquete TCP na porta 9100. Por padrão, nmap verificasomente algumas portas mais conhecidas listadas em /usr/share/nmap/nmap-services. Para verificar todas as portas possíveis, use o comandonmap-pporta_de_origem-porta_de_destino endereço-IP. Oprocesso pode demorar. Para obter mais informações, consulte a página de manualnmap.

Digite um comando comoecho -en "\rHello\r\f" | netcat -w 1 porta endereço-IP arquivo cat | netcat -w 1 porta endereço-IP

Operação da impressora 257

Page 258: Reference Pt BR

para enviar strings de caracteres ou arquivos diretamente à respectiva porta paratestar se a impressora pode ser endereçada dessa porta.

11.7.5 Defeitos na impressão sem mensagemde erro

Para o sistema de impressão, a tarefa de impressão é concluída quando o back end doCUPS finaliza a transferência de dados ao destinatário (impressora). Se houver falhano processamento posterior no destinatário (por exemplo, se a impressora não imprimirseus dados específicos), o sistema de impressão não notará. Se a impressora não imprimirseus dados específicos, selecione outro arquivo PPD mais adequado à impressora.

11.7.6 Filas desabilitadasSe a transferência de dados para o destinatário falhar completamente após váriastentativas, o back end do CUPS, como usb ou soquete, reportará um erro ao sistemade impressão (ao cupsd). O back end decide se e quantas tentativas devem ser feitasaté que a transferência de dados seja reportada como impossível. Como tentativasposteriores podem ser inúteis, o cupsd desabilita a impressão da fila respectiva. Apóseliminar a causa do problema, o administrador do sistema deve reabilitar a impressãocom o comando /usr/bin/enable.

11.7.7 Navegação no CUPS: apagandotarefas de impressão

Se um servidor de rede CUPS transmitir suas filas aos hosts de clientes via navegaçãoe um cupsd local adequado estiver ativo nos hosts de clientes, o cupsd cliente aceitarátarefas de impressão de aplicativos e as encaminhará para o cupsd no servidor. Quandoo cupsd aceita uma tarefa de impressão, esta recebe um novo número. Portanto, onúmero da tarefa no host cliente é diferente do número da tarefa no servidor. Comogeralmente a tarefa de impressão é encaminhada de imediato, não pode ser apagadacom o número de tarefa do host cliente, porque o cupsd cliente considera a tarefacomo concluída assim que ela é encaminhada ao cupsd do servidor.

258 Referência

Page 259: Reference Pt BR

Para apagar a tarefa de impressão no servidor, use um comando como lpstat -hprint-server -o para determinar o número da tarefa no servidor, contanto que oservidor não tenha concluído a tarefa de impressão (isto é, enviado para a impressora).Usando este número, a tarefa de impressão pode ser apagada no servidor:cancel -h servidor-de-impressão fila-nr_tarefa

11.7.8 Tarefas de impressão defeituosas eerros de transferência de dados

As tarefas de impressão permanecerão nas filas e a impressão recomeçará se vocêdesligar e ligar a impressora ou desligar e reinicializar o computador durante o processode impressão. As tarefas de impressão defeituosas devem ser removidas da fila comcancel.

Se a tarefa de impressão apresentar defeito ou se ocorrer um erro na comunicação entreo host e a impressora, a impressora imprimirá várias folhas de papel com caracteresininteligíveis porque não conseguiu processar os dados corretamente. Para solucionaresse problema, siga este procedimento:

1 Para interromper a impressão, remova todo o papel das bandejas da impressorajato de tinta ou laser. Impressoras de alta qualidade têm um botão de cancelamentoda impressão.

2 A tarefa de impressão pode ainda estar na fila, já que as tarefas são removidassomente depois de enviadas completamente à impressora. Use lpstat -o oulpstat -h servidor-de-impressão -o para verificar a fila que estásendo impressa. Apague a tarefa com cancelfila-númerodatarefa oucancel -hservidor-de-impressão fila-númerodatarefa.

3 Alguns dados podem ainda ser transferidos à impressora mesmo que a tarefa sejaapagada da fila. Verifique se há um processo back end do CUPS em execuçãopara a fila respectiva e termine-o. Por exemplo, para uma impressora conectadaà porta paralela, o comando fuser -k /dev/lp0 pode ser usado paraterminar todos os processos que ainda estão acessando a impressora (maisprecisamente: a porta paralela).

4 Reinicialize a impressora completamente deixando-a desligada por um tempo.Em seguida, insira o papel e ligue a impressora.

Operação da impressora 259

Page 260: Reference Pt BR

11.7.9 Depuração do sistema de impressãodo CUPS

Use o seguinte procedimento genérico para localizar problemas no sistema de impressãodo CUPS:

1 Defina LogLevel debug em /etc/cups/cupsd.conf.

2 Pare o cupsd.

3 Remova /var/log/cups/error_log* para não precisar procurar emarquivos de registro muito grandes.

4 Inicie o cupsd.

5 Repita a ação que causou o problema.

6 Verifique as mensagens em /var/log/cups/error_log* para identificara causa do problema.

11.7.10 Mais informaçõesSoluções para vários problemas específicos são apresentadas no Banco de Dados deSuporte do SUSE (http://portal.suse.com/). Localize os artigos relevantescom pesquisas de palavras-chave.

260 Referência

Page 261: Reference Pt BR

12Gerenciamento de dispositivo dekernel dinâmico com udevDesde a versão 2.6, o kernel é capaz de adicionar ou remover praticamente qualquerdispositivo no sistema em execução. Mudanças no estado do dispositivo (se umdispositivo foi conectado ou removido) precisam ser estendidas ao espaço do usuário.Os dispositivos devem ser configurados assim que forem conectados e identificados.Os usuários de um determinado dispositivo devem ser informados sobre qualquermudança de estado deste dispositivo. O udev fornece a infra-estrutura necessária paramanter dinamicamente os arquivos de nó de dispositivo e links simbólicos no diretório/dev. As regras do udev permitem conectar ferramentas externas ao processamentode evento de dispositivo de kernel. Isso permite que você personalize o tratamento dodispositivo de udev, por exemplo, adicionando determinados scripts a serem executadoscomo parte do tratamento do dispositivo de kernel ou solicitar e importar dadosadicionais para avaliação durante o tratamento do dispositivo.

12.1 O diretório /devOs nós de dispositivo no diretório /dev fornecem acesso aos dispositivos de kernelcorrespondentes. Com o udev, o diretório /dev reflete o estado atual do kernel. Cadadispositivo de kernel tem um arquivo de dispositivo correspondente. Se um dispositivofor desconectado do sistema, o nó de dispositivo será removido.

O conteúdo do diretório /dev será mantido em um sistema de arquivos temporário eos arquivos serão criados do zero a cada inicialização do sistema. Os arquivos criadosmanualmente ou modificados intencionalmente não sobrevivem a uma reinicialização.Diretórios e arquivos estáticos que sempre devem estar presentes no diretório /dev,independentemente do estado do dispositivo de kernel correspondente, podem ser

Gerenciamento de dispositivo de kernel dinâmico com udev 261

Page 262: Reference Pt BR

colocados no diretório/lib/udev/devices. Na inicialização do sistema, o conteúdodo diretório é copiado para o diretório /dev com propriedade e permissões iguais àsdos arquivos em /lib/udev/devices.

12.2 udev e uevents de kernelAs informações de dispositivo necessárias são exportadas pelo sistema de arquivossysfs. Para cada dispositivo detectado e inicializado pelo kernel, um diretório com onome do dispositivo é criado. Ele contém arquivos de atributos com propriedadesespecíficas do dispositivo. Sempre que um dispositivo é adicionado ou removido, okernel envia um uevent para notificar o udev da mudança.

O daemon udev lê e analisa todas as regras fornecidas dos arquivos /etc/udev/rules.d/*.rules uma vez na inicialização e mantém essas regras na memória. Searquivos de regras forem modificados, adicionados ou removidos, o daemon receberáum evento e atualizará a representação das regras na memória.

Cada evento recebido é comparado com o conjunto de regras fornecido. As regraspodem adicionar ou modificar chaves de ambiente de eventos, solicitar um nomeespecífico a ser criado pelo nó do evento, adicionar symlinks apontando para o nó ouadicionar programas a serem executados após a criação do nó do dispositivo. Os ueventscentrais do driver são recebidos de um soquete de netlink de kernel.

12.3 Drivers, módulos de kernel edispositivos

Os drivers de barramento de kernel pesquisam dispositivos. Para cada dispositivodetectado, o kernel cria uma estrutura interna de dispositivo e o centro do driver enviaum uevent para o daemon udev. Dispositivos de barramento se identificam através deum ID formatado especialmente, que informa o tipo de dispositivo. Geralmente essesIDs consistem em IDs de produto e fornecedor, além de outros valores específicos dosubsistema. Cada barramento tem seu próprio esquema para esses IDs, chamadosMODALIAS. O kernel toma as informações do dispositivo, compõe uma string de IDMODALIAS a partir dele e envia essa string junto com o evento. Para um mouse USB,a string tem a seguinte aparência:MODALIAS=usb:v046DpC03Ed2000dc00dsc00dp00ic03isc01ip02

262 Referência

Page 263: Reference Pt BR

Cada driver de dispositivo carrega uma lista de álias conhecidos para os dispositivosque pode tratar. A lista está contida no próprio arquivo de módulo de kernel. O programadepmod lê as listas de ID e cria o arquivo modules.alias no diretório /lib/modules do kernel para todos os módulos disponíveis atualmente. Com essa infra-estrutura, carregar o módulo é fácil como chamar modprobe para cada evento comuma chave MODALIAS. Se modprobe $MODALIAS for chamado, ele corresponderáo álias do dispositivo composto para o dispositivo com os álias fornecidos pelos módulos.Se uma entrada correspondente for encontrada, o módulo será carregado. Tudo isso éacionado pelo udev e ocorre automaticamente.

12.4 Inicialização e configuração dodispositivo inicial

Todos os eventos de dispositivo que ocorrerem durante o processo de inicializaçãoantes da execução do daemon udev são perdidos, pois a infra-estrutura para tratar esseseventos está no sistema de arquivos raiz e não está disponível no momento. Paracompensar essa perda, o kernel fornece um arquivo uevent para cada dispositivo nosistema de arquivos sysfs. Ao gravar add para esse arquivo, o kernel envia novamenteo mesmo evento como o evento perdido durante a inicialização. Um loop simples emtodos os arquivos uevent em /sys aciona todos os eventos novamente para criar osnós de dispositivo e executar a configuração do dispositivo.

Por exemplo, durante o boot, um mouse USB talvez não seja inicializado pela lógicade boot anterior, pois o driver não está disponível nesse momento. O evento para adescoberta do dispositivo foi perdido e não encontrou um módulo de kernel para odispositivo. Em vez de você pesquisar manualmente por dispositivos possivelmenteconectados, o udev solicita todos os eventos de dispositivo do kernel depois que osistema de arquivos raiz está disponível. Assim, o evento do dispositivo do mouse USBé executado novamente. Então ele encontra o módulo de kernel no sistema de arquivosraiz montado e o mouse USB pode ser inicializado.

No espaço do usuário, não há diferença visível entre uma seqüência coldplug dodispositivo e uma detecção de dispositivo durante a execução. Em ambos os casos, asmesmas regras são usadas para correspondência e os mesmos programas configuradossão executados.

Gerenciamento de dispositivo de kernel dinâmico com udev 263

Page 264: Reference Pt BR

12.5 Depurando eventos do udevO programa udevmonitor pode ser usado para visualizar os eventos centrais dodriver e a temporização dos processos de eventos do udev.UEVENT[1132632714.285362] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2UEVENT[1132632714.288166] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2/2-2:1.0UEVENT[1132632714.309485] add@/class/input/input6UEVENT[1132632714.309511] add@/class/input/input6/mouse2UEVENT[1132632714.309524] add@/class/usb_device/usbdev2.12UDEV [1132632714.348966] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2UDEV [1132632714.420947] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2/2-2:1.0UDEV [1132632714.427298] add@/class/input/input6UDEV [1132632714.434223] add@/class/usb_device/usbdev2.12UDEV [1132632714.439934] add@/class/input/input6/mouse2

As linhas UEVENT mostram os eventos que o kernel enviou através de netlink. Aslinhas UDEV mostram os handlers de evento do udev concluídos. A temporização éimpressa em microssegundos. O tempo entre UEVENT e UDEV é o tempo que udevlevou para processar esse evento ou que o daemon udev atrasou sua execução parasincronizar esse evento com eventos relacionados e já em execução. Por exemplo,eventos para partições de disco rígido sempre esperam pela conclusão do evento dodispositivo de disco principal, pois os eventos de partição podem se basear nos dadosque o evento de disco principal consultou do hardware.

udevmonitor --env mostra o ambiente de evento completo:UDEV [1132633002.937243] add@/class/input/input7UDEV_LOG=3ACTION=addDEVPATH=/class/input/input7SUBSYSTEM=inputSEQNUM=1043PHYSDEVPATH=/devices/pci0000:00/0000:00:1d.1/usb2/2-2/2-2:1.0PHYSDEVBUS=usbPHYSDEVDRIVER=usbhidPRODUCT=3/46d/c03e/2000NAME="Logitech USB-PS/2 Optical Mouse"PHYS="usb-0000:00:1d.1-2/input0"UNIQ=""EV=7KEY=70000 0 0 0 0 0 0 0 0REL=103

O udev também envia mensagens para o syslog. A prioridade padrão do syslog quecontrola quais mensagens são enviadas ao syslog é especificada no arquivo deconfiguração do udev /etc/udev/udev.conf. A prioridade de registro do daemon

264 Referência

Page 265: Reference Pt BR

em execução pode ser modificada com udevcontrollog_priority=level/number.

12.6 Influenciando o tratamento deevento de dispositivo de kernel

com regras do udevUma regra do udev pode corresponder a qualquer propriedade adicionada pelo kernelao próprio evento ou a qualquer informação exportada pelo kernel para sysfs. A regratambém pode solicitar informações adicionais de programas externos. Cada evento écorrespondido com as regras fornecidas. Essas regras estão localizadas no diretório/etc/udev/rules.d.

Cada linha no arquivo de regras contém pelo menos um par de valores de chave. Hádois tipos de chaves, de atribuição e correspondência. Se todas as chaves decorrespondência corresponderem aos valores, a regra será aplicada e as chaves deatribuição serão atribuídas ao valor especificado. Uma regra correspondente podeespecificar o nome do nó do dispositivo, adicionar symlinks apontando para o nó ouexecutar um programa especificado como parte do tratamento de eventos. Se nenhumaregra de correspondência for encontrada, o nome do nó de dispositivo padrão será usadopara criar o nó de dispositivo. A sintaxe de regra e as chaves fornecidas paracorrespondência ou importação de dados são descritas na página de manual do udev.

12.7 Nomeação de dispositivopersistente

O diretório de dispositivo dinâmico e a infra-estrutura de regras do udev permitemfornecer nomes estáveis para todos os dispositivos de disco, independentemente daordem de reconhecimento ou a conexão usada para conectar o dispositivo. Cadadispositivo de bloco apropriado criado pelo kernel é examinado por ferramentas comconhecimento especial sobre determinados barramentos, tipos de unidade ou sistemasde arquivos. Junto com o nome do nó de dispositivo fornecido pelo kernel dinâmico,o udev mantém classes de links simbólicos apontando para o dispositivo:

Gerenciamento de dispositivo de kernel dinâmico com udev 265

Page 266: Reference Pt BR

/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 substituídoO pacote de hotplug usado anteriormente é substituído totalmente pelo udev e pelainfra-estrutura de kernel relacionada ao udev. As seguintes partes da infra-estrutura dehotplug anterior estão obsoletas ou sua funcionalidade foi assumida pelo udev:

/etc/hotplug/*.agentNão mais necessário ou movido para /lib/udev

/etc/hotplug/*.rcSubstituído pelo acionador /sys/*/uevent

/etc/hotplug/blacklistSubstituído pela opção blacklist em modprobe.conf

/etc/dev.d/*Substituído pela chave RUN de regra do udev

/etc/hotplug.d/*Substituído pela chave RUN de regra do udev

266 Referência

Page 267: Reference Pt BR

/sbin/hotplugSubstituído pela escuta do udevd do netlink; usado somente no sistema de arquivosRAM inicial até que o sistema de arquivos raiz possa ser montado, em seguida eleé desabilitado

/dev/*Substituído pelo conteúdo estático e udev dinâmico em /lib/udev/devices/*

Os seguintes arquivos e diretórios contêm os elementos cruciais da infra-estrutura doudev:

/etc/udev/udev.confArquivo de configuração principal do udev

/etc/udev/rules.d/*regras de correspondência de evento do udev

/lib/udev/devices/*Conteúdo /dev estático

/lib/udev/*Programas auxiliares chamados de regras do udev

12.9 Mais informaçõesPara obter mais informações sobre a infra-estrutura do udev, consulte as seguintespáginas de manual:

udevInformações gerais sobre o udev, chaves, regras e outras questões relevantes sobreconfiguração.

udevinfoÉ possível usar udevinfo para consultar informações de dispositivo do banco dedados do udev.

udevdInformações sobre o daemon de gerenciamento de eventos udev.

Gerenciamento de dispositivo de kernel dinâmico com udev 267

Page 268: Reference Pt BR

udevmonitorImprime o kernel e a seqüência de eventos do udev para o console. Essa ferramentaé usada principalmente para propósitos de depuração.

268 Referência

Page 269: Reference Pt BR

13Sistemas de arquivos no LinuxO Linux suporta diversos sistemas de arquivos. Este capítulo apresenta uma breve visãogeral sobre os sistemas de arquivos Linux mais populares, abordando conceitos dedesign, vantagens e campos de aplicação. Também são fornecidas algumas informaçõesadicionais sobre LFS (Large File Support - Suporte a Arquivo Grande) no Linux.

13.1 Terminologiametadados

Uma estrutura de dados interna ao sistema de arquivos que assegura que todos osdados de um disco sejam organizados adequadamente e de forma acessível.Essencialmente, tratam-se de “dados sobre os dados.” Quase todo sistema dearquivos tem sua própria estrutura de metadados, razão pela qual os sistemas dearquivos exibem diferentes características de desempenho. É extremamenteimportante manter os metadados intactos, caso contrário todos os dados do sistemade arquivos podem se tornar inacessíveis.

inodeInodes contêm várias informações sobre um arquivo, incluindo tamanho, númerode links, data e horário da criação, da modificação e do acesso, e indicadores paraos blocos de disco em que o conteúdo do arquivo está armazenado no momento.

diárioNo contexto de um sistema de arquivos, o diário é uma estrutura em disco quecontém um tipo de registro em que o sistema de arquivos armazena o que estáprestes a ser modificado em seus metadados. Os diários reduzem imensamente o

Sistemas de arquivos no Linux 269

Page 270: Reference Pt BR

tempo de recuperação de um sistema Linux, pois eles tornam obsoleto o extensoprocesso de pesquisa que verifica todo o sistema de arquivos na inicialização dosistema. Em vez disso, somente o diário é reproduzido.

13.2 Principais sistemas de arquivosno Linux

Diferentemente do que ocorria há dois ou três anos, escolher um sistema de arquivospara um sistema Linux não é mais uma questão de segundos (Ext2 ou ReiserFS?).Kernels a partir do 2.4 oferecem uma variedade de opções de sistemas de arquivos. Aseguir será mostrada uma visão geral de como esses sistemas de arquivos basicamentefuncionam e quais as vantagens que oferecem.

É muito importante lembrar que pode não haver um sistema de arquivos adequado atodos os tipos de aplicativos. Cada sistema de arquivos tem seus pontos fortes e fracosespecíficos, o que deve ser considerado. No entanto, nem mesmo o sistema de arquivosmais sofisticado pode ser substituído por uma estratégia de backup razoável.

Os termos integridade de dados e consistência de dados, quando usados neste capítulo,não se referirão à consistência dos dados do espaço do usuário (os dados que seuaplicativo grava nos arquivos). O próprio aplicativo deve controlar se os dados sãoconsistentes ou não.

IMPORTANTE: Configurando sistemas de arquivos

A menos que declarado em outra seção deste capítulo, todas as etapasnecessárias para configurar ou mudar partições e sistemas de arquivos podemser realizadas com o YaST.

13.2.1 ReiserFSOficialmente um dos recursos mais importantes da versão 2.4 do kernel, o ReiserFStornou-se disponível como um patch para kernels SUSE 2.2 x desde a versão 6.4 doSUSE Linux. O ReiserFS foi criado por Hans Reiser e pela equipe de desenvolvimentoda Namesys. Ele provou ser uma alternativa robusta ao Ext2. Seus bens mais importantes

270 Referência

Page 271: Reference Pt BR

são a melhor utilização do espaço em disco, o melhor desempenho do acesso ao discoe uma recuperação de falhas mais rápida.

Os pontos fortes do ReiserFS, em mais detalhes, são:

Melhor utilização do espaço em discoNo ReiserFS, todos os dados são organizados em uma estrutura chamada árvoreequilibrada (B*- tree). A estrutura de árvore contribui para uma melhor utilizaçãodo espaço em disco, pois arquivos pequenos podem ser armazenados diretamentenos nós da folha da árvore equilibrada B*, em vez de serem armazenados em outrolocal e simplesmente manterem um indicador no local do disco. Além disso, oarmazenamento não é alocado em pacotes de 1 ou 4 kB, mas em porções do tamanhoexato necessário. Uma outra vantagem está na alocação dinâmica de inodes. Elamantém o sistema de arquivos mais flexível do que os sistemas de arquivostradicionais, como Ext2, em que a densidade do inode deve ser especificada nomomento da criação do sistema de arquivos.

Melhor desempenho do acesso ao discoPara arquivos pequenos, os respectivos dados e as informações (inode) “stat_data”são sempre armazenados lado a lado. Eles podem ser lidos com uma simplesoperação E/S de disco, o que quer dizer que é necessário somente um acesso aodisco para recuperar todas as informações necessárias.

Rápida recuperação de falhasA utilização de um diário para controlar as mudanças de metadados recentes fazcom que a verificação de um sistema de arquivos leve segundos, mesmo no casodos muito grandes.

Confiabilidade por meio do registro dos dados em diárioO ReiserFS também suporta o registro de dados em diário e modos de dadosordenados similares aos conceitos realçados na seção Ext3, Seção 13.2.3, “Ext3”(p 272). O modo padrão é data=ordered, que garante a integridade dos dadose dos metadados, mas usa o registro de dados em diário somente para metadados.

13.2.2 Ext2A origem do Ext2 remonta ao início da história do Linux. Seu predecessor, o ExtendedFile System, foi implementado em abril de 1992 e integrado ao Linux 0.96c. O ExtendedFile System passou por uma série de modificações e, como o Ext2, tornou-se o sistema

Sistemas de arquivos no Linux 271

Page 272: Reference Pt BR

de arquivos Linux mais popular por muitos anos. Com a criação dos sistemas de arquivoscom registro em diário e seus surpreendentes e curtos tempos de recuperação, o Ext2ficou menos importante.

Um breve resumo dos pontos fortes do Ext2 podem ajudar a mostrar por que ele foi, eainda é em algumas áreas, o sistema de arquivos Linux favorito de muitos usuários.

SolidezPor ser um “veterano,” o Ext2 passou por várias melhorias e foi bastante testado.Esta pode ser a razão para as pessoas sempre se referirem a ele como "sólido comouma pedra". Depois de uma falha no sistema em que o sistema de arquivos nãopode ser desmontado inteiramente, o e2fsck começa a analisar os dados do sistemade arquivos. Os metadados são levados a um estado consistente e os arquivospendentes ou blocos de dados são gravados em um diretório designado (chamadolost+found). Em contraste com os sistemas de arquivos de registro em diário,o e2fsck analisa todo o sistema de arquivos e não somente os bits de metadadosmodificados recentemente. Esse procedimento demora muito mais do que averificação dos dados de registro de um sistema de arquivos com registro em diário.Dependendo do tamanho do sistema de arquivos, ele pode levar meia hora ou mais.Portanto, não é desejável optar pelo Ext2 em servidores que precisem de grandedisponibilidade. No entanto, como o Ext2 não mantém um diário e usa muito menosmemória, algumas vezes ele é mais rápido do que outros sistemas de arquivos.

Fácil capacidade de upgradeO código do Ext2 é a base sólida sobre a qual o Ext3 poderia se tornar um sistemade arquivos de última geração amplamente aclamado. Sua confiabilidade e solidezforam combinadas de forma elegante com as vantagens de um sistema de arquivosde registro em diário.

13.2.3 Ext3O Ext3 foi criado por Stephen Tweedie. Diferentemente de todos os sistemas de arquivosde última geração, o Ext3 não segue totalmente um princípio de design novo. Ele ébaseado no Ext2. Esses dois sistemas de arquivos têm uma relação muito próxima. Umsistema de arquivos Ext3 pode ser facilmente criado sobre um sistema de arquivos Ext2.A diferença mais importante entre o Ext2 e o Ext3 é que o Ext3 suporta o registro emdiário. Em resumo, o Ext3 tem três grandes vantagens a oferecer:

272 Referência

Page 273: Reference Pt BR

Upgrades do Ext2 fáceis e altamente confiáveis.Como o Ext3 é baseado no código do Ext2 e compartilha seu formato em disco,bem como seu formato de metadados, as atualizações do Ext2 para o Ext3 sãoincrivelmente fáceis. Ao contrário de transições para outros sistemas de arquivosde registro em diário, como o ReiserFS ou XFS, que podem ser bastante tediosas(fazer backup de todo o sistema e recriá-lo de um rascunho), a transição para oExt3 é uma questão de minutos. Ela também é muito segura, pois a recriação deum sistema de arquivos inteiro de um rascunho pode não ser perfeita. Considerandoo número de sistemas Ext2 existentes que aguardam um upgrade para um sistemade arquivos de registro em diário, você pode imaginar facilmente por que o Ext3pode ter alguma importância para vários administradores de sistema. O downgradedo Ext3 para o Ext2 é tão fácil quanto o upgrade. Simplesmente execute umadesmontagem completa do sistema de arquivos Ext3 e remonte-o como um sistemade arquivos Ext2.

Confiabilidade e desempenhoAlguns outros sistemas de arquivos de registro em diário seguem a abordagem deregistro em diário de “Apenas Metadados”. Isso significa que seus metadados sãosempre mantidos em um estado consistente, mas o mesmo não pode ser garantidoautomaticamente para os próprios dados do sistema de arquivos. O Ext 3 foi criadopara cuidar dos dados e dos metadados. O grau de “cuidado” pode ser personalizado.Habilitar o Ext3 no mododata=journal oferece segurança máxima (integridadede dados), mas também deixa o sistema mais lento, pois os dados e os metadadossão registrados em diário. Uma abordagem relativamente nova é usar o mododata=ordered, que garante a integridade dos dados e metadados, mas usa oregistro em diário apenas para metadados. O driver do sistema de arquivos coletatodos os blocos de dados que correspondem a uma atualização de metadados. Essesblocos de dados são gravados em disco antes da atualização dos metadados. Comoresultado, obtém-se consistência para dados e metadados sem sacrificar odesempenho. Uma terceira opção é usar o data=writeback, para que os dadossejam gravados no mesmo sistema de arquivos depois que seus metadados foremconfirmados no diário. Essa opção é sempre considerada a melhor em desempenho.Contudo, ela pode permitir que dados antigos surjam novamente nos arquivosdepois de uma falha e recuperação, enquanto a integridade do sistema do arquivoé mantida. A menos que você especifique de forma diferente, o Ext3 será executadono modo data=ordered por padrão.

Sistemas de arquivos no Linux 273

Page 274: Reference Pt BR

13.2.4 Convertendo um sistema de arquivosExt2 em Ext3

Para converter um sistema de arquivos Ext2 em Ext3, proceda da seguinte maneira:

1 Crie um diário Ext3 executando tune2fs -j como root. Esse procedimentocriará um diário do Ext3 com os parâmetros padrão.

Para que você decida o tamanho do diário e em que dispositivo ele deverá residir,execute tune2fs -J, juntamente com as opções de diário desejadas size=e device=. Mais informações sobre o programa tune2fs estão disponíveis emsua respectiva página de manual tune2fs.

2 Para garantir que o sistema de arquivos Ext3 seja reconhecido como tal, edite oarquivo /etc/fstab como root, mudando o tipo de sistema de arquivosespecificado pela partição correspondente de ext2 para ext3. A mudança teráefeito na próxima reinicialização.

3 Para inicializar uma configuração de sistema de arquivos raiz como uma partiçãoExt3, inclua os módulos ext3 e jbd no initrd. Para fazer isso, edite /etc/sysconfig/kernel como root, adicionando ext3 e jbd à variávelINITRD_MODULES. Após salvar as mudanças, execute o comandomkinitrd.Isso cria um novo initrd e o prepara para uso.

13.2.5 Reiser4Logo depois que o kernel 2.6 foi lançado, a família de sistemas de arquivos com registroem diário recebeu outro membro: o Reiser4. O Reiser4 é fundamentalmente diferentede seu predecessor, o ReiserFS (versão 3.6). Ele apresenta o conceito de plug-ins paraajustar a funcionalidade do sistema de arquivos e um conceito de segurança maisrefinado.

Conceito de segurança refinadoNa criação do Reiser4, seus desenvolvedores enfatizaram a implementação derecursos relevantes de segurança. Portanto, o Reiser4 contém um conjunto de plug-ins de segurança dedicados. O mais importante deles apresenta o conceito de “itens”de arquivo. Atualmente, os controles de acesso a arquivos são definidos por arquivo.Se existe um arquivo grande contendo informações relevantes para vários usuários,

274 Referência

Page 275: Reference Pt BR

grupos ou aplicativos, os direitos de acesso devem ser razoavelmente imprecisospara incluir todas as partes envolvidas. No Reiser4, é possível dividir esses arquivosem partes menores (os “itens”). Os direitos de acesso podem então ser definidospara cada item e cada usuário separadamente, permitindo um gerenciamento desegurança de arquivos muito mais preciso. Um exemplo perfeito seria /etc/passwd. Atualmente, somente os usuários root podem ler e editar o arquivo,enquanto os não-root só obtêm acesso de leitura a esse arquivo. Usando o conceitode item do Reiser4, você pode dividir esse arquivo em um conjunto de itens (umitem por usuário) e permitir que os usuários ou aplicativos modifiquem seus própriosdados, mas sem acessar os dados de outros usuários. Esse conceito aumenta asegurança e flexibilidade.

Extensibilidade por meio de plug-insMuitas funções do sistema de arquivos e funções externas normalmente usadas porum sistema de arquivos são implementadas como plug-ins no Reiser4. Esses plug-ins podem ser facilmente adicionados ao sistema básico. Você não precisa maiscompilar o kernel ou reformatar o disco rígido para adicionar novas funcionalidadesao sistema de arquivos.

Melhor layout do sistema de arquivos por meio de alocação atrasadaAssim como o XFS, o Reiser4 suporta a alocação atrasada. Consulte a Seção 13.2.6,“XFS” (p 275). A utilização da alocação atrasada, até mesmo para metadados, poderesultar em um melhor layout geral.

13.2.6 XFSCom intenção original de ser um sistema de arquivos para o sistema operacional IRIX,a SGI iniciou o desenvolvimento do XFS no começo de 1990. A idéia por trás do XFSera criar um sistema de arquivos de registro em diário de 64 bits de alto desempenhopara atender aos altos desafios de computação de hoje. O XFS é muito bom namanipulação de arquivos grandes e tem bom desempenho em hardware de ponta.Entretanto, até mesmo o XFS tem uma desvantagem. Assim como o ReiserFS, o XFScuida bastante da integridade dos metadados, mas nem tanto da integridade dos dados.

Uma rápida análise dos recursos fundamentais do XFS explica por que ele pode ser umforte concorrente para outros sistemas de arquivos de registro em diário em computaçãode ponta.

Sistemas de arquivos no Linux 275

Page 276: Reference Pt BR

Alta escalabilidade por meio do uso de grupos de alocaçãoNo momento de criação de um sistema de arquivos XFS, o dispositivo de blocosubjacente ao sistema de arquivos é dividido em oito ou mais regiões lineares domesmo tamanho. Elas são denominadas grupos de alocação. Cada grupo de alocaçãogerencia seus próprios inodes e espaços liberados em disco. Praticamente, os gruposde alocação podem ser vistos como sistemas de arquivos dentro de um sistema dearquivos. Como grupos de alocação são independentes uns dos outros, mais de umpode ser abordado pelo kernel ao mesmo tempo. Esse recurso é a chave da grandeescalabilidade do XFS. Naturalmente, o conceito de grupos de alocaçãoindependente corresponde às necessidades dos sistemas com multiprocessadores.

Alto desempenho por meio de um eficiente gerenciamento de espaço em discoO espaço em disco e os inodes são controlados por árvores equilibradas B+ dentrodos grupos de alocação. O uso de árvores equilibradas B+ contribui muito para odesempenho e a escalabilidade do XFS. O XFs usa a alocação atrasada. Ele lidacom a alocação dividindo o processo em duas partes. Uma transação pendente éarmazenada em RAM e o espaço necessário é reservado. O XFS ainda não decideexatamente onde (tratando-se do bloco do sistema de arquivos) os dados devemser armazenados. Essa decisão é atrasada até o último momento possível. Algunsdados temporários de vida curta talvez nunca cheguem no disco, pois podem ficarobsoletos devido ao tempo que o XFS leva para decidir onde gravá-los. Portanto,o XFS aumenta o desempenho de gravação e reduz a fragmentação do sistema dearquivos. Como a alocação atrasada resulta em eventos de gravação menosfreqüentes do que em outros sistemas de arquivos, é provável que a perda de dadosdepois de uma falha durante a gravação seja mais severa.

Pré-alocação para evitar a fragmentação do sistema de arquivosAntes de gravar os dados no sistema de arquivos, o XFS reserva (pré-aloca) oespaço livre necessário para um arquivo. Portanto, a fragmentação do sistema dearquivos é amplamente reduzida. O desempenho aumenta porque o conteúdo dosarquivos não é distribuído em todo o sistema de arquivos.

13.3 Outros sistemas de arquivossuportados

A Tabela 13.1, “Tipos de sistema de arquivos no Linux” (p 277) resume alguns dossistemas de arquivos suportados pelo Linux. Eles são suportados principalmente para

276 Referência

Page 277: Reference Pt BR

garantir a compatibilidade e o intercâmbio de dados com diferentes tipos de mídia desistemas operacionais estrangeiros.

Tabela 13.1 Tipos de sistema de arquivos no Linux

Sistema de arquivos ROM compactado: um sistema de arquivoscompactados apenas leitura para ROMs.

cramfs

Sistema de arquivos de alto desempenho: o sistema de arquivospadrão da IBM OS/2 — suportado no modo apenas leitura.

hpfs

Sistema de arquivos padrão em CD-ROMs.iso9660

Este sistema de arquivos foi originado de projetos acadêmicos emsistemas operacionais e foi o primeiro usado no Linux. Atualmente,ele é usado como um sistema de arquivos para disquetes.

minix

fat, o sistema de arquivos originariamente usado por DOS, hojeé usado por vários sistemas operacionais.

msdos

Sistema de arquivos para montagem de volumes Novell em redes.ncpfs

Sistema de arquivos de rede: os dados podem ser armazenadosem qualquer máquina em uma rede, e o acesso pode ser concedidovia rede.

nfs

O Bloco de Mensagens do Servidor é usado por produtos como oWindows para permitir o acesso a arquivos em uma rede.

smbfs

Usado no SCO UNIX, no Xenix e no Coherent (sistemas UNIXcomerciais para PCs).

sysv

Usado por BSD, SunOS e NeXTstep. Suportado somente no modoapenas leitura.

ufs

UNIX em MS-DOS: aplicado sobre um sistema de arquivos fatnormal, atinge a funcionalidade UNIX (permissões, links, nomeslongos de arquivos) criando arquivos especiais.

umsdos

Sistemas de arquivos no Linux 277

Page 278: Reference Pt BR

Virtual FAT: extensão do sistema de arquivos fat (suportanomes longos de arquivos).

vfat

Sistema de arquivos do Windows NT, apenas leitura.ntfs

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

Originariamente, o Linux suportava um tamanho máximo de arquivo de 2 GB. Isso erao suficiente antes da explosão da multimídia e enquanto ninguém tentava manipularenormes bancos de dados no Linux. Ao se tornarem cada vez mais importantes nacomputação de servidores, o kernel e a biblioteca C foram modificados para suportartamanhos de arquivo maiores que 2 GB, usados em um novo conjunto de interfacesque os aplicativos devem usar. Atualmente, todos os grandes sistemas de arquivosoferecem suporte a LFS, permitindo o desempenho de uma computação de ponta. ATabela 13.2, “Tamanhos máximos de sistemas de arquivos (formato no disco)” (p 278)oferece uma visão geral das limitações atuais dos arquivos Linux e dos sistemas dearquivos.

Tabela 13.2 Tamanhos máximos de sistemas de arquivos (formato no disco)

Tamanho do sistemade arquivos (bytes)

Tamanho doarquivo (bytes)

Sistema de arquivos

241 (2 TB)234 (16 GB)Ext2 ou Ext3 (tamanho do blocode 1 kB)

243 (8 TB)238 (256 GB)Ext2 ou Ext3 (tamanho do blocode 2 kB)

243-4096 (16 TB-4096Bytes)

241 (2 TB)Ext2 ou Ext3 (tamanho do blocode 4 kB)

245 (32 TB)246 (64 TB)Ext2 ou Ext3 (tamanho do blocode 8 kB) (sistemas com páginas de8 kB, como o Alpha)

278 Referência

Page 279: Reference Pt BR

Tamanho do sistemade arquivos (bytes)

Tamanho doarquivo (bytes)

Sistema de arquivos

245 (32 TB)246 (64 TB)ReiserFS v3

263 (8 EB)263 (8 EB)XFS

263 (8 EB)231 (2 GB)NFSv2 (lado cliente)

263 (8 EB)263 (8 EB)NFSv3 (lado cliente)

IMPORTANTE: Limites de kernel do Linux

A Tabela 13.2, “Tamanhos máximos de sistemas de arquivos (formato no disco)”(p 278) descreve as limitações com relação ao formato no disco. O kernel 2.6impõe seus próprios limites ao tamanho dos arquivos e aos sistemas de arquivosgerenciados por ele. Os limites são os seguintes:

Tamanho do arquivoEm sistemas de 32 bits, os arquivos não podem exceder o tamanho de 2TB (241 bytes).

Tamanho do sistema de arquivosOs sistemas de arquivos podem ter até 273 de tamanho. Entretanto, esselimite ainda está fora do alcance para o hardware disponível atualmente.

13.5 Mais informaçõesCada projeto de sistema de arquivos descrito anteriormente mantém sua própria homepage, na qual é possível encontrar informações de listas de discussão, outrasdocumentações e FAQs (perguntas freqüentes).

• http://e2fsprogs.sourceforge.net/

• http://www.zipworld.com.au/~akpm/linux/ext3/

• http://www.namesys.com/

Sistemas de arquivos no Linux 279

Page 280: Reference Pt BR

• 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 serencontrado em IBM developerWorks: http://www-106.ibm.com/developerworks/library/l-fs.html. Para obter uma comparação dosdiferentes sistemas de arquivos de registro em diário no Linux, consulte o artigo deJuan I. Santos Florido em Linuxgazette: http://www.linuxgazette.com/issue55/florido.html. Os interessados em uma análise mais aprofundada doLFS no Linux podem acessar o site de Andreas Jaeger: http://www.suse.de/~aj/linux_lfs.html.

280 Referência

Page 281: Reference Pt BR

14O sistema X WindowO sistema X Window (X11) é o padrão de fato para interfaces gráficas de usuário noUNIX. O X é baseado em rede, permitindo que aplicativos iniciados em um host sejamexibidos em outro host conectado em qualquer tipo de rede (LAN ou Internet). Estecapítulo descreve a configuração e a otimização do ambiente do sistema X Window,fornece informações de base sobre o uso de fontes no SUSE Linux e explica aconfiguração do OpenGL e 3D.

O texto a seguir contém diversas referências para a documentação que pode serencontrada em /usr/share/doc/packages/Xorg e /usr/share/doc/howto/en. Esse material, junto com as respectivas páginas de manual, só estarádisponível se os pacotes de documentação estiverem instalados (xorg-x11-doc,xorg-x11-man e howtoenh).

14.1 Configuração do X11 com o SaX2A interface gráfica de usuário, ou servidor X, lida com a comunicação entre o hardwaree o software. Áreas de trabalho, como KDE e GNOME e a grande variedade degerenciadores de janelas, usam o servidor X para interação com o usuário. A interfacegráfica do usuário é inicialmente configurada durante a instalação. Para mudar depoisas configurações, use o módulo respectivo do centro de controle do YaST ou executeo SaX2 manualmente da linha de comando com o comando sax2. A janela principaldo SaX2 oferece uma interface comum para os módulos individuais do centro de controledo YaST.

O sistema X Window 281

Page 282: Reference Pt BR

Figura 14.1 A janela principal do SaX2

Na barra de navegação esquerda, há seis itens, cada um mostrando a caixa de diálogode configuração respectiva do centro de controle do YaST. Encontre as seçõesmencionadas abaixo no Capítulo Configuração do sistema com YaST (↑Inicialização).

MonitorPara obter uma descrição da configuração da placa de vídeo e o monitor, consultea Seção “Propriedades da Placa e do Monitor” (Capítulo 2,Configuração do sistemacom YaST, ↑Inicialização).

MousePara obter uma descrição da configuração do mouse no ambiente gráfico, consultea Seção “Propriedades do Mouse” (Capítulo 2,Configuração do sistema com YaST,↑Inicialização).

TecladoPara obter uma descrição da configuração do teclado no ambiente gráfico, consultea Seção “Propriedades do Teclado” (Capítulo 2, Configuração do sistema comYaST, ↑Inicialização).

282 Referência

Page 283: Reference Pt BR

MesaPara obter uma descrição da configuração da mesa gráfica, consulte aSeção “Propriedades da mesa digitalizadora” (Capítulo 2,Configuração do sistemacom YaST, ↑Inicialização).

Tela sensível ao toquePara obter uma descrição da configuração da tela sensível ao toque, consulte aSeção “Propriedades da Tela Sensível ao Toque” (Capítulo 2, Configuração dosistema com YaST, ↑Inicialização).

VNCPara obter uma descrição da configuração de VNC, consulte a Seção “Propriedadesdo Acesso Remoto” (Capítulo 2, Configuração do sistema com YaST,↑Inicialização).

14.2 Otimizando a configuração do XO X.Org é uma implementação de código-fonte aberto do sistema X Window. Eletambém é desenvolvido pela X.Org Foundation, que é responsável ainda pelodesenvolvimento de novas tecnologias e padrões do sistema X Window.

Para usar da melhor forma possível o hardware disponível, inclusive o mouse, a placagráfica, o monitor e o teclado, a configuração pode ser otimizada manualmente. Algunsaspectos desta otimização são explicados abaixo. Para obter informações detalhadassobre como configurar o sistema X Window, consulte os vários arquivos no diretório/usr/share/doc/packages/Xorg e man xorg.conf.

ATENÇÃO

Tenha cuidado ao configurar o sistema X Window. Nunca inicie o sistema XWindow antes que a configuração esteja concluída. Um sistema configuradode forma errada pode causar danos irreparáveis ao seu hardware (isso aplica-se especialmente a monitores de freqüência fixa). Os autores deste livro e oSUSE Linux não podem ser considerados responsáveis por danos. Essasinformações foram pesquisadas cuidadosamente, mas isso não garante quetodos os métodos apresentados aqui estejam corretos e não danifiquem o seuhardware.

O sistema X Window 283

Page 284: Reference Pt BR

Os programas SaX2 e xorgconfig criam o arquivo xorg.conf, por padrão no /etc/X11. Esse é o arquivo de configuração principal para o sistema X Window. A seguirestão todas as configurações referentes ao monitor, ao mouse e à placa de vídeo.

As seções a seguir descrevem a estrutura do arquivo de configuração /etc/X11/xorg.conf. Ela consiste em várias seções, cada uma delas referente a um determinadoaspecto da configuração. Cada seção se inicia com a palavra-chave Section<designation> e termina com EndSection. As seções têm o seguinte formato:Section designation entry 1 entry 2 entry nEndSection

Os tipos de seção disponíveis estão listados na Tabela 14.1, “Seções em/etc/X11/xorg.conf” (p 284).

Tabela 14.1 Seções em /etc/X11/xorg.conf

SignificadoTipo

Esta seção descreve os caminhos usados por fontes e a tabela decores RGB.

Files

Switches gerais são definidos aqui.ServerFlags

Dispositivos de entrada, como teclados e dispositivos de entradaespeciais (touchpads, joysticks, etc.), são configurados nesta

InputDevice

seção. Parâmetros importantes nesta seção são Driver e asopções que definem o Protocol e o Device.

Descreve o monitor usado. Os elementos individuais desta seçãosão o nome, que é referenciado posteriormente na definição de

Monitor

Screen, a bandwidth e os limites de freqüência desincronização (HorizSync e VertRefresh). Asconfigurações são fornecidas em MHz, kHz e Hz. Normalmente,o servidor recusa qualquer linha modelo que não corresponda àespecificação do monitor. Isso evita que freqüências muito altassejam enviadas ao monitor por acidente.

284 Referência

Page 285: Reference Pt BR

SignificadoTipo

Os parâmetros da linha modelo são armazenados aqui pararesoluções de tela específicas. Esses parâmetros podem ser

Modes

calculados por SaX2 com base nos valores fornecidos pelousuário e, normalmente, não precisam ser modificados.Intervenha manualmente neste ponto se, por exemplo, quiserconectar um monitor de freqüência fixa. Há detalhes sobre osignificado de valores numéricos individuais nos arquivosHOWTO /usr/share/doc/howto/en/html/XFree86-Video-Timings-HOWTO.

Esta seção define uma placa de vídeo específica. Ela éreferenciada por seu nome descritivo.

Device

Esta seção junta um Monitor e um Device para formar todasas configurações necessárias para X.Org. Na subseçãoDisplay,

Screen

especifique o tamanho da tela virtual (Virtual), a ViewPorte os Modes usados com esta tela.

Esta seção define o layout de uma configuração única oumultihead. Esta seção junta os dispositivos de entradaInputDevice e os dispositivos de exibição Screen.

ServerLayout

Monitor, Device e Screen são explicados em mais detalhes abaixo. Maisinformações sobre as outras seções podem ser encontradas nas páginas de manual deX.Org e xorg.conf.

Há várias seções Monitor e Device diferentes em xorg.conf. Mesmo váriasseções Screen são possíveis. A seção ServerLayout a seguir determina qual éusada.

14.2.1 Seção de TelaA seção de tela combina um monitor com uma seção de dispositivo e determina aresolução e a intensidade de cor usadas. Uma seção de tela pode ter a aparência doExemplo 14.1, “Seção de tela do arquivo /etc/X11/xorg.conf” (p 286).

O sistema X Window 285

Page 286: Reference Pt BR

Exemplo 14.1 Seção de tela do arquivo /etc/X11/xorg.confSection "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 seção um nome definidocom o qual pode ser exclusivamente referenciado na seguinte seção ServerLayout.As linhas Device e Monitor especificam a placa de vídeo e o monitor que pertencea esta definição. Estes são links às seções Device e Monitor com seus nomescorrespondentes ou identificadores. Estas seções são abordadas em detalhes abaixo.

Use a configuraçãoDefaultDepth para selecionar a intensidade de cor que o servidordeve usar a menos que seja iniciado com uma intensidade de cor específica. Há umasubseção Display para cada intensidade de cor. A palavra-chave Depth atribui aintensidade de cor válida para essa subseção. Valores possíveis para Depth são 8, 15,16 e 24. Nem todos os módulos do servidor X suportam esses valores.

Após a intensidade de cor, uma lista de resoluções é definida na seção Modes. Oservidor X verifica essa lista da esquerda para a direita. Para cada resolução, o servidorX procura uma Modeline adequada na seção Modes. A Modeline depende dacapacidade do monitor e da placa de vídeo. As configurações deMonitor determinama Modeline resultante.

A primeira resolução encontrada é o Default mode. Com Ctrl + Alt + + (noteclado numérico), alterne para a resolução seguinte na lista à direita. Com Ctrl + Alt

286 Referência

Page 287: Reference Pt BR

+ – (no teclado numérico), alterne para a esquerda. Isso permite a você variar aresolução enquanto o X está sendo executado.

A última linha da subseção Display com Depth 16 refere-se ao tamanho da telavirtual. O tamanho máximo possível de uma tela virtual depende da quantidade dememória instalada na placa de vídeo e a intensidade de cor desejada, não a resoluçãomáxima do monitor. Como placas de vídeo modernas têm uma grande quantidade dememória de vídeo, você pode criar áreas de trabalho virtuais bem grandes. Porém, vocêtalvez não seja mais capaz de usar a funcionalidade de 3D se preencher a maior parteda memória de vídeo com uma área de trabalho virtual. Se a placa tem 16 MB dememória RAM de vídeo, por exemplo, a tela virtual pode ser de até 4096x4096 pixelsem tamanho com intensidade de cor de 8 bits. Porém, principalmente para placasaceleradas, não é recomendável usar toda a memória para a tela virtual, pois a memóriana placa também é usada para vários caches de vídeo e fontes.

14.2.2 Seção do dispositivoUma seção de dispositivo descreve uma placa de vídeo específica. Você pode ter quantasentradas de dispositivo em xorg.conf desejar, desde que os nomes sejamdiferenciados pela palavra-chave Identifier. Como regra — se você tiver mais deuma placa de vídeo instalada — as seções são simplesmente numeradas em ordem. Aprimeira é chamadaDevice[0], a segundaDevice[1] e assim por diante. O arquivoa seguir mostra um exemplo da seção Device de um computador com uma placa devídeo 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 configuração, a seção de dispositivo deverá ter a aparênciasemelhante à do exemplo acima. Ambos o Driver e o BusID são dependentes dohardware instalado no seu computador e são detectados pelo SaX2 automaticamente.O BusID define o slot PCI ou AGP no qual a placa de vídeo está instalada. Issocorresponde ao ID exibido pelo comando lspci. O servidor X precisa de detalhes noformato decimal, mas o lspci os exibe no formato hexadecimal.

O sistema X Window 287

Page 288: Reference Pt BR

Com o parâmetro Driver, especifique o driver a ser usado para esta placa de vídeo.Se a placa for Matrox Millennium, o módulo do driver será chamado mga. Em seguida,o servidor X pesquisa através do ModulePath definido na seção Files nosubdiretório drivers. Em uma instalação padrão, este é o diretório /usr/X11R6/lib/modules/drivers. _drv.o será adicionado ao nome, por isso, no caso dodriver mga, o arquivo de driver mga_drv.o será carregado.

O comportamento do servidor X ou do driver também pode ser influenciado através deopções adicionais. Um exemplo disso é a opção sw_cursor, definida na seção dedispositivo. Isso desativa o cursor do mouse do hardware e mostra o cursor do mouseusando o software. Dependendo do módulo do driver, há várias opções disponíveis,que podem ser encontradas nos arquivos de descrição dos módulos do driver no diretório/usr/X11R6/lib/X11/doc. Em geral, opções válidas também podem serencontradas nas páginas de manual (man xorg.conf e man X.Org).

14.2.3 Seção Monitor e ModosComo as seções Device, as seções Monitor e Modes descrevem um monitor cada.O arquivo de configuração /etc/X11/xorg.conf pode conter quantas seçõesMonitor você desejar. A seção de layout do servidor especifica qual seção Monitoré relevante.

Definições de monitor devem ser configuradas por usuários experientes. As linhasmodelo constituem uma parte importante das seções Monitor. Linhas modelo definemtemporizações verticais para a respectiva resolução. As propriedades do monitor,especialmente as freqüências permitidas, estão armazenadas na seção Monitor.

ATENÇÃO

A menos que você tenha um conhecimento profundo de funções de monitore placa de vídeo, nada deve ser mudado nas linhas modelo, pois isso poderiacausar danos severos ao seu monitor.

As pessoas que tentam desenvolver suas próprias descrições de monitor devem estarfamiliarizadas com a documentação em/usr/X11/lib/X11/doc. A seção cobrindoos modos de vídeo merece uma atenção especial. Ela descreve, em detalhes, como ohardware funciona e como criar linhas modelo.

288 Referência

Page 289: Reference Pt BR

A especificação manual de linhas modelo raramente é exigida atualmente. Se você estáusando um monitor multisync moderno, as freqüências permitidas e as resoluções ótimaspodem, como regra, serem lidas do monitor pelo servidor X através de DDC, comodescrito na seção de configuração do SaX2. Se isso não for possível por algum motivo,use um dos modos VESA incluídos no servidor X. Isso funcionará com praticamentetodas as combinações de monitor e placa de vídeo.

14.3 Instalando e configurando fontesA instalação de fontes adicionais no SUSE Linux é muito fácil. Simplesmente copie asfontes para qualquer diretório localizado no caminho da fonte X11 (consulte aSeção 14.3.1, “Fontes centrais X11” (p 290)). Para habilitar o uso das fontes, o diretóriode instalação deve ser um subdiretório dos diretórios configurados em /etc/fonts/fonts.conf (consulte a Seção 14.3.2, “Xft” (p 291)).

Os arquivos de fontes podem ser copiados manualmente (como root) para um diretórioadequado, como /usr/X11R6/lib/X11/fonts/truetype. Alternativamente,a tarefa pode ser realizada com o instalador de fontes do KDE no Centro de Controledo KDE. O resultado é o mesmo.

Em vez de copiar as fontes reais, você também pode criar links simbólicos. Por exemplo,é recomendável fazer isso se você tem fontes licenciadas em uma partição do Windowsmontada e deseja usá-las. Em seguida, execute SuSEconfig --module fonts.

SuSEconfig --module fonts executa o script/usr/sbin/fonts-config,que lida com a configuração das fontes. Para ver o que o script faz, consulte a páginade manual do script (man fonts-config).

O procedimento é o mesmo para fontes de bitmap, fontes TrueType e OpenType efontes Type1 (PostScript). Todos esses tipos de fonte podem ser instalados em qualquerdiretório. Somente fontes indexadas ao CID exigem um procedimento um poucodiferente. Para isso, consulte a Seção 14.3.3, “Fontes indexadas do CID” (p 294).

X.Org contém dois sistemas de fontes completamente diferentes: O sistema de fontescentral X11 antigo e o sistema Xft and fontconfig recém-criado. As seções a seguirdescrevem brevemente esses dois sistemas.

O sistema X Window 289

Page 290: Reference Pt BR

14.3.1 Fontes centrais X11Atualmente, o sistema de fontes centrais X11 suporta não somente fontes de bitmap,mas também fontes escaláveis, como fontes Type1, TrueType e OpenType e fontesindexadas do CID. Fontes escaláveis são suportadas somente sem a exibição de subpixele antialiasing e o carregamento de fontes escaláveis grandes para vários idiomas podelevar muito tempo. As fontes Unicode também são suportadas, mas seu uso pode serlento e requerer mais memória.

O sistema de fontes centrais X11 tem algumas fraquezas inerentes. Ele está desatualizadoe não pode mais ser estendido de forma significativa. Embora ele possa ser mantidopor motivos de compatibilidade retroativa, o sistema Xft e fontconfig mais modernodeve ser usado se for possível.

Para essa operação, o servidor X precisa saber quais fontes estão disponíveis e onde nosistema ele pode encontrá-las. Isso é tratado por uma variável FontPath, que contém ocaminho para todos os diretórios de fontes de sistemas válidos. Em cada um dessesdiretórios, um arquivo chamado fonts.dir lista as fontes disponíveis neste diretório.O FontPath é gerado pelo servidor X na inicialização. Ele procura um arquivo fonts.dir válido em cada uma das entradas FontPath no arquivo de configuração /etc/X11/xorg.conf. Essas entradas são encontradas na seção Files. Exiba o FontPathreal com xset q. Esse caminho também pode ser modificado no tempo de execuçãocom xset. Para adicionar outro caminho, use xset +fp <path>. Para remover umcaminho indesejado, use xset -fp <path>.

Se o servidor X já estiver ativo, fontes recém-instaladas em diretórios montados podemficar disponíveis com o comando xset fp rehash. Este comando é executado porSuSEconfig --module fonts. Como o comando xset precisa de acesso aoservidor X em execução, isso funciona somente seSuSEconfig--module fontsfor iniciado em um shell com acesso ao servidor X em execução. A maneira mais fácilde conseguir isso é assumir permissões de root digitando su e a senha de root. sutransfere as permissões de acesso do usuário que iniciou o servidor X para o shell doroot. Para verificar se as fontes foram instaladas corretamente e estão disponíveis atravésdo sistema de fontes centrais X11, use o comando xlsfonts para listar todas as fontesdisponíveis.

Por padrão, o SUSE Linux usa locales UTF-8. Desta forma, fontes Unicode devem serpreferidas (nomes de fontes terminando com iso10646-1 na saída xlsfonts).Todas as fontes Unicode disponíveis podem ser relacionadas comxlsfonts| grepiso10646-1. Praticamente todas as fontes Unicode disponíveis no SUSE Linux

290 Referência

Page 291: Reference Pt BR

contêm pelo menos os glifos necessários para idiomas europeus (anteriormentecodificado como iso-8859-*).

14.3.2 XftDesde o início, os programadores do Xft certificaram-se de que as fontes escaláveis,incluindo as de antialiasing, tivessem suporte adequado. Se o Xft for usado, as fontesserão exibidas pelo aplicativo usando as fontes, não pelo servidor X como no sistemade fontes central X11. Desta forma, o respectivo aplicativo tem acesso aos arquivos defontes reais e controle total sobre como os glifos são exibidos. Isso constitui a base paraa exibição correta do texto em vários idiomas. Acesso direto aos arquivos de fontes ébastante útil para embutir fontes para impressão para certificar-se de que a impressãotem a mesma aparência da saída da tela.

No SUSE Linux, os dois ambientes de área de trabalho do KDE e do GNOME, Mozilla,e vários outros aplicativos já usam o Xft por padrão. O Xft já é usado por maisaplicativos do que o sistema de fontes central X11 antigo.

O Xft usa a biblioteca fontconfig para localizar fontes e influenciar como elas sãoexibidas. As propriedades de fontconfig são controladas pelo arquivo de configuraçãoglobal/etc/fonts/fonts.conf e o arquivo de configuração específico ao usuário~/.fonts.conf. Cada um destes arquivos de configuração fontconfig deve iniciarcom<?xml version="1.0"?><!DOCTYPE fontconfig SYSTEM "fonts.dtd"><fontconfig>

e terminar com</fontconfig>

Para adicionar diretórios para pesquisar fontes, acrescente linhas como as seguintes:<dir>/usr/local/share/fonts/</dir>

Porém, isso geralmente não é necessário. Por padrão, o diretório específico ao usuário~/.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ê também pode inserir regras que influenciam a aparência das fontes. Por exemplo,digite

O sistema X Window 291

Page 292: Reference Pt BR

<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 específicas.

Por padrão, a maioria dos aplicativos usa os nomes de fontes sans-serif (ou oequivalente sans), serif ou monospace. Estas não são fontes reais, mas somentealiás que são resolvidos para uma fonte adequada, dependendo da configuração deidioma.

Usuários podem facilmente adicionar regras para ~/.fonts.conf a fim de resolveresses 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 padrão, isso afeta praticamentetodo o sistema. Desta forma, você pode facilmente usar suas fontes favoritas praticamente

292 Referência

Page 293: Reference Pt BR

em qualquer local sem precisar modificar as configurações de fontes nos aplicativosindividuais.

Use o comando fc-list para encontrar as fontes instaladas e disponíveis para uso.Por exemplo, o comando fc-list retorna uma lista de todas as fontes. Para descobrirquais das fontes escaláveis disponíveis (:scalable=true) contêm todos os glifosexigidos para hebraico (:lang=he), os nomes de fontes (family), o estilo (style),o peso (weight) e o nome dos arquivos que contêm as fontes, digite o seguintecomando:fc-list ":lang=he:scalable=true" family style weight

A saída do comando pode ter a seguinte aparência:

FreeSansBold.ttf: FreeSans:style=Bold:weight=200FreeMonoBoldOblique.ttf: FreeMono:style=BoldOblique:weight=200FreeSerif.ttf: FreeSerif:style=Medium:weight=80FreeSerifBoldItalic.ttf: FreeSerif:style=BoldItalic:weight=200FreeSansOblique.ttf: FreeSans:style=Oblique:weight=80FreeSerifItalic.ttf: FreeSerif:style=Italic:weight=80FreeMonoOblique.ttf: FreeMono:style=Oblique:weight=80FreeMono.ttf: FreeMono:style=Medium:weight=80FreeSans.ttf: FreeSans:style=Medium:weight=80FreeSerifBold.ttf: FreeSerif:style=Bold:weight=200FreeSansBoldOblique.ttf: FreeSans:style=BoldOblique:weight=200FreeMonoBold.ttf: FreeMono:style=Bold:weight=200

Parâmetros importantes podem ser consultados com fc-list:

Tabela 14.2 Parâmetros de fc-list

Significado e valores possíveisParâmetro

Nome da família da fonte, por exemplo, FreeSans.family

Nome do fabricante da fonte, por exemplo, urw.foundry

O estilo da fonte, como Medium, Regular, Bold,Italic ou Heavy.

style

O idioma que a fonte suporta, por exemplo, de para alemão,ja para japonês, zh-TW para chinês tradicional ou zh-CNpara chinês simplificado.

lang

O sistema X Window 293

Page 294: Reference Pt BR

Significado e valores possíveisParâmetro

O peso da fonte, como 80 para normal ou 200 para negrito.weight

A inclinação, geralmente 0 para nenhum e 100 para itálico.slant

O nome do arquivo contendo a fonte.file

true para fontes de bordas ou false para outras fontes.outline

true para fontes escaláveis ou false para outras fontes.scalable

true para fontes de bitmap ou false para outras fontes.bitmap

Tamanho de fonte em pixels. Em conexão com a fc-list, estaopção só faz sentido para fontes de bitmap.

pixelsize

14.3.3 Fontes indexadas do CIDEm contraste com outros tipos de fontes, você não pode simplesmente instalar fontesindexadas do CID em somente qualquer diretório. Fontes indexadas do CID devem serinstaladas em /usr/share/ghostscript/Resource/CIDFont. Isso não érelevante para Xft e fontconfig, mas é necessário para Ghostscript e o sistema de fontescentrais X11.

DICA

Consulte http://www.xfree86.org/current/fonts.html para obtermais informações sobre fontes sob X11.

294 Referência

Page 295: Reference Pt BR

14.4 Configuração 3D do OpenGL

14.4.1 Suporte a hardwareO SUSE Linux inclui vários drivers do OpenGL para suporte a hardware 3D. ATabela 14.3, “Hardwares 3D suportados” (p 295) fornece uma visão geral.

Tabela 14.3 Hardwares 3D suportados

Hardware suportadoDriver do OpenGL

nVidia Chips: todos, exceto alguns chipsets antigos (GeForce2e anteriores)

nVidia

Intel i810/i815/i830M,DRI

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 instalação com o YaST pela primeira vez, a aceleração3D poderá ser ativada durante a instalação, uma vez que o YaST detecta suporte a 3D.Para chips de gráficos nVidia, é necessário instalar o driver nVidia antes. Para fazerisso, selecione o patch do driver nVidia em YOU (YaST Online Update - AtualizaçãoOnline do YaST). Devido a restrições de licença, o driver do nVidia não está incluídona distribuição.

Se você atualizar o sistema, o procedimento para configurar o suporte ao hardware 3Dserá diferente. Isso depende de qual driver do OpenGL está sendo usado. Detalhesadicionais serão fornecidos na próxima seção.

O sistema X Window 295

Page 296: Reference Pt BR

14.4.2 Drivers do OpenGLOs drivers nVidia e DRI do OpenGL podem ser facilmente configurados com SaX2.Para adaptadores nVidia, é necessário instalar o driver nVidia antes. Digite o comando3Ddiag para verificar se a configuração do nVidia ou DRI está correta.

Por razões de segurança, somente usuários pertencentes ao grupo vídeo têm permissãopara acessar o hardware 3D. Portanto, verifique se todos os usuários locais são membrosdesse grupo. Caso contrário, o fallback de renderização de software lento do driver doOpenGL será usado para aplicativos do OpenGL. Use o comando id para verificar seo usuário atual pertence ao grupo vídeo. Se não for o caso, use o YaST para adicionaro usuário ao grupo.

14.4.3 Ferramenta de diagnóstico 3DdiagA ferramenta de diagnóstico 3Ddiag permite verificar a configuração 3D do SUSELinux. Essa é uma ferramenta da linha de comando que deve ser iniciada em um terminal.Digite 3Ddiag -h para relacionar possíveis opções para a 3Ddiag.

Para verificar a configuração de X.Org, a ferramenta verifica se os pacotes necessáriospara o suporte 3D estão instalados e se a biblioteca do OpenGL e a extensão GLXcorretas estão sendo usadas. Se receber mensagens de falha, siga as instruções da 3Ddiag.Se tudo estiver correto, serão exibidas somente mensagens de conclusão na tela.

14.4.4 Utilitários de teste do OpenGLPara testar o OpenGL, pode ser útil usar o programa glxgears e jogos comotuxracer e armagetron (os pacotes têm os mesmos nomes). Se o suporte 3D tiversido ativado, será possível reproduzi-los adequadamente em um computador novo. Semsuporte 3D, esses jogos seriam executados muito lentamente (efeito apresentação deslide). Use o comando glxinfo para verificar se o 3D está ativo. Em caso positivo,a saída conterá uma linha com direct rendering: Yes.

296 Referência

Page 297: Reference Pt BR

14.4.5 Solução de problemasSe os resultados do teste 3D do OpenGL forem negativos (os jogos não foremreproduzidos adequadamente), use a 3Ddiag para verificar se não há erros naconfiguração (mensagens de erro). Se a correção não ajudar ou as mensagens de erronão tiverem sido exibidas, analise os arquivos de registro X.Org.

Com freqüência, 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 umexame detalhado do arquivo de registro, tarefa que requer experiência.

Em tais casos, não há erros de configuração, pois eles teriam sido detectados pela3Ddiag. Conseqüentemente, nesse ponto a única alternativa é usar o fallback derenderização do software do driver DRI, que não fornece suporte a hardware 3D. Vocêtambém deverá ficar sem suporte a 3D, se houver instabilidade ou erros de representaçãodo OpenGL. Use o SaX2 para desabilitar totalmente o suporte a 3D.

14.4.6 Suporte à instalaçãoAlém do fallback de renderização de software do driver DRI, algunsdrivers do OpenGL no Linux ainda estão em fase de desenvolvimento e, portanto, sãoconsiderados experimentais. Os drivers são incluídos na distribuição devido à altademanda de aceleração do hardware 3D no Linux. Considerando o status experimentalde alguns drivers do OpenGL, o SUSE não pode oferecer suporte à instalação para aconfiguração da aceleração do hardware 3D, nem fornecer assistência adicional aproblemas relacionados. A configuração básica da interface gráfica do usuário (sistemaX Window) não inclui configuração de aceleração do hardware 3D. Se você tiverproblemas com a aceleração do hardware 3D, é recomendável desabilitar totalmente osuporte a 3D.

14.4.7 Mais informaçõesPara obter informações, consulte os arquivos LEIAME em /usr/X11R6/lib/X11/doc. Obtenha mais informações sobre a instalação do driver nvidia em http://www.suse.de/~sndirsch/nvidia-installer-HOWTO.html.

O sistema X Window 297

Page 298: Reference Pt BR
Page 299: Reference Pt BR

15FreeNX: controlando outrocomputador remotamenteO FreeNX é uma implementação GPL do servidor NX, usado para exibição e acessoremoto de outro computador. Ele oferece resposta de aplicativo em velocidade quaselocal através de links de alta latência e largura de banda baixa.

15.1 Noções básicas do NXEstas etapas descrevem o procedimento básico para estabelecer uma configuração doNX de trabalho que aceite até 10 clientes conectados ao servidor NX:

1 Instale os seguintes pacotes na máquina servidor e cliente usando o módulo degerenciamento de software do YaST:

Máquina clienteMáquina servidor

• NX• NX

• FreeNX • knx (para sessões do KDE)

• NoMachine nxclient (para sessões não-KDE)

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

Page 300: Reference Pt BR

O servidor é executado de acordo com as configurações padrão existentes em/etc/nxserver/node.conf. Qualquer usuário pode se conectarremotamente de qualquer estação de trabalho. Para informar-se sobre aconfiguração avançada do servidor NX, consulte a Seção 15.2, “Configuraçãoavançada do FreeNX” (p 302).

Se você preferir uma configuração mais segura com chaves privadas distribuídaspara cada cliente, consulte as instruções contidas na Seção 15.2.1, “Configurandoa autenticação SSH com chaves do cliente” (p 302).

3 Configure o firewall na máquina que hospeda o servidor NX para permitirconexões do NX.

a Efetue login na máquina servidor como Root e inicie o módulo de firewalldo YaST.

b Selecione Serviços Permitidos para acessar a caixa de diálogo deconfiguração do serviço e selecione Zona Externa.

c Selecione Avançado para especificar detalhes de porta do NX.

d Abra as portas 22 (SSH), 5000 a 5009, e 7000 a 7009 para aceitar tráfegodo NX. Para fazer isso, especifique o seguinte nas portas TCP:22 5000:5009 7000:7009

e Selecione OK → Próximo → Aceitar para armazenar suas configurações ereiniciar o firewall.

DICA

Para obter informações detalhadas sobre a configuração de firewall para o NX,consulte /usr/share/doc/packages/FreeNX/NX-Firewall.txt.

Para conectar-se remotamente a outra estação de trabalho e usar o KDE como sua opçãode desktop, proceda da seguinte maneira:

1 Inicie o KNX no menu principal.

300 Referência

Page 301: Reference Pt BR

2 No primeiro login, você precisará criar uma nova conexão. Para criar umaconexão, faça o seguinte:

a Em Login de Cliente do KNX, clique em Configurações de Conexão.

b Digite um nome para a conexão; por exemplo, o nome do servidor.

c Especifique as informações de host, o número da porta e a largura de bandada conexão.

d Em Tipo de Sessão, selecione UNIX/KDE para iniciar uma sessão do KDE.

e Selecione uma resolução de tela.

f Clique em OK.

3 Depois que você se conectar e a conexão remota aparecer na tela, você poderáacessar aplicativos e usar o computador remoto como se estivesse em frente aele.

Para conectar-se remotamente a outra máquina que execute o GNOME como sua opçãode desktop, proceda da seguinte maneira:

1 Faça o download do pacote nxclient do NoMachine através de http://www.nomachine.com/download_client_linux.php e instale-o.

2 Inicie o Assistente para Conexão do NX no menu principal.

3 Em três etapas, digite o nome da conexão, detalhes da porta e do host, e o tipode conexão, selecione o tipo de sessão Unix/Gnome, decida se criará um atalhona área de trabalho e clique em Concluir.

4 Para conectar-se ao desktop remoto, clique no atalho do NX na área de trabalhoe informe o nome de usuário e a senha. Em seguida, clique em OK.

A área de trabalho remota aparece na sua tela.

FreeNX: controlando outro computador remotamente 301

Page 302: Reference Pt BR

15.2 Configuração avançada doFreeNX

As seções a seguir apresentam alguns recursos avançados usados principalmente emcenários mais complexos do NX.

15.2.1 Configurando a autenticação SSHcom chaves do cliente

A autenticação configurada na Seção 15.1, “Noções básicas do NX” (p 299) utilizaapenas credenciais de senha e nome de usuário. Para obter uma autenticação maissegura, o NX pode ser configurado para gerar um par de chaves SSH. A chave do clienteé, então, copiada da máquina servidor para qualquer cliente que possa se conectar aoservidor NX. Os clientes que não tiverem essa chave não poderão se autenticar noservidor NX. Esse recurso só tem suporte para a combinação de servidor FreeNX ecliente knx.

Para configurar o servidor NX para que use esse método de autenticação e gere o parde chaves apropriada, proceda da seguinte maneira:

1 Efetue login como Root na máquina servidor.

2 Abra o arquivo de configuração do servidor /etc/nxserver/node.confe verifique se ENABLE_SSH_AUTHENTICATION está definido como 1 (valorpadrão).

3 Instale o servidor com o seguinte comando:nxsetup --install --clean --purge

4 Ajuste as permissões de acesso para /var/lib/nxserver/home/.ssh/authorized_keys2:chmod 640 /var/lib/nxserver/home/.ssh/authorized_keys2

5 Efetue logout.

302 Referência

Page 303: Reference Pt BR

Para configurar o knx para usar essa chave, proceda da seguinte maneira:

1 Na máquina servidor, efetue login como Root.

2 Copie o arquivo de chave para o local na máquina cliente necessário ao knx;substitua cliente pelo endereço do cliente.scp /var/lib/nxserver/home/.ssh/client.id_dsa.key cliente:/usr/share/knx/

3 Efetue login na máquina cliente como Root.

4 Ajuste as permissões de acesso da seguinte maneira:chmod 644 /usr/share/knx/client.id_dsa.key

5 Efetue logout.

15.2.2 Configurando a autenticação PAMPor padrão, o FreeNX permite que qualquer usuário abra uma sessão do NX, desde queele esteja presente no banco de dados de usuários do seu servidor (localmente ou pormeio de LDAP, NIS, entre outros). Esse comportamento é alternado pela variávelENABLE_PAM_AUTHENTICATION em/usr/bin/nxserver na máquina servidor.O valor padrão aqui é 1. Configurar com o valor 0 desabilita a autenticação do usuáriomediada por PAM (PAM_AUTH) para o FreeNX.

Se ENABLE_PAM_AUTHENTICATION for definido como 0, será preciso adicionarusuários e senhas manualmente. Para adicionar usuários locais do NX ao servidor,proceda da seguinte maneira:

1 Efetue login na máquina servidor como Root.

2 Certifique-se de que os usuários a serem adicionados existem no banco de dadosde usuários locais do sistema. Para isso, verifique o conteúdo de /etc/passwdou use o módulo de gerenciamento de usuários do YaST.

3 Inclua o nome de cada usuário adicionado com o comando nxserver--adduser. Em seguida, adicione a senha do usuário com nxserver--passwd.

FreeNX: controlando outro computador remotamente 303

Page 304: Reference Pt BR

4 Reinicie o servidor com nxserver --restart e efetue logout.

15.2.3 Usando arquivos de configuração nosistema todo e específicos do usuário

O comportamento do servidor FreeNX é controlado por meio de /etc/node.conf.Você pode executar uma configuração global do servidor NX ou executar o servidorcom configurações específicas do usuário. Isso é importante quando você tem diversosusuários com o NX em execução em uma máquina com requisitos distintos.

No exemplo a seguir, suponha que o usuário joe queira que o NX seja iniciadoautomaticamente com um certo aplicativo quando ele abrir uma sessão do NX. Parahabilitar esse comportamento para apenas esse usuário, proceda da seguinte maneira:

1 Efetue login como Root.

2 Digite o diretório /etc/nxserver:cd /etc/nxserver

3 Grave uma cópia do arquivo de configuração do servidor NX (node.conf) emjoe.node.conf no mesmo diretório.

4 Edite os parâmetros apropriados (NODE_AUTOSTART eENABLE_AUTORECONNECT) emjoe.node.conf. Para obter detalhes sobreesses recursos, consulte a Seção 15.2.5, “Configurando tarefas de auto-início eexportando configurações” (p 305) e a Seção 15.2.4, “Suspendendo e reiniciandosessões do NX” (p 305).

5 Reinstale o servidor NX para ativar a nova configuração:nxsetup --install --clean --purge --setup-nomachine-key

A configuração específica do usuário substitui a configuração global.

6 Efetue logout.

304 Referência

Page 305: Reference Pt BR

15.2.4 Suspendendo e reiniciando sessõesdo NX

Como nas sessões em computadores móveis, é possível configurar o NX para suspendere reiniciar sessões do usuário. Uma sessão suspensa é reaberta no mesmo estado emque estava ao ser fechada.

Para configurar a suspensão e o reinício de sessões do NX, proceda da seguinte maneira:

1 Efetue login como Root.

2 Abra o arquivo de configuração 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 configuração, saia e reinicie o servidor com nxserver--restart.

4 Efetue logout.

Para suspender uma sessão ao sair, clique no X no canto superior direito da janela doNX e selecione Suspender para suspender a sessão e sair do cliente. Na reconexão, vocêdeverá informar se deseja reiniciar a sessão antiga ou iniciar uma nova.

15.2.5 Configurando tarefas de auto-inícioe exportando configurações

O FreeNX oferece a função de auto-início que lhe permite iniciar certas tarefas quandouma sessão do NX é iniciada ou reiniciada, desde que o aplicativo subjacente suporteas propriedades start e resume. Por exemplo, você pode limpar a área de trabalhoautomaticamente ou executar outras tarefas de auto-início quando abrir o FreeNX. Esserecurso é especialmente útil quando você reconecta uma sessão, mesmo em outro clientedo NX (no qual não é possível usar os mecanismos padrão do KDE ou GNOME).

Para configurar recursos de auto-início, proceda da seguinte maneira:

FreeNX: controlando outro computador remotamente 305

Page 306: Reference Pt BR

1 Efetue login como Root na máquina servidor.

2 Abra o arquivo de configuração do servidor /etc/nxserver/node.confe edite a variável NODE_AUTOSTART da maneira descrita abaixo, ondemeuprograma deve ser substituído pelo programa a ser executado no inícioou reinício de uma sessão do NX:NODE_AUTOSTART=meuprograma

3 Grave e saia do arquivo de configuração.

4 Reinicie o servidor com o comando nxserver --restart e efetue logout.

O programa especificado será iniciado toda vez que uma sessão for iniciada oureiniciada.

Você também pode exportar as variáveis NX_USERIP e NX_SESSIONID para quepossam ser acessadas no ambiente do usuário. Com isso, é possível, por exemplo,colocar um ícone na área de trabalho com o conteúdo genérico e acessar um servidorSamba em execução no thin client do usuário. Para que o conteúdo de um disquete naunidade de disquete do thin client fique à disposição do usuário, proceda da seguintemaneira:

1 Habilite a exportação das variáveisNX_USERIP eNX_SESSIONID no servidor:

a Efetue login como Root no servidor.

b Abra o /etc/nxserver/node.conf de configuração do servidor edefina as seguintes variáveis:EXPORT_USERIP="1"EXPORT_SESSIONID="1"

c Grave o arquivo de configuração do servidor, saia e reinicie o servidor como comando nxserver --restart.

d Efetue logout.

2 No cliente, abra uma sessão, exporte a unidade de disquete através de SMB ecrie um ícone na área de trabalho:

306 Referência

Page 307: Reference Pt BR

a Use o seu gerenciador de arquivos (Nautilus ou Konqueror) para exportaro conteúdo da unidade de disquete com o Samba.

b Crie um arquivo floppy.desktop no diretório Desktop e inclua aseguinte linha:Exec=smb://$NX_USERIP/floppy

O servidor exporta o endereço IP do thin client, permitindo assim que vocêtenha acesso à unidade de disquete do thin client com o ícone de disquetena sessão do NX.

15.2.6 Criando uma cadeia de servidores NXUma cadeia de servidores NX permite que você atravesse firewalls e entenda a máscarade IP. Um servidor de “gateway” externo pode ser usado para encaminhar conexões deentrada para um servidor interno, oculto por trás de um firewall (máscara).

Para configurar uma cadeia de servidores NX, proceda da seguinte maneira:

1 Configure o servidor interno como descrito na Seção 15.2.1, “Configurando aautenticação SSH com chaves do cliente” (p 302) e distribua a chave privada doservidor (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 variáveis em /etc/nxserver/node.conf esubstitua meuhostinterno pelo endereço 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 configuração alterada com ocomando nxserver --restart e efetue logout.

Toda conexão de entrada será encaminhada ao servidor interno.

FreeNX: controlando outro computador remotamente 307

Page 308: Reference Pt BR

15.2.7 Instalando e executando o FreeNX eo NoMachine no mesmo servidor

É possível instalar e executar o FreeNX e o servidor comercial NX NoMachine namesma máquina sem interferência. Para fazer essa implementação no FreeNX,encaminhe a conexão para o NoMachine instalado na mesma máquina.

Para habilitar esse recurso, proceda da seguinte maneira:

1 Efetue login como Root na máquina servidor.

2 Abra o arquivo de configuração do servidor para o FreeNX em /etc/nxserver/node.conf e defina a seguinte variável: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 padrão de nome de usuárioe senha. Para conectar-se ao servidor FreeNX, use freenx. como prefixo do nomede usuário normal (por exemplo, freenx.joedoe) e use a senha normal.

15.3 Solução de problemasAs seções a seguir indicam alguns dos problemas mais freqüentes que ocorrem quandose usa o FreeNX e fornecem as possíveis soluções para resolvê-los.

15.3.1 O knx trava ao tentar estabeleceruma conexão

Você está tentando estabelecer uma conexão com o servidor NX usando o knx. Aoiniciar a conexão, o knx falha na autenticação do usuário e nenhuma sessão remota éiniciada.

308 Referência

Page 309: Reference Pt BR

Para determinar por que isso ocorre e como o problema pode ser solucionado, procedada seguinte maneira:

1 Verifique se o Novell AppArmor está em execução na máquina servidor e procedacomo descrito na Seção 15.3.2, “Não é possível estabelecer conexão com oservidor NX” (p 310).

2 Tente restabelecer uma conexão entre o knx e o servidor.

3 Verifique se o firewall do cliente permite tráfego SSH. Para isso, inicie o módulode firewall do YaST e verifique se o SSH está entre os Serviços Permitidos daZona Externa. Habilite o SSH caso ele ainda não esteja habilitado.

4 No firewall do servidor, verifique se o SSH e as portas NX estão relacionadasna Seção 15.1, “Noções básicas do NX” (p 299). Abra essas portas se tiveremsido fechadas.

5 Tente restabelecer uma conexão entre o knx e o servidor.

6 Efetue login no servidor como Root e proceda da seguinte maneira:

a Especifique o diretório /tmp e procure arquivos de bloqueio no servidorNX:cd /ls -ltr .nX*

b Se houver algum desses antigos arquivos de bloqueio, remova-os.

c Efetue logout.

7 Tente restabelecer uma conexão entre o knx e o servidor.

8 Na máquina cliente, apague e reinstale o cliente do knx usando o módulo degerenciamento de software do YaST.

Se você seguiu as instruções acima, agora poderá se conectar.

FreeNX: controlando outro computador remotamente 309

Page 310: Reference Pt BR

15.3.2 Não é possível estabelecer conexãocom o servidor NX

Depois de iniciar o knx e a conexão, você obterá a seguinte mensagem de erro:Não foi possível estabelecer conexão com o servidor NX. Tempo de conexão esgotado.

Para determinar a origem desse problema, proceda da seguinte maneira:

1 Efetue login no servidor como Root.

2 Verifique se na saída 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 execução no servidor não permiteque o daemon ssh acesse alguns arquivos específicos do NX.

3 Interrompa o AppArmor na máquina servidor

ou

Coloque o perfil sshd no modo de aprendizado e adicione permissões ao perfilexistente para ter acesso aos arquivos do NX. Essas informações são fornecidascom mais detalhes no Guia de Administração do Novell AppArmor 2.0.

4 Reconecte-se ao servidor.

15.3.3 Autenticação do usuáriobem-sucedida, conexão remota não

se estabeleceDepois que você executa o knx e inicia a sessão, o knx autentica o usuário mas, em vezde uma janela de terminal abrir com uma nova sessão, é exibida uma mensagem de errocomo esta:

310 Referência

Page 311: Reference Pt BR

Ainda não foi possível estabelecer conexão com o proxy remoto. Deseja encerrar a sessão?

A conexão falhou porque as portas superiores usadas na negociação da sessão remotado NX não foram abertas no firewall do servidor. Para ajustar as configurações dofirewall no servidor, proceda como descrito na Seção 15.1, “Noções básicas do NX”(p 299).

15.4 Mais informaçõesPara obter as informações mais recentes sobre o atual pacote do FreeNX, consulte oLEIAME em/usr/share/doc/packages/FreeNX/README.SUSE. Para obterinformações adicionais sobre o servidor NX, use o comando nxserver --help.

FreeNX: controlando outro computador remotamente 311

Page 312: Reference Pt BR
Page 313: Reference Pt BR

16Autenticação com o PAMO Linux usa o PAM (Pluggable Authentication Modules) no processo de autenticaçãocomo uma camada mediadora entre o usuário e o aplicativo. Como os módulos PAMestão disponíveis em todo o sistema, eles podem ser solicitados por qualquer aplicativo.Este capítulo descreve o funcionamento e a configuração do mecanismo de autenticaçãomodular.

Os programadores e administradores do sistema muitas vezes desejam restringir oacesso a certas partes do sistema ou limitar o uso de certas funções de um aplicativo.Sem o PAM, os aplicativos precisam ser adaptados toda vez que é introduzido um novomecanismo de autenticação, como o LDAP ou o SAMBA. Entretanto, esse processo ébastante demorado e propenso a erros. Uma forma de evitar essas desvantagens é separaros aplicativos do mecanismo de autenticação e delegar a autenticação a módulosgerenciados centralmente. Sempre que um esquema de autenticação passa a sernecessário, basta adaptar ou gravar um módulo PAM adequado para ser usado peloprograma em questão.

Todo programa baseado no mecanismo PAM tem um arquivo de configuração própriono diretório/etc/pam.d/programname. Esses arquivos definem os módulos PAMusados para a autenticação. Além disso, existem arquivos de configuração globais paraa maioria dos módulos PAM em /etc/security, que definem o exatocomportamento desses módulos (alguns exemplos são pam_env.conf, pam_pwcheck.conf, pam_unix2.conf e time.conf). Todo aplicativo que usaum módulo PAM na realidade chama um conjunto de funções do PAM que, em seguida,processa as informações nos diversos arquivos de configuração e apresenta o resultadoao aplicativo que chamou.

Autenticação com o PAM 313

Page 314: Reference Pt BR

16.1 Estrutura de um arquivo deconfiguração PAM

Cada linha de um arquivo de configuração PAM contém, no máximo, quatro colunas:<Tipo de módulo> <Flag de controle> <Caminho do módulo> <Opções>

Os módulos PAM são processados como pilhas. Diferentes tipos de módulos servema diferentes objetivos. Por exemplo, um módulo verifica a senha, outro verifica alocalização de onde o sistema está sendo acessado e outro lê configurações específicasao usuário. O PAM tem conhecimento sobre quatro tipos diferentes de módulos:

autenticaçãoO objetivo desse tipo de módulo é verificar a autenticidade do usuário. Essaverificação tradicionalmente é feita por meio de uma consulta a senha, mas tambémpode ser realizada com a ajuda de um cartão com chip ou de biometria (impressõesdigitais ou leitura da íris).

account (conta)Os módulos desse tipo verificam se o usuário possui uma permissão geral para usaro serviço solicitado. A título de exemplo, essa verificação deve ser realizada paraassegurar que ninguém seja capaz de efetuar o login com o nome de usuário deuma conta vencida.

password (senha)O objetivo desse tipo de módulo é permitir a mudança de um token de autenticação.Na maioria dos casos, trata-se de uma senha.

session (sessão)Os módulos desse tipo são responsáveis pelo gerenciamento e configuração desessões de usuários. Eles são iniciados antes e depois da autenticação para registrartentativas de login em registros do sistema e para configurar o ambiente específicodo usuário (contas de e-mail, diretório pessoal, limites do sistema etc.).

A segunda coluna contém flags de controle para influenciar o comportamento dosmódulos iniciados:

required (obrigatório)Um módulo com esse flag precisa ser processado com êxito para que a autenticaçãopossa prosseguir. Após a falha de um módulo com o flag required (obrigatório),

314 Referência

Page 315: Reference Pt BR

todos os outros módulos com o mesmo flag serão processados antes que o usuárioreceba uma mensagem sobre a falha da tentativa de autenticação.

requisite (necessário)Os módulos com esse flag também precisam ser processados com êxito, de modobastante semelhante ao módulo com o flag required (obrigatório). Contudo, emcaso de falha, um módulo com esse flag dá um retorno imediato ao usuário e osmódulos restantes deixam de ser processados. Em caso de êxito, os outros módulossão processados, exatamente como qualquer módulo com o flag required(obrigatório). O flag requisite (necessário) pode ser usado como um filtrobásico para verificar a existência de determinadas condições essenciais para acorreta autenticação.

sufficient (suficiente)Após o processamento com êxito de um módulo com esse flag, o aplicativo quechamou recebe imediatamente uma mensagem sobre o êxito e o processamentodos módulos é interrompido, exceto quando houver falhas anteriores em um módulocom o flag required (obrigatório). A falha de um módulo com o flagsufficient (suficiente) não traz conseqüências diretas, com os módulossubseqüentes sendo processados na sua respectiva ordem.

optional (opcional)A falha ou êxito de um módulo com esse flag não traz conseqüências diretas. Issopode ser útil no caso de módulos cujo único propósito é exibir uma mensagem (porexemplo, informar ao usuário sobre a chegada de e-mails) sem executar nenhumaação adicional.

include (incluir)Quando esse flag é dado, o arquivo especificado como argumento é inserido nesselugar.

O caminho do módulo não precisa ser explicitado, contanto que o módulo fiquelocalizado no diretório padrão /lib/security (para todas as plataformas de 64 bitssuportadas pelo SUSE Linux, o diretório é /lib64/security). A quarta colunapode conter uma opção para o módulo específico, como debug (permite a depuração)ou nullok (permite o uso de senhas vazias).

Autenticação com o PAM 315

Page 316: Reference Pt BR

16.2 A configuração PAM do sshdPara demonstrar o funcionamento da teoria do PAM, considere a configuração PAMdo sshd como um exemplo prático:

Exemplo 16.1 Configuração 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 # sessões ssh (consulte /usr/share/doc/packages/resmgr/README.SuSE) #session optional pam_resmgr.so fake_ttyname

A configuração PAM típica de um aplicativo (sshd, nesse caso) contém quatro instruçõesinclude (incluir) referentes aos arquivos de configuração de quatro tipos de módulo:common-auth,common-account,common-password ecommon-session.Esses quatro arquivos abrigam a configuração padrão de cada tipo de módulo. Ao incluí-los em vez de chamar cada módulo separadamente para cada aplicativo do PAM, serápossível obter automaticamente uma configuração PAM atualizada se o administradormudar os padrões. Antigamente, era necessário fazer o ajuste manual de todos osarquivos de configuração para todos os aplicativos quando ocorriam mudanças no PAMou quando um novo aplicativo era instalado. Agora, a configuração PAM é feita comarquivos de configuração centrais e todas as mudanças são automaticamente herdadaspela configuração PAM de cada serviço.

O primeiro arquivo incluído (common-auth) chama dois módulos do tipo auth(autenticação): pam_env e pam_unix2. Consulte o Exemplo 16.2, “Configuraçãopadrão da seção auth (autenticação)” (p 316).

Exemplo 16.2 Configuração padrão da seção auth (autenticação)auth required pam_env.soauth required pam_unix2.so

O primeiro, pam_env, carrega o arquivo /etc/security/pam_env.conf paradefinir as variáveis de ambiente conforme especificado nesse arquivo. Esse módulopode ser usado para definir o valor correto da variável DISPLAY, pois o módulo pam_env tem conhecimento do local de onde o login está sendo feito. O segundo, pam_unix2, compara o login e a senha do usuário a /etc/passwd e /etc/shadow.

316 Referência

Page 317: Reference Pt BR

Depois da chamada com êxito dos módulos especificados em common-auth, umterceiro módulo chamado pam_nologin verifica se o arquivo /etc/nologinexiste. Em caso afirmativo, somente o usuário root poderá efetuar o login. A pilhainteira de módulos auth (autenticação) é processada antes que o sshd receba qualquerretorno sobre o êxito do login. Tendo em vista que todos os módulos da pilha apresentamo flag de controle required (obrigatório), todos precisam ser processados com êxitoantes que o sshd receba uma mensagem sobre o resultado positivo. Se algum dos módulosfalhar, a pilha de módulos inteira ainda será processada e somente aí é que o sshd seránotificado sobre o resultado negativo.

Logo após o processamento com êxito de todos os módulos do tipo auth (autenticação),outra instrução include (incluir) é processada. Nesse caso, a que está no Exemplo 16.3,“Configuração padrão da seção account (conta)” (p 317). O common-accountcontém apenas um módulo, o pam_unix2. Se o pam_unix2 retornar o resultado deque o usuário existe, o sshd receberá uma mensagem de êxito e a próxima pilha demódulos (password - senha) será processada, conforme mostrado no Exemplo 16.4,“Configuração padrão da seção password (senha)” (p 317).

Exemplo 16.3 Configuração padrão da seção account (conta)account required pam_unix2.so

Exemplo 16.4 Configuração padrão da seção password (senha)password required pam_pwcheck.so nullokpassword required pam_unix2.so nullok use_first_pass use_authtok#password required pam_make.so /var/yp

Mais uma vez, a configuração PAM do sshd envolve apenas uma instrução include(incluir) referente à configuração padrão dos módulos password (senha) localizadosem common-password. Esses módulos precisam ser concluídos com êxito (flag decontrole required - obrigatório) sempre que o aplicativo solicita a mudança de umtoken de autenticação. A mudança de uma senha ou de outro token de autenticaçãorequer uma verificação de segurança. Essa ação é possibilitada pelo módulo pam_pwcheck. O módulo pam_unix2 usado posteriormente vem com quaisquer senhasantigas e novas do módulo pam_pwcheck, de modo que o usuário não preciseautenticar novamente. Isso também torna impossível driblar as verificações realizadaspelopam_pwcheck. Os módulos do tipopassword (senha) devem ser usados sempreque os módulos precedentes do tipo account (conta) ou auth (autenticação) sãoconfigurados para fazer uma queixa sobre uma senha vencida.

Autenticação com o PAM 317

Page 318: Reference Pt BR

Exemplo 16.5 Configuração padrão da seção session (sessão)session required pam_limits.sosession required pam_unix2.so

Na etapa final, os módulos do tipo session (sessão), integrados no arquivocommon-session, são chamados para configurar a sessão de acordo com asconfigurações do usuário em questão. Embora o pam_unix2 seja processadonovamente, não há conseqüências práticas devido à opção none (nenhum) especificadano respectivo arquivo de configuração desse módulo, o pam_unix2.conf. O módulopam_limits carrega o arquivo/etc/security/limits.conf, que pode definirlimites sobre o uso de certos recursos do sistema. Os módulos session (sessão) sãochamados uma segunda vez quando o usuário efetua logout.

16.3 Configuração de módulos PAMAlguns dos módulos PAM são configuráveis. Os arquivos de configuraçãocorrespondentes estão localizados em /etc/security. Essa seção apresenta umabreve descrição dos arquivos de configuração relevantes para o exemplo do sshd: pam_unix2.conf, pam_env.conf, pam_pwcheck.conf e limits.conf.

16.3.1 pam_unix2.confO método tradicional de autenticação baseada em senha é controlado pelo módulo PAMpam_unix2. Ele consegue ler os dados necessários de /etc/passwd, /etc/shadow, mapas NIS, tabelas NIS+ ou um banco de dados LDAP. Para influenciar ocomportamento desse módulo, configure as opções de PAM do aplicativo em si ouefetue uma mudança global editando /etc/security/pam_unix2.conf. Umarquivo de configuração do módulo bastante básico é mostrado no Exemplo 16.6,“pam_unix2.conf” (p 318).

Exemplo 16.6 pam_unix2.confauth: nullokaccount:password: nulloksession: none

A opção nullok para os tipos de módulo auth (autenticação) e password (senha)especifica que senhas vazias são permitidas para o tipo de conta correspondente. Os

318 Referência

Page 319: Reference Pt BR

usuários também têm permissão para mudar as senhas de suas contas. A opção none(nenhum) do tipo de módulo session (sessão) especifica que nenhuma mensagemfoi registrada em seu nome (esse é o padrão). Obtenha mais informações sobre opçõesadicionais de configuração nos comentários do próprio arquivo e na página pam_unix2(8)do manual.

16.3.2 pam_env.confEsse arquivo pode ser usado para definir um ambiente padronizado para os usuáriosque será definido sempre que o módulo pam_env for chamado. Com ele, predefinavariáveis de ambiente usando a seguinte sintaxe:VARIÁVEL [DEFAULT=[valor]] [OVERRIDE=[valor]]

VARIÁVELNome da variável de ambiente a ser definida.

[DEFAULT=[valor]]Valor padrão que o administrador deseja definir.

[OVERRIDE=[valor]]Os valores que podem ser usados para consulta e definidos por pam_env,substituindo o valor padrão.

Um exemplo típico de como o módulo pam_env pode ser usado é a adaptação davariável DISPLAY, que é mudada sempre que ocorre um login remoto. Você pode verisso no Exemplo 16.7, “pam_env.conf” (p 319).

Exemplo 16.7 pam_env.confREMOTEHOST DEFAULT=localhost OVERRIDE=@{PAM_RHOST}DISPLAY DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}

A primeira linha define o valor da variável REMOTEHOST para o localhost, que éusada sempre que pam_env não puder determinar qualquer outro valor. A variávelDISPLAY, por sua vez, contém o valor de REMOTEHOST. Mais informações podemser encontradas nos comentários do arquivo /etc/security/pam_env.conf.

Autenticação com o PAM 319

Page 320: Reference Pt BR

16.3.3 pam_pwcheck.confEsse arquivo de configuração se destina ao módulo pam_pwcheck, que lê opçõesdele para todos os módulos do tipopassword (senha). As configurações armazenadasnesse arquivo têm prioridade sobre as configurações PAM de um aplicativo individual.Se configurações específicas a um aplicativo não tiverem sido definidas, o aplicativousará as configurações globais. Exemplo 16.8, “pam_pwcheck.conf” (p 320) instrui omódulo pam_pwcheck a permitir senhas vazias e a modificação de senhas. Maisopções para o módulo são citadas no arquivo /etc/security/pam_pwcheck.conf.

Exemplo 16.8 pam_pwcheck.confpassword: nullok

16.3.4 limits.confOs limites do sistema podem ser definidos para um usuário ou para um grupo no arquivolimits.conf, que é lido pelo módulopam_limits. O arquivo permite a definiçãode limites fixos, que não podem ser excedidos em hipótese alguma, e limites flexíveis,que podem ser excedidos temporariamente. Para obter informações sobre a sintaxe eas opções disponíveis, leia os comentários contidos no arquivo.

16.4 Mais informaçõesNo diretório/usr/share/doc/packages/pam do sistema instalado, você encontraa seguinte documentação adicional:

READMEsNo nível superior desse diretório, há alguns arquivos README gerais. Osubdiretório modules abriga arquivos README sobre os módulos PAMdisponíveis.

The Linux-PAM System Administrators' Guide (Guia do Administrador do SistemaLinux-PAM)

Esse documento contém todas as informações que o administrador do sistema devesaber sobre o PAM. Ele aborda uma variedade de tópicos, desde a sintaxe dos

320 Referência

Page 321: Reference Pt BR

arquivos de configuração até os aspectos de segurança do PAM. O documento estádisponível em formato PDF, HTML e como texto simples.

The Linux-PAM Module Writers' Manual (Manual do Elaborador de Módulos Linux-PAM)

Esse documento sintetiza esse tópico do ponto de vista do desenvolvedor, cominformações sobre como elaborar módulos PAM em conformidade com os padrões.O documento está disponível em formato PDF, HTML e como texto simples.

The Linux-PAM Application Developers' Guide (Guia do Desenvolvedor de AplicativosLinux-PAM)

Esse documento contém todas as informações necessárias a um desenvolvedor deaplicativos que queira usar as bibliotecas PAM. O documento está disponível emformato PDF, HTML e como texto simples.

Thorsten Kukuk desenvolveu uma série de módulos PAM para o SUSE Linux edisponibilizou algumas informações a esse respeito em http://www.suse.de/~kukuk/pam/.

Autenticação com o PAM 321

Page 322: Reference Pt BR
Page 323: Reference Pt BR

17Virtualização com o XenO Xen torna possível executar vários sistemas Linux em uma máquina física. O hardwarepara os sistemas diferentes é fornecido virtualmente. Este capítulo fornece uma visãogeral das possibilidades e limitações desta tecnologia. As seções sobre instalação,configuração e execução do Xen completam essa introdução.

Máquinas virtuais comumente precisam emular o hardware que o sistema precisa. Adesvantagem é que o hardware emulado é mais lento do que o silício real. O Xen temuma abordagem diferente. Ele restringe a emulação para o mínimo de partes possível.Para obter isso, o Xen usa a paravirtualização. Esta é uma técnica que apresentamáquinas virtuais similarmente, mas não identicamente ao hardware subjacente. Portanto,os sistemas operacionais de host e convidados estão adaptados no nível do kernel. Oespaço do usuário permanece inalterado. O Xen controla o hardware com um hypervisore um convidado de controle, também chamado Domain-0. Eles fornecem todos osdispositivos de rede e blocos virtualizados necessários. Os sistemas convidados usamesses dispositivos de rede e blocos virtuais para executar o sistema e conectar-se aoutros convidados ou à rede local. Quando várias máquinas físicas executando o Xensão configuradas de forma que os dispositivos e rede e os blocos virtuais estejamdisponíveis, também é possível migrar um sistema convidado de um equipamento dehardware para outro enquanto ele está em execução. Originalmente o Xen foidesenvolvido para executar até 100 sistemas convidados em um computador, mas essenúmero depende bastante dos requisitos de sistema dos sistemas convidados emexecução, especialmente o consumo de memória.

Para limitar o uso de CPU, o hypervisor do Xen oferece três programadores diferentes.O programador também pode ser mudado durante a execução do sistema convidado,tornando possível mudar a prioridade da execução do sistema convidado. Em um nível

Virtualização com o Xen 323

Page 324: Reference Pt BR

mais alto, migrar um convidado também pode ser usado para ajustar a energia do CPUdisponível.

O sistema de virtualização do Xen também tem algumas desvantagens relativas aohardware suportado. Vários drivers de código-fonte fechado, como os da Nvidia ouATI, não funcionam como esperado. Nesses casos, você deve usar os drivers de código-fonte aberto se disponíveis, mesmo que eles não suportem as capacidades totais doschips. Além disso, vários chips de WLAN e pontes Cardbus não são suportados duranteo uso do Xen. Na versão 2, o Xen não suporta PAE (extensão de endereço físico),significando que ele não suporta mais do que 4 GB de memória. A ACPI não é suportada.O gerenciamento de energia e outros modos que dependem da ACPI não funcionam.Outra limitação do Xen é que atualmente não é possível somente inicializar umdispositivo de bloco. Para inicializar, é sempre necessário ter o kernel correto e o initrddisponível no Domain-0.

Figura 17.1 Visão geral do Xen

Host OSManagement

ApplicationManagement

Physical Hardware (CPU, Memory, Network, Block Devices)

PhysicalDeviceDrivers

virt.CPU

virt.Memory

virt.Network

virt.BlockdevXen

virt.Console

Linux Kernel(paravirtualized)

Linux Kernel(paravirtualized)

NetWare Kernel(paravirtualized)

userspaceapplications

userspaceapplications

userspaceapplications

IO

IO CPU Memory

ServiceGuest OS

ServiceGuest OS

324 Referência

Page 325: Reference Pt BR

17.1 Instalação do XenO procedimento de instalação do Xen envolve a configuração de um domínio Domain-0 e a instalação de convidados do Xen. Primeiro, verifique se os pacotes necessáriosestão instalados. Esses são python, bridge-utils, xen, xen-tools,xen-tools-ioemu e um pacote kernel-xen. Ao selecionar o Xen durante ainstalação, ele é adicionado à configuração do GRUB. Para outros casos, digite umaentrada 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 partição que mantém o seu diretório /boot. Consulte tambémo Capítulo 9, O Carregador de Boot (p 201). Substitua <parameters> pelos parâmetrosnormalmente usados para inicializar um kernel do Linux. Em seguida, reinicialize nomodo Xen. Isso inicializa o hypervisor do Xen e um kernel do Linux levementemodificado como Domain-0 que executa a maioria do hardware. Além das exceçõesjá mencionadas, tudo deve funcionar normalmente.

17.2 Instalação do domínioCada domínio convidado deve ser instalado individualmente. Para isso, execute o VirtualMachine Installation (Xen) do módulo YaST no grupo Software. Na interface seguinte,forneça todas as informações necessárias para executar o instalador. Essas informaçõesestão divididas em quatro categorias:

OpçõesAqui, defina o nome do domínio convidado, o seu recurso de memória e opçõesde inicialização para o instalador.

DiscosEscolha para criar uma imagem de sistema de arquivos ou uma partição física real.As imagens do sistema de arquivos são armazenadas no diretório /var/lib/xen/images. Verifique se você tem espaço suficiente em disco neste diretório.

Virtualização com o Xen 325

Page 326: Reference Pt BR

Sistema operacionalO sistema operacional que deve ser usado para instalar o domínio convidado. Essesistema é selecionado na Fonte de Instalação do módulo YaST e não pode serdefinido nesse fluxo de trabalho.

RedeSomente a rede em pontes é suportada por esse módulo. Adicione o número deplacas de rede virtuais necessárias.

A caixa de diálogo seguinte inicia o sistema de instalação após executar várias tarefasde configuração. Esse sistema é idêntico a uma instalação padrão no modo de textoconforme descrito na Seção “YaST em modo de texto” (Capítulo 2, Configuração dosistema com YaST, ↑Inicialização).

Se você precisar mudar a configuração de um domínio convidado, deve fazer issodiretamente no arquivo de configuração. Esse arquivo está localizado em /etc/xene tem um nome idêntico ao nome do domínio convidado.

17.3 Iniciando e controlandodomínios do Xen com xm

O Xen reduz automaticamente a quantidade de memória do Domain-0 para atender aosrequisitos do domínio convidado recém-iniciado. Se não houver memória suficientedisponível, o convidado não será iniciado. Você sempre pode verificar a memóriadisponível do Domain-0 com o comando free.

Sempre é possível destacar um console ou reconectá-lo de outro terminal. Para destacá-lo, use Ctrl + ] . Para reconectá-lo, primeiro verifique o ID do convidado necessáriocom xm list e conecte-o ao ID com xm console ID.

A ferramenta xm do Xen tem vários parâmetros possíveis. Exiba uma lista com umaexplicação curta digitando xm help. A Tabela 17.1, “Comandos xm” (p 326) fornecealguns dos comandos mais importantes como ponto de início.

Tabela 17.1 Comandos xm

Imprima uma lista de comandos disponíveis para aferramenta xm.

xm help

326 Referência

Page 327: Reference Pt BR

Conecte ao primeiro console (tty1) do convidado com oID ID.

xm console ID

Defina o tamanho da memória do domínio com o ID IDpara Mem em MB.

xm mem-set ID Mem

Inicie o domínio com o arquivo de configuraçãodomname. O -c opcional vincula o terminal atual aoprimeiro tty do novo convidado.

xm create domname[-c]

Realize um encerramento normal do convidado com oID ID.

xm shutdown ID

Termine o convidado com ID ID imediatamente.xm destroy ID

Imprima uma lista de todos os domínios em execuçãocom o ID respectivo, a memória e os valores de tempode CPU.

xm list

Exiba informações sobre o host do Xen, incluindoinformações de memória e CPU.

xm info

17.4 Solução de problemasEsta seção fornece algumas dicas sobre como resolver problemas comuns. Ela não visaser uma instrução 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-0não está mais conectado à ponte para evitar o bloqueio da mesma. Infelizmente,os scripts de inicialização do sistema não podem tratar da configuração atual. Parareiniciar a rede, execute /etc/init.d/xend restart.

Preciso executar uma verificação do sistema de arquivos.Se a verificação do sistema de arquivos não funcionar automaticamente, você talvezprecise fazer isso manualmente do Domain-0. Desligue o convidado e executefsck na imagem enquanto ele não está montado. Se fsck reclamar que o sistemade arquivos está montado, verifique as montagens com o comando mount.

Virtualização com o Xen 327

Page 328: Reference Pt BR

O DHCP não obtém os endereços IP.O DHCP precisa de vários módulos de kernel iptables para ser executado. Osmódulos não foram instalados ou você atualizou o kernel e esqueceu de atualizaros módulos de kernel no sistema convidado.

Há um problema na inicialização do hypervisor e as mensagens desaparecem com muitarapidez

Conecte a sua máquina Xen a outra estação de trabalho com um cabo nullmodemserial. Em seguida, no lado do Xen, adicione o seguinte parâmetro à linhakernel (hd0,0)/boot/xen.gz com1=115200,8n1

Antes de inicializar o Xen, inicie um programa de terminal na estação de trabalho.Como um exemplo, isso pode serscreen /dev/ttyS0 115200

Mude o dispositivo e a velocidade de acordo com suas necessidades.

17.5 Mais informaçõesMais informações sobre o Xen podem ser encontradas nos seguintes sites:

• /usr/share/doc/packages/xen/user/html/index.html—Informações oficiais para usuários do Xen Exige o pacotexen-doc-html.

• /usr/share/doc/packages/xen/interface/html/index.html—Mais documentação técnica de interface. Também exige o pacotexen-doc-html.

• http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html—Home page do Xen com vários links de documentação diferentes.

• http://lists.xensource.com/—Várias listas de discussão sobre o Xen.

• http://wiki.xensource.com/xenwiki—Xen wiki para a comunidadede código aberto.

328 Referência

Page 329: Reference Pt BR

Parte 4. Serviços

Page 330: Reference Pt BR
Page 331: Reference Pt BR

18Rede básicaO Linux oferece os recursos e as ferramentas de rede necessários para a integração emtodos os tipos de estruturas de rede. O protocolo Linux comum, TCP/IP, possui váriosserviços e recursos especiais abordados aqui. O acesso à rede através de placa de rede,modem ou outro dispositivo pode ser configurado com o YaST. A configuração tambémpode ser feita manualmente. Somente os mecanismos fundamentais e os arquivos deconfiguração de rede relevantes serão discutidos neste capítulo.

Linux e outros sistemas operacionais Unix usam o protocolo TCP/IP. Não é um protocolode rede único, mas uma família de protocolos de rede que oferece vários serviços. Osprotocolos listados na Tabela 18.1, “Vários protocolos na família de protocolos TCP/IP”(p 332) são fornecidos com a finalidade de trocar dados entre duas máquinas através doTCP/IP. As redes combinadas por TCP/IP compõem uma rede mundial também chamadade “Internet.”

RFC significa Request for Comments. Os RFCs são documentos que descrevem váriosprocedimentos de implementação e protocolos da Internet para o sistema operacionale seus aplicativos. Os documentos RFC descrevem a configuração dos protocolos daInternet. Para ampliar seu conhecimento sobre qualquer dos protocolos, consulte osdocumentos de RFC apropriados. Eles estão disponíveis online em http://www.ietf.org/rfc.html.

Rede básica 331

Page 332: Reference Pt BR

Tabela 18.1 Vários protocolos na família de protocolos TCP/IP

DescriçãoProtocolo

Protocolo de controle de transmissão: um protocolo seguro orientadopor conexão. Os dados a serem transmitidos são primeiramente enviados

TCP

pelo aplicativo como um fluxo de dados. Depois, são convertidos pelosistema operacional no formato apropriado. Os dados chegam aorespectivo aplicativo no host de destino no formato do fluxo de dadosoriginal no qual foram inicialmente enviados. O TCP determina sealgum dado foi perdido durante a transmissão e se não foram misturados.O TCP é implementado onde a seqüência de dados for necessária.

UDP: um protocolo inseguro, sem conexão. Os dados a seremtransmitidos são enviados na forma de pacotes gerados pelo aplicativo.

UDP

A ordem em que os dados chegam ao destinatário não é garantida eeles podem ser perdidos. O UDP é adequado para aplicativos orientadospor registro. Ele possui um período de latência menor que o TCP.

ICMP: essencialmente, não é um protocolo para o usuário final, masum protocolo de controle especial que emite relatórios de erros e pode

ICMP

controlar o comportamento de máquinas que participam da transferênciade dados TCP/IP. Além disso, ele fornece um modo de eco especial,que pode ser visualizado usando o programa ping.

IGMP: este protocolo controla o comportamento da máquina duranteo multicast IP.

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 é atransferência de dados insegura por IP. Acima do IP, o TCP garante, até certo ponto, asegurança na transferência de dados. A camada IP é suportada pelo protocolo dependentede hardware subjacente, como uma ethernet.

332 Referência

Page 333: Reference Pt BR

Figura 18.1 Modelo de camadas simplificado para TCP/IP

Host sun

Application Layer

Transport Layer

Data Link Layer

Physical Layer

Network Layer

Host earth

Application Layer

Transport Layer

Network Layer

Data Link Layer

Physical Layer

TCP, UDP

IP

Ethernet, FDDI, ISDN

Cable, Fiberglass

Applications

Data Transfer

O diagrama fornece um ou dois exemplos para cada camada. As camadas são organizadasde acordo com os níveis de abstração. A camada mais baixa fica muito próxima dohardware. A camada mais alta é quase completamente abstraída do hardware. Todasas camadas possuem suas funções especiais próprias. As funções especiais de cadacamada, na maioria das vezes, estão implícitas em suas descrições. O link de dados eas camadas físicas representam a rede física usada, como uma ethernet.

Quase todos os protocolos de hardware funcionam em uma base orientada por pacotes.Os dados a serem transmitidos são fornecidos em pacotes, pois não podem ser enviadostodos de uma vez. O tamanho máximo de um pacote TCP/IP é de, aproximadamente,64 KB. Os pacotes são normalmente um pouco menores, pois o hardware da rede podeser um fator de limitação. O tamanho máximo 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 máximoquando os dados são enviados por uma ethernet. Se mais dados forem transferidos,mais pacotes de dados precisarão ser enviados pelo sistema operacional.

Para que as camadas executem suas respectivas funções, informações adicionaisreferentes a cada uma delas devem ser gravadas no pacote de dados. Isso ocorre nocabeçalho do pacote. Todas as camadas anexam um pequeno bloco de dados, chamadocabeçalho do protocolo, à frente de cada pacote emergente. Um exemplo de um pacotede dados TCP/IP transmitido por um cabo ethernet é exibido na Figura 18.2, “Pacote

Rede básica 333

Page 334: Reference Pt BR

Ethernet TCP/IP” (p 334). A soma de teste está localizada no final do pacote e não noinício. Isso torna as coisas mais simples para o hardware de rede.

Figura 18.2 Pacote Ethernet TCP/IP

Usage Data (maximum 1460 bytes)

Ethernet (Layer 2) Protocol Header (approx. 14 bytes) + Checksum (2 bytes)

IP (Layer 3) Protocol Header (approx. 20 bytes)

TCP (Layer 4) Protocol Header (approx. 20 bytes)

Quando um aplicativo envia dados por uma rede, eles passam por cada camada, todasimplementadas no kernel do Linux, exceto a camada física. Cada camada é responsávelpela preparação dos dados, para que eles possam passar para a camada seguinte. Acamada mais baixa é a responsável pelo envio de dados. Todo o processo é invertidoquando os dados são recebidos. Como camadas de uma cebola, em cada uma oscabeçalhos de protocolo são removidos dos dados transportados. Por fim, a camada detransporte é responsável por disponibilizar os dados para uso pelos aplicativos de destino.Dessa forma, cada camada se comunica somente com a camada diretamente acima ouabaixo dela. Para os aplicativos, é relevante se os dados são transmitidos através deuma rede FDDI de 100 MBit/s ou de uma linha de modem de 56 kbit/s. Da mesmaforma, é relevante para a linha de dados os tipos de dados transmitidos, contanto queos pacotes estejam no formato correto.

334 Referência

Page 335: Reference Pt BR

18.1 Roteamento e endereços IPEsta seção limita-se à abordagem de redes IPv4. Para obter informações sobre oprotocolo IPv6, sucessor do IPv4, consulte a Seção 18.2, “IPv6 — A Internet da próximageração” (p 338).

18.1.1 Endereços IPTodo computador na Internet possui um endereço de 32 bits exclusivo. Esses 32 bits(ou 4 bytes) são normalmente gravados conforme ilustrado na segunda linha noExemplo 18.1, “Gravando endereços IP” (p 335).

Exemplo 18.1 Gravando endereços IPIP Address (binary): 11000000 10101000 00000000 00010100IP Address (decimal): 192. 168. 0. 20

Na forma decimal, os quatro bytes são gravados no sistema de números decimais,separados por pontos. O endereço IP é designado a um host ou a uma interface de rede.Ele não pode ser usado em nenhum outro lugar no mundo. Há exceções a essa regra,mas não são relevantes nas passagens a seguir.

Os pontos nos endereços IP indicam o sistema hierárquico. Até os anos 90, os endereçosIP eram estritamente categorizados em classes. Entretanto, esse sistema provou serexcessivamente inflexível e foi interrompido. Agora, o CIDR (Classless InterdomainRouting - Roteamento Interdomínio sem Classes) é usado.

18.1.2 Máscaras de rede e roteamentoAs máscaras de rede são usadas para definir a faixa de endereços de uma sub-rede. Sedois hosts estão em uma mesma sub-rede, eles podem se encontrar diretamente. Casonão estejam na mesma sub-rede, precisam do endereço de gateway que controla todoo tráfego entre a sub-rede e o resto do mundo. Para verificar se dois endereços IP estãoem uma mesma sub-rede, basta “E” os dois endereços com a máscara de rede. Se oresultado for idêntico, os dois endereços IP estarão na mesma rede local. Se houverdiferenças, o endereço IP remoto e, portanto, a interface remota, só poderão serlocalizados através de um gateway.

Rede básica 335

Page 336: Reference Pt BR

Para compreender como as máscaras de rede funcionam, consulte o Exemplo 18.2,“Vinculando endereços IP à máscara de rede” (p 336). A máscara de rede consiste em32 bits que identificam quanto de um endereço IP pertence à rede. Todos os bits 1marcam o bit correspondente no endereço IP como pertencente à rede. Todos os bits 0marcam os bits dentro da sub-rede. Isso significa que quanto maior a quantidade de bits1, menor será o tamanho da sub-rede. Como a máscara de rede sempre consiste emvários bits 1 sucessivos, também é possível apenas contar o número de bits da máscarade rede. No Exemplo 18.2, “Vinculando endereços IP à máscara de rede” (p 336) aprimeira rede com 24 bits também poderia ser gravada como 192.168.0.0/24.

Exemplo 18.2 Vinculando endereços IP à máscara de redeIP address (192.168.0.20): 11000000 10101000 00000000 00010100Netmask (255.255.255.0): 11111111 11111111 11111111 00000000---------------------------------------------------------------Result of the link: 11000000 10101000 00000000 00000000In the decimal system: 192. 168. 0. 0

IP address (213.95.15.200): 11010101 10111111 00001111 11001000Netmask (255.255.255.0): 11111111 11111111 11111111 00000000---------------------------------------------------------------Result of the link: 11010101 10111111 00001111 00000000In the decimal system: 213. 95. 15. 0

Para dar outro exemplo: todas as máquinas conectadas ao mesmo cabo ethernet,normalmente, estão localizadas na mesma sub-rede e são diretamente acessíveis. Mesmoquando a sub-rede é dividida fisicamente por switches ou pontes, esses hosts aindaassim podem ser diretamente localizados.

Endereços IP fora da sub-rede local só poderão ser localizados se um gateway forconfigurado para a rede de destino. Nos casos mais comuns, há somente um gatewayque controla todo o tráfego externo. Entretanto, também é possível configurar váriosgateways para sub-redes diferentes.

Se um gateway tiver sido configurado, todos os pacotes IP externos serão enviados parao gateway apropriado. Esse gateway tentará então encaminhar os pacotes da mesmaforma (de host para host) até acessar o host de destino ou até o TTL (time to live) dopacote expirar.

336 Referência

Page 337: Reference Pt BR

Tabela 18.2 Endereços específicos

DescriçãoTipo de endereço

Essa é a máscara de rede E qualquer endereço na rede,conforme mostrado no Exemplo 18.2, “Vinculando endereços

Endereço de rede debase

IP à máscara de rede” (p 336) em Resultado. Esse endereçonão pode ser designado a nenhum host.

Isso significa, basicamente, “Acessar todos os hosts nesta sub-rede.” Para gerar isso, a máscara de rede é invertida no formato

Endereço debroadcast

binário e vinculada ao endereço de rede base com um OUlógico. O exemplo acima resulta, portanto, em 192.168.0.255.Esse endereço não pode ser designado a nenhum host.

O endereço 127.0.0.1 é designado ao “dispositivoloopback” em cada host. Uma conexão pode ser configuradaem sua própria máquina com esse endereço.

Host local

Como os endereços IP precisam ser exclusivos em qualquer parte do mundo, não épossível selecionar endereços aleatoriamente. Há três domínios de endereços a seremusados para configurar uma rede baseada em IP privado. Eles não conseguem se conectarao restante da Internet, pois não podem ser transmitidos através dela. Esses domíniosde endereço são especificados no RFC 1597 e listados na Tabela 18.3, “Domínios deendereços IP privados” (p 337).

Tabela 18.3 Domínios de endereços IP privados

DomínioRede/máscara de rede

10.x.x.x10.0.0.0/255.0.0.0

172.16.x.x – 172.31.x.x172.16.0.0/255.240.0.0

192.168.x.x192.168.0.0/255.255.0.0

Rede básica 337

Page 338: Reference Pt BR

18.2 IPv6 — A Internet da próximageração

Devido ao surgimento da WWW (World Wide Web), a Internet teve um crescimentoexplosivo com um número cada vez maior de computadores se comunicando atravésde TCP/IP nos últimos quinze anos. Desde que Tim Berners-Lee da CERN (http://public.web.cern.ch) inventou a WWW em 1990, o número de hosts da Internetcresceu de poucos milhares para centenas de milhões deles.

Conforme mencionado, um endereço IPv4 consiste em apenas 32 bits. Da mesma forma,poucos endereços IP são perdidos — eles não podem ser usados devido à forma comoas redes são organizadas. O número de endereços disponíveis na sua sub-rede é doiselevado à potência do número de bits, menos dois. Uma sub-rede tem, por exemplo, 2,6 ou 14 endereços disponíveis. Para conectar 128 hosts à Internet, por exemplo, vocêprecisa de uma sub-rede com 256 endereços IP, dos quais somente 254 são utilizáveis,pois dois endereços IP são necessários para a estrutura da própria sub-rede: o endereçoda rede de base e broadcast.

No protocolo IPv4 atual, DHCP ou NAT (Network Address Translation - Conversãode Endereços de Rede) são os mecanismos comuns usados para contornar a grande faltade endereços. Combinado à convenção de manter endereços públicos e privadosseparados por espaços, esses métodos podem certamente reduzir a falta de endereços.O problema deles está em suas configurações, trabalhosas para configurar e difíceis demanter. Para configurar um host em uma rede IPv4, é preciso haver vários itens deendereços, como o próprio endereço IP do host, a máscara de sub-rede, o endereço degateway e talvez o endereço do servidor de nomes. Todos esses itens precisam serconhecidos e não podem ser derivados de outro lugar.

Com o IPv6, tanto a falta de endereços quanto as configurações complicadas passariama ser problemas do passado. As seções a seguir oferecem mais informações sobre osaprimoramentos e benefícios trazidos pelo IPv6 e sobre a transição do protocolo antigopara o novo.

18.2.1 VantagensA melhoria mais importante e visível oferecida pelo novo protocolo é a expansão enormedo espaço disponível para endereços. Um endereço IPv6 é criado com valores de 128

338 Referência

Page 339: Reference Pt BR

bits em vez dos 32 bits tradicionais. Ele é capaz de fornecer 'quatrilhões' de endereçosIP.

Entretanto, os endereços IPv6 não diferem de seus antecessores apenas em relação aocomprimento. Também possuem uma estrutura interna diferente, que pode conter maisinformações específicas sobre os sistemas e as redes a que pertencem. Leia mais detalhessobre eles na Seção 18.2.2, “Estrutura e tipos de endereços” (p 340).

A seguir, há uma lista de algumas outras vantagens do novo protocolo:

Configuração automáticaO IPv6 torna apto o “plug and play” da rede, o que significa que um sistemarecentemente configurado é integrado à rede (local) sem qualquer configuraçãomanual. O novo host usa seu mecanismo de configuração automática para derivarseu próprio endereço a partir das informações disponibilizadas pelos roteadoresvizinhos, com base em um protocolo chamado protocolo ND (Neighbor Discovery- Descoberta de Vizinho). Esse método não exige nenhuma intervenção por partedo administrador e não há necessidade de manter um servidor central para alocaçãode endereços; uma vantagem adicional em relação ao IPv4, cuja alocação automáticade endereços exige um servidor DHCP.

MobilidadeO IPv6 torna possível a designação de vários endereços a uma interface de rede aomesmo tempo. Isso permite que usuários acessem várias redes facilmente, o que écomparado aos serviços de roaming internacionais oferecidos pelas empresas decelulares: quando você viaja com seu celular, ele automaticamente se conecta a umserviço interurbano, assim que entra na área correspondente. Dessa forma, vocêpode ser localizado no mesmo número de celular em qualquer lugar e pode fazerligações como se estivesse em sua cidade.

Comunicação seguraCom o IPv4, a segurança da rede é uma função adicional. O IPv6 inclui IPSec comoum de seus recursos principais, permitindo que sistemas se comuniquem atravésde um túnel seguro, para evitar a intromissão de estranhos na Internet.

Compatibilidade retroativaDe forma realista, seria impossível mudar toda a Internet de IPv4 para IPv6 de umasó vez. Portanto, é essencial que ambos os protocolos sejam capazes de coexistirna Internet, mas também em um sistema. Isso é garantido por endereços compatíveis(endereços IPv4 podem facilmente ser convertidos em endereços IPv6) e atravésdo uso de vários túneis. Consulte a Seção 18.2.3, “Coexistência de IPv4 e IPv6”

Rede básica 339

Page 340: Reference Pt BR

(p 345). Da mesma forma, os sistemas podem se basear em uma técnica IP de pilhadupla para suportar os dois protocolos ao mesmo tempo, significando que possuemduas pilhas de rede completamente separadas, de tal forma que não há interferênciaentre as duas versões de protocolos.

Serviços adaptados e personalizados através de MulticastCom o IPv4, alguns serviços, como SMB, precisam transmitir seus pacotes paratodos os host na rede local. O IPv6 oferece uma abordagem mais detalhada,permitindo que os servidores enviem hosts através de multicast — determinandoum número de hosts como partes de um grupo (o que é diferente de direcionartodos os hosts através de broadcast ou cada host individualmente através de unicast).Os hosts enviados como grupos talvez dependam do aplicativo concreto. É possívelenviar todos os servidores de nomes para alguns grupos predefinidos (o grupomulticast de servidores de nomes), por exemplo ou todos os roteadores (o grupomulticast de todos os roteadores).

18.2.2 Estrutura e tipos de endereçosComo mencionado, está faltando no protocolo IP atual dois aspectos importantes: háum aumento de falta de endereços IP e a configuração de rede e manutenção de tabelasde roteamento vêm se tornando tarefas cada vez mais complexas e trabalhosas. O IPv6soluciona o primeiro problema, expandindo o espaço dos endereços para 128 bits. Osegundo problema é contornado com a introdução de uma estrutura hierárquica deendereços, combinada com técnicas sofisticadas para alocar endereços de rede, assimcomo multihoming (a capacidade de designar vários endereços a um dispositivo,permitindo acesso a diversas redes).

Ao utilizar o IPv6, é útil saber que há três tipos diferentes de endereços:

UnicastEndereços desse tipo são associados com exatamente uma interface de rede. Pacotescom esse tipo de endereço são entregues em apenas um destino. Da mesma forma,os endereços unicast são usados para transferir pacotes para hosts individuais narede local ou na Internet.

MulticastEndereços desse tipo estão relacionados a um grupo de interfaces de rede. Pacotescom esse tipo de endereço são entregues a todos os destinos pertencentes ao grupo.Endereços multicast são usados, principalmente, por certos tipos de serviços de

340 Referência

Page 341: Reference Pt BR

rede para se comunicarem com determinados grupos de host de forma bemdirecionada.

AnycastEndereços desse tipo estão relacionados a um grupo de interfaces. Pacotes comesse tipo de endereço são entregues ao membro do grupo mais próximo doremetente, de acordo com os princípios do protocolo de roteamento subjacente.Endereços anycast são usados para que hosts possam descobrir mais facilmenteservidores que oferecem certos serviços na área da rede determinada. Todos osservidores do mesmo tipo possuem o mesmo endereço anycast. Sempre que umhost solicita um serviço, ele recebe uma resposta do servidor com o local maispróximo, conforme determinado pelo protocolo de roteamento. Caso ocorra algumafalha com esse servidor, o protocolo selecionará automaticamente o segundo servidormais próximo ou então o terceiro e assim por diante.

Um endereço IPv6 é constituído de oito campos de quatro dígitos, cada um representando16 bits, gravados em notação hexadecimal. Também são separados por dois-pontos (:).Quaisquer zero bytes iniciais em um determinado campo podem ser descartados, maszeros dentro ou no final do campo não podem ser descartados. Outra convenção é a deque mais de quatro zero bytes consecutivos podem retornar como dois-pontos duplos.Entretanto, somente um como :: é permitido em cada endereço. Esse tipo de notaçãoreduzida é mostrado no Exemplo 18.3, “Amostra de endereço IPv6” (p 341), em quetodas as três linhas representam o mesmo endereço.

Exemplo 18.3 Amostra de endereço IPv6fe80 : 0000 : 0000 : 0000 : 0000 : 10 : 1000 : 1a4fe80 : 0 : 0 : 0 : 0 : 10 : 1000 : 1a4fe80 : : 10 : 1000 : 1a4

Cada parte de um endereço IPv6 possui uma função definida. Os primeiros bytes formamo prefixo e especificam o tipo de endereço. A parte central é a porção do endereço narede, mas pode não ser utilizada. O final do endereço forma a parte do host. Com oIPv6, a máscara de rede é definida indicando o comprimento do prefixo depois de umabarra no final do endereço. Um endereço, como mostrado no Exemplo 18.4, “EndereçoIPv6 especificando o comprimento do prefixo” (p 342), contém as informações de queos primeiros 64 bits formam a parte da rede do endereço e que os últimos 64 formama parte do host. Em outras palavras, 64 significa que a máscara de rede está preenchidacom 64 valores de 1 bit a partir da esquerda. Da mesma forma que o IPv4, o endereçoIP é combinado com E com os valores da máscara de rede, para determinar se o hostestá localizado na mesma sub-rede ou em outra.

Rede básica 341

Page 342: Reference Pt BR

Exemplo 18.4 Endereço IPv6 especificando o comprimento do prefixofe80::10:1000:1a4/64

O IPv6 conhece vários tipos de prefixos predefinidos. Alguns são mostrados naTabela 18.4, “Vários prefixos IPv6” (p 342).

Tabela 18.4 Vários prefixos IPv6

DefiniçãoPrefixo (hex)

Endereços IPv4 e endereços de compatibilidade de IPv4 sobreIPv6. Esses são usados para manter a compatibilidade com IPv4.

00

O seu uso ainda exige um roteador capaz de converter pacotesIPv6 em pacotes IPv4. Vários endereços especiais, como o dodispositivo loopback, também possuem esse prefixo.

Endereços unicast globais agregativos. Como no caso do IPv4,uma interface pode ser designada para fazer parte de uma

2 ou 3 como oprimeiro dígito

determinada sub-rede. Atualmente, há os seguintes espaços deendereços: 2001::/16 (espaço de endereço da qualidade deprodução) e 2002::/16 (espaço de endereço 6to4).

Endereços locais de links. Endereços com esse prefixo não devemser roteados e, portanto, só devem ser encontrados na mesma sub-rede.

fe80::/10

Endereços locais de sites. Esses podem ser roteados, mas somentena rede da organização a que pertencem. Na verdade, eles são o

fe80::/10

equivalente IPv6 do espaço de endereço de rede privada atual,como 10.x.x.x.

Esses são endereços multicast.ff

Um endereço unicast consiste em três componentes básicos:

Topologia públicaA primeira parte (que também contém um dos prefixos mencionados acima) é usadapara rotear pacotes através da Internet pública. Ela inclui informações sobre aempresa ou instituição que fornece o acesso à Internet.

342 Referência

Page 343: Reference Pt BR

Topologia do siteA segunda parte contém informações de roteamento sobre a sub-rede à qual opacote deve ser entregue.

ID de interfaceA terceira parte identifica a interface à qual o pacote deve ser entregue. Isso tambémpermite que o MAC faça parte do endereço. Como MAC é um identificador fixoglobalmente exclusivo codificado no dispositivo pelo fabricante do hardware, oprocedimento de configuração é bastante simplificado. Na verdade, os primeiros64 bits de endereço são consolidados para formar o token EUI-64, com os últimos48 bits obtidos no MAC e os 24 bits restantes contendo informações especiais sobreo tipo de token. Isso também possibilita designar um token EUI-64 a interfacesque não possuem MAC, como aquelas baseadas em PPP ou ISDN.

No topo dessa estrutura básica, o IPv6 faz distinção entre cinco tipos de endereçosunicast:

:: (não especificado)Esse endereço é usado pelo host como seu endereço de origem quando a interfaceé inicializada pela primeira vez — quando o endereço ainda não pode serdeterminado por outros meios.

::1 (loopback)O endereço do dispositivo loopback.

Endereços compatíveis com o IPv4O endereço IPv6 é formado pelo endereço IPv4 e um prefixo consistindo em 96zero bits. Esse tipo de endereço de compatibilidade é usado para um túnel (consultea Seção 18.2.3, “Coexistência de IPv4 e IPv6” (p 345)) para permitir que os hostsIPv4 e IPv6 se comuniquem com outros que estejam operando em um ambienteIPv4 puro.

Endereços IPv4 mapeados para IPv6Esse tipo de endereço especifica um endereço IPv4 puro em uma notação IPv6.

Endereços locaisHá dois tipos de endereços para uso local:

link-localEsse tipo de endereço só pode ser usado na sub-rede local. Pacotes comendereço de origem ou de destino desse tipo não devem ser roteados para a

Rede básica 343

Page 344: Reference Pt BR

Internet nem para outras sub-redes. Esses endereços contêm um prefixo especial(fe80::/10) e o ID da interface da placa de rede, com a parte do meioconsistindo em zero bytes. Endereços desse tipo são usados durante aconfiguração automática para se comunicarem com outros hosts pertencentesà mesma sub-rede.

site-localPacotes com esse tipo de endereço podem ser roteados para outras sub-redes,mas não para a Internet mais ampla. Eles precisam permanecer dentro da própriarede da organização. Tais endereços são usados para intranets e equivalem aoespaço de endereço privado definido pelo IPv4. Eles contêm um prefixo especial(fec0::/10), o ID da interface e um campo de 16 bits especificando o IDda sub-rede. Novamente, o restante é preenchido com zero bytes.

Como um recurso completamente novo, introduzido com o IPv6, cada interface de redenormalmente obtém vários endereços IP, com a vantagem de que várias redes podemser acessadas através da mesma interface. Uma dessas redes pode ser totalmenteconfigurada automaticamente usando o MAC e um prefixo conhecido, resultando napossibilidade de todos os hosts na rede local serem encontrados assim que o IPv6 forhabilitado (usando o endereço link-local). Com o MAC fazendo parte disso, qualquerendereço IP usado no mundo será exclusivo. As únicas partes variáveis do endereçosão aquelas que indicam a topologia do site e a topologia pública, dependendo da redereal na qual o host estiver operando no momento.

Para que um host avance e retroceda entre duas redes diferentes ele precisa de, pelomenos, dois endereços. Um deles, o endereço pessoal, contém não só o ID de interface,como também um identificador da rede doméstica a que ele normalmente pertence (eo prefixo correspondente). O endereço pessoal é um endereço estático e, portanto,normalmente não se modifica. Mesmo assim, todos os pacotes destinados ao host móvelpodem ser entregues a ele, independentemente de ele operar na rede doméstica ou emoutro local externo. Isso é possível devido aos recursos totalmente novos introduzidoscom o IPv6, como configuração automática sem estado e descoberta de vizinho. Alémdo endereço residencial, um host móvel obtém um ou mais endereços adicionaispertencentes às redes interurbanas com roaming. Eles são chamados endereços care-of. A rede doméstica tem um recurso que encaminha qualquer pacote destinado ao hostquando ele está em roaming. Em um ambiente IPv6, essa tarefa é executada pelo agentelocal, que retransmite todos os pacotes destinados ao endereço residencial através deum túnel. Por outro lado, esses pacotes destinados ao endereço care-of são diretamentetransferidos para o host móvel sem qualquer desvio especial.

344 Referência

Page 345: Reference Pt BR

18.2.3 Coexistência de IPv4 e IPv6A migração de todos os hosts conectados à Internet do IPv4 para o IPv6 é um processogradual. Os dois protocolos coexistirão durante algum tempo. A coexistência deles emum sistema é garantida onde houver uma implementação de pilha dupla de ambos osprotocolos. Ainda resta a dúvida de como um host habilitado do IPv6 deve se comunicarcom um host IPv4 e como pacotes do IPv6 devem ser transportados pelas redes atuais,que são predominantemente baseadas no IPv4. As melhores soluções oferecem endereçosde compatibilidade e túnel (consulte a Seção 18.2.2, “Estrutura e tipos de endereços”(p 340)).

Os hosts do IPv6 relativamente isolados na rede IPv4 (mundial) podem se comunicaratravés de túneis: Pacotes IPv6 são encapsulados como pacotes IPv4 para serem movidospor uma rede IPv4. Tal conexão entre dois hosts IPv4 é chamada de túnel. Para queisso ocorra, os pacotes precisam incluir o endereço de destino do IPv6 (ou o prefixocorrespondente), assim como o endereço IPv4 do host remoto no destino final do túnel.Um túnel básico pode ser configurado manualmente, de acordo com um contrato entreos administradores dos hosts. Também é chamado de túnel estático.

Entretanto, a configuração e manutenção de túneis estáticos é normalmente muitotrabalhosa para ser usada diariamente em comunicações. Portanto, o IPv6 fornece trêsmétodos de túneis dinâmicos:

6over4Os pacotes IPv6 são automaticamente encapsulados como pacotes IPv4 e enviadospor uma rede IPv4 com capacidade multicast. O IPv6 é induzido a considerar todaa rede (Internet) como uma LAN enorme. Com isso, é possível determinarautomaticamente o destino final do túnel IPv4. Entretanto, esse método não faz umdimensionamento muito bom e também é dificultado pelo fato de o multicast IPnão ser tão difundido na Internet. Portanto, ele apenas fornece uma solução pararedes corporativas ou institucionais menores, em que o multicast pode ser habilitado.As especificações para esse método estão descritas no RFC 2529.

6to4Com esse método, os endereços IPv4 são automaticamente gerados a partir deendereços IPv6, habilitando a comunicação de hosts IPv6 isolados através de umarede IPv4. Entretanto, alguns problemas foram relatados no que tange à comunicaçãoentre esses hosts IPv6 isolados e a Internet. O método está descrito no RFC 3056.

Rede básica 345

Page 346: Reference Pt BR

Controlador do túnel IPv6Esse método se baseia em servidores especiais que fornecem túneis dedicados parahosts IPv6. É descrito no RFC 3053.

IMPORTANTE: A Iniciativa 6bone

Nos principais locais “mais estabelecidos” da Internet, já existe uma redeglobalmente distribuída de sub-redes IPv6 conectadas através de túneis. Essaé a rede 6bone (http://www.6bone.net), um ambiente de testes IPv6 quepode ser usado por programadores e provedores da Internet que desejamdesenvolver e oferecer serviços baseados no IPv6, a fim de obter a experiêncianecessária para implementar o novo protocolo. Mais informações podem serencontradas no site desse projeto na Internet.

18.2.4 Configurando o IPv6Para configurar o IPv6, normalmente não é necessário fazer mudanças nas estações detrabalho individuais. Entretanto, o suporte do IPv6 precisa ser carregado. Para fazerisso, digite modprobe ipv6 como raiz.

Devido ao conceito de configuração automática do IPv6, um endereço é designado àplaca de rede na rede link-local. Normalmente, nenhum gerenciamento de tabela deroteamento é feito em uma estação de trabalho. Os roteadores de rede podem serconsultados pela estação de trabalho, usando o protocolo de anúncios do roteador, parao qual devem ser implementados um prefixo e gateways. O programa radvd pode serusado para configurar um roteador IPv6. Esse programa informa às estações de trabalhoo prefixo que deve ser usado para os endereços IPv6 e os roteadores. Outra opção éusar zebra para a configuração automática dos dois endereços e roteamento.

Consulte a página de manual do ifup(8) para obter informações sobre como configurarvários tipos de túneis usando os arquivos /etc/sysconfig/network.

18.2.5 Mais informaçõesA visão geral acima não abrange totalmente o tópico do IPv6. Para obter informaçõesmais detalhadas sobre o novo protocolo, consulte os livros e a documentação online aseguir:

346 Referência

Page 347: Reference Pt BR

http://www.ngnet.it/e/cosa-ipv6.phpUma série de artigos fornecendo uma introdução explicativa sobre os fundamentosbásicos do IPv6. Um bom manual sobre o tópico.

http://www.bieringer.de/linux/IPv6/Aqui, encontre o Linux IPv6-HOWTO e muitos links relacionados ao tópico.

http://www.6bone.net/Visite esse site se desejar se juntar a uma rede IPv6 com túnel.

http://www.ipv6.org/O ponto de partida para tudo relativo ao IPv6.

RFC 2640Informações fundamentais do RFC sobre o IPv6.

IPv6 EssentialsUm livro que descreve todos os aspectos importantes do tópico é o IPv6 Essentialsde Silvia Hagen (ISBN 0-596-00125-8).

18.3 Resolução de nomesO DNS ajuda na designação de um endereço IP a um ou mais nomes e na designaçãode um nome a um endereço IP. No Linux, essa conversão normalmente é executadapor um tipo especial de software chamado bind. A máquina responsável por essaconversão é chamada de servidor de nomes. Os nomes criam um sistema hierárquico,no qual cada componente do nome é separado por pontos. A hierarquia de nomes é,entretanto, independente da hierarquia de endereços IP descrita acima.

Considere um nome completo, como earth.example.com, gravado no formatohostname.domain. Um nome completo, denominado FQDN (Fully QualifiedDomain Name - Nome de Domínio Totalmente Qualificado), consiste em um nome dehost e um nome de domínio (example.com). O último também inclui o TLD (TopLevel Domain - Domínio de Nível Superior (com).

A designação TLD tornou-se bastante confusa por razões históricas. Tradicionalmente,nomes de domínio com três letras são usados nos EUA. No resto do mundo, os códigosnacionais ISO de duas letras são o padrão. Além disso, TLDs mais longos foram

Rede básica 347

Page 348: Reference Pt BR

introduzidos em 2000, representando certas esferas de atividades (por exemplo, .info,.name, .museum).

No início da Internet (antes de 1990), o arquivo/etc/hosts era usado para armazenaros nomes de todas as máquinas representadas na Internet. Isso rapidamente se tornouimpraticável, devido ao crescente número de computadores conectados à Internet. Poressa razão, um banco de dados descentralizado foi desenvolvido para armazenar nomesde hosts de uma forma amplamente distribuída. Esse banco de dados, semelhante aoservidor de nomes, não possui os dados pertencentes a todos os hosts na Internet jádisponíveis, mas pode encaminhar solicitações a outros servidores de nomes.

A parte superior da hierarquia é ocupada pelos servidores de nomes raiz. Esses servidoresde nomes raiz gerenciam os domínios de nível superior e são executados pelo NIC(Network Information Center). Cada servidor de nomes raiz conhece os servidores denomes responsáveis por um determinado domínio de nível superior. Para obterinformações sobre NICs de domínio superior, vá para http://www.internic.net.

O DNS pode fazer mais do que apenas resolver nomes de hosts. O servidor de nomestambém distingue qual host recebe e-mails para um domínio inteiro — oMX (servidorde correio).

Para sua máquina resolver um endereço IP, ela precisa pelo menos conhecer um servidorde nomes e seu respectivo endereço IP. É fácil especificar esse servidor de nomes coma ajuda do YaST. Se você tiver uma conexão de discagem por modem, talvez não precisenem mesmo configurar um servidor de nomes manualmente. O protocolo de discagemfornece o endereço do servidor de nomes enquanto a conexão é efetuada. A configuraçãode acesso ao servidor de nomes com o SUSE Linux é descrita no Capítulo 20, DomainName System (Sistema de Nomes de Domínio) (p 381).

O protocolo whois está intimamente relacionado ao DNS. Com esse programa, épossível descobrir rapidamente o responsável por qualquer domínio especificado.

18.4 Configurando uma conexão derede com o YaST

Há muitos tipos de redes suportadas no Linux. A maioria delas usa nomes de dispositivosdiferentes e os arquivos de configuração se espalham por vários locais no sistema de

348 Referência

Page 349: Reference Pt BR

arquivos. Para obter uma visão geral detalhada dos aspectos da configuração manualde rede, consulte a Seção 18.6, “Configurando uma conexão de rede manualmente”(p 362).

Durante a instalação, o YaST pode ser usado para configurar automaticamente todasas interfaces detectadas. Hardwares adicionais podem ser configurados em qualquermomento após sua instalação no sistema. As seções a seguir descrevem a configuraçãode rede para todos os tipos de conexões de rede suportadas pelo SUSE Linux.

18.4.1 Configurando a placa de rede com oYaST

Depois de iniciar o módulo, o YaST exibe uma caixa de diálogo da configuração geralda rede. Escolha se usará o YaST ou o NetworkManager para gerenciar todos os seusdispositivos de rede. Para usar o NetworkManager, marque Controlado por Usuáriocom o NetworkManager. Encontre informações detalhadas sobre o NetworkManagerna Seção 18.5, “Gerenciando conexões de rede com o NetworkManager” (p 359). Paraconfigurar sua rede na forma tradicional com o YaST, marqueMétodo Tradicional comifup.

A parte superior da configuração tradicional mostra uma lista com todas as placas derede disponíveis para configuração. Qualquer placa devidamente detectada é listadacom seu nome. É possível configurar dispositivos não detectados usando Adicionar,conforme descrito em “Configuração manual de uma placa de rede não detectada”(p 349). Configure uma nova placa de rede ou mude uma configuração existente.

Configuração manual de uma placa de rede nãodetectadaA configuração de uma placa de rede não detectada inclui os seguintes itens:

Configuração de redeConfigure o tipo de dispositivo da interface a partir das opções disponíveis e donome de configuração. As informações sobre as convenções de nomeação paranomes de configuração estão disponíveis na página de manual do getcfg(8).

Rede básica 349

Page 350: Reference Pt BR

Módulo de KernelNome de Configuração de Hardware especifica o nome do arquivo /etc/sysconfig/hardware/hwcfg-* que contém as configurações de hardwareda sua placa de rede. Também contém o nome do módulo de kernel adequado,assim como as opções necessárias para inicializar o hardware. Normalmente, oYaST sugere nomes úteis para os hardwares PCMCIA e USB. Para outroshardwares, o hwcfg-static-0 costuma funcionar somente se a placa estiverconfigurada com o nome de configuração 0.

Se a placa de rede for um dispositivo PCMCIA ou USB, ative as respectivas caixasde seleção e saia dessa caixa de diálogo com Próximo. Caso contrário, selecione omodelo da placa de rede em Selecionar da Lista. O YaST selecionaráautomaticamente o módulo de kernel adequado para a placa. Clique em Avançarpara sair dessa caixa de diálogo.

Figura 18.3 Configuração da placa de rede

Configurando o endereço de redeConfigure o tipo de dispositivo da interface e o nome da configuração. Selecione o tipode dispositivo entre os fornecidos. Especifique o nome da configuração de acordo comsuas necessidades. Normalmente, as configurações padrão são úteis e podem ser aceitas.

350 Referência

Page 351: Reference Pt BR

As informações sobre as convenções de nomeação para nomes de configuração estãodisponíveis na página de manual do getcfg(8).

Se tiver selecionado Wireless como tipo de dispositivo da interface, configure o modooperacional, o nome da rede (ESSID) e a criptografia na caixa de diálogo seguinte,Configuração de Placa de Rede Wireless. Clique em OK para concluir a configuraçãoda placa. Uma descrição detalhada da configuração de placas WLAN é apresentada naSeção 34.1.3, “Configuração com o YaST” (p 629). Para todos os outros tipos deinterface, prossiga com a configuração de endereço de rede:

Configuração Automática de Endereço (via DHCP)Se sua rede incluir um servidor DHCP, você poderá configurar o endereço de redecom segurança de forma automática. A opção também deverá ser usada se vocêestiver usando uma linha DSL sem IP estático designado pelo provedor de serviçosda Internet. Se decidir usar o DHCP, configure os detalhes depois de selecionarOpções do Cliente DHCP. Especifique se o servidor DHCP deve sempre atendera solicitações de broadcast e permitir o uso por qualquer identificador. Por padrão,os servidores DHCP usam o endereço de hardware da placa para identificar umainterface. Se você tiver uma configuração de host virtual, em que hosts diferentesse comunicam através da mesma interface, um identificador será necessário paradistingui-los.

Configuração de endereço estáticoSe você possui um endereço estático, habilite essa opção. Depois, digite o endereçoe a máscara de sub-rede para sua rede. A máscara de sub-rede predefinida devecorresponder aos requisitos de uma rede doméstica típica.

Saia dessa caixa de diálogo, selecionando Próximo ou continue a configurar o nomede host, servidor de nomes e detalhes de roteamento (consulte as seções em ServidorDNS (↑Inicialização) e em Roteamento (↑Inicialização)).

Avançado permite especificar configurações mais complexas. Em ConfiguraçõesDetalhadas, use Controlado pelo Usuário para delegar o controle sobre a placa de rededesde o administrador (root) até o usuário normal. Em operações móveis, isso permiteao usuário adaptar a mudança de conexões de rede de uma forma mais flexível, poisele pode controlar a ativação ou desativação da interface. A MTU (MaximumTransmission Unit - Unidade de Transmissão Máxima) e o tipo de Ativação doDispositivo também podem ser configurados nessa caixa de diálogo.

Rede básica 351

Page 352: Reference Pt BR

18.4.2 ModemNo Centro de Controle do YaST, acesse a configuração do modem em Dispositivos deRede. Se o modem não tiver sido detectado automaticamente, abra a caixa de diálogoe faça uma configuração manual. Na caixa de diálogo aberta, digite a interface à qualo modem está conectado em Modem.

Figura 18.4 Configuração do modem

Se você estiver usando um PBX, talvez precise digitar um prefixo de discagem.Normalmente, é um zero. Consulte as instruções que acompanham o PBX para descobrir.Selecione também se usará a discagem por tom ou pulso, se o alto-falante estará ligadoe se o modem aguardará até detectar um tom de discagem. A última opção não deveser habilitada se o modem estiver conectado a um intercâmbio.

Em Detalhes, configure a taxa de transmissão e as strings de inicialização do modem.Somente mude essas configurações se seu modem não tiver sido detectadoautomaticamente ou se ele exigir configurações especiais para o funcionamento datransmissão de dados. Esse é basicamente o caso dos adaptadores do terminal ISDN.Saia dessa caixa de diálogo clicando emOK. Para delegar controle sobre o modem paraum usuário normal, sem permissões de root, ative Controlado pelo Usuário. Dessaforma, um usuário sem permissões de administrador poderá ativar ou desativar umainterface. Em Dial Prefix Expressão Regular, especifique uma expressão regular. O

352 Referência

Page 353: Reference Pt BR

Prefixo de Discagem no KInternet, que pode ser modificado por um usuário normal,precisa corresponder a essa expressão regular. Se esse campo for deixado vazio, ousuário não poderá configurar um Prefixo de Discagem diferente sem as permissõesde administrador.

Na caixa de diálogo a seguir, selecione o ISP (Internet Service Provider - Provedor deServiços da Internet). Para escolher a partir de uma lista de ISPs predefinida operacionalem seu país, selecione País. Ou então, clique em Novo para abrir uma caixa de diálogoem que você fornecerá os dados do seu ISP. Isso inclui um nome para a conexão dediscagem e o ISP, assim como o login e a senha fornecidos pelo seu ISP. HabiliteSempre Solicitar Senha para que a senha seja solicitada sempre que você se conectar.

Na última caixa de diálogo, especifique as opções de conexão adicionais:

Discagem sob DemandaSe você habilitar a discagem sob demanda, configure, pelo menos, um servidor denomes.

Modificar DNS quando conectadoEssa opção é habilitada por padrão, com o efeito de que o endereço do servidor denomes é atualizado sempre que você se conectar à Internet.

Receber DNS automaticamenteSe o provedor não transmitir seu servidor de nomes de domínio após a conexão,desabilite essa opção e digite os dados do DNS manualmente.

Modo EstúpidoEssa opção é habilitada por padrão. Com ela, prompts de entrada enviados peloservidor do ISP são ignorados para que não interfiram no processo de conexão.

Interface Externa do Firewall e Reiniciar FirewallA seleção dessas opções habilita o SUSEfirewall2, que protege contra ataquesexternos enquanto você está conectado à Internet.

Tempo Ocioso (em segundos)Com essa opção, especifique um período de inatividade da rede depois do qual omodem se desconectará automaticamente.

Detalhes IPEssa opção abre a caixa de diálogo de configuração de endereço. Se o ISP nãodesignar um endereço IP dinâmico ao host, desabilite Endereço IP Dinâmico e,

Rede básica 353

Page 354: Reference Pt BR

depois, digite o endereço IP local do host e o endereço IP remoto. Peça essainformação ao ISP. Habilite Rota Padrão e feche a caixa de diálogo, selecionandoOK.

SelecionandoPróximo, você retorna à caixa de diálogo original, que exibirá um resumoda configuração do modem. Feche essa caixa de diálogo com Concluir.

18.4.3 ISDNUse esse módulo para configurar uma ou várias placas ISDN para o seu sistema. Se oYaST não tiver detectado a placa ISDN, selecione-a manualmente. É possível havervárias Interfaces, mas diversos ISPs podem ser configurados para uma única interface.Nas caixas de diálogo subseqüentes, configure as opções de ISDN necessárias para ofuncionamento adequado da placa.

Figura 18.5 Configuração ISDN

Na caixa de diálogo a seguir, mostrada na Figura 18.5, “Configuração ISDN” (p 354),selecione o protocolo a ser usado. O padrão é Euro-ISDN (EDSS1), mas paraintercâmbios mais antigos ou maiores, selecione 1TR6. Se você estiver nos E.U.A.,selecioneNI1. Selecione seu país no campo relevante. O código de país correspondenteaparecerá no campo próximo a ele. Por fim, forneça seu Código de Área e o Prefixo deDiscagem, se necessário.

354 Referência

Page 355: Reference Pt BR

Modo de Início define como a interface do ISDN deve ser iniciada: Em Tempo de Bootinicializa o driver do ISDN sempre que o sistema for inicializado.Manualmente exigeque 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 odispositivo é conectado. Ao concluir essas configurações, selecione OK.

Na caixa de diálogo a seguir, especifique o tipo de interface para a placa ISDN e adicioneISPs 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 Configuração da interface ISDN

O número a ser digitado para Meu Número Telefônico dependerá da sua configuraçãoespecífica:

Placa ISDN conectada diretamente à saída do foneUma linha ISDN padrão fornece três números telefônicos (chamados MSNs oumultiple subscriber numbers). Se o assinante pediu mais números, poderá ter até10. Um desses MSNs precisa ser digitado aqui, mas sem o código de área. Se vocêdigitar o número errado, o operador de fone retornará automaticamente ao primeiroMSN designado à sua linha ISDN.

Placa ISDN conectada a um PBXNovamente, a configuração poderá variar de acordo com o equipamento instalado:

Rede básica 355

Page 356: Reference Pt BR

1. PBX menores, criados para fins domésticos, normalmente usam o protocoloEuro-ISDN (EDSS1) para chamadas internas. Esses intercâmbios possuemum barramento S0 interno e usam números internos para o equipamentoconectado a eles.

Use um dos números internos como o seu MSN. Você deveria usar, pelomenos, um dos MSNs de intercâmbio habilitados para discagem direta parafora. Se não funcionar, tente um único zero. Para obter mais informações,consulte a documentação que acompanha o intercâmbio do fone.

2. Intercâmbios de fone maiores criados para negócios normalmente usam oprotocolo 1TR6 para chamadas internas. Seus MSNs são chamados EAZ e,geralmente, correspondem ao número de discagem direta. Para a configuraçãono Linux, deverá ser suficiente digitar o último dígito de EAZ. Como últimaopção, tente cada um dos dígitos de 1 a 9.

Para que a conexão seja encerrada pouco antes de terminar a próxima unidade de carga,habilite ChargeHUP. Entretanto, lembre-se de que talvez não funcione com todos osISPs. Você também pode habilitar o agrupamento de canais (multilink PPP) selecionandoa opção correspondente. Por fim, você pode habilitar o SuSEfirewall2 para o linkselecionando Interface Externa do Firewall e Reiniciar Firewall. Para que o usuárionormal sem permissões de administrador possa ativar ou desativar a interface, selecionea opção Controlado pelo Usuário.

Detalhes abre uma caixa de diálogo em que se implementa esquemas de conexão maiscomplexos, pouco relevantes para usuários domésticos. Saia da caixa de diálogoDetalhesselecionando OK.

Na caixa de diálogo seguinte, configure endereços IP. Se o provedor não tiver fornecidoum IP estático, selecione Endereço IP Dinâmico. Caso contrário, use os camposfornecidos para digitar o endereço IP local e o remoto do seu host, de acordo com asespecificações do ISP. Se a interface for a rota padrão para a Internet, selecione RotaPadrão. Cada host só pode ter uma interface configurada como a rota padrão. Saiadessa caixa de diálogo selecionando Próximo.

A caixa de diálogo a seguir permite que você defina seu país e selecione um ISP. OsISPs incluídos na lista são apenas provedores do tipo chamada-por-chamada. Se seuISP não estiver na lista, selecione Novo. A caixa de diálogo Parâmetros do Provedorserá aberta para que você digite todos os detalhes do seu ISP. Ao digitar o número

356 Referência

Page 357: Reference Pt BR

telefônico, não inclua espaços vazios nem vírgulas entre os dígitos. Por fim, digite seulogin e senha, conforme fornecido pelo ISP. Ao terminar, selecione Próximo.

Para usarDiscagem sobDemanda em uma estação de trabalho independente, especifiquetambém o servidor de nomes (servidor DNS). A maioria dos ISPs suporta DNS dinâmico,o que significa que o endereço IP de um servidor de nomes é enviado pelo ISP todavez que você se conecta. Entretanto, para uma única estação de trabalho, é precisofornecer um endereço marcador, como 192.168.22.99. Se o ISP não suportar umDNS dinâmico, especifique os endereços IP do servidor de nomes do ISP. Se desejar,especifique um tempo de espera para a conexão — o período de inatividade da rede(em segundos) depois do qual a conexão deve encerrar automaticamente. Confirme asconfigurações com Próximo. O YaST exibe um resumo das interfaces configuradas.Para ativar todas essas configurações, selecione Concluir.

18.4.4 Modem a caboEm alguns países, como a Áustria e os E.U.A., é bastante comum acessar a Internetpela rede de TV a cabo. O assinante de TV a cabo normalmente recebe um modem,que é conectado à saída do cabo da TV em uma ponta e à placa de rede do computadorna outra (usando um cabo de par trançado 10Base-TG). O modem a cabo então forneceuma conexão dedicada à Internet com um endereço IP fixo.

Dependendo das instruções fornecidas pelo ISP, ao configurar a placa de rede, selecioneConfiguração Automática de Endereço (via DHCP) ou Configuração de EndereçoEstático. A maioria dos provedores usa atualmente o DHCP. Um endereço IP estáticofreqüentemente vem como parte de uma conta comercial especial.

18.4.5 DSLPara configurar o dispositivo DSL, selecione o módulo DSL na seção Dispositivos deRede do YaST. O módulo YaST consiste em várias caixas de diálogo nas quaisconfigura-se os parâmetros de links DSL com base em um dos seguintes protocolos:

• PPPoE (PPP sobre Ethernet)

• PPPoATM (PPP sobre ATM)

• CAPI para ADSL (Placas Fritz)

Rede básica 357

Page 358: Reference Pt BR

• PPTP (Point-to-Point Tunneling Protocol) — Áustria

A configuração de uma conexão DSL baseada no PPPoE ou no PPTP exige que a placade rede correspondente já esteja configurada de forma correta. Se isso ainda não foifeito, primeiro configure a placa, selecionando Configurar Placas de Rede (consulte aSeção 18.4.1, “Configurando a placa de rede com o YaST” (p 349)). No caso de um linkDSL, os endereços podem ser designados automaticamente, mas não via DHCP, e épor isso que você não deve habilitar a opção Configuração Automática de Endereço(via DHCP). Em vez disso, digite um endereço estático simulado para a interface, como192.168.22.1. Em Máscara de Sub-rede, digite 255.255.255.0. Se estiverconfigurando uma estação de trabalho independente, deixe a opção Gateway Padrãovazia.

DICA

Os valores em Endereço IP eMáscara de Sub-rede são apenas marcadores. Elessão necessários apenas para inicializar a placa de rede e não representam olink DSL.

Figura 18.7 Configuração DSL

Para iniciar a configuração DSL (consulte a Figura 18.7, “Configuração DSL” (p 358)),primeiro selecione o modo PPP e a placa ethernet à qual o modem DSL está conectado

358 Referência

Page 359: Reference Pt BR

(normalmente, é a eth0). Então, use a opção Ativação do Dispositivo, para especificarse o link DSL deve ser estabelecido durante o processo de inicialização. Clique emControlado pelo Usuário, para autorizar o usuário normal sem permissões de root paraativar ou desativar a interface com o KInternet. A caixa de diálogo também permiteque você selecione seu país e escolha um ISP entre os que nele operam. Os detalhes dequaisquer caixas de diálogo subseqüentes da configuração DSL dependem das opçõesconfiguradas até agora. É por essa razão que eles são apenas rapidamente mencionadosnos parágrafos a seguir. Para obter detalhes sobre as opções disponíveis, leia a ajudadetalhada disponível nas caixas de diálogo.

Para usarDiscagem sobDemanda em uma estação de trabalho independente, especifiquetambém o servidor de nomes (servidor DNS). A maioria dos ISPs suporta DNS dinâmico— o endereço IP de um servidor de nomes é enviado pelo ISP toda vez que você seconecta. Entretanto, para uma única estação de trabalho, é preciso fornecer um endereçomarcador, como 192.168.22.99. Se o ISP não suportar um DNS dinâmico,especifique o endereço IP do servidor de nomes fornecido pelo ISP.

Tempo Ocioso (em segundos) define um período de inatividade da rede depois do quala conexão é encerrada automaticamente. Um valor de tempo de espera razoável ficaentre 60 e 300 segundos. Se a opçãoDiscagem sob Demanda estiver desabilitada, talvezseja útil configurar o tempo de espera como zero para evitar um desligamentoautomático.

A configuração do T-DSL é muito parecida com a do DSL. Basta selecionar T-Onlinecomo seu provedor e o YaST abrirá a caixa de diálogo de configuração do T-DSL.Nessa caixa de diálogo, forneça algumas informações adicionais necessárias para o T-DSL — o ID da linha, o número do T-Online, o código de usuário e sua senha. Tudoisso deve estar incluído nas informações que você recebeu após se inscrever no T-DSL.

18.5 Gerenciando conexões de redecom o NetworkManager

O NetworkManager é a solução ideal para uma estação de trabalho móvel. Com oNetworkManager, não é necessário preocupar-se em configurar interfaces de rede ealternar entre redes quando você estiver em trânsito. Ele pode conectar-seautomaticamente a redes WLAN conhecidas. Se houver duas ou mais possibilidadesde conexão, ele pode conectar-se à mais rápida.

Rede básica 359

Page 360: Reference Pt BR

NOTA: NetworkManager e SCPM

Não use o NetworkManager junto com o SCPM quando perfis SCPM tambémmudarem configurações de rede. Para usar o SCPM e o NetworkManager aomesmo tempo, desabilite o recurso de rede na configuração SCPM.

O NetworkManager não é a solução adequada nos seguintes casos:

• O computador tem um endereço estático.

• Você deseja usar mais de um provedor de discagem para uma interface.

• Você deseja usar a criptografia WPA-EAP na sua conexão WLAN.

• O computador é um roteador de sua rede.

• O computador fornece serviços de rede para outros computadores de sua rede, porexemplo, se ele for um servidor DHCP ou DNS.

18.5.1 Controlando o NetworkManagerPara iniciar o NetworkManager, habilite o NetworkManager no módulo YaST dodispositivo de rede. Como o NetworkManager não requer uma configuração de redepadrão, a configuração do YaST torna-se inativa. O NetworkManager automaticamenteescolhe a melhor rede disponível, mas ele pode conectar-se automaticamente apenas auma rede conhecida. Na primeira conexão a uma rede, use o applet do NetworkManager.Se a rede exigir informações adicionais, como nome de usuário, senha ou chave decriptografia, o NetworkManager vai solicitá-las.

O KDE e o GNOME têm seus próprios applets para o NetworkManager. Um appletapropriado deve ser iniciado automaticamente com o ambiente de área de trabalho. Oapplet é então mostrado como um ícone na bandeja do sistema. As funções de ambosos applets são semelhantes, mas as interfaces são diferentes. Eles podem ser usados emoutros ambientes gráficos com suporte de bandeja de sistema padrão.

O applet KNetworkManagerO KNetworkManager é um applet KDE para controlar o NetworkManager. Se ele nãoestiver em execução, inicie-o com o comandoknetworkmanager. Quando ele estiver

360 Referência

Page 361: Reference Pt BR

em execução, um ícone azul da Terra será exibido na bandeja de sistema. Clicar o botãodireito do mouse no ícone abre o menu do KNetworkManager com vários comandospara gerenciar conexões de rede.

O menu contém conexões de rede disponíveis, ambos dispositivos com e sem fio. Sevocê mantiver o cursor do mouse sobre eles, os detalhes serão exibidos. A conexãoatualmente usada está marcada no menu. A força do sinal de redes sem fio também émostrada no menu. Redes sem fio criptografadas são marcadas com um ícone de cadeadoazul. Para conectar-se a uma rede criptografada, escolha-a no menu. Na caixa de diálogoexibida, escolha o tipo de Criptografia usada pela rede e digite a Frase secreta ouChave apropriada.

Para conectar-se a uma rede que não transmite seu identificador de conjunto de serviços(ESSID) e, assim, não pode ser detectada automaticamente, escolha Conectar-se aOutra Rede sem Fio. Na caixa de diálogo exibida, digite o ESSID e defina parâmetrosde criptografia, se necessário.

Para acessar conexões de discagem, escolhaConexões por Discagem. Quando conexõesde discagem já tiverem sido definidas, inicie a conexão clicando na conexão a ser usada.Configurar Conexões por Discagem abre o YaST, onde você pode definir uma novaconexão de discagem.

Para desabilitar qualquer conexão de rede ativa, escolhaOpções→ Alternar paraModoOff-line no menu do KNetworkManager. Para habilitar novamente a conexão, escolhaOpções → Alternar para Modo On-line. Para desabilitar conexões de rede sem fio,escolhaOpções→Desabilitar Conexão sem Fio no menu do KNetworkManager. Parahabilitar novamente conexões sem fio, escolha Opções→ Habilitar Conexão sem Fio.Habilitar a rede leva alguns segundos.

O Applet GNOME NetworkManagerO GNOME também tem o seu próprio applet para o NetworkManager. Se ele não estiverem execução, inicie-o com o comando nm-applet. Quando ele estiver em execução,um ícone será exibido na bandeja de sistema. A aparência do ícone dependerá do estadoda conexão de rede. Se você não souber o que significa o ícone, mantenha o cursor domouse sobre ele até que uma explicação seja exibida.

Clique o botão esquerdo do mouse no ícone do applet para mostrar um menu com asredes disponíveis. A conexão atualmente usada está marcada no menu. A força do sinalde redes sem fio também é mostrada no menu. Redes sem fio criptografadas são

Rede básica 361

Page 362: Reference Pt BR

marcadas com um ícone de escudo. Para conectar-se a uma rede criptografada, escolha-a no menu. Na caixa de diálogo exibida, escolha o tipo de Criptografia usada pela redee digite a Frase secreta ou Chave apropriada.

Para conectar-se a uma rede que não transmite o seu identificador de conjunto de serviços(ESSID) e, assim, não pode ser detectada automaticamente, clique o botão esquerdodo mouse no ícone e escolha Conectar-se a Outra Rede sem Fio. Na caixa de diálogoexibida, digite o ESSID e defina parâmetros de criptografia se necessário.

Para desabilitar a rede, clique o botão direito do mouse no ícone do applet e desmarqueHabilitar Rede. Para desabilitar a rede sem fio, clique o botão direito do mouse no íconedo applet e desmarque Habilitar Conexão sem Fio.

Para obter informações sobre a conexão atual (incluindo o endereço de hardware, oendereço IP e a interface usada), clique o botão direito do mouse no ícone do applet eescolha Informações de Conexão no menu.

18.5.2 Mais informaçõesMais informações sobre o NetworkManager e o D-BUS podem ser encontradas nosseguintes sites e diretórios:

• http://www.gnome.org/projects/NetworkManager/ — página deprojeto do NetworkManager

• http://www.freedesktop.org/Software/dbus — página de projetodo D-BUS

• /usr/share/doc/packages/NetworkManager

18.6 Configurando uma conexão derede manualmente

A configuração manual do software de rede deve ser sempre a última alternativa. Érecomendável usar o YaST. Entretanto, essas informações de base sobre a configuraçãode rede também podem ajudar você na utilização do YaST.

362 Referência

Page 363: Reference Pt BR

Todas as placas de rede embutidas e hotplug (PCMCIA, USB e algumas PCI) sãodetectadas e configuradas através do hotplug. O sistema identifica uma placa de redede duas formas diferentes: primeira, como um dispositivo físico e, segunda, como umainterface. A inserção ou detecção de um dispositivo aciona um evento hotplug. Esseevento de hotplug aciona a inicialização do dispositivo com o script hwup. Quando aplaca de rede é inicializada como uma nova interface de rede, o kernel gera outro eventode hotplug que aciona a configuração da interface com ifup.

A interface de números kernel define nomes de acordo com a ordem temporal de seusregistros. A seqüência de inicialização é decisiva para a designação de nomes. Se algumadas muitas placas de rede falhar, a numeração de todas as placas inicializadassubseqüentemente será deslocada. Para placas reais que aceitam hotplug, o que importaé a ordem em que os dispositivos são conectados.

Para obter uma configuração flexível, a configuração do dispositivo (hardware) e ainterface foram separadas e o mapeamento das configurações para dispositivos einterfaces não é mais gerenciado com base nos nomes de interface. As configuraçõesde dispositivos estão localizadas em /etc/sysconfig/hardware/hwcfg-*.As configurações de interface estão localizadas em /etc/sysconfig/network/ifcfg-*. Os nomes das configurações são designados de forma que descrevam osdispositivos e as interfaces aos quais estão associados. Como o mapeamento de driversanterior exigia nomes de interface estáticos, esse tipo de mapeamento não pode maisocorrer em /etc/modprobe.conf. No novo conceito, as entradas de álias dessearquivo causariam efeitos colaterais indesejáveis.

Os nomes de configuração — tudo depois dehwcfg- ouifcfg-— podem descreveros dispositivos por meio do slot, de um ID específico de dispositivo ou do nome dainterface. Por exemplo, o nome de configuração para uma placa PCI poderia serbus-pci-0000:02:01.0 (slot PCI) ou vpid-0x8086-0x1014-0x0549 (IDdo produto e fornecedor). O nome da interface associada poderia serbus-pci-0000:02:01.0 ou wlan-id-00:05:4e:42:31:7a (endereçoMAC).

Para designar uma determinada configuração de rede a qualquer placa de determinadotipo (em que apenas uma é inserida de cada vez), em vez de selecionar uma determinadaplaca, escolha nomes de configuração menos específicos. Por exemplo, bus-pcmciaseria usado para todas as placas PCMCIA. Por outro lado, os nomes podem ser limitadospor um tipo de interface precedente. Por exemplo, wlan-bus-usb seria designadoa placas WLAN conectadas a uma porta USB.

Rede básica 363

Page 364: Reference Pt BR

O sistema sempre usa a configuração que melhor descreve uma interface ou o dispositivoque a fornece. A pesquisa da configuração mais adequada é executada por getcfg.A saída de getcfg fornece todas as informações que podem ser usadas para descreverum dispositivo. Detalhes referentes à especificação dos nomes de configuração estãodisponíveis na página de manual do getcfg.

Com o método descrito, uma interface de rede é configurada corretamente, mesmo queos dispositivos da rede nem sempre sejam inicializados na mesma ordem. Entretanto,o nome da interface ainda dependerá da seqüência de inicialização. Há duas formas degarantir o acesso confiável à interface de uma determinada placa de rede:

• getcfg-interface nome da configuração retorna o nome da interfacede rede associada. Portanto, o nome de configuração, como firewall, dhcpd,roteamento ou várias interfaces de rede virtuais (túneis), pode ser digitado emalguns arquivos de configuração, em vez do nome da interface, que não é persistente.

• Nomes de interface persistentes são atribuídos 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 não deve ser igual aoque será automaticamente designado pelo kernel. Assim, eth*, tr*, wlan* eassim por diante não são permitidos. Em vez disso, use net* ou nomes descritivos,como externo, interno ou dmz. Verifique se o mesmo nome de interface nãoestá sendo usado duas vezes. Os caracteres permitidos em nomes de interface serestringem a [a-zA-Z0-9]. Um nome persistente só pode ser designado a umainterface imediatamente depois de seu registro, o que significa que o driver da placade rede precisa ser recarregado ou a descrição do dispositivo hwup deve serexecutada. O comando rcnetwork restart não é suficiente para essafinalidade.

IMPORTANTE: Usando nomes de interface persistentes

O uso de nomes de interface persistentes não foi testado em todas as áreas.Portanto, alguns aplicativos talvez não sejam capazes de controlar nomesde interface selecionados livremente.

ifup requer uma interface existente, pois não inicializa o hardware. A inicializaçãodo hardware é controlada pelo comando hwup (executado por hotplug oucoldplug). Quando um dispositivo for inicializado, ifup será executadoautomaticamente para a nova interface, através do hotplug, e a interface será

364 Referência

Page 365: Reference Pt BR

configurada se o modo de início for onboot, hotplug ou auto e o serviço de redetiver sido iniciado. Anteriormente, o comando ifup nomedainterface acionavaa inicialização do hardware. Agora o procedimento foi invertido. Primeiro, o componentede hardware é inicializado e, depois, ocorrem todas as outras ações. Dessa forma, umnúmero variável de dispositivos pode sempre ser configurado da melhor forma possívelcom um conjunto de configurações existente.

A Tabela 18.5, “Scripts de configuração de rede manual” (p 365) resume os scripts maisimportantes envolvidos na configuração de rede. Onde for possível, os scripts sãodistinguidos pelo hardware e pela interface.

Tabela 18.5 Scripts de configuração de rede manual

FunçãoComandoEstágio daconfiguração

Os scripts hw* são executados por umsubsistema hotplug para inicializar um

hw{up,down,status}Hardware

dispositivo, desfazer a inicialização ouconsultar o status de um dispositivo.Há mais informações disponíveis napágina de manual do hwup.

getcfg pode ser usado para consultaro nome da interface associado a um

getcfgInterface

nome de configuração ou a umadescrição de hardware. Há maisinformações disponíveis na página demanual do getcfg.

Os scripts if* iniciam interfaces derede existentes ou retornam o status da

if{up,down,status}Interface

interface especificada. Há maisinformações disponíveis na página domanual de ifup.

Há mais informações disponíveis sobre hotplug e nomes de dispositivos persistentesno Capítulo 12, Gerenciamento de dispositivo de kernel dinâmico com udev (p 261).

Rede básica 365

Page 366: Reference Pt BR

18.6.1 Arquivos de configuraçãoEsta seção fornece uma visão geral dos arquivos de configuração de rede e explica suafinalidade e formato usado.

/etc/syconfig/hardware/hwcfg-*

Esses arquivos contêm as configurações de hardware de placas de rede e de outrosdispositivos. Eles contêm os parâmetros necessários, como o módulo kernel, modo deinício e associações de script. Consulte a página de manual do hwup para obter maisdetalhes. Independentemente do hardware existente, as configuraçõeshwcfg-static-* são aplicadas quando o coldplug é iniciado.

/etc/sysconfig/network/ifcfg-*

Esses arquivos contêm as configurações da interface de rede. Eles incluem informações,como o modo de início e o endereço IP. Parâmetros possíveis são descritos na páginade manual do ifup. Além disso, todas as variáveis dos arquivos dhcp, wirelesse config podem ser usadas nos arquivos ifcfg-* se uma configuração geral forusada somente para uma interface.

/etc/sysconfig/network/config, dhcp,wireless

O arquivoconfig contém configurações gerais para o desempenho deifup,ifdowneifstatus.dhcp contém configurações para DHCP ewireless para placas LANsem fio. As variáveis em todos os três arquivos de configuração são comentadas etambém podem ser usadas nos arquivos ifcfg-*, em que são tratadas com prioridademais alta.

/etc/sysconfig/network/routes,ifroute-*

O roteamento estático dos pacotes TCP/IP é determinado aqui. Todas as rotas estáticasexigidas pelas várias tarefas do sistema podem ser inseridas no arquivo /etc/sysconfig/network/routes: rotas para um host, rotas para um host através deum gateway e rotas para uma rede. Para cada interface que necessite de um roteamentoindividual, defina um arquivo de configuração adicional: /etc/sysconfig/

366 Referência

Page 367: Reference Pt BR

network/ifroute-*. Substitua * pelo nome da interface. As entradas nos arquivosde configuração de roteamento terão esta aparência:# Destination Dummy/Gateway Netmask Device#127.0.0.0 0.0.0.0 255.255.255.0 lo204.127.235.0 0.0.0.0 255.255.255.0 eth0default 204.127.235.41 0.0.0.0 eth0207.68.156.51 207.68.145.45 255.255.255.255 eth1192.168.0.0 207.68.156.51 255.255.0.0 eth1

O destino da rota está na primeira coluna. Essa coluna pode conter o endereço IP deuma rede ou host ou, no caso de servidores de nomes acessíveis, a rede ou o nome dehost totalmente qualificado.

A segunda coluna contém o gateway padrão ou um gateway através do qual um hostou uma rede pode ser acessada. A terceira coluna contém a máscara de rede para redesou hosts atrás de um gateway. Por exemplo, a máscara em 255.255.255.255 paraum host atrás 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 digitadoaqui.

Uma quinta coluna (opcional) pode ser usada para especificar o tipo de uma rota. Ascolunas desnecessárias devem conter um sinal de subtração - para garantir que oanalisador interpretará o comando corretamente. Para obter mais detalhes, consulte apágina de manual das rotas(5).

/etc/resolv.conf

O domínio ao qual o host pertence é especificado neste arquivo (palavra-chavesearch).Também está listado o status do endereço do servidor de nomes para acesso (palavra-chave nameserver). Vários nomes de domínios podem ser especificados. Durantea resolução de um nome não totalmente qualificado, uma tentativa de gerar um nomeserá feita, anexando as entradas de pesquisa individuais. Use vários servidores denomes digitando várias linhas, todas iniciadas pelo servidor de nomes. Precedaos comentários com sinais #. O YaST insere o servidor de nomes especificado nestearquivo. O Exemplo 18.5, “/etc/resolv.conf” (p 368) mostra como a aparênciade /etc/resolv.conf poderá ser.

Rede básica 367

Page 368: Reference Pt BR

Exemplo 18.5 /etc/resolv.conf# Our domainsearch example.com## We use sun (192.168.0.20) as nameservernameserver 192.168.0.20

Alguns serviços, como pppd (wvdial), ipppd (isdn), dhcp (dhcpcd edhclient), pcmcia e hotplug modificam o arquivo /etc/resolv.confatravés do script modify_resolvconf. Se o arquivo /etc/resolv.conf tiversido temporariamente modificado por esse script, ele conterá um comentário predefinidocom informações sobre o serviço que o modificou, o local onde foi feito o backup doarquivo original e como desligar o mecanismo de modificação automática. Se /etc/resolv.conf for modificado várias vezes, o arquivo incluirá modificações de formaaninhada. Isso pode ser revertido de forma completa, mesmo que essa reversão ocorraem uma ordem diferente da ordem em que as modificações foram introduzidas. Entreos serviços que talvez necessitem dessa flexibilidade, estão incluídos isdn, pcmciae hotplug.

Se um serviço não tiver terminado de forma normal e limpa, modify_resolvconfpoderá ser usado para restaurar o arquivo original. Da mesma forma, na inicializaçãodo sistema, uma verificação é feita para ver se há um resolv.conf modificado quenão esteja limpo. Por exemplo, após uma falha no sistema, o resolv.conf original(não modificado) será restaurado.

O YaST usa o comando modify_resolvconf check para descobrir se o resolv.conf foi modificado e, logo depois, avisa o usuário de que as modificações serãoperdidas após a restauração do arquivo. Além disso, o YaST não se baseia no modify_resolvconf, o que significa que o impacto de modificar o resolv.conf atravésdo YaST é o mesmo que o de qualquer mudança manual. Em ambos os casos, asmudanças têm um efeito permanente. As modificações solicitadas pelos serviçosmencionados são somente temporárias.

/etc/hosts

Nesse arquivo, mostrado no Exemplo 18.6, “/etc/hosts” (p 369), os endereços IPsão designados a nomes de host. Se nenhum servidor de nomes for implementado, todosos hosts nos quais uma conexão IP for configurada precisarão ser listados aqui. Paracada host, digite uma linha no arquivo com o endereço IP, o nome de host totalmentequalificado e o nome de host. O endereço IP precisa estar no início da linha e as entradas

368 Referência

Page 369: Reference Pt BR

separadas por espaços vazios e guias. Comentários são sempre precedidos pelo sinal#.

Exemplo 18.6 /etc/hosts127.0.0.1 localhost192.168.0.20 sun.example.com sun192.168.0.0 earth.example.com earth

/etc/networks

Aqui, os nomes de rede são convertidos em endereços de rede. O formato é semelhanteao do arquivo hosts, exceto que os nomes de rede precedem os endereços. Consulteo Exemplo 18.7, “/etc/networks” (p 369).

Exemplo 18.7 /etc/networksloopback 127.0.0.0localnet 192.168.0.0

/etc/host.conf

A resolução de nomes — conversão dos nomes de host e de rede através da bibliotecaresolver— é controlada por esse arquivo. Esse arquivo é usado somente para programasvinculados a libc4 ou libc5. Para programas glibc atuais, consulte as configurações em/etc/nsswitch.conf. Um parâmetro precisa estar sempre independente em suaprópria linha. Comentários são precedidos pelo sinal #. A Tabela 18.6, “Parâmetrospara /etc/host.conf” (p 369) mostra os parâmetros disponíveis. Uma amostra de /etc/host.conf é mostrada no Exemplo 18.8, “ /etc/host.conf ” (p 370).

Tabela 18.6 Parâmetros para /etc/host.conf

Especifica em que ordem os serviços são acessados para aresolução de nomes. Os argumentos disponíveis são (separadospor espaços vazios ou vírgulas):

order hosts, bind

hosts: pesquisa o arquivo /etc/hosts

bind: acessa um servidor de nomes

nis: usa o NIS

Rede básica 369

Page 370: Reference Pt BR

Define se um host digitado em /etc/hosts pode ter váriosendereços IP.

multi on/off

Esses parâmetros influenciam o spoofing do servidor de nomes,mas, além disso, não exercem qualquer influência naconfiguração da rede.

nospoof onspoofalert on/off

O nome de domínio especificado é separado do nome de hostdepois da resolução do nome de host (desde que o nome de host

trim domainname

inclua o nome de domínio). Essa opção será útil somente se osnomes de um domínio local estiverem no arquivo /etc/hosts, mas ainda deverão ser reconhecidos com os nomes dedomínio anexados.

Exemplo 18.8 /etc/host.conf# We have named runningorder hosts bind# Allow multiple addrsmulti on

/etc/nsswitch.conf

O lançamento do GNU C Library 2.0 foi acompanhado pelo lançamento doNSS (NameService Switch). Consulte a página de manual do nsswitch.conf(5) e The GNUC Library Reference Manual (Manual de Referência da Biblioteca GNU C) para obtermais detalhes.

A ordem das consultas é definida no arquivo /etc/nsswitch.conf. Uma amostradonsswitch.conf é exibida no Exemplo 18.9, “/etc/nsswitch.conf” (p 371).Comentários são introduzidos pelo sinal #. Neste exemplo, a entrada no banco de dadoshosts significa que uma solicitação foi enviada para /etc/hosts (arquivos)através do DNS (consulte o Capítulo 20, Domain Name System (Sistema de Nomes deDomínio) (p 381)).

370 Referência

Page 371: Reference Pt BR

Exemplo 18.9 /etc/nsswitch.confpasswd: compat group: compat

hosts: files dns networks: dns de arquivos

services: db files protocols: db files

netgroup: files automount: files nis

Os “bancos de dados” disponíveis em NSS estão listados na Tabela 18.7, “Bancos dedados disponíveis através de /etc/nsswitch.conf” (p 371). Além disso, automount,bootparams, netmasks e publickey são aguardados em breve. As opções deconfiguração para bancos de dados NSS estão listadas na Tabela 18.8, “Opções deConfiguração para Bancos de Dados “NSS”” (p 372).

Tabela 18.7 Bancos de dados disponíveis através de /etc/nsswitch.conf

Álias de correio implementados por sendmail; consulteman 5 aliases.

aliases

Endereços de Ethernet.ethers

Para grupos de usuários, usados por getgrent. Consultetambém a página de manual para group.

group

Para nomes de hosts e endereços IP, usados porgethostbyname e funções similares.

hosts

Listas de usuários e hosts válidos na rede com a finalidade decontrolar permissões de acesso, consulte a página de manualdo netgroup(5).

netgroup

Nomes e endereços de redes, usados por getnetent.networks

Senhas de usuários, usadas por getpwent; consulte a páginade manual do passwd(5).

passwd

Rede básica 371

Page 372: Reference Pt BR

Protocolos de rede, usados por getprotoent; consulte apágina de manual do protocols(5).

protocols

Nomes e endereços de RPC (Remote Procedure Call) usadospor getrpcbyname e funções similares.

rpc

Serviços de rede, usados por getservent.services

Senhas transitórias de usuários, usadas por getspnam;consulte a página de manual do shadow(5).

shadow

Tabela 18.8 Opções de Configuração para Bancos de Dados “NSS”

arquivos de acesso direto, por exemplo, /etc/aliasesarquivos

acesso através de um banco de dadosdb

NIS, consulte também o Capítulo 21,Usando o NIS (p 405)nis, nisplus

só pode ser usado como uma extensão de hosts enetworks

dns

só pode ser usado como uma extensão depasswd,shadowe group

compat

/etc/nscd.conf

Esse arquivo é usado para configurar o nscd (name service cache daemon). Consulteas páginas de manual de nscd(8) e nscd.conf(5). Por padrão, as entradas dosistema de passwd e groups são armazenadas em cache pelo nscd. Isso é importantepara o desempenho de serviços de diretório, como NIS e LDAP, pois, caso contrário,a conexão de rede precisaria ser usada para cada acesso a nomes ou grupos. hostsnão é armazenado em cache por padrão, porque o mecanismo no nscd para armazenarhosts em cache impede o sistema local de confiar em verificações de pesquisa forwarde reverse. Em vez de solicitar ao nscd para armazenar nomes em cache, configure umservidor DNS para armazenamento em cache.

372 Referência

Page 373: Reference Pt BR

Se o armazenamento em cache de passwd estiver ativado, normalmente levará quinzesegundos para que um usuário local recentemente adicionado seja reconhecido. Reduzaesse tempo de espera reiniciando o nscd com o comando rcnscd restart.

/etc/HOSTNAME

Contém o nome de host sem o nome de domínio anexado. Esse arquivo é lido por váriosscripts durante a inicialização da máquina. Ele só pode conter uma linha na qual o nomede host é configurado.

18.6.2 Scripts de InicializaçãoAlém dos arquivos de configuração descritos acima, há também vários scripts quecarregam os programas de rede durante a inicialização da máquina. Eles são iniciadosassim que o sistema é alternado para um dos runlevels multiusuário. Alguns dessesscripts são descritos na Tabela 18.9, “Alguns scripts de inicialização para programasde rede” (p 373).

Tabela 18.9 Alguns scripts de inicialização para programas de rede

Este script controla a configuração das interfaces derede. O hardware já precisa ter sido inicializado pelo

/etc/init.d/network

/etc/init.d/coldplug (através dohotplug).Se o serviço de rede não tiver sido iniciado, nenhumainterface de rede será implementada quando forinserida pelo hotplug.

Inicia o xinetd. O xinetd pode ser usado paradisponibilizar os serviços do servidor no sistema. Por

/etc/init.d/network

exemplo, ele pode iniciar o vsftpd sempre que umaconexão FTP for inicializada.

Inicia o portmapper necessário para o servidor RPC,como um servidor NFS.

/etc/init.d/portmap

Inicia o servidor NFS./etc/init.d/nfsserver

Rede básica 373

Page 374: Reference Pt BR

Controla o processo sendmail./etc/init.d/sendmail

Inicia o servidor NIS./etc/init.d/ypserv

Inicia o cliente NIS./etc/init.d/ypbind

18.7 smpppd como Assistente deDiscagem

A maioria dos usuários domésticos não possui uma linha dedicada de conexão à Internet.Em vez disso, usam conexões por discagem. Dependendo da forma de discagem (ISDNou DSL), a conexão é controlada por ipppd ou pppd. Basicamente, tudo que precisa serfeito para estabelecer a conexão é iniciar esses programas corretamente.

Se você tiver uma conexão com tarifa fixa que não gere custos adicionais para a conexãopor discagem, basta iniciar o respectivo daemon. Controle a conexão por discagem comum applet KDE ou uma interface de linha de comando. Se o portal de Internet não foro host que você estiver usando, você poderá controlar a conexão por discagem porintermédio de um host de rede.

É aí que entra o smpppd. Ele oferece uma interface uniforme para programas auxiliarese funciona nas duas direções. Primeiro, ele programa o pppd ou ipppd necessário econtrola suas propriedades de discagem. Em segundo lugar, disponibiliza diversosprovedores aos programas do usuário e transmite informações sobre o atual status daconexão. Já que o smpppd também pode ser controlado por meio da rede, é adequadopara controlar conexões por discagem à Internet a partir de uma estação de trabalho deuma sub-rede privada.

18.7.1 Configurando o smpppdAs conexões fornecidas pelo smpppd são automaticamente configuradas pelo YaST.Os programas por discagem KInternet e cinternet propriamente ditos também são pré-configurados. Configurações manuais somente são necessárias para configurar recursosadicionais do smpppd, como o controle remoto.

374 Referência

Page 375: Reference Pt BR

O arquivo de configuração do smpppd é o /etc/smpppd.conf. Por padrão, ele nãohabilita o controle remoto. As opções mais importantes desse arquivo de configuraçãosão:

open-inet-socket = yes|noPara controlar o smpppd por meio da rede, essa opção precisa ser definida comoyes. A porta em que o smpppd realiza a escuta é a 3185. Se esse parâmetro fordefinido comoyes, os parâmetrosbind-address,host-range epassworddeverão ser definidos da mesma forma.

bind-address = ipSe um host tiver diversos endereços IP, use esse parâmetro para determinar oendereço IP em que o smpppd deve aceitar conexões.

host-range = min ip max ipO parâmetro host-range define uma faixa de rede. Os hosts cujos endereçosIP se situam dentro dessa faixa recebem acesso ao smpppd. O acesso é recusado atodos os hosts localizados fora dessa faixa.

password = senhaAo atribuir uma senha, limite os clientes a hosts autorizados. Como se trata de umasenha de texto simples, não é recomendável superestimar a segurança por oferecida.Se nenhuma senha for atribuída, todos os clientes terão permissão para acessar osmpppd.

slp-register = yes|noCom esse parâmetro, o serviço smpppd pode ser anunciado na rede por meio doSLP.

Mais informações sobre o smpppd estão disponíveis nas páginas do manualsmpppd(8)e smpppd.conf(5).

18.7.2 Configurando KInternet, cinternet eqinternet para Uso Remoto

KInternet, cinternet e qinternet podem ser usados para controlar um smpppd local ouremoto. O cinternet é o equivalente da linha de comando do KInternet gráfico. Emlinhas gerais, como o qinternet é idêntico ao KInternet, mas não usa as bibliotecas doKDE, pode ser usado sem o KDE e deve ser instalado separadamente. Para preparar

Rede básica 375

Page 376: Reference Pt BR

esses utilitários para uso com um smpppd remoto, edite o arquivo de configuração/etc/smpppd-c.conf manualmente ou com o KInternet. Esse arquivo usa trêsopções apenas:

sites = lista de sitesIndique aos front ends onde procurar o smpppd. Os front ends testam as opções naordem especificada. A opção local ordena o estabelecimento de uma conexãoao smpppd local. O gateway aponta para um smpppd no gateway. A conexãodeve ser estabelecida conforme especificações contidas em server, emconfig-file. O slp ordena aos front ends que se conectem a um smpppdencontrado por meio do SLP.

server = servidorEspecifique o host em que o smpppd deve ser executado.

password = senhaInsira a senha selecionada para o smpppd.

Se o smpppd estiver ativo, será possível acessá-lo, por exemplo, com cinternet--verbose --interface-list. Se você tiver dificuldades nesse ponto, consulteas páginas do manual smpppd-c.conf(5) e cinternet(8).

376 Referência

Page 377: Reference Pt BR

19Serviços SLP na redeO SLP foi criado para simplificar a configuração dos clientes em rede dentro de umarede local. Para configurar um cliente em rede, inclusive todos os serviços necessários,o administrador normalmente precisa ter conhecimento detalhado dos servidoresdisponíveis na rede. O SLP divulga a disponibilidade de serviços selecionados a todosos clientes da rede local. Os aplicativos que dão suporte ao SLP podem usar asinformações distribuídas e podem ser configurados automaticamente.

O SUSE Linux dá suporte à instalação com o uso de origens de instalação fornecidasvia SLP e contém diversos serviços de sistema com suporte integrado para SLP. OYaST e o Konqueror possuem front ends apropriados para SLP. Você pode usar o SLPpara oferecer funções centrais aos clientes em rede, como um servidor de instalação,servidor YOU, servidor de arquivos ou servidor de impressão no SUSE Linux.

19.1 Registrando seus própriosserviços

Muitos aplicativos contidos no SUSE Linux já possuem suporte integrado ao SLP como uso da biblioteca libslp. Se um serviço não tiver sido compilado com o suporteao SLP, use um dos métodos a seguir para disponibilizá-lo com SLP:

Registro estático com /etc/slp.reg.dCrie um arquivo de registro separado para cada novo serviço. A seguir há umexemplo de arquivo para o registro de serviço de scanner:

Serviços SLP na rede 377

Page 378: Reference Pt BR

## Register a saned service on this system## en means english language## 65535 disables the timeout, so the service registration does## not need refreshesservice:scanner.sane://$HOSTNAME:6566,en,65535watch-port-tcp=6566description=SANE scanner daemon

A linha mais importante desse arquivo é a linha URL do serviço, que começa comservice:. Essa linha contém o tipo de serviço (scanner.sane) e o endereçoem que o serviço está disponível no servidor. $HOSTNAME é automaticamentesubstituída pelo nome completo do host. Em seguida, vem o nome da porta TCPem que o serviço em questão pode ser encontrado, separado por dois-pontos. Aseguir, especifique o idioma em que o serviço deve ser exibido e a duração doregistro em segundos. Esses dados devem ser separados do URL do serviço porvírgulas. Defina o valor da duração do registro entre 0 e 65535. O valor 0 impedeo registro. O valor 65535 elimina todas as restrições.

O arquivo de registro também contém as duas variáveis watch-tcp-port edescription.watch-tcp-port associa o anúncio do serviço SLP à atividadedo serviço em questão fazendo com que o slpd verifique o status do serviço. Asegunda variável contém uma descrição mais precisa do serviço que é exibido nosbrowsers apropriados.

Registro estático com /etc/slp.regA única diferença em relação ao procedimento com /etc/slp.reg.d é oagrupamento de todos os serviços em um arquivo central.

Registro dinâmico com slptoolSe um serviço tiver de ser registrado para o SLP a partir de scripts proprietários,use o front end de linha de comando slptool.

19.2 Front ends de SLP no SUSE LinuxO SUSE Linux contém diversos front ends que permitem que as informações relativasao SLP sejam verificadas e usadas por meio de uma rede:

378 Referência

Page 379: Reference Pt BR

slptoolO slptool é um programa de linha de comando simples que pode ser usado paraanunciar consultas SLP na rede ou anunciar serviços proprietários. Oslptool --help relaciona todas as opções e funções disponíveis. O slptooltambém pode ser chamado a partir de scripts que processam informações relativasao SLP.

Browser SLP do YaSTO YaST contém um browser SLP separado que lista todos os serviços da rede localanunciados via SLP em um diagrama em forma de árvore em Serviços de Rede →Browser SLP.

KonquerorQuando usado como um browser de rede, o Konqueror pode exibir todos os serviçosSLP disponíveis na rede local em slp:/. Clique nos ícones da janela principalpara obter mais informações detalhadas sobre o serviço em questão. Se você usaro Konqueror com service:/, clique no respectivo ícone uma vez na janela dobrowser para configurar uma conexão com o serviço selecionado.

19.3 Ativando o SLPO slpd deve ser executado no seu sistema se você desejar oferecer serviços. Não énecessário iniciar esse daemon apenas para fazer consultas sobre serviços. Assim comoa maioria dos serviços de sistema no SUSE Linux, o daemon slpd é controlado porintermédio de um script de inicialização separado. O daemon fica inativo por padrão.Para ativá-lo durante uma sessão, execute rcslpd start como root para iniciá-lo e rcslpd stop para interrompê-lo. Efetue uma verificação de reinicialização oustatus com restart ou status. Se o slpd tiver de ficar ativo por padrão, execute ocomando insserv slpd uma vez como root. Essa ação inclui automaticamente oslpd no conjunto de serviços a serem iniciados durante a inicialização de um sistema.

19.4 Mais informaçõesAs fontes a seguir fornecem informações adicionais sobre o SLP:

Serviços SLP na rede 379

Page 380: Reference Pt BR

RFC 2608, 2609, 2610O RFC 2608 geralmente trata da definição de SLP. O RFC 2609 trata da sintaxedos URLs de serviço usados em maior detalhe e o RFC 2610 trata do DHCP viaSLP.

http://www.openslp.comA home page do projeto OpenSLP.

/usr/share/doc/packages/openslpEsse diretório contém toda a documentação disponível sobre SLP, inclusive umarquivoREADME.SuSE contendo os detalhes sobre o SUSE Linux, os RFCs citadosacima e dois documentos HTML introdutórios. Os programadores que desejaremusar as funções SLP devem instalar o pacote openslp-devel para consultar oProgrammers Guide (Guia de Programadores) que o acompanha.

380 Referência

Page 381: Reference Pt BR

20Domain Name System (Sistema deNomes de Domínio)O DNS (Domain Name System - Sistema de Nomes de Domínio) é necessário pararesolver nomes de domínio e nomes de host em endereços IP. Dessa forma, o endereçoIP 192.168.0.0 é designado ao nome de host earth, por exemplo. Antes de configuraro servidor de nomes, leia as informações gerais sobre o DNS na Seção 18.3, “Resoluçãode nomes” (p 347). Os exemplos de configuração a seguir se referem ao BIND.

20.1 Terminologia DNSZona

O namespace do domínio é dividido em regiões chamadas zonas. Por exemplo, sevocê tiver o opensuse.org, terá a seção opensuse, ou zona, do domínio org.

Servidor DNSO servidor DNS é um servidor que mantém o nome e as informações de IP de umdomínio. Você pode ter um servidor DNS primário para a zona master, um servidorsecundário para a zona escrava ou um servidor escravo sem nenhuma zona paracache.

Servidor DNS de zona masterA zona master inclui todos os hosts da rede, e uma zona master de servidorDNS armazena todos os registros atualizados de todos os hosts do seu domínio.

Servidor DNS de zona escravaUma zona escrava é uma cópia da zona master. O servidor DNS da zona escravaobtém os dados de zona sem operações de transferência da zona do servidor

Domain Name System (Sistema de Nomes de Domínio) 381

Page 382: Reference Pt BR

master. O servidor DNS de zona escrava responde com autoridade à zonacontanto que tenha dados de zona válidos (não expirados). Se o escravo nãoconseguir obter uma cópia nova dos dados de zona, pára de responder à zona.

EncaminhadorEncaminhadores são servidores DNS para os quais o servidor DNS deve enviarconsultas que não consiga responder.

RegistroO registro contém informações sobre nome e endereço IP. Os registros com suportee suas sintaxes são descritas na documentação do BIND. Alguns registros especiaissão:

Registro NSUm registro NS informa aos servidores de nome quais máquinas sãoresponsáveis por uma determinada zona de domínio.

Registro MXOs registros MX (servidor de correio) descrevem quais máquinas devem sercontatadas para direcionar a correspondência pela Internet.

Registro SOAO registro SOA (Start of Authority) é o primeiro registro em um arquivo dezona. O registro SOA é usado quando o DNS é usado para sincronizar os dadosentre vários computadores.

20.2 Configuração com o YaSTVocê pode usar o módulo DNS do YaST para configurar um servidor DNS em sua redelocal. Quando o módulo é iniciado pela primeira vez, um assistente é iniciado, solicitandoque você tome algumas decisões básicas com relação à administração do servidor. Aconclusão dessa configuração inicial produz uma configuração de servidor muito básica,que deve funcionar com aspectos essenciais. O modo de especialista pode ser usadopara lidar com tarefas de configuração mais avançadas.

382 Referência

Page 383: Reference Pt BR

20.2.1 Configuração do assistenteO assistente consiste em três etapas ou caixas de diálogo. Nos locais apropriados dascaixas de diálogo, você terá a oportunidade de inserir o modo de configuração deespecialista.

1 Quando você inicia o módulo pela primeira vez, a caixa de diálogoConfiguraçõesdo Encaminhador, mostrada na Figura 20.1, “Instalação do servidor DNS:configurações do encaminhador” (p 383), é aberta. Decida se o daemon PPP devefornecer uma lista de encaminhadores de chamada via DSL ou ISDN (ODaemonPPPDefine os Encaminhadores) ou se você deseja fornecer a própria lista (DefinirEncaminhadores Manualmente).

Figura 20.1 Instalação do servidor DNS: configurações do encaminhador

2 A caixa de diálogo Zonas DNS consiste em várias partes e é responsável pelogerenciamento de arquivos de zona, descrito na Seção 20.5, “Arquivos de zona”(p 397). Forneça um nome para uma nova zona emNome da Zona. Para adicionaruma zona reversa, o nome deve terminar em .in-addr.arpa. Finalmente,selecione o Tipo de Zona (master ou escrava). Consulte a Figura 20.2, “Instalaçãodo servidor DNS: Zonas do DNS” (p 384). Clique em Editar Zona para definiroutras configurações em uma zona existente. Para remover uma zona, clique emApagar Zona.

Domain Name System (Sistema de Nomes de Domínio) 383

Page 384: Reference Pt BR

Figura 20.2 Instalação do servidor DNS: Zonas do DNS

3 Na caixa de diálogo final, é possível abrir as portas do serviço DNS no firewallativado durante a instalação e decidir se o DNS deve ser iniciado. A configuraçãode especialista também pode ser acessada nessa caixa de diálogo. Consulte aFigura 20.3, “Instalação do servidor DNS: Finalizar Assistente” (p 385).

384 Referência

Page 385: Reference Pt BR

Figura 20.3 Instalação do servidor DNS: Finalizar Assistente

20.2.2 Configuração de especialistaDepois de iniciar o módulo, o YaST abre uma janela exibindo várias opções deconfiguração. A definição dessas opções resulta em uma configuração de servidor DNScom as funções básicas estabelecidas:

Iniciando o servidor DNSEm Inicializar, defina se o servidor DNS deve ser inicializado juntamente com ainicialização do sistema ou manualmente. Para iniciar o servidor DNS imediatamente,selecione Iniciar Servidor DNS Agora. Para encerrar o servidor DNS, selecione PararServidor DNS Agora. Para gravar as configurações atuais, selecione SalvarConfigurações e Reiniciar Servidor DNS Agora. É possível abrir a porta do DNS nofirewall com a opção Abrir Porta no Firewall e modificar as configurações do firewallcom Detalhes do Firewall.

Domain Name System (Sistema de Nomes de Domínio) 385

Page 386: Reference Pt BR

RegistroPara 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 deregistro. Use o arquivo de registro /var/log/messages de todo o sistemaselecionando Inserir no Registro do Sistema, ou especifique um arquivo diferenteselecionandoRegistrar em Arquivo. Nesse caso, especifique também o tamanho máximodo arquivo em megabytes e o número de arquivos de registro a serem armazenados.

Outras opções estão disponíveis em Registro Adicional. A habilitação do recursoRegistrar 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 razão, nãoé uma boa idéia habilitar essa opção para fins que não sejam de depuração. Para registraro tráfego de dados durante as atualizações de zonas entre o DHCP e o servidor DNS,habilite a opção Registrar Atualizações de Zona. Para registrar o tráfego de dadosdurante uma transferência de zona de master para escrava, habilite a opção RegistrarTransferência de Zonas. Consulte a Figura 20.4, “Servidor DNS: Registro” (p 386).

Figura 20.4 Servidor DNS: Registro

386 Referência

Page 387: Reference Pt BR

Adicionando uma Zona EscravaPara adicionar uma zona escrava, selecione Zonas DNS, escolha o tipo de zona Escravae clique em Adicionar.

Em Editor de Zona, em Servidor DNS Master, especifique o master no qual o escravodeve pesquisar seus dados. Para limitar acesso ao servidor, selecione um dos ACLs dalista. 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 MasterPara 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 MasterPara 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 diálogo tem váriaspáginas: Básico (a aberta primeiro), Registros NS, Registros MX, SOA e Registros.

Domain Name System (Sistema de Nomes de Domínio) 387

Page 388: Reference Pt BR

Editor de Zona (Registros NS)Esta caixa de diálogo permite definir servidores de nomes alternativos nas zonasespecificadas. Verifique se o nome do seu próprio servidor está incluído na lista.Para adicionar um registro, digite o nome dele em Servidor de Nome para Adicionare, 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 eletrônico para a zona atual,digite o endereço correspondente e o valor de prioridade. Depois disso, confirmea seleção em Adicionar. Consulte a Figura 20.7, “Servidor DNS: Editor de Zona(Registros MX)” (p 389).

388 Referência

Page 389: Reference Pt BR

Figura 20.7 Servidor DNS: Editor de Zona (Registros MX)

Editor de Zona (SOA)Esta página permite criar registros de SOA (start of authority). Para obter umaexplicação sobre opções específicas, consulte o Exemplo 20.6, “Arquivo/var/lib/named/world.zone” (p 397).

Domain Name System (Sistema de Nomes de Domínio) 389

Page 390: Reference Pt BR

Figura 20.8 Servidor DNS: Editor de Zona (SOA)

Editor de Zona (Registros)Esta caixa de diálogo gerencia a resolução de nomes. EmChave de Registro, digiteo nome de host e selecione seu tipo. A-Record representa a entrada principal. Seuvalor deve ser um endereço IP. CNAME é um álias. Utilize os tipos NS e MX paraobter registros detalhados ou parciais que expandam as informações fornecidas nasguias Registros NS e Registros MX. Estes três tipos resolvem um registro Aexistente. PTR é para zonas reversas. É o oposto de um registro A.

20.3 Iniciando o BIND do servidor denomes

Em um sistema SUSE Linux, o BIND (Berkeley Internet Name Domain - Domínio deNomes Berkeley da Internet) do servidor de nomes vem pré-configurado, de forma queele pode ser iniciado logo após a instalação, sem problemas. Se você já tiver umaconexão de Internet em funcionamento e digitar127.0.0.1 como endereço do servidorde nomes para localhost, em /etc/resolv.conf, já terá uma resolução denomes em funcionamento, sem que seja necessário conhecer o DNS do provedor. OBIND realiza a resolução de nomes por meio do servidor de nomes raiz, um processonotavelmente mais lento. Normalmente, o DNS do provedor deve ser digitado com o

390 Referência

Page 391: Reference Pt BR

endereço IP no arquivo de configuração /etc/named.conf, em forwarders,para garantir uma resolução de nomes segura e eficaz. Se ele estiver funcionando atéagora, o servidor de nomes será executado como um servidor de nomes apenas paracache. Somente quando você configurar as zonas dele próprio, ele se tornará um DNSadequado. Um exemplo simples disso está incluído na documentação, em /usr/share/doc/packages/bind/sample-config.

DICA: Adaptação automática das informações do servidor de nomes

Dependendo do tipo de conexão de Internet ou de conexão de rede, asinformações do servidor de nomes podem ser automaticamente adaptadas àscondições atuais. Para isso, defina a variávelMODIFY_NAMED_CONF_DYNAMICALLY no arquivo /etc/sysconfig/network/config como yes.

Entretanto, não configure nenhum domínio oficial antes de algum ser designado pelainstituição responsável. Mesmo que você tenha seu próprio domínio e ele seja gerenciadopelo provedor, é melhor não utilizá-lo, pois o BIND não encaminharia solicitações paraesse domínio. O servidor Web no provedor, por exemplo, poderia não ficar acessívelpara esse domínio.

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 servidorde nomes, esse servidor terá sido iniciado com êxito. Teste o servidor de nomesimediatamente no sistema local com os programas host ou dig, que devem retornarlocalhost como servidor padrão, com o endereço 127.0.0.1. Se esse não é ocaso, o arquivo /etc/resolv.conf provavelmente contém uma entrada de servidorde nomes incorreta ou não existe. No primeiro teste, digite host 127.0.0.1, o quesempre funciona. Se receber uma mensagem de erro, use rcnamed status paraverificar se o servidor está sendo realmente executado. Se o servidor de nomes não foriniciado ou agir de forma inesperada, você poderá encontrar a causa no arquivo deregistro /var/log/messages.

Para usar o servidor de nomes do provedor ou um servidor de nomes que já esteja emexecução na rede como encaminhador, digite o endereço IP ou os endereçoscorrespondentes na seção options, em forwarders. Os endereços incluídos noExemplo 20.1, “Opções de encaminhamento no named.conf” (p 392) são apenasexemplos. Ajuste essas entradas de acordo com sua própria configuração.

Domain Name System (Sistema de Nomes de Domínio) 391

Page 392: Reference Pt BR

Exemplo 20.1 Opções de encaminhamento no named.confoptions { 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 e0.0.127.in-addr.arpa. A entrada type hint em “.” deve estar semprepresente. Os arquivos correspondentes não precisam ser modificados e devem funcionarcomo estão. Verifique também se cada entrada está fechada com um “;” e se as chavesestão nos locais corretos. Depois de mudar o arquivo de configuração /etc/named.conf ou os arquivos de zona, solicite ao BIND que os releia com o comandorcnamed reload. Faça o mesmo interrompendo e reiniciando o servidor de nomescom rcnamed restart. Pare o servidor a qualquer momento digitandorcnamed stop.

20.4 O arquivo de configuração/etc/named.conf

Todas as configurações do servidor de nomes BIND são armazenadas no arquivo/etc/named.conf. Entretanto, os dados de zona que os domínios devem gerenciar,consistindo em nomes de host, endereços IP etc, são armazenados em arquivos separados,no diretório /var/lib/named. Os detalhes serão descritos posteriormente.

/etc/named.conf é dividido em aproximadamente duas áreas. Uma é a seçãooptions para configurações gerais, e a outra consiste nas entradas da zone dosdomínios específicos. Uma seção logging e entradas de acl (access control list -lista de controles de acesso) são opcionais. Linhas de comentário começam com umsinal de# ou//. Um arquivo/etc/named.confmínimo é exibido no Exemplo 20.2,“Um arquivo /etc/named.conf básico” (p 393).

392 Referência

Page 393: Reference Pt BR

Exemplo 20.2 Um arquivo /etc/named.conf básicooptions { 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 Opções importantes de configuraçãodiretório "nomedoarquivo";

Especifica o diretório no qual o BIND pode encontrar os arquivos contendo osdados da zona. Normalmente, é o /var/lib/named.

forwarders { endereço-ip; };Especifica os servidores de nomes (principalmente do provedor) para os quais assolicitações do DNS devem ser encaminhadas se não puderem ser resolvidasdiretamente. Substitua endereço-ip por um endereço IP como 10.0.0.1.

forward first;Faz com que solicitações do DNS sejam encaminhadas antes de uma tentativa serfeita para resolvê-las por meio dos servidores de nomes raiz. Em vez de forwardfirst, é possível escrever forward only para que todas as solicitações sejamencaminhadas e nenhuma delas seja enviada para os servidores de nomes raiz. Issofaz sentido para configurações de firewall.

listen-on port 53 { 127.0.0.1; endereço ip; };Comunique ao BIND em que interfaces de rede e porta ele deve aceitar consultasde cliente. A porta 53 não precisa ser especificada explicitamente, pois 53 é a

Domain Name System (Sistema de Nomes de Domínio) 393

Page 394: Reference Pt BR

porta padrão. Digite 127.0.0.1 para permitir solicitações do host local. Se vocêomitir totalmente essa entrada, todas as interfaces serão usadas por padrão.

listen-on-v6 port 53 {any; };Comunique ao BIND qual porta ele deve escutar para solicitações de clientes IPv6.A única alternativa para any é none. Até onde o IPv6 está envolvido, o servidorsó aceita um endereço curinga.

query-source address * port 53;Esta entrada será necessária se um firewall estiver bloqueando as solicitações desaída do DNS. Assim o BIND é avisado para publicar as solicitações externamenteà porta 53, e não 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 solicitações de DNS.Substitua rede pelas informações de endereço, como 192.168.1/24. /24, nofim, é uma expressão de abreviação para uma máscara de rede, neste caso,255.255.255.0.

allow-transfer ! *;;Controla quais hosts podem solicitar transferências de zona. No exemplo, taissolicitações são completamente negadas com ! *. Sem essa entrada, astransferências de zona podem ser solicitadas de qualquer local, sem restrições.

statistics-interval 0;Na ausência desta entrada, o BIND gera várias linhas de informações estatísticaspor hora em /var/log/messages. Defina-a como 0 para suprimir totalmenteestas estatísticas ou definir um intervalo em minutos.

cleaning-interval 720;Esta opção define os intervalos de tempo em que o BIND limpa seu cache. Elaaciona uma entrada em /var/log/messages sempre que isso ocorre. Aespecificação de tempo é em minutos. O padrão é de 60 minutos

interface-interval 0;O BIND pesquisa regularmente as interfaces de rede em busca de interfaces novasou não existentes. Se seu valor for definido como 0, isso não será feito, e o BIND

394 Referência

Page 395: Reference Pt BR

escutará apenas as interfaces detectadas na inicialização. Caso contrário, o intervalopoderá ser definido em minutos. O padrão é de 60 minutos

notify no;no evita que outros servidores de nomes sejam informados sobre a ocorrência demudanças nos dados da zona ou sobre quando o servidor de nomes foi reiniciado.

20.4.2 RegistroO BIND pode ser extensivamente configurado para que se determine qual registro estásendo usado, como e onde. Normalmente, as configurações padrão devem ser suficientes.O Exemplo 20.3, “Entrada para desabilitar o registro” (p 395) mostra a forma maissimples de uma entrada como esta e suprime totalmente qualquer registro.

Exemplo 20.3 Entrada para desabilitar o registrologging { category default { null; };};

20.4.3 Entradas das zonasExemplo 20.4 Entrada da zona para my-domain.dezone "my-domain.de" in { type master; file "my-domain.zone"; notify no;};

Depois de zone, especifique o nome do domínio para o administrador(my-domain.de), seguido de in e um bloco de opções relevantes incluídas entrechaves, 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 denomes que administre essa zona como master (que, por sua vez, pode ser uma escravade outra master), como mostrado no Exemplo 20.5, “Entrada da zona para other-domain.de” (p 396).

Domain Name System (Sistema de Nomes de Domínio) 395

Page 396: Reference Pt BR

Exemplo 20.5 Entrada da zona para other-domain.dezone "other-domain.de" in { type slave; file "slave/other-domain.zone"; masters { 10.0.0.1; }; };

As opções de zona:

type master;Ao especificarmaster, comunique ao BIND que a zona é gerenciada pelo servidorde nomes local. Esse procedimento pressupõe que um arquivo de zona tenha sidocriado no formato correto.

type slave;Esta zona é transferida de outro servidor de nomes. Ela deve ser usada juntamentecom masters.

type hint;A zona . do tipo hint é usada para definir os servidores de nomes raiz. Essadefinição 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 domínio estãolocalizados. Este arquivo não é necessário para uma escrava, pois os dados sãobuscados em outro servidor de nomes. Para diferenciar arquivos master de escravos,use o diretório slave para os arquivos escravos.

masters { endereço-ip-servidor; };Esta entrada só é necessária para zonas escravas. Ela especifica o servidor de nomesdo qual o arquivo da zona deve ser transferido.

allow-update {! *; };Esta opção controla o acesso de gravação externo, permitindo que os clientes façamuma entrada no DNS, o que normalmente não é desejável por razões de segurança.Sem essa entrada, as atualizações da zona não são permitidas. A entrada acimaobtém o mesmo porque ! * proíbe efetivamente qualquer atividade afim.

396 Referência

Page 397: Reference Pt BR

20.5 Arquivos de zonaSão necessários dois tipos de arquivos de zona. Um designa endereços IP a nomes dehosts e o outro faz o oposto: fornece um nome de host a um endereço IP.

DICA: Usando o ponto em arquivos de zona

O . tem um significado importante nos arquivos de zona. Se os nomes de hostforem designados sem um . final, a zona será anexada. Nomes de hostcompletos especificados sem um nome de domínio completo devem terminarcom um . para evitar que o domínio seja adicionado a eles novamente. Pontosausentes ou colocados erradamente são provavelmente a causa mais freqüentede erros de configuração do servidor de nomes.

O primeiro caso a considerar é o arquivo de zona world.zone, responsável pelodomínio 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 2Dworld.cosmos. IN SOA gateway root.world.cosmos. ( 2003072441 ; serial 1D ; refresh 2H ; retry 1W ; expiry 2D ) ; minimum

IN NS gateway IN MX 10 sun

gateway IN A 192.168.0.1 IN A 192.168.1.1sun IN A 192.168.0.2moon IN A 192.168.0.3earth IN A 192.168.1.2mars IN A 192.168.1.3www IN CNAME moon

Linha 1:$TTL define o tempo padrão de operação a ser aplicado em todas as entradas destearquivo. Neste exemplo, as entradas são válidas por um período de dois dias (2 D).

Domain Name System (Sistema de Nomes de Domínio) 397

Page 398: Reference Pt BR

Linha 2:Onde o registro de controle SOA (start of authority) é iniciado:

• O nome do domínio a ser administrado é world.cosmos na primeira posição.Ele termina com um ., caso contrário a zona seria anexada outra vez. Comoalternativa, é possível inserir uma @ aqui, caso em que a zona seria extraída daentrada correspondente em /etc/named.conf.

• Depois, IN SOA será o nome do servidor de nomes master dessa zona. O nomeé expandido degateway paragateway.world.cosmos, pois ele não terminacom um ..

• Depois, é exibido o endereço de e-mail da pessoa responsável por esse servidorde nomes. Como o sinal de @ já tem um significado especial, o . é inserido aqui,no lugar dele. Para [email protected], a entrada deve ser lida comoroot.world.cosmos.. O . deve ser incluído no fim para evitar que a zonaseja adicionada.

• O ( inclui todas as linhas até ), no registro do SOA.

Linha 3:O serial number é um número arbitrário que é aumentado sempre que oarquivo é mudado. Ele é necessário para informar os servidores de nomessecundários (servidores escravos) sobre as mudanças. Para isso, um número de 10dígitos com a data e um número de execução, escrito como YYYYMMDDNN , éo formato mais usado.

Linha 4:A refresh rate especifica o intervalo de tempo no qual os servidores de nomessecundários 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 nomessecundário tenta entrar em contato com o servidor primário novamente, no casode erro. Aqui, duas horas.

Linha 6:O expiration time especifica o intervalo de tempo no qual um servidor denomes secundário descarta os dados em cache, caso não tenha conseguidorestabelecer contato com o servidor primário. Aqui, uma semana.

398 Referência

Page 399: Reference Pt BR

Linha 7:A última entrada do registro SOA especifica o negative caching TTL — otempo em que resultados de consultas não resolvidas do DNS de outros servidorespodem ser armazenados em cache.

Linha 9:O IN NS especifica o servidor de nomes responsável por este domínio. gatewayé estendido para gateway.world.cosmos, pois não termina com um .. Podehaver várias linhas como esta: uma para o servidor de nomes primário e outra parao secundário. Se notify não for enviado para no em /etc/named.conf,todos os servidores de nomes listados aqui serão informados sobre as mudançasfeitas nos dados da zona.

Linha 10:O registro MX especifica o servidor de correio eletrônico que aceita, processa eencaminha e-mails para o domínio world.cosmos. Neste exemplo, o host ésun.world.cosmos. O número na frente do nome do host é o valor depreferência. Se houver várias entradas de MX, o servidor de correio eletrônico commenor valor será pego primeiro e se houver falha na entrega de mensagens, seráfeita uma nova tentativa com o próximo valor mais alto.

Linhas 12 a 17:Estes são os registros reais em que um ou mais endereços IP são atribuídos a nomesde host. Os nomes são listados aqui sem um ., pois eles não incluem seus domínios,então world.cosmos é adicionado a todos. Dois endereços IP são designadosao host gateway, pois ele tem duas placas de rede. Em todos os locais em que oendereço de host for tradicional (IPv4), o registro será marcado com A. Se oendereço for um endereço IPv6, a entrada será marcada com A6. O token anteriorpara os endereços IPv6 era AAAA, agora obsoleto.

NOTA: Sintaxe A6

O registro A6 tem uma ligeira diferença de sintaxe em relação ao AAAA.Devido à possibilidade de fragmentação, é necessário fornecer informaçõessobre as partes ausentes antes do endereço. Você deve fornecer essasinformações mesmo se quiser usar um endereço completamentedesfragmentado. Para o antigo registro AAAA com a sintaxepluto IN AAAA 2345:00C1:CA11:0001:1234:5678:9ABC:DEF0 pluto IN AAAA 2345:00D2:DA11:0001:1234:5678:9ABC:DEF0

Domain Name System (Sistema de Nomes de Domínio) 399

Page 400: Reference Pt BR

É necessário adicionar as informações sobre as partes ausentes no formatoA6. Como o exemplo acima está completo (não há nenhum bit ausente),o formato A6 deste registro é:pluto IN AAAA 2345:00C1:CA11:0001:1234:5678:9ABC:DEF0 pluto IN AAAA 2345:00D2:DA11:0001:1234:5678:9ABC:DEF0

Não use endereços IPv4 com mapeamento IPv6. Se um host tiver umendereço IPv4, ele usará um registro A, não um A6.

Linha 18:O áliaswww pode ser usado como endereçomond (CNAME significa nome canônico).

O pseudodomínio in-addr.arpa é usado para a pesquisa reversa de endereços IPem nomes de hosts. Ele é anexado à parte de rede do endereço, em notação reversa.Então, 192.168.1 é resolvido como 1.168.192.in-addr.arpa. Consulte oExemplo 20.7, “Pesquisa reversa” (p 400).

Exemplo 20.7 Pesquisa reversa

$TTL 2D1.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 gateway.world.cosmos.

1 IN PTR gateway.world.cosmos.2 IN PTR earth.world.cosmos.3 IN PTR mars.world.cosmos.

Linha 1:STLL define o TTL padrão aplicado a todas as entradas aqui.

Linha 2:O arquivo de configuração deve ativar a pesquisa reversa para a rede192.168.1.0. Supondo que a zona seja chamada de1.168.192.in-addr.arpa, ela não deve ser adicionada a nomes de hosts.Portanto, todos os nomes de host são digitados na forma completa, com seu domínio

400 Referência

Page 401: Reference Pt BR

e um . no fim. As entradas restantes correspondem às descritas no exemplo deworld.cosmos anterior.

Linhas 3 a 7:Consulte o exemplo anterior para world.cosmos.

Linha 9:Novamente, esta linha especifica o servidor de nomes responsável pela zona. Noentanto, dessa vez o nome é digitado na forma completa, com o domínio e um .no fim.

Linhas 11 a 13:Estas são as dicas dos registros do indicador nos endereços IP dos respectivos hosts.Somente a última parte do endereço IP é digitada no começo da linha, sem o . nofim. Anexar a zona a ele (sem .in-addr.arpa) resulta na ordem reversa detodo o endereço IP.

Normalmente, as transferências de zona entre versões diferentes do BIND devem serpossíveis sem problemas.

20.6 Atualização dinâmica dos dadosda zona

O termo atualização dinâmica se refere a operações pelas quais as entradas dos arquivosde zona de um servidor master são adicionadas, mudadas ou apagadas. Esse mecanismoé descrito no RFC 2136. A atualização dinâmica é configurada individualmente paracada entrada de zona se você adicionar uma regra allow-update ouupdate-policy opcional. As zonas a serem atualizadas dinamicamente não devemser editadas manualmente.

Transmita as entradas a serem atualizadas para o servidor com o comando nsupdate.Para obter a sintaxe exata desse comando, verifique a página de manual correspondentea nsupdate (man 8 nsupdate). Por razões de segurança, qualquer atualização dessetipo deve ser executada com chaves TSIC, conforme descrito na Seção 20.7, “Transaçõesde segurança” (p 402).

Domain Name System (Sistema de Nomes de Domínio) 401

Page 402: Reference Pt BR

20.7 Transações de segurançaTransações seguras podem ser feitas com a ajuda de TSIGs (Transaction Signatures,Assinaturas de Transação), baseadas em chaves secretas compartilhadas (tambémchamadas de chaves TSIGs). Esta seção descreve como gerar e usar tais chaves.

Transações seguras são necessárias para a comunicação entre servidores diferentes epara a atualização dinâmica dos dados de zona. Tornar o controle de acesso dependentede chaves é muito mais seguro do que meramente confiar em endereços IP.

Gere uma chave TSIG com o seguinte comando (para obter detalhes, consulteman dnssec-keygen):dnssec-keygen -a hmac-md5 -b 128 -n HOST host1-host2

Serão 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 doisarquivos. Para usá-la em transações, o segundo arquivo (Khost1-host2.+157+34265.key) deve ser transferido para o host remoto, de preferência de forma segura(usando scp, por exemplo). No servidor remoto, a chave deve ser incluída no arquivo/etc/named.conf para permitir uma comunicação segura entre host1 e host2:key host1-host2. { algorithm hmac-md5; secret ";ejIkuCyyGJwwuN3xAteKgg==;};

ATENÇÃO: Permissões de arquivo de /etc/named.conf

Verifique se as permissões do arquivo /etc/named.conf foram restringidasadequadamente. O padrão para esse arquivo é 0640, com o proprietário sendoroot e o grupo, named. Como alternativa, mova as chaves para um outroarquivo com permissões especialmente limitadas, que então será incluído de/etc/named.conf.

Para permitir que o servidor host1 use a chave para host2 (que tem o endereço192.168.2.3 neste exemplo), o arquivo /etc/named.conf do servidor deveincluir a seguinte regra:

402 Referência

Page 403: Reference Pt BR

server 192.168.2.3 { keys { host1-host2. ;};};

Entradas análogas devem ser incluídas nos arquivos de configuração de host2.

Adicione chaves TSIG a quaisquer ACLs (listas de controle de acesso, não confundircom as ACLs do sistema de arquivos) definidas por endereços IP e intervalos de endereçopara possibilitar a segurança da transação. A entrada correspondente deve ter estaaparência:allow-update { key host1-host2. ;};

Este tópico é discutido com mais detalhes no BIND Administrator Reference Manual(Manual de Referência do Administrador BIND), em update-policy.

20.8 Segurança do DNSA DNSSEC, ou segurança do DNS, é descrita no RFC 2535. As ferramentas disponíveispara a DNSSEC serão discutidas no Manual do BIND.

Uma zona considerada segura deve ter uma ou mais chaves associadas a ela. Elas sãogeradas com o comandodnssec-keygen, assim como as chaves do host. O algoritmode criptografia de DSA é usado atualmente para gerar essas chaves. As chaves públicasgeradas devem ser incluídas no arquivo de zona correspondente, com uma regra$INCLUDE.

Com o comando dnssec-makekeyset, todas as chaves geradas são empacotadasem um conjunto, que deve ser transferido para a zona-pai de forma segura. Na zona-pai, o conjunto é assinado com dnssec-signkey. Os arquivos gerados por essecomando são usados para assinar as zonas com o comando dnssec-signzone, quepor sua vez gera os arquivos a serem incluídos em cada zona de /etc/named.conf.

20.9 Mais informaçõesPara obter mais informações, consulte oBINDAdministrator ReferenceManual (Manualde Referência do Administrador do BIND) do pacote bind-doc, instalado em /usr/share/doc/packages/bind/. Considere ainda consultar os RFCs citados pelomanual e as páginas de manual incluídas no BIND. O arquivo /usr/share/doc/

Domain Name System (Sistema de Nomes de Domínio) 403

Page 404: Reference Pt BR

packages/bind/README.SuSE contém informações atualizadas sobre o BINDno SUSE Linux.

404 Referência

Page 405: Reference Pt BR

21Usando o NISAssim que vários sistemas UNIX em uma rede desejam acessar recursos comuns, torna-se muito importante que todas as identidades de usuário e grupo sejam a mesma paratodas as máquinas nessa rede. A rede deve ser transparente para os usuários: qualquerque seja a máquina que estiverem usando, sempre se encontrarão exatamente no mesmoambiente. Isso é possível através dos serviços do NIS e do NFS. O NFS distribui sistemasde arquivos em uma rede e é discutido no Capítulo 22, Compartilhando sistemas dearquivos com o NFS (p 415).

O NIS (Network Information Service - Serviço de Informações de Rede) pode serdescrito como um serviço parecido com um banco de dados que fornece acesso aoconteúdo de /etc/passwd, /etc/shadow e /etc/group através de redes. ONIS também pode ser usado para outros fins (disponibilizar o conteúdo de arquivoscomo /etc/hosts ou /etc/services, por exemplo), mas isso está além doescopo dessa introdução. As pessoas, normalmente, referem-se ao NIS como YP (YellowPages - Páginas Amarelas), pois ele funciona como se fosse as “páginas amarelas” darede.

21.1 Configurando servidores NISPara distribuir as informações NIS pelas redes, você pode ter um servidor único (ummaster) que atenda todos os clientes ou servidores NIS escravos que solicitem essasinformações do master e depois retransmitam as informações a seus respectivos clientes.

• Para configurar apenas um servidor NIS para a rede, prossiga com a Seção 21.1.1,“Configurando um servidor NIS master” (p 406).

Usando o NIS 405

Page 406: Reference Pt BR

• Se o servidor NIS master tiver que exportar os dados para servidores escravos emoutras sub-redes, configure o servidor master conforme descrito na Seção 21.1.1,“Configurando um servidor NIS master” (p 406) e configure os servidores escravosdas sub-redes conforme descrito na Seção 21.1.2, “Configurando um servidor NISescravo” (p 411).

21.1.1 Configurando um servidor NIS masterPara configurar um servidor NIS master para sua rede, proceda da seguinte maneira:

1 Inicie o YaST → Serviços de Rede → Servidor NIS.

2 Se precisar somente de um servidor NIS em sua rede ou se for necessário queesse servidor funcione como master para outros servidores NIS escravos, selecioneInstalar e configurar ServidorMaster NIS. O YaST instala os pacotes necessários.

DICA

Se o software do servidor NIS já estiver instalado na sua máquina, cliqueem Criar um servidor NIS mestre para iniciar a criação de um servidorNIS.

Figura 21.1 Configuração do servidor NIS

406 Referência

Page 407: Reference Pt BR

3 Determine opções de configuração NIS básicas:

a Digite o nome do domínio NIS.

b Defina se o host também deve ser um cliente NIS, possibilitando que osusuários efetuem login e acessem os dados do servidor NIS. Para isso,selecione Este host também é um cliente NIS.

Selecione Mudança de senhas para permitir que os usuários da sua rede(usuários locais e aqueles gerenciados pelo servidor NIS) troquem suassenhas no servidor NIS (com o comando yppasswd).

Isso disponibiliza as opçõesPermitir mudanças no campoGECOS ePermitirmudanças no shell de login. “GECOS” significa que os usuários tambémpodem mudar suas configurações de endereço e nomes com o comandoypchfn. “SHELL” permite que os usuários alterem seu shell padrão como comando ypchsh, por exemplo, para mudar de bash para sh. O shellnovo deve ser uma das entradas predefinidas em /etc/shells.

c Se o seu servidor NIS tiver que atuar como servidor master para servidoresescravos NIS em outras sub-redes, selecione Existe um Servidor EscravoNIS ativo.

d Selecione Abrir Portas no Firewall para fazer com que o YaST adapte asconfigurações do firewall para o servidor NIS.

Usando o NIS 407

Page 408: Reference Pt BR

Figura 21.2 Configuração de servidor master

e Saia dessa caixa de diálogo comPróximo ou clique emOutras configuraçõesglobais para fazer configurações extras.Outras configurações globais incluia opção para mudar o diretório de origem do servidor NIS (/etc porpadrão). Além disso, é possível mesclar senhas aqui. A configuração deveser Sim para que os arquivos (/etc/passwd, /etc/shadow e /etc/group) sejam usados para criar o banco de dados do usuário. Tambémdetermine o menor ID de grupo e usuário que deve ser oferecido pelo NIS.Clique em OK para confirmar as configurações e voltar à tela anterior.

408 Referência

Page 409: Reference Pt BR

Figura 21.3 Mudando o diretório e sincronizando arquivos para um servidor NIS

4 Se você habilitou anteriormente a opção Existe um servidor de NIS escravo ativo,digite os nomes de host usados como escravos e clique em Próximo.

5 Se você não usa servidores escravos, a configuração escrava é ignorada e vocêcontinuará diretamente na caixa de diálogo para a configuração do banco dedados. Aqui, especifique os mapas, os bancos de dados parciais a seremtransferidos do servidor NIS para o cliente. As configurações padrão geralmentesão adequadas. Para sair dessa caixa de diálogo, clique em Próximo.

6 Marque que mapas devem estar disponíveis e clique em Próximo para continuar.

Usando o NIS 409

Page 410: Reference Pt BR

Figura 21.4 Configuração de mapas do servidor NIS

7 Digite os hosts que têm permissão para fazer consultas ao servidor NIS. Cliqueno botão apropriado para adicionar, editar ou apagar hosts. Especifique de quaisredes as solicitações 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 127.0.0.00.0.0.0 0.0.0.0

A primeira entrada habilita conexões do seu próprio host, que é o servidor NIS.A segunda permite que todos os hosts enviem as solicitações ao servidor.

410 Referência

Page 411: Reference Pt BR

Figura 21.5 Configurando permissões de solicitação para um servidor NIS

8 Clique em Concluir para gravar as mudanças e sair da configuração.

21.1.2 Configurando um servidor NISescravo

Para configurar outros servidores escravos NIS na rede, proceda da seguinte forma:

1 Inicie o YaST → Serviços de Rede → Servidor NIS.

2 Selecione Instalar e configurar Servidor Escravo NIS e clique em Próximo.

DICA

Se o software do servidor NIS já estiver instalado na sua máquina, cliqueem Criar um servidor NIS escravo para iniciar a criação de um servidorNIS escravo.

3 Conclua a configuração básica do servidor NIS escravo:

Usando o NIS 411

Page 412: Reference Pt BR

a Digite o domínio NIS.

b Digite o nome do host ou endereço IP do servidor master.

c Selecione Este host também é um cliente NIS para habilitar logins de usuárionesse servidor.

d Adapte as configurações do firewall com Abrir Portas no Firewall.

e Clique em Próximo.

4 Digite os hosts que têm permissão para fazer consultas ao servidor NIS. Cliqueno botão apropriado para adicionar, editar ou apagar hosts. Especifique de quaisredes as solicitações podem ser enviadas para o servidor NIS. Normalmente, issose refere a todos os hosts. Nesse caso, deve haver as duas entradas a seguir:255.0.0.0 127.0.0.00.0.0.0 0.0.0.0

A primeira entrada habilita conexões do seu próprio host, que é o servidor NIS.A segunda permite que todos os hosts com acesso à mesma rede enviemsolicitações ao servidor.

5 Clique em Concluir para gravar as mudanças e sair da configuração.

21.2 Configurando clientes NISUse o módulo Cliente NIS para configurar uma estação de trabalho para usar o NIS.Selecione se o host possui um endereço IP estático ou se recebe um emitido pelo DHCP.O DHCP também pode fornecer o domínio NIS e o servidor NIS. Para obter maisinformações sobre o DHCP, consulte o Capítulo 23,DHCP (p 421). Se um endereço IPestático for usado, especifique o domínio NIS e o servidor NIS manualmente. Consultea Figura 21.6, “Definindo o domínio e o endereço de um servidor NIS” (p 413).Procurarfaz o YaST procurar um servidor NIS ativo em toda a rede. Dependendo do tamanhoda rede local, esse pode ser um processo demorado. Broadcast solicita um servidor narede local quando não há resposta dos servidores especificados.

Você também pode especificar vários servidores, digitando seus endereços emEndereçosIP dos servidores NIS e separando-os com espaços.

412 Referência

Page 413: Reference Pt BR

Dependendo da instalação local, você também poderá ativar o automounter. Essa opçãotambém instala softwares adicionais, se necessário.

Nas configurações avançadas, desabilite a opção Responder aos Hosts Remotos paraque outros hosts não possam consultar o servidor usado pelo seu cliente. Ao marcar aopção Servidor Estragado, o cliente poderá receber respostas de um servidor que secomunica por uma porta sem privilégio. Para obter mais informações, consulteman ypbind.

Ao terminar suas configurações, clique em Concluir para gravá-las e retornar ao centrode controle do YaST.

Figura 21.6 Definindo o domínio e o endereço de um servidor NIS

Usando o NIS 413

Page 414: Reference Pt BR
Page 415: Reference Pt BR

22Compartilhando sistemas dearquivos com o NFSComo mencionado no Capítulo 21, Usando o NIS (p 405), o NFS funciona com o NISpara tornar uma rede transparente para o usuário. Com o NFS, é possível distribuirsistemas de arquivos pela rede. Não importa em qual terminal os usuários estãoconectados. Eles sempre se encontram no mesmo ambiente.

Assim como o NIS, o NFS é um sistema cliente/servidor. Uma máquina pode ser ambos— pode fornecer sistemas de arquivos pela rede (exportar) e montar sistemas de arquivosa partir de outros hosts (importar).

IMPORTANTE: Necessidade do DNS

A princípio, todas as exportações podem ser feitas usando somente endereçosIP. Para evitar tempos de espera, você deve ter um sistema DNS emfuncionamento. Isso é necessário pelo menos para fins de registro, pois odaemon montado inverte pesquisas.

22.1 Importando sistemas de arquivoscom o YaST

Usuários autorizados para fazer isso podem montar diretórios NFS a partir de umservidor NFS em suas próprias árvores de arquivos. Isso pode ser feito mais facilmenteusando o módulo YaST Cliente NFS. Basta digitar o nome de host do servidor NFS, odiretório a ser importado e o ponto de montagem no qual esse diretório deve ser montadolocalmente. Tudo isso é feito depois que você clica em Adicionar na primeira caixa de

Compartilhando sistemas de arquivos com o NFS 415

Page 416: Reference Pt BR

diálogo. Clique em Abrir Porta no Firewall para abrir o firewall e permitir quecomputadores remotos acessem o serviço. O status do firewall é mostrado próximo àcaixa de seleção. Ao clicar em OK, você grava suas mudanças. Consulte a Figura 22.1,“Configuração do cliente NFS com o YaST” (p 416).

Figura 22.1 Configuração do cliente NFS com o YaST

22.2 Importando sistemas de arquivosmanualmente

Os sistemas de arquivos podem ser facilmente importados manualmente de um servidorNFS. O único pré-requisito é executar um mapeador de porta RPC, que pode ser iniciadocom a digitação do comando rcportmap start como root. Depois que esse pré-requisito é executado, os sistemas de arquivos remotos exportados nas respectivasmáquinas podem ser montados no sistema de arquivos da mesma forma que discosrígidos locais, usando o comando mount com a seguinte sintaxe:mount host:remote-path local-path

Se os diretórios de usuário da máquina sun, por exemplo, precisarem ser importados,use o seguinte comando:

416 Referência

Page 417: Reference Pt BR

mount sun:/home /home

22.3 Exportando sistemas de arquivoscom o YaST

Com o YaST, transforme um host de sua rede em um servidor NFS — um servidor queexporta diretórios e arquivos para todos os hosts aos quais ele concede acesso. Issopoderia ser feito para fornecer aplicativos a todos os membros de um grupo, sem instalá-los localmente em cada um dos hosts. Para instalar um servidor como esse, inicie oYaST e selecione Serviços de Rede → Servidor NFS. Uma caixa de diálogo como a daFigura 22.2, “Ferramenta de configuração do servidor NFS” (p 417) é exibida.

Figura 22.2 Ferramenta de configuração do servidor NFS

Em seguida, ative Iniciar Servidor NFS e clique em Próximo. No campo de textosuperior, digite os diretórios a serem exportados. Abaixo, digite os hosts que devem teracesso a eles. Essa caixa de diálogo é mostrada na Figura 22.3, “Configurando umservidor NFS com o YaST” (p 418). Há quatro opções que podem ser configuradas paracada host: host único, grupos de rede, curingas e redes IP. Umaexplicação mais detalhada dessas opções é fornecida por man exports. Sair concluia configuração.

Compartilhando sistemas de arquivos com o NFS 417

Page 418: Reference Pt BR

Figura 22.3 Configurando um servidor NFS com o YaST

IMPORTANTE: Configuração automática de firewall

Se um firewall estiver ativo no seu sistema (SuSEfirewall2), o YaST adaptará suaconfiguração para o servidor NFS habilitando o serviço nfs quando Abrir Portasno Firewall for selecionado.

22.4 Exportando sistemas de arquivosmanualmente

Se não você deseja usar o YaST, verifique se os sistemas a seguir podem ser executadosno servidor NFS:

• portmapper RPC (portmap)

• daemon de montagem do RPC (rpc.mountd)

• daemon NFS do RPC (rpc.nfsd)

418 Referência

Page 419: Reference Pt BR

Para que esses serviços sejam iniciados pelos scripts /etc/init.d/portmap e/etc/init.d/nfsserver quando o sistema for inicializado, digite os comandosinsserv /etc/init.d/nfsserver e insserv /etc/init.d/portmap.Defina também quais sistemas de arquivos devem ser exportados para quais hosts doarquivo de configuração /etc/exports.

Para que cada diretório possa exportar, uma linha é necessária para configurar asmáquinas que podem acessar esse diretório com determinadas permissões. Todos ossubdiretórios desse diretório também são automaticamente exportados. As máquinasautorizadas são normalmente especificadas com seus nomes completos (incluindo onome de domínio), mas é possível usar curingas como * ou ? (que se expandem damesma forma que o shell Bash). Se nenhuma máquina for especificada aqui, qualquermáquina poderá importar esse sistema de arquivos com as permissões fornecidas.

Configure as permissões entre colchetes após o nome da máquina para o sistema dearquivos a ser exportado. As opções mais importantes são mostradas na Tabela 22.1,“Permissões para sistema de arquivos exportados” (p 419).

Tabela 22.1 Permissões para sistema de arquivos exportados

significadoopção

O sistema de arquivos é exportado com permissão ApenasLeitura (padrão).

ro

O sistema de arquivos é exportado com permissão leitura-gravação.

rw

Isso garante que o usuário root de uma máquina importadanão possua permissões root nesse sistema de arquivos. Isso

root_squash

pode ser feito designando o ID de usuário 65534 a usuárioscom o ID 0 (root). Esse ID de usuário deve ser configuradocomo nobody (que é o padrão).

Não designa o ID de usuário 0 ao ID de usuário 65534,mantendo as permissões de root válidas.

no_root_squash

Converte links absolutos (os que iniciam com /) em umaseqüência de ../. Isso só terá utilidade se todo o sistema dearquivos de uma máquina estiver montado (padrão).

link_relative

Compartilhando sistemas de arquivos com o NFS 419

Page 420: Reference Pt BR

significadoopção

Os links simbólicos permanecem intactos.link_absolute

Os IDs de usuário são exatamente os mesmos no cliente e noservidor (padrão).

map_identity

Cliente e servidor não possuem IDs de usuáriocorrespondentes. Isso faz com que o nfsd crie uma tabela de

map_daemon

conversão para IDs de usuário. O daemon ugidd é necessáriopara que isso funcione.

Seu arquivo exportações talvez fique parecido com o Exemplo 22.1, “/etc/exports”(p 420). /etc/exports é lido por mountd e nfsd. Se você fizer mudanças nessearquivo, reinicie mountd e nfsd para que elas sejam efetivadas. Isso pode ser feitofacilmente com o rcnfsserver restart.

Exemplo 22.1 /etc/exports## /etc/exports#/home sun(rw) venus(rw)/usr/X11 sun(ro) venus(ro)/usr/lib/texmf sun(ro) venus(rw)/ earth(ro,root_squash)/home/ftp (ro)# End of exports

22.5 Mais informaçõesInformações sobre como configurar um servidor NFS estão disponíveis em /usr/share/doc/packages/nfs-utils/README e nos documentos listados. Adocumentação técnica detalhada está disponível online em http://nfs.sourceforge.net/.

420 Referência

Page 421: Reference Pt BR

23DHCPA finalidade do DHCP é designar configurações de redes de forma central, a partir deum servidor, em vez de defini-las localmente em cada estação de trabalho. Um hostconfigurado para usar o DHCP não tem controle sobre seu próprio endereço estático.Ele é habilitado para configurar a si mesmo de forma completa e automática, de acordocom as direções do servidor. Se você usar o NetworkManager no lado cliente, não seránecessário configurar o cliente. Isto é útil caso haja ambientes variáveis e apenas umainterface ativa de cada vez. Nunca use o NetworkManager em uma máquina que executeum servidor DHCP.

Uma forma de configurar um servidor DHCP é identificar cada cliente através doendereço de hardware de sua respectiva placa de rede (na maioria dos casos, fixa) e,então, fornecer a esse cliente configurações idênticas toda vez que ele se conectar aoservidor. O DHCP também pode ser configurado para designar endereços a cada clienteinteressado de forma dinâmica, a partir de um pool de endereços configurado para isso.No último caso, o servidor DHCP tenta designar o mesmo endereço ao cliente toda vezque ele recebe uma solicitação, mesmo durante períodos mais longos. Isso só funcionaenquanto a rede não tiver mais clientes do que endereços.

O DHCP facilita a vida dos administradores do sistema. Quaisquer mudanças, mesmoas maiores, relacionadas a endereços e à configuração de rede, geralmente podem serimplementadas de forma centralizada, editando o arquivo de configuração do servidor.Isso é mais conveniente do que reconfigurar inúmeras estações de trabalho. Tambémé muito mais fácil integrar máquinas, especialmente as mais novas, na rede, pois podemreceber um endereço IP do pool. A recuperação de configurações de rede apropriadasde um servidor DHCP é útil principalmente no caso de laptops regularmente usadosem redes diferentes.

DHCP 421

Page 422: Reference Pt BR

Um servidor DHCP não só fornece o endereço IP e a máscara de rede, como tambémos endereços do servidor de nomes, o nome de host, o nome de domínio e o gateway aser usado pelo cliente. Além disso, o DHCP permite que vários outros parâmetros sejamconfigurados de forma centralizada, por exemplo, um servidor de horários do qualclientes possam fazer poll do horário atual ou até mesmo um servidor de impressão.

23.1 Configurando um servidor DHCPcom o YaST

Quando o módulo é iniciado pela primeira vez, um assistente é iniciado, solicitandoque você tome algumas decisões básicas referentes à administração do servidor. Aconclusão dessa configuração inicial produz uma configuração de servidor muito básica,que deve funcionar com aspectos essenciais. O modo de especialista pode ser usadopara lidar com tarefas de configuração mais avançadas.

seleção de placaNa primeira etapa, o YaST procura interfaces de rede disponíveis no sistema e,depois, mostra-as em uma lista. Na lista, selecione a interface em que o servidorDHCP deve escutar e clique em Adicionar. Em seguida, selecione Abrir Firewallpara Interfaces Selecionadas para abrir o firewall para essa interface. Consulte aFigura 23.1, “Servidor DHCP: seleção de placa” (p 423).

422 Referência

Page 423: Reference Pt BR

Figura 23.1 Servidor DHCP: seleção de placa

configurações globaisNos campos de entrada, forneça os detalhes da rede para todos os clientes que oservidor DHCP deve gerenciar. Esses detalhes são o nome de domínio, o endereçode um servidor de horário, os endereços do servidor de nomes primário e secundário,os endereços de um servidor WINS e de impressão (para uma rede mista com osclientes Windows e Linux), o endereço de gateway e o tempo de aluguel. Consultea Figura 23.2, “Servidor DHCP: configurações globais” (p 424).

DHCP 423

Page 424: Reference Pt BR

Figura 23.2 Servidor DHCP: configurações globais

DHCP dinâmicoNessa etapa, configure o nível de dinamismo dos endereços IP designados aosclientes. Para fazer isso, especifique uma faixa IP a partir da qual o servidor podedesignar endereços a clientes DHCP. Todos esses endereços precisam ser cobertospela mesma máscara de rede. Especifique também o tempo de aluguel durante oqual um cliente pode manter seu endereço IP sem precisar solicitar uma extensãodo aluguel. Outra opção é especificar o tempo de aluguel máximo, que é o períododurante o qual o servidor reserva um endereço IP para um cliente específico.Consulte a Figura 23.3, “Servidor DHCP: DHCP dinâmico” (p 425).

424 Referência

Page 425: Reference Pt BR

Figura 23.3 Servidor DHCP: DHCP dinâmico

Concluindo a configuração e definindo o modo de inícioDepois da terceira parte do assistente de configuração, uma última caixa de diálogoé mostrada, na qual você pode definir como o servidor DHCP deve ser inicializado.Aqui, especifique se o servidor DHCP deve iniciar automaticamente quando osistema for inicializado ou iniciar manualmente (por exemplo, para fins de teste)quando necessário. Clique em Concluir para concluir a configuração do servidor.Consulte a Figura 23.4, “Servidor DHCP: Inicialização” (p 426).

DHCP 425

Page 426: Reference Pt BR

Figura 23.4 Servidor DHCP: Inicialização

23.2 Pacotes de software DHCPTanto um servidor DHCP quanto clientes DHCP estão disponíveis para o SUSE Linux.O servidor DHCP disponível é o dhcpd (publicado pelo Internet Software Consortium).No lado do cliente, escolha entre dois programas clientes DHCP: dhclient (também doISC) e daemon cliente do DHCP no pacote dhcpcd.

O SUSE Linux instala o dhcpcd por padrão. O programa é muito fácil de manusear eé iniciado automaticamente em cada inicialização do sistema para monitorar um servidorDHCP. Ele não precisa de um arquivo de configuração para fazer seu trabalho e funcionaassim que é instalado na maioria das configurações padrão. Em situações maiscomplexas, use o dhclient ISC, que é controlado por meio de um arquivo de configuração/etc/dhclient.conf.

23.3 O dhcpd do servidor DHCPO núcleo de qualquer sistema DHCP é o daemon do protocolo de configuração do hostdinâmico. Esse servidor aluga endereços e observa como são usados, de acordo com

426 Referência

Page 427: Reference Pt BR

as configurações definidas no arquivo de configuração /etc/dhcpd.conf. Aomudar os parâmetros e valores desse arquivo, um administrador de sistemas podeinfluenciar o comportamento do programa de várias formas. Observe o arquivo deamostra básica /etc/dhcpd.conf no Exemplo 23.1, “Arquivo de configuração/etc/dhcpd.conf” (p 427).

Exemplo 23.1 Arquivo de configuração /etc/dhcpd.confdefault-lease-time 600; # 10 minutes max-lease-time 7200; # 2 hours

opção nome de domínio "cosmos.all"; opção servidores de nomes de domínio 192.168.1.1, 192.168.1.2; opção endereço de broadcast 192.168.1.255; opção roteadores 192.168.1.254; opção máscara de sub-rede 255.255.255.0;

sub-rede 192.168.1.0 máscara 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 configuração simples deve ser suficiente para que o servidor DHCPdesigne endereços IP à rede. Verifique se um ponto-e-vírgula foi inserido no final decada linha, caso contrário, o dhcpd não será iniciado.

O arquivo de exemplo pode ser dividido em três seções. A primeira define quantossegundos um endereço IP é alugado para um cliente que o solicitou por padrão (tempode aluguel padrão) antes de solicitar uma renovação. Essa parte também incluiuma declaração do período máximo em que uma máquina pode manter um endereçoIP designado pelo servidor DHCP sem solicitar uma renovação (max-lease-time).

Na segunda parte, alguns parâmetros de rede básicos são definidos em um nível global:

• A linha option domain-name define o domínio padrão da sua rede.

• Com a entrada option domain-name-servers, especifique até três valorespara os servidores DNS usados para resolver endereços IP em nomes de host evice-versa. Preferencialmente, configure um servidor de nomes em sua máquinaou em qualquer outra da rede antes de configurar o DHCP. Esse servidor de nomesdeve também definir um nome de host para cada endereço dinâmico e vice-versa.Para aprender a configurar o seu próprio servidor de nomes, leia o Capítulo 20,Domain Name System (Sistema de Nomes de Domínio) (p 381).

DHCP 427

Page 428: Reference Pt BR

• A linha option broadcast-address define o endereço de broadcast a serusado pelo cliente solicitante.

• Com option routers, defina para onde o servidor deve enviar pacotes dedados que não puderem ser enviados para um host da rede local (de acordo com oendereço de host de origem e de destino e a máscara de sub-rede fornecidos). Namaioria dos casos, especialmente em redes menores, esse roteador é idêntico aogateway da Internet.

• Comoption subnet-mask, especifique a máscara de rede designada a clientes.

A última seção do arquivo define uma rede, incluindo uma máscara de sub-rede. Paraconcluir, especifique a faixa de endereços que o daemon do DHCP deve usar paradesignar endereços IP a clientes interessados. No Exemplo 23.1, “Arquivo deconfiguração /etc/dhcpd.conf” (p 427), os clientes podem receber qualquer endereçoentre 192.168.1.10 e 192.168.1.20, assim como 192.168.1.100 e192.168.1.200.

Depois de editar essas poucas linhas, você conseguirá ativar o daemon do DHCP como comando rcdhcpd start. Ele poderá ser usado imediatamente. Use o comandorcdhcpdcheck-syntax para executar uma rápida verificação de sintaxe. Se houverproblemas inesperados em sua configuração (o servidor for interrompido com um erroou não retornar done na inicialização), você deverá descobrir o que aconteceu deerrado, procurando informações no registro do sistema principal /var/log/messages ou no console 10 ( Ctrl + Alt + F10 ).

Em um sistema SUSE Linux padrão, o daemon do DHCP é iniciado em um ambientechroot por razões de segurança. Os arquivos de configuração precisam ser copiadospara o ambiente chroot para que o daemon possa localizá-los. Normalmente, não épreciso se preocupar com isso, pois o comandorcdhcpdstart copia automaticamenteos arquivos.

23.3.1 Clientes com endereços IP fixosO DHCP também pode ser usado para designar um endereço estático predefinido a umcliente específico. Endereços designados explicitamente sempre têm prioridade sobreendereços dinâmicos do pool. Um endereço estático nunca expira da mesma forma queo dinâmico, por exemplo, se não houver endereços suficientes disponíveis, o servidorprecisará redistribuí-los entre clientes.

428 Referência

Page 429: Reference Pt BR

Para identificar um cliente configurado com um endereço estático, o dhcpd usa oendereço de hardware, que é um código numérico fixo, globalmente exclusivo, queconsiste em seis pares de octetos para a identificação de todos os dispositivos da rede(por exemplo, 00:00:45:12:EE:F4). Se as respectivas linhas, como as doExemplo 23.2, “Adições ao arquivo de configuração” (p 429), forem adicionadas aoarquivo de configuração do Exemplo 23.1, “Arquivo de configuração /etc/dhcpd.conf”(p 427), o daemon do DHCP sempre designará o mesmo conjunto de dados ao clientecorrespondente.

Exemplo 23.2 Adições ao arquivo de configuraçãohost 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 naprimeira linha e o endereço MAC na segunda linha. Em hosts Linux, encontre o endereçoMAC com o comando ip link show, seguido do dispositivo de rede (por exemplo,eth0). A saída deve conter algo comolink/ether 00:00:45:12:EE:F4

No exemplo anterior, um cliente com uma placa de rede, cujo endereço MAC é00:00:45:12:EE:F4, adquire o endereço IP 192.168.1.21 e o nome de hostearth automaticamente. O tipo de hardware a ser inserido é ethernet em quase todosos casos, embora token-ring, utilizado freqüentemente em sistemas IBM, tambémseja suportado.

23.3.2 Versão SUSE LinuxPara aprimorar a segurança, a versão SUSE do servidor DHCP do ISC vem com o patchnão-raiz/chroot de Ari Edelkind aplicado. Isso permite que o dhcpd seja executado como ID de usuário nobody e em um ambiente chroot (/var/lib/dhcp). Para que issoseja possível, o arquivo de configuração dhcpd.conf precisa estar localizado em/var/lib/dhcp/etc. O script init copia automaticamente o arquivo para essediretório na inicialização.

Controle o comportamento do servidor em relação a esse recurso, por meio de entradasno arquivo/etc/sysconfig/dhcpd. Para executar o dhcpd sem o ambiente chroot,

DHCP 429

Page 430: Reference Pt BR

configure a variávelDHCPD_RUN_CHROOTED em/etc/sysconfig/dhcpd para“não”.

Para permitir que o dhcpd resolva nomes de host, mesmo de dentro do ambiente chroot,alguns outros arquivos de configuração também precisam ser copiados:

• /etc/localtime

• /etc/host.conf

• /etc/hosts

• /etc/resolv.conf

Esses arquivos são copiados para /var/lib/dhcp/etc/ quando o script init éiniciado. Faça as mudanças necessárias nessas cópias, caso sejam modificadasdinamicamente por scripts como /etc/ppp/ip-up. Entretanto, você não precisaráse preocupar com isso se o arquivo de configuração especificar somente endereços IP(em vez de nomes de host).

Se a configuração incluir arquivos adicionais que devem ser copiados para o ambientechroot, defina-os na variável DHCPD_CONF_INCLUDE_FILES do arquivo /etc/sysconfig/dhcpd. Para garantir que o recurso de registro DHCP continuefuncionando mesmo depois de uma reinicialização do daemon do syslog-ng, há a entradaadicionalSYSLOGD_ADDITIONAL_SOCKET_DHCP no arquivo/etc/sysconfig/syslog.

23.4 Mais informaçõesHá mais informações disponíveis sobre o DHCP no site do Internet Software Consortium(http://www.isc.org/products/DHCP/). Também é possível encontrarinformações nas páginas de manual do dhcpd, dhcpd.conf, dhcpd.leases edhcp-options.

430 Referência

Page 431: Reference Pt BR

24Sincronização de horário com NTPO mecanismo NTP (network time protocol) é um protocolo para sincronizar a hora dosistema na rede. Primeiro, uma máquina pode obter a hora de um servidor, que é umafonte de tempo confiável. Segundo, a máquina pode agir como uma fonte de horáriopara outros computadores na rede. O objetivo é duplo — manter o tempo absoluto e asincronização do horário do sistema de todas as máquinas na rede.

Manter uma hora de sistema exata é importante em várias situações. O relógio dohardware interno (BIOS) não atende aos requisitos de aplicativos como bancos de dados.A correção manual da hora do sistema levaria a problemas severos pois, por exemplo,um pulo inverso pode causar o mau funcionamento de aplicativos críticos. Em umarede, em geral é necessário sincronizar a hora do sistema em todas as máquinas, maso ajuste de hora manual não é uma boa abordagem. O xntp fornece um mecanismo pararesolver esses problemas. Ele ajusta continuamente a hora do sistema com a ajuda deservidores de horário confiáveis na rede. Ele habilita também o gerenciamento derelógios de referência local como relógios controlados pelo rádio.

24.1 Configurando um cliente NTPcom YaST

O xntp está predefinido para usar o relógio do computador local como referência dehorário. Usar o relógio (BIOS), porém, serve somente como uma alternativa caso nãohaja uma fonte de horário de precisão maior disponível. O SUSE Linux facilita aconfiguração de um cliente NTP com YaST. Use a configuração rápida ou complexa

Sincronização de horário com NTP 431

Page 432: Reference Pt BR

em clientes que não executam o SUSEfirewall porque esses clientes pertencem a umaintranet protegida. Ambas estão descritas no seguinte.

24.1.1 Configuração de cliente NTP rápidaA configuração de cliente NTP fácil (Serviços de Rede → Cliente NTP) consiste emduas caixas de diálogo. Defina o modo de inicialização do xntpd e do servidor paraconsultar a primeira caixa de diálogo. Para iniciar o xntpd automaticamente quando osistema for inicializado, clique emDurante a Inicialização. Especifique aConfiguraçãodo Servidor NTP. Clique em Usar Servidor Aleatório... se não puder usar um servidorde horário local, ou clique em Selecionar para acessar uma segunda caixa de diálogoe selecionar um servidor de horário adequado para sua rede.

Figura 24.1 YaST: Configurando um cliente NTP

Na caixa de diálogo de servidor detalhada, determine se você implementará asincronização de horário usando um servidor de horário a partir da rede local (ServidorNTP Local) ou um servidor de horário baseado na Internet que lida com o seu fusohorário (Servidor NTP Público). Para um servidor de horário local, clique em Buscapara iniciar uma consulta SLP por servidores de horário disponíveis na sua rede.Selecione o servidor de horário mais adequado a partir da lista de resultados de pesquisae saia da caixa de diálogo com OK. Para um servidor de horário público, selecione o

432 Referência

Page 433: Reference Pt BR

país (fuso horário) e um servidor adequado da lista sob Servidor NTP Público, emseguida, saia da caixa de diálogo com OK. Na caixa de diálogo principal, teste adisponibilidade do servidor selecionado com Testar e saia da caixa de diálogo comConcluir.

24.1.2 Configuração de Cliente NTPComplexa

A configuração complexa de um cliente NTP pode ser acessada sob ConfiguraçãoComplexa na caixa de diálogo principal do módulo Cliente NTP, mostrado naFigura 24.1, “YaST: Configurando um cliente NTP” (p 432), após selecionar o modode inicialização conforme descrito na configuração rápida.

Figura 24.2 YaST: Configuração de Cliente NTP Complexa

Em Configuração de Cliente NTP Complexa, determine se xntpd deve ser iniciado emuma cadeia chroot. Isso aumenta a segurança caso ocorra um ataque em xntpd, poisisso evita que o invasor comprometa todo o sistema. Configurar o Daemon NTP viaDHCP configura o cliente NTP para obter uma lista dos servidores NTP disponíveisna rede via DHCP.

Sincronização de horário com NTP 433

Page 434: Reference Pt BR

Os servidores e outras fontes de horário para cliente a serem consultados estão listadosna parte inferior. Modifique esta lista conforme necessário com Adicionar, Editar eApagar. Exibir Registro fornece a possibilidade de exibir os arquivos de registro doseu cliente.

Clique em Adicionar para adicionar uma nova fonte de informação de horário. Na caixade diálogo seguinte, selecione o tipo de fonte com a qual a sincronização de horáriodeve ser realizada. As seguintes opções estão disponíveis:

ServidorOutra caixa de diálogo permite selecionar um servidor NTP (conforme descrito naSeção 24.1.1, “Configuração de cliente NTP rápida” (p 432)). Ative Usar paraSincronização Inicial para acionar a sincronização da informação de horário entreo servidor e o cliente quando o sistema é inicializado. Um campo de entrada permiteespecificar opções adicionais para xntpd. Consulte /usr/share/doc/packages/xntp-doc (parte do pacote xntp-doc) para obter informaçõesdetalhadas.

ParceiroUm parceiro é uma máquina à qual uma relação simétrica é estabelecida: ele agecomo um servidor de horário e como cliente. Para usar um parceiro na mesma redeem vez de um servidor, insira o endereço do sistema. O restante da caixa de diálogoé igual à caixa de diálogo Servidor.

Relógio controlado pelo rádioPara usar um relógio controlado pelo rádio no seu sistema para a sincronização dehorário, insira o tipo de relógio, o número da unidade, o nome do dispositivo eoutras opções nesta caixa de diálogo. Clique em Calibração do Driver para ajustaro driver. Informações detalhadas sobre a operação de um relógio controlado porrádio local estão disponíveis em /usr/share/doc/packages/xntp-doc/html/refclock.htm.

Transmissão de saídaConsultas e informações sobre horário também podem ser transmitidas na rede.Nesta caixa de diálogo, insira o endereço ao qual estas transmissões devem serenviadas. Não ative a transmissão a menos que você tenha uma fonte de horárioconfiável como um relógio controlado por rádio.

434 Referência

Page 435: Reference Pt BR

Transmissão de entradaSe você deseja que o seu cliente receba suas informações através de transmissão,insira o endereço do qual os respectivos pacotes devem ser aceitos nestes campos.

24.2 Configurando o xntp na redeA forma mais fácil de usar um servidor de horário na rede é definir parâmetros deservidor. Por exemplo, se um servidor de horário chamado ntp.example.com foralcançável a partir da rede, adicione seu nome ao arquivo /etc/ntp.confadicionando a linha server ntp.example.com. Para adicionar mais servidoresde horário, insira linhas adicionais com o servidor de palavras-chave. Após inicializaro xntpd com o comando rcntpd start, leva aproximadamente uma hora até que ohorário esteja estabilizado e o arquivo de registro para corrigir o relógio do computadorlocal seja criado. Com o arquivo de registro, o erro sistemático do relógio do hardwarepode ser computado assim que o computador for ligado. A correção é usadaimediatamente, resultando em uma estabilidade maior do horário do sistema.

Há duas maneiras possíveis de usar o mecanismo NTP como um cliente: Primeiro, ocliente pode consultar o horário a partir de um servidor conhecido em intervalosregulares. Com vários clientes, esta abordagem pode causar uma carga alta no servidor.Segundo, o cliente pode esperar por transmissões de NTP enviadas por servidores dehorário de transmissão na rede. Esta abordagem tem a desvantagem de que a qualidadedo servidor é desconhecida e um servidor transmitindo a informação errada pode causarproblemas graves.

Se o horário for obtido através de uma transmissão, você não precisará do nome doservidor. Neste caso, insira a linha broadcastclient no arquivo de configuração/etc/ntp.conf. Para usar um ou mais servidores de horário conhecidosexclusivamente, insira seus nomes na linha iniciando com servers.

24.3 Configurando um relógio dereferência local

O pacote de software xntp contém drivers para conectar relógios de referência local.Uma lista de relógios suportados está disponível no pacote xntp-doc no arquivo/usr/share/doc/packages/xntp-doc/html/refclock.htm. Cada driver

Sincronização de horário com NTP 435

Page 436: Reference Pt BR

está associado a um número. No xntp, a configuração real ocorre através de pseudo IPs.Os relógios são inseridos no arquivo /etc/ntp.conf como se existissem na rede.Para este propósito, endereços IP especiais são atribuídos a eles na forma127.127.t.u. Aqui, t representa o tipo de relógio e determina o driver a ser usadoe u para unidade, que determina a interface usada.

Normalmente, os drivers individuais têm parâmetros especiais que descrevem detalhesde configuração. O arquivo /usr/share/doc/packages/xntp-doc/html/driverNN.htm (onde NN é o número do driver) fornece informações sobre o tipoespecífico de relógio. Por exemplo, o relógio “type 8” (relógio controlado por rádio nainterface serial) exige um modo adicional que especifica o relógio de forma mais precisa.O módulo de recebimento Conrad DCF77, por exemplo, tem o modo 5. Para usar esterelógio como referência preferida, especifique a palavra-chave prefer. A linha doservidor completa para um módulo de recebimento Conrad DCF77 seria:server 127.127.8.0 mode 5 prefer

Outros relógios seguem o mesmo padrão. Seguindo a instalação do pacote xntp-doc,a documentação para o xntp está disponível no diretório /usr/share/doc/packages/xntp-doc/html. O arquivo /usr/share/doc/packages/xntp-doc/html/refclock.htm fornece links para as páginas do driverdescrevendo os parâmetros do driver.

436 Referência

Page 437: Reference Pt BR

25LDAP — Um serviço de diretórioO LDAP é um conjunto de protocolos criado para acessar e manter diretórios deinformações. O LDAP pode ser usado para vários propósitos, como gerenciamento degrupos e usuários, gerenciamento de configuração de sistema ou gerenciamento deendereços. Este capítulo fornece uma compreensão básica sobre como o OpenLDAPfunciona e como gerenciar dados do LDAP com o YaST. Embora haja váriasimplementações do protocolo LDAP, este capítulo concentra-se inteiramente naimplementação do OpenLDAP.

É crucial em um ambiente de rede manter informações importantes estruturadas erapidamente disponíveis. Isso pode ser realizado com um serviço de diretório que, comoas páginas amarelas comuns, mantém informações disponíveis em uma forma bemestruturada e rapidamente pesquisável.

No caso ideal, um servidor central mantém os dados em um diretório e os distribui atodos os clientes usando um determinado protocolo. Os dados são estruturados de formaa permitir que uma ampla variedades de aplicativos os acessem. Desta forma, não énecessário para cada ferramenta de calendário e cliente de e-mail manter seu própriobanco de dados — um repositório central pode ser acessado em vez disso. Isso reduzbastante o esforço de administração para as informações. O uso de um protocolopadronizado e aberto como o LDAP garante que muitos aplicativos de cliente diferentespossam acessar tais informações.

Um diretório neste contexto é um tipo de banco de dados otimizado para pesquisa eleitura rápida e efetiva:

• Para possibilitar vários acessos de leitura (simultâneos), o acesso de gravação estálimitado a um pequeno número de atualizações pelo administrador. Bancos de

LDAP — Um serviço de diretório 437

Page 438: Reference Pt BR

dados convencionais são otimizados para aceitar o mais amplo volume de dadospossível em um período curto de tempo.

• Como acessos de gravação só podem ser executados de forma restrita, um serviçode diretório é usado para administrar, em sua maioria, informações estáticas, semalterações. Dados em um banco de dados convencional normalmente são alteradoscom freqüência (dados dinâmicos). Números de telefone em um diretório de empresanão são alterados com tanta freqüência como, por exemplo, os númerosadministrados em contabilidade.

• Quando dados estáticos são administrados, atualizações dos conjuntos de dadosexistentes são muito raras. Ao trabalhar com dados dinâmicos, especialmenterelativos a conjuntos de dados como contas de banco ou contabilidade, a consistênciados dados é de importância fundamental. Se um valor deve ser subtraído de umlocal para ser adicionado a outro, ambas as operações devem ocorrersimultaneamente, em uma transação, para garantir o equilíbrio sobre o estoque dedados. Bancos de dados suportam estas transações. Diretórios não suportam estastransações. Inconsistências de curto prazo dos dados são aceitáveis em diretórios.

O design de um serviço de diretório como o LDAP não é criado para suportarmecanismos de consulta ou atualização complexa. Todos os aplicativos acessando esteserviço devem obter acesso de forma rápida e fácil.

Vários serviços de diretório existiram previamente e ainda existem no Unix e fora dele.Novell NDS, Microsoft ADS, Banyan's Street Talk e o OSI standard X.500 são apenasalguns exemplos. O LDAP foi originalmente planejado como uma versão menor doDAP, o protocolo de acesso de diretório, que foi desenvolvido para acessar o X.500.O padrão do X.500 regula a organização hierárquica de entradas de diretório.

O LDAP é uma versão 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 usode TCP/IP facilita o estabelecimento de interfaces entre um aplicativo de acoplagem eo serviço LDAP.

O LDAP, enquanto isso, evoluiu e é usado cada vez mais como uma soluçãoindependente sem o suporte do X.500. O LDAP suporta referências com o LDAPv3(a versão de protocolo no pacote openldap2), possibilitando ter bancos de dadosdistribuídos. O uso de SASL (autenticação simples e camada de segurança) também énovo.

438 Referência

Page 439: Reference Pt BR

O LDAP não está limitado a consultar dados dos servidores X.500, como foi planejadooriginalmente. Há um servidor de código aberto slapd, que pode armazenar informaçõesde objetos em um banco de dados local. Há também uma extensão chamada slurpd,que é responsável por replicar vários servidores LDAP.

O pacote openldap2 consiste em:

slapdUm servidor LDAPv3 independente que administra informações de objeto em umbanco de dados baseado em BerkeleyDB.

slurpdEste programa habilita a replicação de modificações aos dados no servidor LDAPlocal para outros servidores LDAP instalados na rede.

ferramentas adicionais para manutenção do sistemaslapcat, slapadd, slapindex

25.1 LDAP versus NISO administrador do sistema Unix tradicionalmente usa o serviço NIS para resoluçãode nomes e distribuição de dados em uma rede. Os dados de configuração contidos nosarquivos em /etc e os diretórios group, hosts, mail, netgroup, networks,passwd, printcap, protocols, rpc e services são distribuídos por clientesem toda a rede. Estes arquivos podem ser mantidos sem maior esforço pois são arquivosde texto simples. O tratamento de grandes quantidades de dados, porém, torna-se maisdifícil devido a estrutura não existente. O NIS é projetado apenas para plataformasUnix. Isso significa que sua utilização como uma ferramenta de administração de dadoscentralizada em redes heterogêneas não é apropriada.

Ao contrário do NIS, o serviço LDAP não está restrito a redes Unix puras. Servidoresdo Windows (do 2000) suportam o LDAP como um serviço de diretório. A Novelltambém oferece um serviço LDAP. Tarefas de aplicativo mencionadas acima sãosuportadas adicionalmente em sistemas não-Unix.

O princípio LDAP pode ser aplicado a qualquer estrutura de dados que deva seradministrado de forma central. Alguns exemplos de aplicativos são:

• Utilização como substituto do serviço NIS

LDAP — Um serviço de diretório 439

Page 440: Reference Pt BR

• Rota de correio (postfix, sendmail)

• Blocos de endereços para clientes de correio, como Mozilla, Evolution e Outlook

• Administração de descrições de zona para um servidor de nomes BIND9

• Autenticação do usuário com Samba em redes heterogêneas

Esta lista pode ser estendida pois o LDAP é extensível, ao contrário do NIS. A estruturahierárquica claramente definida dos dados facilita a administração de grandesquantidades de dados, pois pode ser pesquisada de forma melhor.

25.2 Estrutura de uma árvore dediretórios LDAP

Um diretório LDAP tem uma estrutura de árvores. Todas as entradas (chamadas objetos)do diretório têm uma posição definida nesta hierarquia. Esta hierarquia é chamada deárvore de informação de diretórios (DIT). O caminho completo à entrada desejada,que a identifica de forma clara, é chamado nome distinto ou DN. Um único nó nocaminho para esta entrada é chamado nome distinto relativo ou RDN. Objetos podemgeralmente ser atribuídos a um ou dois tipos possíveis:

containerEstes objetos podem conter outros objetos. Tais classes de objetos são root (oelemento root da árvore de diretórios, que não existe realmente), c (país) ou(unidade organizacional) edc (componente do domínio). Este modelo é comparávelaos diretórios (pastas) em um sistema de arquivos.

folhaEstes objetos estão no final de uma ramificação e não têm objetos subordinados.Exemplos: person, InetOrgPerson ou groupofNames.

O topo da hierarquia de diretório tem um elemento root. Isso pode conter c (país),dc (componente de domínio) ou o (organização) como elementos subordinados. Asrelações em uma árvore de diretórios LDAP tornam-se mais evidentes no exemploseguinte, mostrado na Figura 25.1, “Estrutura de um diretório LDAP” (p 441).

440 Referência

Page 441: Reference Pt BR

Figura 25.1 Estrutura de um diretório LDAP

O diagrama completo compreende uma árvore de informações de diretório ficcional.As entradas em três níveis estão apresentadas. Cada entrada corresponde a uma caixana figura. O nome distinto válido e completo para o funcionário SUSE ficcionalGeekoLinux, neste caso é cn=Geeko Linux,ou=doc,dc=suse,dc=de. Ele écomposto através da adição do RDN cn=Geeko Linux ao DN da entrada anteriorou=doc,dc=suse,dc=de.

A determinação global dos tipos de objetos que devem ser armazenados no DIT érealizada segundo um esquema. O tipo de um objeto é determinado pela classe deobjeto. A classe de objeto determina quais atributos podem ou devem ser atribuídos aoobjeto em questão. Portanto, um esquema deve conter definições de todos atributos eclasses de objetos usados no cenário do aplicativo desejado. Há alguns esquemas comuns(consulte RFC 2252 e 2256). Porém, é possível criar esquemas personalizados ou usarvários esquemas complementando um ao outro se isso for exigido pelo ambiente noqual o servidor LDAP deve operar.

A Tabela 25.1, “Atributos e classes de objeto usados comumente” (p 442) oferece umapequena visão geral das classes de objeto de core.schema e inetorgperson.schema usadas no exemplo, incluindo atributos necessários e valores de atributosválidos.

LDAP — Um serviço de diretório 441

Page 442: Reference Pt BR

Tabela 25.1 Atributos e classes de objeto usados comumente

Atributoscompulsórios

Entrada deexemplo

SignificadoClasse de objeto

dcsusedomainComponent (nomeiecomponentes do domínio)

dcObject

oudocorganizationalUnit (unidadeorganizacional)

organizationalUnit

sn e cnGeeko LinuxinetOrgPerson (dadosrelativos a pessoas para aintranet ou Internet)

inetOrgPerson

O Exemplo 25.1, “Exemplo de schema.core ” (p 442) mostra um exemplo de uma diretivade esquemas com explicações (numeração de linha para motivos explanatórios).

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 correspondenteorganizationalUnit servem como um exemplo aqui. A linha 1 apresenta o nomedo atributo, seu OID exclusivo (identificador de objeto) (numérico) e a abreviação doatributo.

442 Referência

Page 443: Reference Pt BR

A linha 2 fornece uma descrição breve do atributo com DESC. O RFC correspondentena qual a definição é baseada também é mencionado aqui. SUP na linha 3 indica umtipo de atributo super ordenado ao qual este atributo pertence.

A definição da classe de objeto organizationalUnit começa na linha 4, comona definição do atributo, com um OID e o nome da classe de objeto. A linha 5 apresentauma breve descrição da classe de objeto. A linha 6, com esta entrada SUP top, indicaque esta classe de objeto não está subordinada a outra classe de objeto. A linha 7,começando com MUST, lista todos os tipos de atributo que devem ser usados em conjuntocom um objeto do tipo organizationalUnit. A linha 8, começando com MAY,lista todos os tipos de atributos que são permitidos em conjunto com esta classe deobjeto.

Uma boa introdução para o uso de esquemas pode ser encontrada na documentação deOpenLDAP. Quando instalada, encontre-a em /usr/share/doc/packages/openldap2/admin-guide/index.html.

25.3 Configuração do servidor comslapd.conf

O seu sistema instalado contém um arquivo de configuração completo para o seu servidorLDAP em /etc/openldap/slapd.conf. As únicas entradas estão descritasbrevemente aqui e os ajustes necessários são explicados. Entradas com prefixo de hash(#) são inativas. Este caractere de comentário deve ser removido para ativá-las.

25.3.1 Diretivas globais em slapd.confExemplo 25.2 slapd.conf: Incluir diretiva para esquemasinclude /etc/openldap/schema/core.schemainclude /etc/openldap/schema/cosine.schemainclude /etc/openldap/schema/inetorgperson.schemainclude /etc/openldap/schema/rfc2307bis.schemainclude /etc/openldap/schema/yast.schema

A primeira diretiva em slapd.conf, mostrada no Exemplo 25.2, “slapd.conf: Incluirdiretiva para esquemas” (p 443), specifica o esquema através do qual o diretório LDAPé organizado. A entradacore.schema é compulsória. Esquemas necessários adicionais

LDAP — Um serviço de diretório 443

Page 444: Reference Pt BR

estão anexados a esta diretiva. Informações podem ser encontradas na documentaçãodo OpenLDAP incluída.

Exemplo 25.3 slapd.conf: pidfile e argsfilepidfile /var/run/slapd/slapd.pidargsfile /var/run/slapd/slapd.args

Estes dois arquivos contêm o PID (ID de processo) e alguns dos argumentos com osquais o processo slapd é iniciado. Não há necessidade para modificações 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 deslapd.confque regula as permissões de acesso para o diretório LDAP no servidor. As configuraçõesrealizadas aqui na seção global de slapd.conf são válidas desde que nenhuma regrade acesso personalizada seja declarada na seção específica ao banco de dados. Estasdevem sobrescrever as declarações globais. Conforme apresentado aqui, todos osusuários têm acesso de leitura ao diretório, mas somente o administrador (rootdn)pode gravar para este diretório. O regulamento de controle de acesso no LDAP é umprocesso 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.Ramificações de diretório individuais podem ser protegidas explicitamente comregras separadas. Também é possível processar regiões da árvore de diretórios comuma única regra usando expressões regulares. slapd avalia todas as regras naordem em que elas estão listadas no arquivo de configuração. Mais regras gerais

444 Referência

Page 445: Reference Pt BR

devem estar listadas após outras mais específicas — a primeira regra slapdconsiderada válida é avaliada e todas as entradas seguintes são ignoradas.

• who determina a quem deve ser concedido acesso às áreas determinadas com what.Expressões regulares podem ser usadas. slapd novamente anula a avaliação dewho após a primeira correspondência, por isso regras mais específicas devem serlistadas antes das mais gerais. As entradas mostradas na Tabela 25.2, “Grupos deusuários e suas concessões de acesso” (p 445) são possíveis.

Tabela 25.2 Grupos de usuários e suas concessões de acesso

EscopoTag

Todos os usuários sem exceção*

Usuários (“anônimos”) não autenticadosanônimos

Usuários autenticadosusuários

Usuários conectados com o objeto de destinopróprio

Todos os usuários que correspondem à expressãoregular

dn.regex=<regex>

• acesso especifica o tipo de acesso. Use as opções listadas na Tabela 25.3, “Tiposde acesso” (p 445).

Tabela 25.3 Tipos de acesso

Escopo do acessoTag

Sem acessonenhum

Para entrar em contato com o servidorautenticação

Para objetos para acesso de comparaçãocomparar

Para a utilização de filtros de buscabusca

LDAP — Um serviço de diretório 445

Page 446: Reference Pt BR

Escopo do acessoTag

Acesso de leituraler

Acesso de gravaçãogravar

slapd compara o direito de acesso solicitado pelo cliente com os concedidos emslapd.conf. Acesso é concedido ao cliente se as regras permitirem um direitoigual ou maior do que o solicitado. Se o cliente solicitar direitos maiores do que osdeclarados nas regras, o acesso é negado.

O Exemplo 25.5, “slapd.conf: Exemplo de controle de acesso” (p 446) mostra umexemplo de um simples controle de acesso que pode ser desenvolvido arbitrariamenteusando expressões regulares.

Exemplo 25.5 slapd.conf: Exemplo de controle de acessoaccess 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 gravaçãoa uma entrada ou individual. Todos os outros usuários autenticados têm acesso deleitura e o restante do mundo não tem acesso.

DICA: Estabelecendo regras de acesso

Se não houver acesso a uma regra ou nenhuma correspondência por diretiva,o acesso é negado. Somente direitos de acesso explicitamente declarados sãoconcedidos. Se nenhuma regra for declarada, o princípio padrão é o acesso degravação para o administrador e o acesso de leitura para o restante do mundo.

Encontre informações detalhadas e uma configuração de exemplo para direitos de acessoLDAP na documentação online do pacote openldap2 instalado.

Fora a possibilidade de administrar permissões de acesso com o arquivo de configuraçãodo servidor central (slapd.conf), não há informações de controle de acesso (ACI).A ACI permite o armazenamento das informações de acesso para objetos individuaisna árvore LDAP. Este tipo de controle de acesso ainda não é comum e é considerado

446 Referência

Page 447: Reference Pt BR

experimental pelos desenvolvedores. Consulte http://www.openldap.org/faq/data/cache/758.html para obter informações.

25.3.2 Diretivas específicas de bancos dedados em slapd.conf

Exemplo 25.6 slapd.conf: Diretivas específicas de bancos de dadosdatabase 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 autenticação forte é encorajado. rootpw secret # O diretório de banco de dados DEVE existir antes da execução de slapd E # deve estar acessível 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 naprimeira linha desta seção (consulte o Exemplo 25.6, “slapd.conf: Diretivas específicasde bancos de dados” (p 447)). checkpoint determina a quantidade de dados (em kb)mantida no registro de transação antes que seja gravada no banco de dados real e otempo (em minutos) entre as duas ações de gravação. cachesize define o númerode objetos mantidos no cache do banco de dados. suffix determina por qual parteda árvore LDAP este servidor deve ser responsável. O rootdn seguinte determinaquem possui direitos de administrador para este servidor. O usuário declarado aqui nãoprecisa ter uma entrada LDAP ou existir como um usuário regular. A senha doadministrador é definida com rootpw. Em vez de usar secret aqui, é possível inseriro hash da senha do administrador criado por slappasswd. A diretiva directoryindica o diretório (no sistema de arquivos) onde os diretórios de bancos de dados estãoarmazenados no servidor. A última diretiva, index objectClass eq, resulta namanutenção de um índice de todas as classes de objetos. Atributos para os quais osusuários pesquisam com freqüência podem ser adicionados aqui de acordo com aexperiência. Regras de acesso personalizado definidas aqui para o banco de dadossão usadas em vez de regras de acesso global.

LDAP — Um serviço de diretório 447

Page 448: Reference Pt BR

25.3.3 Iniciando e interrompendo osservidores

Depois que o servidor LDAP estiver totalmente configurado e todas as entradas desejadastiverem sido realizadas de acordo com o padrão descrito na Seção 25.4, “Tratamentode dados no diretório LDAP” (p 448), inicie o servidor LDAP como root inserindorcldap start. Para interromper o servidor manualmente, insira o comandorcldapstop. Solicite o status do servidor LDAP em execução com o rcldap status.

O editor de níveis de execução YaST, descrito na Seção 8.2.3, “Configurando serviçosdo sistema (runlevel) com o YaST” (p 196), pode ser usado para que o servidor sejainiciado e interrompido automaticamente na inicialização e na pausa do sistema. Tambémé possível criar os links correspondentes aos scripts de início e interrupção com ocomando insserv de um prompt de comando, conforme descrito na Seção 8.2.2,“Scripts Init” (p 192).

25.4 Tratamento de dados nodiretório LDAP

O OpenLDAP oferece uma série de ferramentas para a administração de dados nodiretório LDAP. A quatro ferramentas mais importantes para adicionar, apagar, pesquisare modificar o estoque de dados são explicadas abaixo.

25.4.1 Inserindo dados em um diretórioLDAP

Depois que a configuração 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. OpenLDAPoferece o comando ldapadd para esta tarefa. Se possível, adicione os objetos ao bancode dados em pacotes por razões práticas. O LDAP é capaz de processar o formato LDIF(formato intercambiável de dados LDAP) para isso. Um arquivo LDIF é um arquivode texto simples que pode conter um número arbitrário de pares de atributo e valor.Consulte os arquivos de esquema declarados em slapd.conf para os atributos e as

448 Referência

Page 449: Reference Pt BR

classes de objeto disponíveis. O arquivo LDIF para criar uma estrutura bruta para oexemplo na Figura 25.1, “Estrutura de um diretório LDAP” (p 441) teria a mesmaaparência que no Exemplo 25.7, “Exemplo de um arquivo LDIF” (p 449).

Exemplo 25.7 Exemplo de um arquivo LDIF# The SUSE Organizationdn: dc=suse,dc=deobjectClass: dcObjectobjectClass: organizationo: SUSE AG dc: suse

# The organizational unit development (devel)dn: ou=devel,dc=suse,dc=deobjectClass: organizationalUnitou: devel

# The organizational unit documentation (doc)dn: ou=doc,dc=suse,dc=deobjectClass: organizationalUnitou: doc

# The organizational unit internal IT (it)dn: ou=it,dc=suse,dc=deobjectClass: organizationalUnitou: it

IMPORTANTE: Codificação de arquivos LDIF

O LDAP funciona com o UTF-8 (Unicode). Umlauts deve ser codificadocorretamente. Use um editor que suporte UTF-8, como o Kate ou versõesrecentes de Emacs. De outra forma, evite umlauts e outros caracteres especiaisou use recode para registrar a entrada em UTF-8.

Salve o arquivo com o sufixo .ldif, em seguida, transmita-o ao servidor com oseguinte comando:ldapadd -x -D <dn of the administrator> -W -f <file>.ldif

-x desliga a autenticação com o SASL neste caso. -D declara o usuário que chama aoperação. O DN válido do administrador é inserido aqui como foi configurado emslapd.conf. No exemplo atual, há cn=admin,dc=suse,dc=de. -W evita ainserção de senha na linha de comando (em texto claro) e ativa um prompt de senhaseparado. Esta senha foi determinada previamente em slapd.conf com rootpw.-f transmite o nome de arquivo. Consulte os detalhes da execução de ldapadd noExemplo 25.8, “ldapadd com example.ldif” (p 450).

LDAP — Um serviço de diretório 449

Page 450: Reference Pt BR

Exemplo 25.8 ldapadd com example.ldifldapadd -x -D cn=admin,dc=suse,dc=de -W -f example.ldif

Insira a senha do LDAP: adding new entry "dc=suse,dc=de" adding new entry "ou=devel,dc=suse,dc=de" adding new entry "ou=doc,dc=suse,dc=de" adding new entry "ou=it,dc=suse,dc=de"

Os dados de usuário de indivíduos podem ser preparados em arquivos LDIF separados.O Exemplo 25.9, “Dados LDIF para Tux” (p 450) adicionaTux ao novo diretório LDAP.

Exemplo 25.9 Dados LDIF para Tux# coworker Tuxdn: cn=Tux Linux,ou=devel,dc=suse,dc=deobjectClass: inetOrgPersoncn: Tux LinuxgivenName: Tuxsn: Linuxmail: [email protected]: tuxtelephoneNumber: +49 1234 567-8

Um arquivo LDIF pode conter um número arbitrário de objetos. É possível transmitirramificações de todo o diretório ao servidor de uma vez ou somente partes comomostrado no exemplo de objetos individuais. Se for necessário modificar alguns dadoscom freqüência, uma subdivisão de objetos únicos é recomendável.

25.4.2 Modificando dados no diretório LDAPA ferramenta ldapmodify é fornecida para modificar o estoque de dados. A formamais fácil de fazer isso é modificar o arquivo LDIF correspondente e, em seguida,transmitir este arquivo modificado ao servidor LDAP. Para alterar o número de telefonedo colega Tux de +49 1234 567-8 para +49 1234 567-10, edite o arquivoLDIF como no Exemplo 25.10, “Arquivo LDIF modificado tux.ldif” (p 450).

Exemplo 25.10 Arquivo LDIF modificado tux.ldif# coworker Tuxdn: cn=Tux Linux,ou=devel,dc=suse,dc=de changetype: modifyreplace: telephoneNumber telephoneNumber: +49 1234 567-10

450 Referência

Page 451: Reference Pt BR

Importe o arquivo modificado no diretório 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 modificações e siga cuidadosamente a sintaxe na ordem apresentadaabaixo:dn: cn=Tux Linux,ou=devel,dc=suse,dc=dechangetype: modifyreplace: telephoneNumbertelephoneNumber: +49 1234 567-10

Informações detalhadas sobre ldapmodify e sua sintaxe podem ser encontradas napágina de manual de ldapmodify(1).

25.4.3 Buscando ou lendo dados de umdiretório LDAP

OpenLDAP fornece, com ldapsearch, uma ferramenta de linha de comando parapesquisar dados em um diretório LDAP e ler dados a partir dele. Uma consulta simplesteria a seguinte sintaxe:ldapsearch -x -b dc=suse,dc=de "(objectClass=*)"

A opção -b determina a base de busca — a seção da árvore dentro da qual a busca deveser executada. No caso atual, isto é dc=suse,dc=de. Para realizar uma busca maisdetalhada em subseções específicas do diretório LDAP (por exemplo, somente nodepartamento devel), transmita esta seção para ldapsearch com -b. -x solicitaa ativação da autenticação simples. (objectClass=*) declara que todos os objetoscontidos no diretório devem ser lidos. Esta opção de comando pode ser usada após acriação de uma nova árvore de diretório para verificar se todas as entradas foramregistradas corretamente e se o servidor responde como desejado. Mais informaçõessobre o uso de ldapsearch podem ser encontradas na página de manualcorrespondente (ldapsearch(1)).

LDAP — Um serviço de diretório 451

Page 452: Reference Pt BR

25.4.4 Apagando dados de um diretórioLDAP

Apague entradas indesejadas com ldapdelete. A sintaxe é similar àquela doscomandos descritos acima. Para apagar, por exemplo, a entrada completa para TuxLinux, 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 YaSTO YaST inclui um módulo para configurar o gerenciamento de usuário baseado emLDAP. Se você não habilitou este recurso durante a instalação, inicie o móduloselecionando Serviços de Rede → Cliente LDAP. O YaST habilita automaticamentequaisquer alterações relacionadas a PAM e NSS conforme exigido por LDAP (descritoabaixo) e instala os arquivos necessários.

25.5.1 Procedimento padrãoConhecimento básico sobre os processos agindo no segundo plano de uma máquinacliente ajudam você a compreender como o módulo do cliente LDAP do YaST funciona.Se o LDAP for ativado para autenticação de rede ou o módulo YaST for chamado, ospacotes pam_ldap e nss_ldap serão instalados e os dois arquivos de configuraçãocorrespondentes serão adaptados. pam_ldap é o módulo PAM responsável pelanegociação entre processos de login e o diretório LDAP como a fonte de dados deautenticação. O módulo dedicado pam_ldap.so é instalado e a configuração PAM,adaptada (consulte o Exemplo 25.11, “pam_unix2.conf adaptado para LDAP” (p 452)).

Exemplo 25.11 pam_unix2.conf adaptado para LDAPauth: use_ldap account: use_ldappassword: use_ldap session: none

Ao configurar manualmente serviços adicionais para usar o LDAP, inclua o móduloLDAP do PAM no arquivo de configuração PAM correspondente ao serviço em/etc/pam.d. Arquivos de configuração já adaptados a serviços individuais podem ser

452 Referência

Page 453: Reference Pt BR

encontrados em /usr/share/doc/packages/pam_ldap/pam.d/. Copie osarquivos apropriados para /etc/pam.d.

A resolução de nome glibc através do mecanismo nsswitch é adaptado ao uso doLDAP com nss_ldap. Um arquivo nsswitch.conf novo, adaptado é criado em/etc/ com a instalação deste pacote. Mais informações sobre o funcionamento densswitch.conf podem ser encontradas na Seção 18.6.1, “Arquivos de configuração”(p 366). As linhas a seguir devem estar presentes em nsswitch.conf para aadministração do usuário e autenticação com LDAP. Consulte o Exemplo 25.12,“Adaptações em nsswitch.conf” (p 453).

Exemplo 25.12 Adaptações em nsswitch.confpasswd: compatgroup: compat

passwd_compat: ldapgroup_compat: ldap

Estas linhas ordenam a biblioteca de resolução de glibc primeiro para avaliar osarquivos correspondentes em /etc e adicionalmente acessar o servidor LDAP comofontes para dados de usuário e autenticação. Teste este mecanismo, por exemplo, lendoo conteúdo do banco de dados de usuário com o comando getent passwd. Oconjunto retornado deve conter uma pesquisa dos usuários locais do seu sistema e todosos usuários armazenados no servidor LDAP.

Para evitar que usuários regulares gerenciados através de LDAP efetuem login noservidor com ssh ou login, os arquivos /etc/passwd e /etc/group cadaprecisam incluir uma linha adicional. Esta é a linha +::::::/sbin/nologin em/etc/passwd e +::: em /etc/group.

25.5.2 Configuração do cliente LDAPApós os ajustes iniciais denss_ldap,pam_ldap,/etc/passwd e/etc/groupterem sido tratados pelo YaST, você pode simplesmente conectar o cliente ao servidore deixar que o YaST faça o gerenciamento de usuários via LDAP. A configuraçãobásica é descrita em “Configuração Básica” (p 454).

Use o cliente LDAP do YaST para configurar mais os módulos de configuração deusuário e grupo do YaST. Isso inclui manipular as configurações padrão para novosusuários e grupos e o número e a natureza dos atributos atribuídos a um usuário ou

LDAP — Um serviço de diretório 453

Page 454: Reference Pt BR

grupo. O gerenciamento de usuários LDAP permite atribuir mais atributos e diferentesa usuários e grupos do que as soluções de gerenciamento de grupos ou usuáriostradicionais. Isso está descrito em “Configurando os módulos de administração deusuários e grupos do YaST” (p 457).

Configuração BásicaA caixa de diálogo de configuração básica do cliente LDAP (Figura 25.2, “YaST:Configuração do cliente LDAP” (p 454)) abre durante a instalação se você escolher ogerenciamento de usuários LDAP ou quando selecionar Serviços de Rede → ClienteLDAP no Centro de Controle do YaST no sistema instalado.

Figura 25.2 YaST: Configuração do cliente LDAP

Para autenticar usuários da sua máquina em um servidor OpenLDAP e habilitar ogerenciamento de usuários via OpenLDAP, proceda da seguinte maneira:

1 Clique emUsar LDAP para habilitar o uso de LDAP. SelecioneUsar LDAP masDesabilitar Logins se você deseja usar o LDAP para autenticação, mas não desejaque outros usuários efetuem login neste cliente.

2 Insira o endereço IP do servidor LDAP para uso.

454 Referência

Page 455: Reference Pt BR

3 Insira a Base LDAP DN para selecionar a base de busca no servidor LDAP.

Para recuperar o DN base automaticamente, clique emPesquisar DN. Em seguida,o YaST verifica se há algum banco de dados LDAP no endereço de servidorespecificado acima. Escolha o DN base apropriado nos resultados de pesquisafornecidos pelo YaST.

4 Se a comunicação protegida por TLS ou SSL com o servidor for necessária,selecione LDAP TLS/SSL.

5 Se o servidor LDAP ainda usar LDAPv2, habilite explicitamente o uso destaversão de protocolo selecionando LDAP Versão 2.

6 Selecione Iniciar Automounter para montar diretórios remotos no seu clientecomo um /home gerenciado remotamente.

7 Clique em Concluir para aplicar suas configurações.

Figura 25.3 YaST: Configuração Avançada

Para modificar dados no servidor como administrador, clique em ConfiguraçãoAvançada. A caixa de diálogo seguinte é dividida em duas guias. Consulte aFigura 25.3, “YaST: Configuração Avançada” (p 455):

LDAP — Um serviço de diretório 455

Page 456: Reference Pt BR

1 Na guia Configurações do Cliente, ajuste as seguintes configurações às suasnecessidades:

a Se a base de busca para usuários, senhas e grupos diferir da base de buscaglobal especificada em Base LDAPDN, insira esses contextos de nomeaçãodiferentes em Mapa do Usuário, Mapa da Senha e Mapa do Grupo.

b Especifique o protocolo de alteração de senha. O método padrão a ser usadosempre que uma senha é alterada é crypt, significando que os hashes desenha gerados por crypt são usados. Para obter detalhes sobre esta e outrasopções, consulte a página de manual de pam_ldap.

c Especifique o grupo LDAP a ser usado com Atributo de Membro de Grupo.O valor padrão para isso é membro.

2 Em Configurações da Administração, ajuste as seguintes configurações:

a Defina a base para armazenar os dados do gerenciamento de usuários viaBase de Configuração DN.

b Insira o valor apropriado para DN do Administrador. Este DN deve seridêntico ao valor rootdn especificado em /etc/openldap/slapd.conf para habilitar este usuário específico a manipular dados armazenadosno servidor LDAP. Digite o DN completo (comocn=admin,dc=suse,dc=de) ou ativeAdicionarDNBase para adicionarautomaticamente o DN base quando você digitar cn=admin.

c Marque Criar Objetos de Configuração Padrão para criar os objetos deconfiguração básica no servidor para habilitar o gerenciamento de usuáriosvia LDAP.

d Se a máquina do cliente deve agir como um servidor de arquivos paradiretórios pessoais na rede, marque Diretórios Pessoais nesta Máquina.

e Clique em Aceitar para sair de Configuração Avançada e em Concluir paraaplicar suas configurações.

Use Definir Configurações de Gerenciamento de Usuários para editar entradas noservidor LDAP. Acesso aos módulos de configuração no servidor é então concedido

456 Referência

Page 457: Reference Pt BR

de acordo com os ACLs e ACIs armazenados no servidor. Siga os procedimentosapresentados em “Configurando os módulos de administração de usuários e grupos doYaST” (p 457).

Configurando os módulos de administração deusuários e grupos do YaSTUse o cliente LDAP do YaST para adaptar os módulos YaST para administração degrupo e usuários e estendê-los conforme necessário. Defina modelos com valores padrãopara os atributos individuais para simplificar o registro de dados. As predefiniçõescriadas aqui são armazenadas como objetos LDAP no diretório LDAP. O registro dedados de usuários ainda é realizado com módulos YaST regulares para o gerenciamentode grupos e usuários. Os dados registrados são armazenados como objetos LDAP noservidor.

Figura 25.4 YaST: Configuração do módulo

A caixa de diálogo para configuração do módulo (Figura 25.4, “YaST: Configuraçãodo módulo” (p 457)) permite a criação de novos módulos, a seleção e modificação demódulos de configuração existentes e o design e a modificação de modelos para estesmódulos.

LDAP — Um serviço de diretório 457

Page 458: Reference Pt BR

Para criar um novo módulo de configuração, proceda da seguinte maneira:

1 Clique em Novo e selecione o tipo de módulo a ser criado. Para um módulo deconfiguração de usuários, selecione suseuserconfiguration e paraconfiguração de grupos, selecione susegroupconfiguration.

2 Escolha um nome para o novo modelo.

A visão de conteúdo apresenta uma tabela listando todos os atributos permitidosneste módulo com seus valores atribuídos. Fora dos atributos definidos, a listatambém contém todos os outros atributos permitidos pelo esquema atual, masque não são usados atualmente.

3 Aceite os valores predefinidos ou ajuste os padrões para usar na configuração deusuários e grupos selecionando o respectivo atributo, pressionando Editar einserindo o novo valor. Renomeie um módulo alterando o atributo cn do módulo.Clicar em Apagar apaga o módulo atualmente selecionado.

4 Após clicar em OK, o novo módulo será adicionado ao menu de seleção.

Os módulos YaST para a administração de usuários e grupos embute modelos comvalores padrão sensíveis. Para editar um modelo associado a um módulo deconfiguração, proceda da seguinte maneira:

1 Na caixa de diálogo Configuração do Módulo, clique em Configurar Modelo.

2 Determine os valores dos atributos gerais atribuídos a este modelo de acordocom suas necessidades ou deixe alguns vazios. Atributos vazios são apagadosno servidor LDAP.

3 Modifique, apague ou adicione novos valores padrão para novos objetos (objetosde configuração de grupos ou usuários na árvore LDAP).

458 Referência

Page 459: Reference Pt BR

Figura 25.5 YaST: Configuração de um modelo de objeto

Conecte o modelo ao seu módulo definindo o valor de atributosusedefaulttemplate do módulo ao DN do módulo adaptado.

DICA

Os valores padrão para um atributo podem ser criados de outros atributoscom o uso de uma variável em vez de um valor absoluto. Por exemplo, ao criarum novo usuário, cn=%sn %givenName é criado automaticamente dos valoresde atributos para sn e givenName.

Após todos os módulos e modelos terem sido configurados corretamente e estaremprontos para execução, novos grupos e usuários podem ser registrados da maneira usualcom o YaST.

LDAP — Um serviço de diretório 459

Page 460: Reference Pt BR

25.6 Configurando grupos e usuáriosLDAP no YaST

O registro atual de dados de grupos e usuários difere apenas um pouco do procedimentoquando LDAP não está sendo usado. As seguintes instruções breves estão relacionadasà administração dos usuários. O procedimento para administrar grupos é análogo.

1 Acesse a administração do usuário YaST com Segurança & Usuários →Administração de Usuário.

2 UseDefinir Filtros para limitar a exibição de usuários aos usuários LDAP e insiraa senha para DN raiz.

3 Clique em Adicionar e insira a configuração de um novo usuário. Uma caixa dediálogo com quatro guias é aberta:

a Especifique nome de usuário, login e senha na guia Dados do Usuário.

b Marque a guia Detalhes para a participação de grupo, shell de login ediretório pessoal do novo usuário. Se necessário, altere o padrão para valoresque melhor atendem suas necessidades. Os valores padrão e as configuraçõesde senha podem ser definidos com o procedimento descrito em“Configurando os módulos de administração de usuários e grupos do YaST”(p 457).

c Modifique ou aceite as Configurações de Senha padrão.

d Vá para a guia Plug-Ins, selecione o plug-in do LDAP e clique em Iniciarpara configurar atributos LDAP adicionais atribuídos ao novo usuário(consulte a Figura 25.6, “YaST: Configurações LDAP adicionais” (p 461)).

4 Clique em Aceitar para aplicar suas configurações e saia da configuração dousuário.

460 Referência

Page 461: Reference Pt BR

Figura 25.6 YaST: Configurações LDAP adicionais

A forma de entrada inicial da administração do usuário oferece Opções do LDAP. Issofornece a possibilidade de aplicar filtros de busca do LDAP para o conjunto de usuáriosdisponíveis ou ir para o módulo para a configuração de grupos e usuários LDAPselecionando Configuração de Grupos e Usuários LDAP.

25.7 Mais informaçõesAssuntos mais complexos, como a configuração de SASL ou o estabelecimento de umservidor LDAP de replicação que distribui a carga de trabalho entre vários escravos,intencionalmente não foi incluída neste capítulo. Informações detalhadas sobre ambosos assuntos podem ser encontradas no Guia do Administrador do OpenLDAP 2.2(referências a seguir).

O website do projeto OpenLDAP oferece documentação exaustiva para usuários LDAPiniciantes e avançados:

LDAP — Um serviço de diretório 461

Page 462: Reference Pt BR

OpenLDAP Faq-O-MaticUma coleção abrangente de perguntas e respostas referentes à instalação,configuração e ao uso do OpenLDAP. Encontre-o em http://www.openldap.org/faq/data/cache/1.html.

Guia Rápido de InícioInstruções breves etapa por etapa para instalar o seu primeiro servidor LDAP.Encontre-o emhttp://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.2Uma introdução detalhada para todos os aspectos importantes da configuração doLDAP, 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 LDAPUma introdução geral detalhada para os princípios básicos 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 LDAPDirectory Services por Howes, Smith e Good(ISBN 0-672-32316-8)

O material de referência mais importante sobre o LDAP são os RFCs (request forcomments) correspondentes, 2251 a 2256.

462 Referência

Page 463: Reference Pt BR

26Servidor HTTP ApacheCom uma cota de mais de 70%, o Apache é o servidor Web mais usado mundialmentede acordo com a pesquisa da http://www.netcraft.com/ em novembro de2005. O Apache, desenvolvido pela Apache Software Foundation (http://www.apache.org/), está disponível para a maioria dos sistemas operacionais. O SUSELinux inclui o Apache versão 2.2. Neste capítulo, aprenda como instalar, configurar eajustar um servidor Web; como usar SSL, CGI e módulos adicionais; e como solucionarproblemas do Apache.

26.1 Inicialização RápidaCom o auxílio desta seção, configure e inicie o Apache. É necessário usar a conta deusuário Root para instalar e configurar o Apache.

26.1.1 RequisitosCertifique-se de que os requisitos sejam atendidos antes de tentar configurar o servidorWeb Apache:

1. A rede da máquina é configurada corretamente. Para obter mais informaçõessobre este tópico, consulte o Capítulo 18, Rede básica (p 331).

2. A hora exata do sistema da máquina é mantida por meio da sincronização comum servidor de horário. Isso é necessário porque as partes do protocolo HTTP

Servidor HTTP Apache 463

Page 464: Reference Pt BR

dependem da hora certa. Consulte o Capítulo 24, Sincronização de horário comNTP (p 431) para saber mais sobre este tópico.

3. As atualizações de segurança mais recentes são instaladas. Em caso de dúvida,execute uma Atualização Online do YaST.

4. A porta do servidor Web padrão (porta 80) é aberta no firewall. Para isso,configure o SUSEFirewall2 para permitir o serviço Servidor HTTP na zonaexterna. Isso pode ser feito com o YaST. “Configurando com o YaST” (p 110)fornece os detalhes.

26.1.2 InstalaçãoO Apache no SUSE Linux não é instalado por padrão. Para instalá-lo, inicie o YaST eselecione Software → Gerenciamento de Software. Agora escolha Filtros → Seleçõese selecione Servidor da Web Simples com Apache2. Confirme a instalação dos pacotesdependentes para concluir o processo de instalação.

O Apache é instalado com uma configuração padrão e predefinida que é executadainstantaneamente. A instalação inclui o módulo de multiprocessamentoapache2-prefork, além do módulo PHP5. Consulte a Seção 26.4, “Instalando,ativando e configurando módulos” (p 482) para obter mais informações sobre módulos.

26.1.3 InicializaçãoPara iniciar o Apache e assegurar que seja iniciado automaticamente durante ainicialização da máquina, inicie o YaST e selecione Sistema → Serviços do Sistema(Nível de Execução). Procure apache2 e Habilite o serviço. O servidor Web é iniciadoimediatamente. Quando você grava suas mudanças com Concluir, o sistema éconfigurado para iniciar o Apache automaticamente nos níveis de execução 3 e 5 durantea inicialização. Para obter mais informações sobre os níveis de execução no SUSELinux e uma descrição do editor de nível de execução do YaST, consulte a Seção 8.2.3,“Configurando serviços do sistema (runlevel) com o YaST” (p 196).

Para iniciar o Apache usando o shell, execute rcapache2 start. Para assegurarque o Apache seja iniciado automaticamente durante a inicialização da máquina nosníveis de execução 3 e 5, use chkconfig -a apache2.

464 Referência

Page 465: Reference Pt BR

Se você não tiver recebido mensagens de erro ao iniciar o Apache, o servidor Webdeverá estar em execução. Inicie um browser e abra http://localhost/. Deveráser exibida uma página de teste do Apache iniciada por “If you can see this, it meansthat the installation of the Apache Web server software on this system was successful”(Se você estiver vendo isso, significa que a instalação do servidor Web Apache nestesistema foi bem-sucedida). Se você não ver essa página, consulte a Seção 26.8, “Soluçãode problemas” (p 501).

Agora que o servidor Web está em execução, é possível adicionar seus própriosdocumentos, ajustar a configuração de acordo com suas necessidades ou adicionarfuncionalidade instalando módulos.

26.2 Configurando o ApacheO Apache no SUSE Linux pode ser configurado de duas maneiras diferentes: com oYaST ou manualmente. A configuração manual oferece um nível maior de detalhes,mas não tem a conveniência da interface gráfica de usuário do YaST.

IMPORTANTE: Mudanças de configuração

As mudanças em quase todos os valores de configuração do Apache somentesão efetuadas depois que o Apache é reiniciado ou recarregado. Isso ocorreautomaticamente ao usar o YaST e concluir a configuração com a opçãoHabilitado selecionada para o Serviço HTTP. O reinício manual é descrito naSeção 26.3, “Iniciando e parando o Apache” (p 480). A maioria das mudançasde configuração somente requerem um recarregamento com rcapache2reload.

26.2.1 Configurando o Apache manualmenteA configuração manual do Apache requer a edição dos arquivos de configuração detexto simples como o usuário Root.

Servidor HTTP Apache 465

Page 466: Reference Pt BR

Arquivos de configuraçãoOs arquivos de configuração do Apache podem ser encontrados em duas localizaçõesdiferentes:

• /etc/sysconfig/apache2

• /etc/apache2/

/etc/sysconfig/apache2

O /etc/sysconfig/apache2 controla algumas configurações globais do Apache,como módulos para carregar, arquivos de configuração adicionais para incluir, flagscom os quais o servidor deve ser iniciado e flags que devem ser adicionados à linha decomando. Como toda opção de configuração desse arquivo está amplamentedocumentada, não são citadas aqui. No caso de um servidor Web de finalidade geral,as configurações em/etc/sysconfig/apache2 devem bastar para as necessidadesde configuração.

IMPORTANTE: Nenhum módulo SuSEconfig do Apache

O módulo SuSEconfig do Apache foi removido do SUSE Linux. Ele deixou deser necessário para a execução do SuSEconfig após a mudança de /etc/sysconfig/apache2.

/etc/apache2/

/etc/apache2/ hospeda todos os arquivos de configuração do Apache. O propósitode cada arquivo é explicado a seguir. Cada um deles inclui várias opções de configuração(também chamadas de diretivas). Como todas as opções de configuração desses arquivosestão amplamente documentadas, não são citadas aqui.

Os arquivos de configuração do Apache são organizados da seguinte maneira:/etc/apache2/ | |- charset.conv |- conf.d/ | | | |- *.conf | |- default-server.conf

466 Referência

Page 467: Reference Pt BR

|- 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 configuração do Apache em /etc/apache2/

charset.convEspecifica os conjuntos de caracteres usados para idiomas diferentes. Não editar.

conf.d/*.confArquivos de configuração adicionados por outros módulos. Esses arquivos podemser incluídos na configuração do host virtual quando necessário. Consulte exemplosem vhosts.d/vhost.template. Com isso, você pode fornecer diferentesconjuntos de módulos para hosts virtuais diferentes.

default-server.confConfiguração global para todos os hosts virtuais com padrões aceitáveis. Em vezde mudar os valores, sobregrave-os com uma configuração de host virtual.

errors.confDefine como o Apache responde a erros. Para personalizar essas mensagens emtodos os hosts virtuais, edite esse arquivo. Senão, sobregrave essas diretivas nasconfigurações do seu host virtual.

httpd.confPrincipal arquivo de configuração do servidor Apache. Evite mudar esse arquivo.Ele contém essencialmente declarações e configurações globais. Sobregrave asconfigurações globais nos respectivos arquivos de configuração relacionados aqui.Mude as configurações específicas de host (como a raiz de documento) naconfiguração do host virtual.

Servidor HTTP Apache 467

Page 468: Reference Pt BR

listen.confVincula o Apache a endereços IP e portas específicos. A hospedagem virtual baseadaem nomes (consulte “Hosts virtuais identificados por nome” (p 470) também éconfigurada nesse arquivo.

magicDados do módulo mime_magic que ajudam o Apache a determinar automaticamenteo tipo MIME de um arquivo desconhecido. Não mudar.

mime.typesTipos MIME conhecidos pelo sistema (é um link para /etc/mime.types). Nãoeditar. Se for preciso adicionar tipos MIME não relacionados aqui, adicione-os amod_mime-defaults.conf.

mod_*.confArquivos de configuração dos módulos instalados por padrão. Consulte a Seção 26.4,“Instalando, ativando e configurando módulos” (p 482) para obter detalhes. Observeque os arquivos de configuração dos módulos opcionais residem no diretório conf.d.

server-tuning.confContém diretivas de configuração para os diferentes MPMs (consulte a Seção 26.4.4,“Módulos de multiprocessamento” (p 486)), bem como opções de configuraçãogeral que controlam o desempenho do Apache. Teste o servidor Web adequadamenteao fazer mudanças nesse arquivo.

ssl-global.conf e ssl.*Configuração SSL global e dados de certificado SSL. Consulte a Seção 26.6,“Configurando um servidor Web seguro com SSL” (p 493) para obter detalhes.

sysconfig.d/*.confArquivos de configuração gerados automaticamente de /etc/sysconfig/apache2. Não mude nenhum desses arquivos. De preferência, edite /etc/sysconfig/apache2. Não coloque outros arquivos de configuração nessediretório.

uid.confEspecifica o usuário e o ID do grupo com que o Apache é executado. Não mudar.

468 Referência

Page 469: Reference Pt BR

vhosts.d/*.confDeverá conter a configuração do seu host virtual. O diretório contém arquivos demodelo para hosts virtuais com e sem SSL. Todos os arquivos deste diretório queterminam com .conf são incluídos automaticamente na configuração do Apache.Consulte “Configuração do host virtual” (p 469) para obter detalhes.

Configuração do host virtualO termo host virtual refere-se à habilidade do Apache de servir vários URIs (universalresource identifiers) a partir da mesma máquina física. Isso significa que vários domínios,como www.exemplo.com e www.exemplo.net, são executados por um servidor Webúnico em uma máquina física.

É prática comum usar hosts virtuais para evitar esforços administrativos (somente umservidor Web único precisa ser mantido) e despesas de hardware (não é necessário terum servidor dedicado para cada domínio). Os hosts virtuais podem ser identificadospor nome, IP ou porta.

Os hosts virtuais podem ser configurados através do YaST (consulte “Hosts Virtuais”(p 477)) ou através da edição manual da se um arquivo de configuração. Por padrão, oApache no SUSE Linux está preparado para um arquivo de configuração por host virtualem /etc/apache2/vhosts.d/. Todos os arquivos deste diretório com a extensão.conf são incluídos automaticamente na configuração. Um modelo básico para umhost virtual é fornecido neste diretório (vhost.template ou vhost-ssl.template para um host virtual com suporte SSL).

DICA: Sempre crie uma configuração de host virtual

É recomendável criar sempre um arquivo de configuração de host virtual,mesmo que o seu servidor Web hospede somente um domínio. Com isso, alémde ter a configuração específica de domínio em um arquivo, você poderásempre retroceder a uma configuração básica de trabalho, bastando mover,apagar ou renomear o arquivo de configuração do host virtual. Pelo mesmomotivo, você também deverá criar arquivos de configuração separados paracada host virtual.

O bloco<VirtualHost></VirtualHost> contém as informações que se aplicama um domínio específico. Quando o Apache recebe uma solicitação de cliente para umhost virtual definido, ele usa as diretivas fornecidas nesta seção. Quase todas as diretivas

Servidor HTTP Apache 469

Page 470: Reference Pt BR

podem ser usadas em um contexto de host virtual. Consultehttp://httpd.apache.org/docs/2.0/mod/quickreference.html para obter mais informaçõessobre as diretivas de configuração do Apache.

Hosts virtuais identificados por nome

No caso de hosts virtuais identificados por nome, cada endereço IP atende mais de umsite da Web. O Apache usa o campo host no cabeçalho HTTP enviado pelo cliente paraconectar a solicitação a uma entrada ServerName correspondente de uma dasdeclarações do host virtual. Se não for encontrada nenhuma entrada ServerName, oprimeiro host virtual especificado será usado como padrão.

A diretiva NameVirtualHost informa o Apache em qual endereço IP e,opcionalmente, em qual porta escutar solicitações de clientes que contêm o nome dedomínio no cabeçalho HTTP. Essa opção é definida no arquivo de configuração/etc/apache2/listen.conf.

O primeiro argumento pode ser um nome de domínio completo, mas é recomendávelusar o endereço IP. O segundo argumento é a porta (opcional). Por padrão, a porta 80é usada e configurada através da diretiva Listen.

O curinga * pode ser usado para que o endereço IP e o número da porta recebamsolicitações em todas as interfaces. Os endereços IPv6 devem ser colocados entrecolchetes.

Exemplo 26.1 Variações de entradas VirtualHost identificadas por nome# NameVirtualHost Endereço 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 endereço IP (ou nome de domínio completo)declarado anteriormente com NameVirtualHost como um argumento naconfiguração de host virtual identificado por nome. Um número de porta anteriormentedeclarado com a diretiva NameVirtualHost é opcional.

O curinga * também é permitido como substituto do endereço IP. Esta sintaxe somenteé válida quando combinada ao curinga em NameVirtualHost *. Ao usar endereçosIPv6, inclua o endereço entre colchetes.

470 Referência

Page 471: Reference Pt BR

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 configuração de host virtual alternativa requer a configuração de vários IPs parauma máquina. Uma instância do Apache hospeda vários domínios, a cada qual é atribuídoum IP diferente.

O servidor físico deve ter um endereço IP para cada host virtual identificado por IP. Sea máquina não tiver várias placas de rede, interfaces de rede virtuais (álias de IP) tambémpoderão ser usadas.

O seguinte exemplo mostra o Apache em execução em uma máquina com o IP192.168.0.10, hospedando dois domínios nos IPs adicionais 192.168.0.20 e192.168.0.30. É necessário um blocoVirtualHost separado para cada servidorvirtual.

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 são especificadas para interfaces que nãosejam 192.168.0.10. Quando uma diretiva Listen também é configurada para192.168.0.10, é necessário criar um host virtual identificado por IP separado pararesponder aos pedidos HTTP àquela interface, caso contrário, serão aplicadas as diretivasencontradas na configuração do servidor padrão (/etc/apache2/default-server.conf).

Servidor HTTP Apache 471

Page 472: Reference Pt BR

Configuração básica do host virtual

É preciso que pelo menos as diretivas a seguir estejam presentes na configuração decada host virtual para compor um host virtual. Consulte /etc/apache2/vhosts.d/vhost.template para conhecer mais opções.

ServerNameNome de domínio completo com o qual o host deverá ser intitulado.

DocumentRootCaminho para o diretório do qual o Apache deverá atender a arquivos deste host.Por motivos de segurança, é proibido o acesso ao sistema de arquivos inteiro porpadrão, por isso, você deve desbloquear explicitamente esse diretório dentro deum container Directory.

ServerAdminEndereço de e-mail do administrador de servidor. Este endereço, por exemplo, émostrado nas páginas de erro criadas pelo Apache.

ErrorLogArquivo de registro de erros deste host virtual. Embora não seja necessário, costuma-se criar arquivos de registro de erros separados para cada host virtual, visto quefacilita bastante a depuração de erros. /var/log/apache2/ é o diretório padrãono qual devem ser mantidos os arquivos de registro do Apache.

CustomLogArquivo de registro de acessos deste host virtual. Embora não seja necessário,costuma-se criar arquivos de registro de acessos separados para cada host virtual,visto que permite a análise das estatísticas de acesso de cada host individualmente./var/log/apache2/ é o diretório padrão no qual devem ser mantidos osarquivos de registro do Apache.

Conforme mencionado acima, devido a motivos de segurança, é proibido o acesso aosistema de arquivos inteiro por padrão. Portanto, desbloqueie explicitamente o diretórioDocumentRoot 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 configuração completo tem a seguinte aparência:

472 Referência

Page 473: Reference Pt BR

Exemplo 26.4 Configuração básica de VirtualHost<VirtualHost 192.168.0.10> ServerName www.exemplo.com DocumentRoot /srv/www/exemplo.com_htdocs ServerAdmin [email protected] 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 YaSTPara configurar o servidor Web com o YaST, inicie o YaST e selecione Serviços deRede→ ServidorHTTP. Quando o módulo é iniciado pela primeira vez, oAssistentede Servidor HTTP é iniciado, solicitando que você tome algumas decisões básicasem relação à administração do servidor. Após concluir o assistente, a caixa de diálogoem “Configuração de Servidor HTTP” (p 478) é iniciada toda vez que você chama omódulo Servidor HTTP.

Assistente de Servidor HTTPO Assistente de Servidor HTTP consiste em cinco etapas. Na última etapa da caixa dediálogo, você tem a oportunidade de entrar no modo de configuração de especialistapara realizar configurações ainda mais específicas.

Seleção de Dispositivo de Rede

Especifique aqui as interfaces e portas de rede usadas pelo Apache para escutar assolicitações recebidas. Você pode selecionar qualquer combinação de interfaces de redeexistentes e seus respectivos endereços IP. As portas de todas as três faixas (portasconhecidas, portas registradas e portas dinâmicas ou privadas) que não forem reservadaspor outros serviços poderão ser usadas. A configuração padrão é escutar em todas asinterfaces de rede (endereços IP) pela porta 80.

Marque Abrir Firewall nas Portas Selecionadas para abrir as portas no firewall em queo servidor Web escuta. É necessário disponibilizar um servidor Web na rede, que pode

Servidor HTTP Apache 473

Page 474: Reference Pt BR

ser uma LAN, uma WAN ou a Internet. Manter a porta fechada é útil somente nassituações de teste em que não é necessário nenhum acesso externo ao servidor Web.

Clique em Próximo para continuar a configuração.

Módulos

A opção de configuração Módulos propicia a ativação ou desativação das linguagensde script para as quais o servidor Web deverá ter suporte. Para obter informações sobrea ativação ou desativação de outros módulos, consulte “Módulos do Servidor” (p 479).Clique em Próximo para avançar para a caixa de diálogo seguinte.

Host Padrão

Esta opção pertence ao servidor Web padrão. Como explicado na “Configuração dohost virtual” (p 469), o Apache pode atender a vários hosts virtuais a partir de uma únicamáquina física. O primeiro host virtual declarado no arquivo de configuração énormalmente conhecido como host padrão. Cada host virtual herda a configuração dohost padrão.

Para editar as configurações do host (também chamadas de diretivas), escolha a entradaadequada na tabela e clique em Editar. Para adicionar novas diretivas, clique emAdicionar. Para apagar uma diretiva, selecione-a e clique em Excluir.

474 Referência

Page 475: Reference Pt BR

Figura 26.1 Assistente de Servidor HTTP: Host Padrão

Esta é a lista das configurações padrão do servidor:

Raiz de DocumentoCaminho para o diretório do qual o Apache atende a arquivos deste host. /srv/www/htdocs é o local padrão.

AliasCom a ajuda das diretivas Alias, os URLs podem ser mapeados para localizaçõesfísicas do sistema de arquivos. Isso significa que determinado caminho mesmo forada Raiz de Documento no sistema de arquivos pode ser acessado por meiode um URL que serve de álias para esse caminho.

O diretório padrão Alias /icons do SUSE Linux aponta para /usr/share/apache2/icons para os ícones do Apache exibidos na tela de índice de diretório.

ScriptAliasSemelhante à diretiva Alias, a diretiva ScriptAlias mapeia um URL para alocalização do sistema de arquivos. A diferença é que ScriptAlias designa o

Servidor HTTP Apache 475

Page 476: Reference Pt BR

diretório de destino como localização CGI, significando que os scripts CGI devemser executados nessa localização.

DiretórioCom a configuração Diretório, você pode incluir um grupo de opções deconfiguração que se aplicarão somente ao diretório especificado.

As opções de acesso e exibição dos diretórios /usr/share/apache2/iconse /srv/www/cgi-bin são configuradas aqui. Não deverá ser necessário mudaros padrões.

InclusãoCom a inclusão é possível especificar arquivos de configuração adicionais. /etc/apache2/conf.d/ é o diretório que contém os arquivos de configuração queacompanham os módulos externos. Por padrão, estão incluídos todos os arquivosneste diretório (*.conf). /etc/apache2/conf.d/apache2-manual?conf é o diretório que contém todos os arquivos de configuraçãoapache2-manual.

Nome do ServidorEspecifica o URL padrão usado por clientes para contatar o servidor Web. Use umnome completo de domínio (FQDN) para acessar o servidor Web emhttp://FQDN/ ou em seu endereço IP. Não é possível escolher um nomearbitrário aqui; o servidor deverá ser “conhecido” por este nome.

E-Mail do Administrador do ServidorEndereço de e-mail do administrador de servidor. Este endereço, por exemplo, émostrado nas páginas de erro criadas pelo Apache.

Resolução do ServidorEsta opção refere-se à “Configuração do host virtual” (p 469).Determinar Servidorque Solicita por Cabeçalhos HTTP permite uma resposta do VirtualHost parauma solicitação a seu nome de servidor (consulte “Hosts virtuais identificados pornome” (p 470)). Determinar Servidor que Solicita por Endereço IP faz com que oApache selecione o host solicitado, de acordo com as informações de cabeçalhoHTTP enviadas pelo cliente. Consulte “Hosts virtuais identificados por IP” (p 471)para obter mais detalhes sobre hosts virtuais identificados por IP.

Após concluir a etapa doHost Padrão, clique emPróximo para continuar a configuração.

476 Referência

Page 477: Reference Pt BR

Hosts Virtuais

Nesta etapa, o assistente exibe uma lista dos hosts virtuais já configurados (consulte“Configuração do host virtual” (p 469)). Se você não tiver feito mudanças manualmenteantes de iniciar o assistente de HTTP do YaST, somente um host virtual estará presente(idêntico ao host padrão configurado na etapa anterior). Ele está marcado como padrão(com um asterisco ao lado do nome do servidor).

Para adicionar um host, clique em Adicionar para abrir uma caixa de diálogo na qualinserir informações básicas sobre o host. Identificação de Servidor contém o nome doservidor, a raiz do conteúdo do servidor (DocumentRoot) e o e-mail do administrador.Resolução do Servidor é usado para determinar como um host é identificado (por nomeou por IP). Essas opções são explicadas em “Host Padrão” (p 474).

Clique em Próximo para avançar para a segunda parte da caixa de diálogo deconfiguração do host virtual.

Na parte 2 da configuração do host virtual especifique se os scripts CGI serão habilitadose os diretórios a serem usados para eles. Também é possível habilitar SSL. Para isso,é necessário especificar também o caminho para o certificado. Consulte a Seção 26.6.2,“Configurando o Apache com SSL” (p 498) para obter detalhes sobre SSL e certificados.Com a opção Índice de Diretório, você pode especificar o arquivo a exibir quando ocliente solicita um diretório (por padrão, index.html). Adicione um ou mais nomes dearquivos (separados por espaços) se desejar mudar essa definição. Com a opçãoHabilitarHTML Público, o conteúdo dos diretórios públicos dos usuários (~user/public_html/) é disponibilizado no servidor em http://www.example.com/~user.

IMPORTANTE: Criando hosts virtuais

Não é possível adicionar hosts virtuais à vontade. Quando se usa hosts virtuaisidentificados por nome, cada nome de host deverá ser resolvido na rede. Nocaso de hosts virtuais identificados por IP, você só pode designar um host paracada endereço IP disponível.

Resumo

Esta é a etapa final do assistente. Determine como e quando o servidor Apache deveser iniciado: durante a inicialização ou manualmente. Consulte também um breve resumosobre a configuração feita até o momento. Se você estiver satisfeito com asconfigurações, clique emConcluir para concluir a configuração. Para mudar algo, clique

Servidor HTTP Apache 477

Page 478: Reference Pt BR

emAnterior até chegar à caixa de diálogo desejada. Clique emConfiguração Especialistade Servidor HTTP para abrir a caixa de diálogo descrita em “Configuração de ServidorHTTP” (p 478).

Figura 26.2 Assistente de Servidor HTTP: Resumo

Configuração de Servidor HTTPA caixa de diálogoConfiguração de Servidor HTTP permite também fazer mais ajustesà configuração do que o assistente (executado somente quando você configura o servidorWeb pela primeira vez). Ela consiste em quatro guias descritas a seguir. Nenhumaopção de configuração mudada será efetivada imediatamente — você sempre precisaráconfirmar as mudanças com Concluir para torná-las efetivas. Ao clicar em Cancelar,você sai do módulo de configuração e descarta suas mudanças.

Escutar Portas e Endereços

Em Serviço HTTP, defina se o Apache deverá estar em execução (Habilitado) ou parado(Desabilitado). Em Escutar nas Portas, Adicione, Edite, ou Apague endereços e portasnos quais o servidor deverá estar disponível. O padrão é escutar em todas as interfaces

478 Referência

Page 479: Reference Pt BR

pela porta 80. Sempre marque a opção Abrir Firewall nas Portas Selecionadas, senãoo servidor Web não poderá ser alcançado do exterior. Manter a porta fechada é útilsomente nas situações de teste em que não é necessário nenhum acesso externo aoservidor Web.

Com Arquivos de Registro, observe o registro de acesso ou o registro de erros. Isso éútil para testar a configuração. O arquivo de registro abre uma janela separada, na qualvocê também pode reiniciar ou recarregar o servidor Web (consulte a Seção 26.3,“Iniciando e parando o Apache” (p 480) para obter detalhes). Esses comandos sãoefetivados imediatamente.

Figura 26.3 Configuração de Servidor HTTP: Escutar Portas e Endereços

Módulos do Servidor

Você pode mudar o status (habilitado ou desabilitado) dos módulos do Apache2 clicandoem Toggle Status. Clique em Adicionar Módulo para adicionar um novo módulo quejá esteja instalado mas não relacionado. Saiba mais sobre módulos na Seção 26.4,“Instalando, ativando e configurando módulos” (p 482).

Servidor HTTP Apache 479

Page 480: Reference Pt BR

Figura 26.4 Configuração de Servidor HTTP: Módulos do Servidor

Host Padrão ou Hosts

Essas caixas de diálogo são idênticas às que já foram descritas. Consulte “Host Padrão”(p 474) e “Hosts Virtuais” (p 477).

26.3 Iniciando e parando o ApacheSe tiver sido configurado com o YaST (consulte a Seção 26.2.2, “Configurando oApache com o YaST” (p 473)), o Apache será iniciado durante o tempo de inicializaçãonos níveis de execução 3 e 5 e parado nos níveis de execução 0, 1, 2 e 6. Você poderámudar esse comportamento usando o editor de nível de execução do YaST ou aferramenta de linha de comando chkconfig.

Para iniciar, parar ou manipular o Apache em um sistema em execução, use o scriptinit /usr/sbin/rcapache2 (consulte a Seção 8.2.2, “Scripts Init” (p 192) paraobter informações gerais sobre os scripts init). O comandorcapache2 usa os seguintesparâmetros:

480 Referência

Page 481: Reference Pt BR

startInicia o Apache caso ainda não esteja em execução.

startsslInicia o Apache com suporte SSL caso ainda não esteja em execução. Para obtermais informações sobre o suporte SSL, consulte a Seção 26.6, “Configurando umservidor Web seguro com SSL” (p 493).

restartPára e reinicia o Apache. Inicia o servidor Web caso ele não estivesse em execuçãoantes.

try-restartPára e reinicia o Apache somente se estivesse em execução antes.

reload or gracefulPára o servidor Web instruindo todos os processos bifurcados do Apache paraconcluir suas solicitações antes de encerrar. Com o término de cada processo, eleé substituído por um processo recém-iniciado, o que resulta no “reinício” completodo Apache.

DICA

rcapache2 reload é o método preferencial para reiniciar o Apache emambientes de produção (por exemplo, para ativar uma mudança naconfiguração), pois permite que todos os clientes sejam atendidos semprovocar interrupções na conexão.

configtestVerifica a sintaxe dos arquivos de configuração sem afetar um servidor Web emexecução. Como essa verificação é forçada toda vez que o servidor é iniciado,recarregado ou reiniciado, normalmente não é necessário executar o testeexplicitamente (se houver um erro de configuração, o servidor Web não seráiniciado, recarregado nem reiniciado).

probeExamina a necessidade de um recarregamento (verifica se a configuração mudou)e sugere os argumentos necessários para o comando rcapache2.

Servidor HTTP Apache 481

Page 482: Reference Pt BR

server-status e full-server-statusDescarta uma tela de status breve ou completa, respectivamente. Requer lynx ouw3m instalado e o módulo mod_status habilitado. Além disso, adicione statusa APACHE_SERVER_FLAGS no arquivo /etc/sysconfig/apache2.

DICA: Flags adicionais

Se você especificar flags adicionais a rcapache2, eles serão transferidosdiretamente para o servidor Web.

26.4 Instalando, ativando econfigurando módulos

O software do Apache é criado de maneira modular: toda a funcionalidade, excetoalgumas tarefas centrais, são manipuladas por módulos. Isso progrediu tanto que até oHTTP é processado por um módulo (http_core).

Os módulos do Apache podem ser incorporados ao binário do Apache durante acompilação ou carregados dinamicamente durante a execução. Consulte a Seção 26.4.2,“Ativação e desativação” (p 483) para obter detalhes sobre como carregar os módulosde maneira dinâmica.

Os módulos do Apache podem ser divididos em quatro categorias diferentes:

Módulos de baseOs módulos de base são compilados no Apache por padrão. O Apache do SUSELinux possui somente a compilação de mod_so (necessário para carregar outrosmódulos) e http_core. Todos os outros estão disponíveis como objetoscompartilhados: em vez de serem incluídos no binário do servidor, eles podem serincluídos durante a execução.

Módulos de extensãoEm geral, os módulos chamados de extensões vêm no pacote de software do Apache,mas normalmente não são compilados estaticamente no servidor. No SUSE Linux,esses módulos estão disponíveis como objetos compartilhados que podem sercarregados no Apache durante a execução.

482 Referência

Page 483: Reference Pt BR

Módulos externosOs módulos rotulados como externos não estão incluídos na distribuição oficial doApache. O SUSE Linux oferece vários deles já disponíveis para uso.

Módulos de multiprocessamentoOs MPMs são responsáveis pela aceitação e manipulação de solicitações ao servidorWeb, representando o centro do software do servidor Web.

26.4.1 Instalação dos módulosSe você seguiu a maneira padrão de instalar o Apache (descrita na Seção 26.1.2,“Instalação” (p 464)), ele será instalado com todos os módulos de base e de extensão,o módulo de multiprocessamento Prefork MPM e o módulo externo PHP5.

Você pode instalar módulos externos adicionais iniciando o YaST e escolhendo Software→ Gerenciamento de Software. Agora escolha Filtro → Pesquisa e procure apache.Entre outros pacotes, a lista resultante contém todos os módulos externos disponíveisdo Apache.

26.4.2 Ativação e desativaçãoAo usar o YaST, você pode ativar ou desativar os módulos da linguagem de script(PHP5, Perl, Python e Ruby) com a configuração de módulo descrita em “Assistentede Servidor HTTP” (p 473). Todos os outros módulos podem ser habilitados oudesabilitados conforme descrição em “Módulos do Servidor” (p 479).

Se preferir ativar ou desativar os módulos manualmente, use os comandos a2enmodmod_foo ou a2dismod mod_foo respectivamente. a2enmod -l gera uma listade todos os módulos ativos no momento.

IMPORTANTE: Incluindo arquivos de configuração para módulos externos

Se você ativou os módulos externos manualmente, certifique-se de carregarseus arquivos de configuração em todas as configurações de host virtual. Osarquivos de configuração para módulos externos localizam-se em /etc/apache2/conf.d/ e não são carregados por padrão. Se você precisar dosmesmos módulos em cada host virtual, poderá incluir *.conf a partir desse

Servidor HTTP Apache 483

Page 484: Reference Pt BR

diretório. Caso contrário, inclua os arquivos individuais. Consulte /etc/apache2/vhost.d/vhost.template para obter exemplos.

26.4.3 Módulos de base e de extensãoTodos os módulos de base e de extensão são descritos detalhadamente na documentaçãodo Apache. Somente uma descrição breve dos módulos mais importantes está disponívelaqui. Consulte http://httpd.apache.org/docs/2.2/mod/ para saberdetalhes sobre cada módulo.

mod_aliasFornece as diretivas Alias e Redirect, com as quais é possível mapear umURl para um diretório específico (Alias) ou redirecionar um URL solicitado paraoutra localização. Esse módulo é habilitado por padrão.

mod_auth*Os módulos de autenticação oferecem diferentes métodos de autenticação:autenticação básica com mod_auth_basic ou autenticação sintetizada commod_auth_digest. A autenticação sintetizada é considerada experimental no Apache2.2.

mod_auth_basic e mod_auth_digest devem ser combinados com um móduloprovedor de autenticação, mod_authn_* (por exemplo, mod_authn_file paraautenticação baseada em arquivo de texto) e com um módulo de autorizaçãomod_authz_* (por exemplo, mod_authz_user para autorização de usuário).

Mais informações sobre este tópico estão disponíveis nas instruções “Como fazerautenticação” emhttp://httpd.apache.org/docs/2.2/howto/auth.html

mod_autoindexAutoindex gera listagens de diretório quando não há nenhum arquivo de índice(por exemplo, index.html). A aparência desses índices é configurável. Essemódulo é habilitado por padrão. No entanto, as listagens de diretório sãodesabilitadas por padrão por meio da diretiva Options — sobregrave essadefinição na configuração do seu host virtual. O arquivo de configuração padrãodesse módulo está localizado em /etc/apache2/mod_autoindex-defaults.conf.

484 Referência

Page 485: Reference Pt BR

mod_cgimod_cgi é necessário para executar scripts CGI. Esse módulo é habilitado porpadrão.

mod_deflateQuando se usa esse módulo, o Apache pode ser configurado para compactardinamicamente determinados tipos de arquivos antes de entregá-los.

mod_dirmod_dir fornece a diretiva DirectoryIndex, com a qual você pode configuraros arquivos que serão entregues automaticamente quando for solicitado um diretório(index.html por padrão). Ele também faz o redirecionamento automático parao URl correto quando uma solicitação de diretório não contém uma barra no fim.Esse módulo é habilitado por padrão.

mod_expiresCom mod_expires, você pode controlar a freqüência com que os caches de proxye browser atualizam seus documentos enviando um cabeçalho Expires. Essemódulo é habilitado por padrão.

mod_includemod_include permite usar SSI (Server Side Includes), que fornece umafuncionalidade básica para gerar páginas HTML de forma dinâmica. Esse móduloé habilitado por padrão.

mod_infoFornece uma visão geral abrangente da configuração do servidor emhttp://localhost/server-info/. Por motivos de segurança, você deve sempre limitaro acesso a esse URL. Por padrão, somente localhost possui permissão paraacessar esse URL. mod_info está configurado em /etc/apache2/mod_info.conf

mod_log_configCom este módulo, é possível configurar a aparência dos arquivos de registro doApache. Esse módulo é habilitado por padrão.

mod_mimeO módulo mime assegura-se de que um arquivo seja entregue com o cabeçalhoMIME correto de acordo com a extensão do nome do arquivo (por exemplotext/html para documentos HTML). Esse módulo é habilitado por padrão.

Servidor HTTP Apache 485

Page 486: Reference Pt BR

mod_negotiationNecessário para negociação de conteúdo. Consultehttp://httpd.apache.org/docs/2.2/content-negotiation.htmlpara obter mais informações. Esse módulo é habilitado por padrão.

mod_rewriteFornece a funcionalidade do mod_alias, porém, oferece mais recursos e flexibilidade.Com mod_rewrite, você pode redirecionar URLs de acordo com regras múltiplas,cabeçalhos de solicitação e outros.

mod_spelingmod_speling tenta corrigir automaticamente erros tipográficos em URLs, comoerros de maiúscula/minúscula.

mod_sslHabilita as conexões criptografadas entre o servidor Web e os clientes. Consulte aSeção 26.6, “Configurando um servidor Web seguro com SSL” (p 493) para obterdetalhes. Esse módulo é habilitado por padrão.

mod_statusFornece informações sobre a atividade e o desempenho do servidor emhttp://localhost/server-status/. Por motivos de segurança, você deve sempre limitaro acesso a esse URL. Por padrão, somente localhost possui permissão paraacessar esse URI. mod_status está configurado em /etc/apache2/mod_status.conf

mod_suexecmod_suexec permite executar scripts CGI para outro usuário e grupo. Esse móduloé habilitado por padrão.

mod_userdirHabilita diretórios específicos de usuário disponíveis em ~user/. A diretivaUserDir deve ser especificada na configuração. Esse módulo é habilitado porpadrão.

26.4.4 Módulos de multiprocessamentoO SUSE Linux oferece dois módulos de multiprocessamento (MPMs) diferentes parauso com o Apache.

486 Referência

Page 487: Reference Pt BR

MPM preforkO MPM prefork implementa um servidor Web de pré-bifurcação sem threads. Ele fazo servidor Web comportar-se de maneira semelhante ao Apache versão 1.x, no sentidode isolar as solicitações e as manipular através da bifurcação de um processo filhoseparado. Dessa forma, solicitações problemáticas não podem afetar outras, evitandoum bloqueio do servidor Web.

Embora o MPM prefork ofereça estabilidade com este método processual, ele consomemais recursos do sistema do que o seu equivalente, o MPM worker. O MPM prefork éconsiderado o MPM padrão para sistemas operacionais baseados em Unix.

IMPORTANTE: MPMs neste documento

Este documento pressupõe que o Apache é usado com o MPM prefork.

MPM workerO MPM worker oferece um servidor Web de vários threads. Thread é a forma “maissimples” de um processo. A vantagem de um thread em relação a um processo é omenor consumo de recursos. Em vez de somente bifurcar processos filhos, o MPMworker atende solicitações usando threads com processos do servidor. Os processosfilhos pré-bifurcados possuem vários threads. Esse método melhora o desempenho doApache 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 threadsque não podem se comunicar com recursos do sistema, sobretudo ao usar CGI (CommonGateway Interface) com o Apache em situação de sobrecarga. Outro argumento contrao uso do MPM worker com o Apache é que nem todos os módulos disponíveis doApache são seguros para o thread e, portanto, não podem ser usados em conjunto como MPM worker.

ATENÇÃO: Usando módulos PHP com MPMs

Nem todos os módulos PHP disponíveis são seguros para o thread. O uso doMPM worker com mod_php é bastante desaconselhável.

Servidor HTTP Apache 487

Page 488: Reference Pt BR

26.4.5 Módulos externosVeja aqui uma lista de todos os módulos externos fornecidos com o SUSE Linux. Vejaa documentação do módulo no diretório indicado.

FastCGIFastCGI é uma extensão ao CGI independente de linguagem, escalável e abertaque oferece alto desempenho sem as limitações de APIs específicas de servidor.Os aplicativos FastCGI são muito rápidos por serem persistentes. Não há overheadde inicialização por solicitação.

Nome do pacote: apache2-mod_fastcgiArquivo de configuração: /etc/apache2/conf.d/mod_fastcgi.confMais informações:/usr/share/doc/packages/apache2-mod_fastcgi

mod_perlmod_perl o habilita a executar scripts Perl em um interpretador embutido. Ointerpretador persistente embutido no servidor evita o overhead de iniciar uminterpretador externo e a desvantagem do tempo de inicialização do Perl.

Nome do pacote: apache2-mod_perlArquivo de configuração: /etc/apache2/conf.d/mod_perl.confMais informações: /usr/share/doc/packages/apache2-mod_perl

mod_php5PHP é uma linguagem de script embutida em HTML para várias plataformas noservidor.

Nome do pacote: apache2-mod_php5Arquivo de configuração: /etc/apache2/conf.d/php5.confMais informações: /usr/share/doc/packages/apache2-mod_php5

mod_pythonmod_python permite embutir o Python no servidor HTTP Apache visando umimpulso considerável no desempenho e maior flexibilidade ao desenvolveraplicativos baseados na Web.

Nome do pacote: apache2-mod_pythonMais informações:/usr/share/doc/packages/apache2-mod_python

488 Referência

Page 489: Reference Pt BR

mod_rubyO mod_ruby embute o interpretador Ruby no servidor Web Apache, permitindoque os scripts CGI do Ruby sejam executados de forma nativa. Eles são iniciadosmuito mais rapidamente do que sem mod_ruby.

Nome do pacote: apache2-mod_rubyMais informações: /usr/share/doc/packages/apache2-mod_ruby

mod_jk-ap20Esse módulo fornece conectores entre o Apache e um container do servlet Tomcat.

Nome do pacote: mod_jk-ap20Mais informações: /usr/share/doc/packages/mod_jk-ap20

26.4.6 CompilaçãoO Apache pode ser estendido por usuários avançados através da gravação de módulospersonalizados. Para desenvolver módulos para o Apache ou compilar módulos deterceiros, é necessário o pacoteapache2-devel e as ferramentas de desenvolvimentocorrespondentes. O apache2-devel também contém as ferramentas apxs2, quesão necessárias para a compilação de módulos adicionais para o Apache.

O apxs2 permite a compilação e instalação de módulos do código-fonte (inclusive asmudanças necessárias nos arquivos de configuração), que cria objetos compartilhadosdinâmicos (DSOs) que podem ser carregados no Apache durante a execução.

Os binários do apxs2 ficam localizados em /usr/sbin:

• /usr/sbin/apxs2— apropriado para a criação de um módulo de extensão quefunciona com qualquer MPM. A instalação fica localizada em /usr/lib/apache2.

• /usr/sbin/apxs2-prefork — apropriado para os módulos MPM pré-bifurcação. A instalação fica localizada em /usr/lib/apache2-prefork.

• /usr/sbin/apxs2-worker — apropriado para os módulos MPM pré-bifurcação.

O apxs2 instala os módulos de modo que possam ser usados em todos os MPMs. Osoutros dois programas instalam os módulos para que possam ser usados somente nos

Servidor HTTP Apache 489

Page 490: Reference Pt BR

respectivos MPMs. O apxs2 instala os módulos em /usr/lib/apache2, enquantoque o apxs2-prefork e o apxs2-worker instalam os módulos em /usr/lib/apache2-prefork ou /usr/lib/apache2-worker.

Instale e ative um módulo a partir do código-fonte usando os comandos cd/path/to/module/source; apxs2 -cia mod_foo.c (-c compila, -iinstala e -a ativa o módulo). Outras opções do apxs2 são descritas na página demanual apxs2(1).

26.5 Obtendo scripts CGI paratrabalhar

A CGI (Common Gateway Interface, interface de gateway comum) do Apache permitea criação de conteúdo dinâmico usando programas ou scripts geralmente chamados descripts CGI. Os scripts CGI podem ser escritos em qualquer linguagem de programação.Em geral, são usadas linguagens de script como Perl ou PHP.

Para habilitar o Apache a fornecer conteúdo criado por scripts CGI, é necessário ativarmod_cgi. mod_alias também é necessário. Ambos são habilitados por padrão. Consultea Seção 26.4.2, “Ativação e desativação” (p 483) para obter detalhes sobre a ativaçãode módulos.

ATENÇÃO: Segurança de CGI

A permissão concedida ao servidor para executar scripts CGI constitui umapotencial falha de segurança. Consulte a Seção 26.7, “Evitando problemas desegurança” (p 499) para obter informações adicionais.

26.5.1 Configuração do ApacheNo SUSE Linux, a execução de scripts CGI é permitida somente no diretório /srv/www/cgi-bin/. A localização já está configurada para executar scripts CGI. Se vocêcriou uma configuração de host virtual (consulte “Configuração do host virtual” (p 469))e deseja colocar seus scripts em um diretório específico de host, deverá desbloquear econfigurar esse diretório.

490 Referência

Page 491: Reference Pt BR

Exemplo 26.5 Configuração 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 diretório como scriptsCGI.

❷ Habilita a execução de scripts CGI.

❸ Instrui o servidor a tratar os arquivos com extensões .pl e .cgi como scripts CGI.Ajuste de acordo com as suas necessidades.

❹ As diretivas Order e Allow controlam o estado de acesso padrão e a ordemem que as diretivas Allow e Deny são avaliadas. Neste caso, as declarações “deny”são avaliadas antes das declarações “allow”, e o acesso de todos os lugares éhabilitado.

26.5.2 Executando um script de exemploA programação CGI difere da programação "normal" no sentido de que os programase scripts CGI precisam ser precedidos por um cabeçalho de tipo MIME comoContent-type: text/html. Esse cabeçalho é enviado ao cliente, para que eleidentifique o tipo de conteúdo que está recebendo. Além disso, a saída do script deveser compreensível pelo cliente, geralmente um browser da Web (HTML na maioria doscasos, texto simples ou imagens, por exemplo).

Um script de teste simples, disponível em /usr/share/doc/packages/apache2/test-cgi, faz parte do pacote do Apache. Ele gera o conteúdo de algumasvariáveis de ambiente como texto simples. Copie-o para /srv/www/cgi-bin/ oupara o diretório de script do seu host virtual (/srv/www/exemplo.com_cgi-bin/) e nomeie-o como teste.cgi.

Os arquivos acessíveis pelo servidor Web devem ser de propriedade do usuário Root(consulte a Seção 26.7, “Evitando problemas de segurança” (p 499) para obter

Servidor HTTP Apache 491

Page 492: Reference Pt BR

informações adicionais). Como os servidores Web são executados com outro usuário,os scripts CGI devem ser passíveis de execução e leitura universais. Passe para o diretórioCGI e use o comando chmod 755 teste.cgi para aplicar as permissõesapropriadas.

Agora chame http://localhost/cgi-bin/teste.cgi ouhttp://exemplo.com/cgi-bin/teste.cgi. Você deverá ver o “relatório doscript de teste CGI/1.0”.

26.5.3 Solução de problemasSe em vez de da saída do programa de teste for exibida uma mensagem de erro, verifiqueo seguinte:

Solução de problemas de CGI

• Você recarregou o servidor após mudar a configuração? Verifique comrcapache2probe.

• Se você configurou seu diretório CGI personalizado, ele está configuradocorretamente? Em caso de dúvida, experimente o script dentro do diretório CGIpadrão /srv/www/cgi-bin/ e chame-o comhttp://localhost/cgi-bin/teste.cgi.

• As permissões de arquivo estão corretas? Passe para o diretório CGI e execute ocomando ls -l teste.cgi. A saída deverá começar com-rwxr-xr-x 1 root root

• Verifique se o script não contém erros de programação. Se você não tiver mudadoo teste.cgi, talvez não seja essa a questão. Porém, se você estiver usando seuspróprios programas, sempre verifique se eles não contêm erros de programação.

492 Referência

Page 493: Reference Pt BR

26.6 Configurando um servidor Webseguro com SSL

Sempre que há transferência de dados confidenciais (como informações de cartão decrédito) entre o servidor Web e o cliente, é desejável ter uma conexão criptografadasegura com autenticação. O mod_ssl oferece uma criptografia forte usando os protocolosSSL (Secure Sockets Layer) e TLS (Transport Layer Security) na comunicação HTTPentre um cliente e o servidor Web. Com SSL/TSL, é estabelecida uma conexão privadaentre o servidor Web e o cliente. Com a integridade dos dados garantida, cliente eservidor são capazes de autenticar-se um ao outro.

Para isso, o servidor envia um certificado SSL contendo informações que comprovama validade da identidade do servidor antes que solicitações a um URL sejam respondidas.Por sua vez, isso garante que o servidor é o único ponto de terminação correto para essacomunicação. Além disso, o certificado gera uma conexão criptografada entre o clientee o servidor capaz de transmitir informações sem o risco de exposição de conteúdoconfidencial em texto simples.

Em vez de implementar os protocolos SSL/TSL por conta própria, o mod_ssl atua comointerface entre o Apache e uma biblioteca SSL. A biblioteca OpenSSL é usada no SUSELinux. Ela é instalada automaticamente com o Apache.

O efeito mais visível do uso de mod_ssl com o Apache é que os URLs aparecem como prefixo https:// em vez de http://.

26.6.1 Criando um certificado SSLPara usar SSL/TSL com o servidor Web, você deve criar um certificado SSL. Essecertificado, necessário para a autorização entre o servidor Web e o cliente, possibilitaa cada parte identificar claramente a outra. Para garantir a integridade do certificado,ele deve ser assinado por uma entidade em que todos os usuários confiem.

Há três tipos de certificados que você pode criar: um certificado “simulado” somentepara teste, um certificado auto-assinado para um círculo definido de usuários queconfiam em você e um certificado assinado por uma autoridade de certificação (CA)notória e independente.

Servidor HTTP Apache 493

Page 494: Reference Pt BR

A criação de um certificado se resume em um processo de duas etapas. Primeiro égerada uma chave privada para a autoridade de certificação, em seguida, o certificadodo servidor é assinado com essa chave.

DICA: Mais informações

Para saber mais sobre conceitos e definições sobre SSL/TSL, consultehttp://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 cópia de ca.crt também é colocada em /srv/www/htdocs/CA.crt paradownload.

IMPORTANTE

Um certificado simulado nunca deve ser usado em um sistema de produção.Use-o somente para teste.

Criando um certificado auto-assinadoSe você estiver configurando um servidor Web seguro para uma Intranet ou para umcírculo definido de usuários, talvez seja suficiente assinar um certificado com sua própriaautoridade de certificação (CA).

A criação de um certificado auto-assinado é um processo interativo de nove etapas.Passe para o diretório/usr/share/doc/packages/apache2 e execute o seguintecomando: ./mkcert.sh make --no-print-directory

494 Referência

Page 495: Reference Pt BR

/usr/bin/openssl /usr/sbin/ custom. Não tente executar esse comandofora desse diretório. O programa apresenta uma série de prompts, dos quais algunsprecisam de entrada do usuário.

Procedimento 26.1 Criação de um certificado auto-assinado com mkcert.sh

1 Decide the signature algorithm used for certificates(Defina o algoritmo de assinatura usado paracertificados)

Escolha RSA ( R , o padrão), pois alguns browsers mais antigos têm problemacom DSA.

2 Generating RSA private key for CA (1024 bit) (Gerandochave privada RSA para CA - 1024 bits)

Nenhuma interação necessária.

3 Generating X.509 certificate signing request for CA(Gerando solicitação de assinatura de certificado X.509para CA)

Crie aqui o nome exclusivo da CA. Para isso você terá que responder a algumasperguntas, como nome do país ou da organização. Digite dados válidos, poistudo que você digitar aqui aparecerá depois no certificado. Você não precisaresponder a todas as perguntas. Se alguma não lhe diz respeito ou se você querdeixá-la em branco, use “.”. Nome comum é o nome da própria CA — escolhaum nome significativo, como CA Minha empresa.

4 Generating X.509 certificate for CA signed by itself(Gerando certificado X.509 para CA assinado por elepróprio)

Escolha a versão 3 do certificado (padrão).

5 Generating RSA private key for SERVER (1024 bit)(Gerando chave privada RSA para servidor - 1024 bits)

Nenhuma interação necessária.

Servidor HTTP Apache 495

Page 496: Reference Pt BR

6 Generating X.509 certificate signing request for SERVER(Gerando solicitação de assinatura de certificado X.509para servidor)

Crie aqui o nome exclusivo da chave do servidor. As perguntas são quase idênticasàs que já foram respondidas para o nome exclusivo da CA. Os dados digitadosaqui se aplicam ao servidor Web e não precisam ser idênticos 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 doservidor seguro (por exemplo, www.exemplo.com). De outra forma,quando o browser acessar o servidor Web, ele emitirá aviso de que ocertificado não corresponde ao servidor.

7 Generating X.509 certificate signed by own CA (Gerandocertificado X.509 assinado pela própria CA)

Escolha a versão 3 do certificado (padrão).

8 Encrypting RSA private key of CA with a pass phrasefor security (Criptografando chave privada RSA da CAcom frase secreta por segurança)

É altamente recomendável 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 phrasefor security (Criptografando chave privada RSA doservidor com frase secreta por segurança)

Criptografar a chave do servidor com senha significa digitar essa senha todas asvezes que o servidor Web for iniciado. Isso dificulta o início automático doservidor na inicialização da máquina ou a reinicialização do servidor Web.Portanto, é razoável responder N a essa pergunta. Lembre-se de que a sua chavefica desprotegida quando não criptografada com senha e assegure-se de quesomente pessoas autorizadas tenham acesso à chave.

496 Referência

Page 497: Reference Pt BR

IMPORTANTE: Criptografando a chave do servidor

Se você escolher criptografar a chave do servidor com senha, aumenteo valor de APACHE_TIMEOUT em /etc/sysconfig/apache2. Casocontrário, você não haverá tempo suficiente para você digitar a frasesecreta antes que a tentativa de iniciar o servidor fracasse.

A página de resultados do script contém uma lista com certificados e chaves geradospor ele. Ao contrário da saída do script, os arquivos não foram gerados no diretóriolocal conf, mas nas localizações corretas em /etc/apache2/.

A última etapa é copiar o arquivo do certificado da CA de /etc/apache2/ssl.crt/ca.crt em uma localização em que os usuários possam acessá-lo paraincorporá-lo à lista de CAs conhecidas e confiáveis em seus browsers da Web. Casocontrário, o browser acusará que o certificado foi emitido por uma autoridadedesconhecida. O certificado é válido por um ano.

IMPORTANTE: Certificados auto-assinados

Somente use um certificado auto-assinado em um servidor Web que sejaacessado pelas pessoas que o reconhecem e confiam em você como autoridadede certificação. Não é recomendado usar esse tipo de certificado em uma lojaaberta ao público, por exemplo.

Obtendo certificado assinado oficialmenteExistem autoridades de certificação oficiais que assinam seus certificados. O certificado,assinado por uma terceira parte confiável, pode ser confiado inteiramente. Os servidoresWeb que funcionam para o público geralmente têm um certificado oficialmente assinado.

As CAs oficiais mais conhecidas são Thawte (http://www.thawte.com/ ouVerisign (www.verisign.com). Essas e outras CAs já são compiladas em todos osbrowsers, de modo que os certificados assinados por elas sejam aceitos automaticamentepelos browsers.

Ao solicitar um certificado oficialmente assinado, em vez de enviar um certificado àCA, você emite uma CSR (Certificate Signing Request - solicitação de assinatura decertificado). Para criá-la, chame o script /usr/share/ssl/misc/CA.sh-newreq.

Servidor HTTP Apache 497

Page 498: Reference Pt BR

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á queresponder a algumas perguntas, como nome do país ou da organização. Digite dadosválidos — tudo que você digitar aqui aparecerá depois no certificado e será verificado.Você não precisa responder a todas as perguntas. Se você não tiver resposta para algumapergunta ou quiser deixá-la em branco, use “.”. Nome comum é o nome da própria CA— escolha um nome significativo, como CA Minha empresa. Por fim, é necessáriodigitar uma senha de verificação e um nome de empresa alternativo.

Localize a CSR no diretório em que você chamou o script. O nome do arquivo énewreq.pem.

26.6.2 Configurando o Apache com SSLA porta padrão das solicitações SSL e TLS no servidor Web é a 443. Não há conflitoentre uma recepção “normal” do Apache na porta 80 e uma recepção habilitada porSSL/TLS do Apache na porta 443. Na verdade, HTTP e HTTPS podem ser executadosna mesma instância do Apache. Geralmente os hosts virtuais separados são usados paradespachar solicitações à porta 80 e à porta 443 para servidores virtuais separados.

IMPORTANTE: Configuração de firewall

Não se esqueça de abrir o firewall do Apache habilitado por SSL na porta 443.Isso pode ser feito com o YaST, conforme descrito em “Configurando com oYaST” (p 110).

Para usar SSL, ele deve ser ativado na configuração global do servidor. Abra /etc/sysconfig/apache2 em um editor e procure APACHE_MODULES. Adicione “ssl”à lista de módulos, caso ele ainda não esteja presente (mod_ssl é ativado por padrão).Em seguida, procure APACHE_SERVER_FLAGS e adicione “SSL”. Se você decidiucriptografar com senha seu certificado de servidor, deverá também aumentar o valordeAPACHE_TIMEOUT para que tenha tempo suficiente de digitar a frase secreta quandoo Apache for iniciado. Reinicie o servidor para ativar essas mudanças. Não bastarecarregar.

O diretório da configuração de host virtual contém um modelo /etc/apache2/vhosts.d/vhost-ssl.template com diretivas específicas de SSL amplamentedocumentadas. Consulte a configuração geral de host virtual na “Configuração do hostvirtual” (p 469).

498 Referência

Page 499: Reference Pt BR

Comece apenas ajustando os valores das seguintes diretivas:

• DocumentRoot

• ServerName

• ServerAdmin

• ErrorLog

• TransferLog

IMPORTANTE: Hosts virtuais identificados por nome e SSL

É impossível executar vários hosts virtuais habilitados para SSL em um servidordotado de apenas um endereço IP. Os usuários que se conectam a umaconfiguração assim recebem uma mensagem de aviso informando que ocertificado não corresponde ao nome do servidor toda vez que eles visitam oURL. Um endereço IP ou porta separado(a) é necessário a todo domíniohabilitado para SSL para efetivar a comunicação baseada em um certificadoSSL válido.

26.7 Evitando problemas desegurança

Um servidor Web exposto à Internet pública requer um esforço administrativo contínuo.É inevitável que sejam levantadas questões de segurança, relacionadas tanto ao softwarecomo à configuração incorreta acidental. Aqui vão algumas dicas sobre como lidar comelas.

26.7.1 Software atualizadoSe forem encontradas vulnerabilidades no software do Apache, um aviso de segurançaserá emitido pelo SUSE. Ele contém instruções para a correção de vulnerabilidades,que devem ser aplicadas o mais rápido possível. As notificações de segurança do SUSEestão disponíveis nas seguintes localizações:

Servidor HTTP Apache 499

Page 500: Reference Pt BR

• Página da Web http://www.suse.com/us/private/support/online_help/mailinglists/

• Lista de discussão http://www.suse.com/us/private/support/online_help/mailinglists/

• Fonte RSS http://www.novell.com/linux/security/suse_security.xml

26.7.2 Permissões de DocumentRootPor padrão, no SUSE Linux, o diretório de DocumentRoot /srv/www/htdocs eo diretório CGI/srv/www/cgi-bin pertencem ao usuário e grupo Root. Não mudeessas permissões. Se os diretórios fossem graváveis para todos, qualquer usuário poderiacolocar arquivos neles. Esses arquivos seriam então executados pelo Apache com aspermissões de wwwrun, que poderiam dar ao usuário acesso não desejado a recursosdo sistema de arquivos. Use os subdiretórios de /srv/www para colocar os diretóriosdeDocumentRoot e CGI para seus hosts virtuais e certifique-se de que esses diretóriose arquivos pertencem ao usuário e grupo Root.

26.7.3 Acesso ao sistema de arquivosPor padrão, o acesso a todo o sistema de arquivos é negado em /etc/apache2/httpd.conf. Nunca sobregrave essas diretivas, mas habilite o acesso especificamentea todos os diretórios que o Apache deverá ler (consulte “Configuração básica do hostvirtual” (p 472) para obter detalhes). Nesse processo, verifique se nenhum arquivo crítico(como arquivos de senhas ou de configuração do sistema) possam ser lidos de um pontoexterno.

26.7.4 Scripts CGIOs scripts interativos em Perl, PHP, SSI ou qualquer outra linguagem de programaçãopodem essencialmente executar comandos arbitrários e, portanto, apresentam umproblema geral de segurança. Os scripts a serem executados a partir do servidor devemser instalados somente a partir de fontes em que o administrador do servidor confia.Permitir que os usuários executem seus próprios scripts, em geral não é uma boa prática.Outra recomendação é realizar auditorias de segurança para todos os scripts.

500 Referência

Page 501: Reference Pt BR

Para facilitar ao máximo a administração de scripts, costuma-se limitar a execução dosscripts CGI a diretórios específicos em vez de permiti-los globalmente. As diretivasScriptAlias e Option ExecCGI são usadas para configuração. A configuraçãopadrão do SUSE Linux não permite a execução de scripts CGI a partir de qualquerlugar.

Como todos os scripts CGI são executados como o mesmo usuário, pode haver conflitoentre scripts diferentes. O módulo suEXEC permite executar scripts CGI para outrousuário e grupo.

26.7.5 Diretórios do usuárioAo habilitar os diretórios do usuário (com mod_userdir ou mod_rewrite), você não devepermitir os arquivos .htaccess, o que permitiria aos usuários sobregravar asconfigurações de segurança. Se isso não for possível, ao menos limite o envolvimentodo usuário usando a diretiva AllowOverRide. No SUSE Linux, os arquivos.htaccess são habilitados por padrão, mas o usuário não tem permissão desobregravar nenhuma diretiva Option ao usar mod_userdir (consulte o arquivo deconfiguração /etc/apache2/mod_userdir.conf).

26.8 Solução de problemasSe o Apache não for iniciado, a página da Web não estiver acessível ou os usuários nãopuderem se conectar ao servidor Web, é importante encontrar a causa do problema. Aseguir, estão alguns locais típicos para procurar explicações de erros e coisas importantesa serem verificadas.

Primeiro, o rcapache2 (descrito na Seção 26.3, “Iniciando e parando o Apache”(p 480)) mostra detalhes sobre erros, portanto, pode ser bastante útil se for realmenteusado para operar o Apache. Algumas vezes, é tentador usar o /usr/sbin/httpd2binário para iniciar ou interromper o servidor Web. Evite fazer isso e use o scriptrcapache2. O rcapache2 fornece até dicas sobre como resolver erros deconfiguração.

Além disso, a importância de arquivos de registro não pode ser demasiadamenteenfatizada. No caso de erros fatais e não fatais, deve-se procurar as causas nos arquivosde registro do Apache, especialmente no arquivo de registro de erros. Você tambémpode controlar o detalhamento das mensagens registradas com a diretiva LogLevel

Servidor HTTP Apache 501

Page 502: Reference Pt BR

se forem necessários mais detalhes nos arquivos de registro. Por padrão, o arquivo deregistro 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 rcapache2restart. Agora, tente conectar-se a um browser e verifique a saída.

Um erro comum é não abrir as portas do Apache na configuração de firewall do servidor.Se você configura o Apache com o YaST, existe uma opção separada disponível quecuida desta questão específica (consulte a Seção 26.2.2, “Configurando o Apache como YaST” (p 473)). Se você estiver configurando o Apache manualmente, abra as portasde firewall para HTTP e HTTPS através do módulo de firewall do YaST.

Se o erro não puder ser descoberto com a ajuda de qualquer desses meios, verifique obanco de dados de erros do Apache online em http://httpd.apache.org/bug_report.html. A comunidade de usuários do Apache também pode ser acessadaatravés de uma lista de discussão disponível em http://httpd.apache.org/userslist.html. Um grupo de discussão recomendado é comp.infosystems.www.servers.unix.

26.9 Mais informaçõesO pacote apache2-doc contém o manual completo do Apache em vários idiomaspara instalação e referência local. Ele não é instalado por padrão, e a maneira maisrápida de fazê-lo é usando o comandoyast -i apache2-doc. Depois de instalado,o manual do Apache fica disponível em http://localhost/manual/. Vocêtambém poderá acessá-lo na Web emhttp://httpd.apache.org/docs-2.2/.Dicas de configuração específicas do SUSE estão disponíveis no diretório /usr/share/doc/packages/apache2/README.*.

26.9.1 Apache 2.2Para obter uma lista dos novos recursos do Apache 2.2, consulte http://httpd.apache.org/docs/2.2/new_features_2_2.html. As informações sobre

502 Referência

Page 503: Reference Pt BR

o upgrade da versão 2.0 para a versão 2.2 estão disponíveis em http://httpd.apache.org/docs-2.2/upgrading.html.

26.9.2 Módulos do ApacheMais informações sobre os módulos externos do Apache da Seção 26.4.5, “Módulosexternos” (p 488) estão disponíveis nas seguintes localizações:

FastCGIhttp://www.fastcgi.com/

mod_perlhttp://perl.apache.org/

mod_php5http://www.php.net/manual/en/install.unix.apache2.php

mod_pythonhttp://www.modpython.org/

mod_rubyhttp://www.modruby.net/

26.9.3 DesenvolvimentoMais informações sobre o desenvolvimento dos módulos do Apache ou sobre oenvolvimento no projeto do servidor Web Apache estão disponíveis nas seguinteslocalizações:

Informações para desenvolvedores do Apachehttp://httpd.apache.org/dev/

Documentação do desenvolvedor do Apachehttp://httpd.apache.org/docs/2.2/developer/

Escrevendo módulos do Apache com Perl e Chttp://www.modperl.com/

Servidor HTTP Apache 503

Page 504: Reference Pt BR

26.9.4 Fontes diversasSe você tiver dificuldades específicas ao Apache no SUSE Linux, consulte o Banco deDados de Suporte do SUSE em http://portal.suse.com/sdb/en/index.html. O histórico do Apache pode ser encontrado em http://httpd.apache.org/ABOUT_APACHE.html. Essa página também explica porque o servidor échamado de Apache.

504 Referência

Page 505: Reference Pt BR

27Sincronização de arquivosAtualmente, muitas pessoas usam vários computadores; um computador em casa, umou mais no trabalho e possivelmente um laptop ou PDA quando viajam. Vários arquivossão necessários em todos esses computadores. Talvez você queira trabalhar com todosos computadores e modificar os arquivos, conseqüentemente tendo a versão mais recentedos dados disponíveis em todos os computadores.

27.1 Software de sincronização dedados disponível

A sincronização de dados não é um problema para computadores permanentementeconectados por uma rede rápida. Nesse caso, use um sistema de arquivos de rede, comoo NFS, e armazene os arquivos em um servidor para que todos os hosts acessem osmesmos dados via rede. Essa abordagem será impossível se a conexão de rede forinstável ou não permanente. Quando você viaja com um laptop, precisa ter cópias detodos os arquivos necessários no disco rígido local. Entretanto, é necessário sincronizaros arquivos modificados. Quando você modificar um arquivo em um computador,verifique se uma cópia dele foi atualizada em todos os outros computadores. No casode cópias ocasionais, elas podem ser feitas manualmente com o scp ou o rsync.Entretanto, se vários arquivos forem envolvidos, o procedimento poderá ser complicadoe demandar muito cuidado para evitar erros, como a sobregravação de um arquivo novopor um antigo.

Sincronização de arquivos 505

Page 506: Reference Pt BR

ATENÇÃO: Risco de perda de dados

Antes de começar a gerenciar seus dados com um sistema de sincronização,você deve se informar sobre o programa usado e testar sua funcionalidade. Éindispensável ter um backup de arquivos importantes.

A tarefa prolongada e sujeita a erros de sincronizar dados manualmente pode ser evitadase você usar um dos programas que utilizam vários métodos para automatizá-la. Osresumos a seguir têm o simples objetivo de dar uma visão geral sobre como essesprogramas funcionam e como podem ser usados. Se você planeja usá-los, leia adocumentação do programa.

27.1.1 UnisonO Unison não é um sistema de arquivos de rede. Em vez disso, os arquivos sãosimplesmente gravados e editados localmente. O programa Unison pode ser executadomanualmente para sincronizar arquivos. Quando a sincronização é executada pelaprimeira vez, um banco de dados é criado nos dois hosts, contendo checksums,marcações de horários e permissões dos arquivos selecionados. Na próxima vez emque for executado, o Unison poderá reconhecer quais arquivos foram mudados e proporque a transmissão seja feita do outro host ou para ele. Normalmente, todas as sugestõespodem ser aceitas.

27.1.2 CVSO CVS, que é mais usado para gerenciar versões de origem de programas, oferece apossibilidade de manter cópias dos arquivos em vários computadores. Dessa forma, eletambém é adequado para sincronização de dados. O CVS mantém um repositório centralno servidor, no qual os arquivos e as mudanças feitas neles são gravados. As mudançasrealizadas localmente são enviadas para o repositório e podem ser recuperadas de outroscomputadores por meio de uma atualização. Todos os procedimentos devem ser iniciadospelo usuário.

O CVS é muito suscetível a erros quando ocorrem mudanças em vários computadores.As mudanças são fundidas e, se elas forem feitas nas mesmas linhas, um conflito seráreportado. Quando ocorre um conflito, o banco de dados permanece em estadoconsistente. O conflito só fica visível para resolução no host cliente.

506 Referência

Page 507: Reference Pt BR

27.1.3 SubversionAo contrário do CVS, que “evoluiu”, o Subversion (SVN) é um projeto de designconsistente. O Subversion foi desenvolvido como sucessor tecnicamente aprimoradodo CVS.

O Subversion foi aprimorado em vários aspectos com relação ao seu antecessor. Devidoao seu histórico, o CVS mantém apenas arquivos e não lida com diretórios. Os diretóriostambém têm um histórico de versão no Subversion e podem ser copiados e renomeados,assim como os arquivos. Também é possível adicionar metadados a todos os arquivose todos os diretórios. Esses metadados podem ser totalmente mantidos com o controlede versão. Em oposição ao CVS, o Subversion tem suporte para acesso transparente àrede por protocolos dedicados, como o WebDAV. O WebDAV estende a funcionalidadedo protocolo HTTP para permitir acesso de gravação colaborativo a arquivos emservidores Web remotos.

O Subversion foi montado principalmente com base em pacotes de software existentes.Portanto, o servidor Web do Apache e a extensão WebDAV sempre são executadosjunto com o Subversion.

27.1.4 mailsyncDiferentemente das ferramentas de sincronização abordadas nas seções anteriores, omailsync sincroniza somente e-mails entre caixas de correio. O procedimento pode seraplicado em arquivos de caixas de correio locais, bem como em caixas de correio deum servidor IMAP.

Com base no ID da mensagem contido no cabeçalho do e-mail, as mensagens específicassão sincronizadas ou apagadas. A sincronização é possível entre caixas de correioespecíficas e entre hierarquias de caixas de correio.

27.1.5 rsyncQuando o controle de versão não é necessário, mas grandes estruturas de diretórioprecisam ser sincronizadas em conexões de rede lentas, a ferramenta rsync oferecemecanismos avançados para a transmissão apenas de mudanças entre arquivos. Issonão diz respeito somente a arquivos de texto, mas também a arquivos binários. Para

Sincronização de arquivos 507

Page 508: Reference Pt BR

detectar as diferenças entre os arquivos, o rsync os subdivide em blocos e realizachecksums neles.

O esforço dedicado à detecção das mudanças tem um preço. Os sistemas a seremsincronizados devem ser dimensionados generosamente para uso do rsync. A RAM éespecialmente importante.

27.1.6 Novell iFolderO Novell iFolder permite acessar seus arquivos de qualquer local e a qualquer momento.Se você colocar os arquivos no diretório do iFolder, ele será sincronizadoinstantaneamente com o servidor. Com esse método, é possível trabalhar de qualquerlugar.

O Novell iFolder também permite trabalhar offline. Isso é muito conveniente se vocênão tiver uma conexão com a Internet, por exemplo, e estiver trabalhando com umlaptop durante viagens. Assim que você conseguir conectar-se com a Internet, asmudanças do seu trabalho serão enviadas para o servidor.

Trabalhar com o iFolder envolve estas etapas:

1. Efetue login antes de trabalhar com o iFolder.

2. Mude suas preferências com relação à freqüência de sincronização.

3. Sincronize os arquivos e exiba a atividade entre o seu cliente e o servidor iFolder.

4. Solucione todos os conflitos durante a sincronização. Os conflitos ocorremquando você altera o mesmo arquivo em dois computadores diferentes. O iFolderarmazena arquivos em conflito em um diretório separado para impedir a perdade dados.

Para obter mais informações sobre o iFolder, consulte http://www.novell.com/en-en/documentation/. Encontre dicas e truques úteis sobre o iFolder emhttp://www.novell.com/coolsolutions/ifmag/.

508 Referência

Page 509: Reference Pt BR

27.2 Determinando fatores paraselecionar um programa

Há alguns fatores importantes a serem considerados ao decidir que programa será usado.

27.2.1 Cliente-servidor versus ponto a pontoDois modelos diferentes são comumente usados para distribuir dados. No primeiromodelo, todos os clientes sincronizam seus arquivos com um servidor central. O servidordeve ser acessível a todos os clientes pelo menos ocasionalmente. Esse modelo é usadopelo Subversion, CVS e WebDAV.

A outra possibilidade é deixar todos os hosts ligados em rede sincronizarem seus dadosentre os pontos uns dos outros. Esse é o conceito seguido pelo unison. O rsync, narealidade, funciona no modo de cliente, mas qualquer cliente também pode atuar comoum servidor.

27.2.2 PortabilidadeO Subversion, o CVS e o unison também estão disponíveis para muitos outros sistemasoperacionais, incluindo vários sistemas Unix e Windows.

27.2.3 Interativo versus automáticoNo Subversion, no CVS, no WebDAV e no Unison, o usuário inicia manualmente asincronização de dados. Isso permite um controle fino dos dados a serem sincronizadose um fácil gerenciamento de conflitos. No entanto, se os intervalos de sincronizaçãoforem muito longos, será mais provável que ocorram conflitos.

27.2.4 Conflitos: incidência e soluçãoConflitos só ocorrem raramente no Subversion ou no CVS, mesmo quando muitaspessoas trabalham em um grande projeto de programa. Isso ocorre porque os documentossão fundidos na base de linhas individuais. Quando ocorre um conflito, somente um

Sincronização de arquivos 509

Page 510: Reference Pt BR

cliente é afetado. Normalmente, os conflitos no Subversion ou no CVS podem serfacilmente resolvidos.

O Unison reporta conflitos, permitindo que os arquivos afetados sejam excluídos dasincronização. Entretanto, as mudanças não podem ser fundidas tão facilmente quantono Subversion ou no CVS.

Em oposição ao Subversion ou ao CVS, em que é possível aceitar parcialmente asmudanças em caso de conflito, o WebDAV só executa o registro da entrada quandotoda a modificação é considerada bem-sucedida.

Não há gerenciamento de conflitos no rsync. O usuário é responsável por não sobregravaracidentalmente arquivos e resolver manualmente todos os possíveis conflitos. Paraobter segurança, é possível empregar adicionalmente um sistema de controle de versãocomo o RCS.

27.2.5 Selecionando e adicionando arquivosEm sua configuração padrão, o Unison sincroniza toda uma árvore de diretórios. Novosarquivos que aparecem na árvore são incluídos automaticamente na sincronização.

No Subversion ou no CVS, novos diretórios e arquivos devem ser adicionadosexplicitamente por meio do comando svn add ou o cvs add, respectivamente. Esseprocedimento resulta em um maior controle do usuário sobre os arquivos a seremsincronizados. Por outro lado, novos arquivos são sempre ignorados, especialmentequando os pontos de interrogação na saída de svn update e svn status oucvs update são ignorados devido ao grande número de arquivos.

27.2.6 HistóricoUm recurso adicional do Subversion ou do CVS é a possibilidade de reconstrução deversões antigas de arquivos. Um breve comentário de edição pode ser inserido em cadamudança, e o desenvolvimento dos arquivos pode ser facilmente rastreado posteriormentecom base no conteúdo dos comentários. Essa é uma ajuda valiosa para textos de tesese de programas.

510 Referência

Page 511: Reference Pt BR

27.2.7 Volume de dados e requisitos dodisco rígido

Os discos rígidos de todos os hosts envolvidos devem ter espaço em disco suficientepara todos os dados distribuídos. O Subversion e o CVS requerem espaço adicionalpara o banco de dados repositório no servidor. O histórico do arquivo também éarmazenado no servidor, requerendo ainda mais espaço. Quando arquivos em formatode texto são mudados, somente as linhas modificadas são gravadas. Arquivos bináriosrequerem espaço em disco adicional relativo ao tamanho do arquivo sempre que elefor mudado.

27.2.8 Interface gráfica do usuário (GUI)O Unison oferece uma interface gráfica do usuário que exibe os procedimentos desincronização a serem realizados. Aceite a proposta ou exclua arquivos específicos dasincronização. No modo de texto, confirme de forma interativa os procedimentosespecíficos.

Usuários experientes normalmente executam o Subversion ou o CVS a partir da linhade comando. Entretanto, as interfaces gráficas do usuário estão disponíveis para Linux,como a cervisia, e para outros sistemas operacionais, como a wincvs. Muitas ferramentasde desenvolvimento, como a kdevelop, e editores de texto, como o emacs, fornecemsuporte para o CVS ou o Subversion. É sempre mais fácil realizar a resolução de conflitoscom esses front ends.

27.2.9 Facilidade de usoO Unison e o rsync são mais fáceis de usar e também mais adequados a usuáriosinexperientes. De certa forma, é mais difícil operar o CVS e o Subversion. Os usuáriosdevem entender a interação entre o repositório e os dados locais. As mudanças dosdados devem ser primeiro fundidas localmente no repositório. Esse procedimento éexecutado com o comando cvs update ou svn update. Em seguida, os dadosdevem ser enviados de volta ao repositório com o comando cvs commit ousvn commit. Depois de compreender esse procedimento, os usuários inexperientestambém serão capazes de usar o CVS e o Subversion com facilidade.

Sincronização de arquivos 511

Page 512: Reference Pt BR

27.2.10 Segurança contra ataquesDurante a transmissão, o ideal é proteger os dados contra interceptação e manipulação.O Unison, o CVS, o rsync e o Subversion podem ser facilmente usados via ssh (secureshell - shell seguro), fornecendo segurança contra ataques deste tipo. A execução doCVS ou do Unison via rsh (remote shell - shell remoto) deve ser evitada. O acesso aoCVS com o mecanismo pserver em redes desprotegidas também não é recomendável.O Subversion já fornece as medidas de segurança necessárias ao ser executado com oApache.

27.2.11 Proteção contra perda de dadosO CVS tem sido usado por desenvolvedores por um longo tempo para gerenciar projetosde programas e é extremamente estável. Como o histórico do desenvolvimento é gravado,o CVS fornece proteção até mesmo contra certos erros do usuário, como uma exclusãonão intencional de um arquivo. Apesar de não ser tão comum quanto o CVS, oSubversion já está sendo empregado em ambientes de produção, como no próprioprojeto do Subversion.

O Unison ainda é relativamente novo, mas ostenta um alto nível de estabilidade.Entretanto, ele é mais sensível a erros do usuário. Depois que a sincronização da exclusãode um arquivo é confirmada, não há como restaurar o arquivo.

Tabela 27.1 Recursos das ferramentas de sincronização de arquivos: -- = muitoruim, - = ruim ou não disponível, o = médio, + = bom, ++= excelente,

x = disponível

mailsyncrsyncCVS/SVNunison

igualC-SC-S/C-SigualCliente/Servidor

Lin,Un*xLin,Un*x,WinLin,Un*x,WinLin,Un*x,WinPortabilidade

-xx/xxInteratividade

++o/+-Velocidade

+o++/++oConflitos

512 Referência

Page 513: Reference Pt BR

mailsyncrsyncCVS/SVNunison

Caixa deCorreio

Dir.Sel/arq., dir.Dir.Sel. de arquivos

--x/x-Histórico

+o--oEspaço em discorígido

--o/o+Interface gráficado usuário (GUI)

o+o/o+Dificuldade

+(SSL)+(ssh)+/+(ssh)+(ssh)Ataques

++++/+++Perda de dados

27.3 Introdução ao UnisonO Unison é uma excelente solução para sincronizar e transferir árvores inteiras dediretórios. A sincronização é executada nas duas direções e pode ser controlada pormeio de um front end gráfico intuitivo. Também é possível usar uma versão de console.A sincronização pode ser automatizada, de forma que a interação com o usuário nãoseja necessária, mas é preciso ter experiência.

27.3.1 RequisitosO Unison deve ser instalado no cliente e no servidor. Nesse contexto, o termo servidorse refere a um segundo host, o host remoto (diferente do CVS, explicado na Seção 27.1.2,“CVS” (p 506)).

Na seção a seguir, o Unison será usado com o ssh. Nesse caso, um cliente SSH deveser instalado no cliente e um servidor SSH deve ser instalado no servidor.

Sincronização de arquivos 513

Page 514: Reference Pt BR

27.3.2 Usando o UnisonA abordagem usada pelo Unison é a associação de dois diretórios (roots). Essa associaçãoé simbólica; não se trata de uma conexão online. Neste exemplo, o layout do diretórioé o seguinte:

/home/tux/dir1Cliente:

/home/geeko/dir2Servidor:

Você deseja sincronizar esses dois diretórios. O usuário é conhecido como tux no clientee como geeko no servidor. A primeira coisa a fazer é testar se a comunicação entrecliente e servidor funciona:unison -testserver /home/tux/dir1 ssh://geeko@server//homes/geeko/dir2

Os problemas encontrados com mais freqüência são:

• As versões do Unison usadas no cliente e no servidor não são compatíveis.

• O servidor não permite conexões com SSH.

• Nenhum dos dois caminhos especificados existe.

Se tudo funcionar, omita a opção -testserver. Durante a primeira sincronização,o Unison ainda não conhece a relação entre os dois diretórios e envia sugestões para adireção da transferência dos arquivos e diretórios específicos. As setas da coluna Açãoindicam a direção da transferência. Um ponto de interrogação significa que o Unisonnão é capaz de fazer uma sugestão com relação à direção da transferência, pois as duasversões foram mudadas ou são novas.

As teclas de seta podem ser usadas para definir a direção da transferência de entradasespecíficas. Se as direções de transferência estiverem corretas para todas as entradasexibidas, simplesmente clique em Ir.

As características do Unison (por exemplo, se ele executa a sincronizaçãoautomaticamente em casos de limpeza) podem ser controladas por meio de parâmetrosde linha de comando especificados quando o programa é iniciado. Veja a lista completade todos os parâmetros com unison --help.

514 Referência

Page 515: Reference Pt BR

Exemplo 27.1 O arquivo ~/.unison/example.prefsroot=/home/tux/dir1root=ssh://wilber@server//homes/wilber/dir2batch=true

Para cada par é mantido um registro de sincronização no diretório do usuário ~/.unison. Definições de configuração, como ~/.unison/example.prefs,também podem ser armazenadas neste diretório. Para iniciar a sincronização, especifiqueesse arquivo como parâmetro da linha de comando, como emunison example.prefs.

27.3.3 Mais informaçõesA documentação oficial do Unison é extremamente útil. Por essa razão, esta seçãosimplesmente fornece uma breve introdução. O manual completo está disponível emhttp://www.cis.upenn.edu/~bcpierce/unison/ e nounison do pacoteSUSE.

27.4 Introdução ao CVSO CVS é adequado para fins de sincronização, caso arquivos específicos sejam editadoscom freqüência 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 outrosformatos, como arquivos JPEG, é possível, mas lida com grandes quantidades de dados,pois todas as variantes de um arquivo são armazenadas permanentemente no servidorCVS. Nesses casos, não é possível usar a maioria dos recursos do CVS. O uso do CVSpara sincronizar arquivos só será possível se todas as estações de trabalho puderemacessar o mesmo servidor.

27.4.1 Configurando um servidor CVSO servidor é o host em que todos os arquivos válidos se localizam, incluindo as versõesmais recentes de todos os arquivos. Qualquer estação de trabalho estacionária pode serusada como um servidor. Se possível, os dados do repositório do CVS devem serincluídos em backups regulares.

Sincronização de arquivos 515

Page 516: Reference Pt BR

Durante a configuração de um servidor CVS, é uma boa idéia conceder aos usuários oacesso ao servidor via SSH. Se o usuário for conhecido pelo servidor como tux e osoftware do CVS estiver instalado tanto no servidor quanto no cliente, as variáveis deambiente a seguir deverão 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, é necessário designar um nome à sincronização. Selecione ou crie umdiretório no cliente exclusivamente para conter arquivos a serem gerenciados com oCVS (o diretório também pode ficar vazio). O nome do diretório também será o nomeda sincronização. Neste exemplo, o diretório é chamado de synchome. Vá para essediretório e digite o comando a seguir para definir o nome de sincronização comosynchome:cvs import synchome tux wilber

Vários comandos do CVS requerem um comentário. Para essa finalidade, o CVS iniciaum editor (o editor definido na variável do ambiente $EDITOR ou vi, se nenhum editortiver sido definido). A chamada do editor pode ser evitada se você inserir o comentárioantes na linha de comando, como no exemplo a seguir:cvs import -m 'this is a test' synchome tux wilber

27.4.2 Usando o CVSO repositório de sincronização agora pode ter a saída registrada de todos os hosts comcvs co synchome. Esse procedimento cria um novo subdiretório synchome nocliente. Para enviar suas mudanças para o servidor, vá para o diretório synchome (ouum de seus subdiretórios) e digite cvs commit.

Por padrão, todos os arquivos (incluindo subdiretórios) são enviados para o servidor.Para enviar somente determinados arquivos ou diretórios, especifique-os emcvs commit file1 directory1. É necessário adicionar novos arquivos ediretórios ao repositório com um comando como cvs add file1 directory1antes de enviá-los para o servidor. Depois disso, envie arquivos e diretórios adicionadosrecentemente com cvs commit file1 directory1.

516 Referência

Page 517: Reference Pt BR

Se você for para outra estação de trabalho, registre a saída do repositório desincronização, caso isso não tenha sido feito em uma sessão anterior na mesma estaçãode trabalho (veja acima).

Inicie a sincronização com o servidor comcvsupdate. Atualize arquivos ou diretóriosespecíficos como em cvs update file1 directory1. Para ver a diferença entreos arquivos atuais e versões armazenadas no servidor, use o comando cvs diff oucvs diff file1 directory1. Use cvs -nq update para ver quais arquivosseriam afetados por uma atualização.

Estes são alguns símbolos de status exibidos durante uma atualização:

UA versão local foi atualizada. Isso afeta todos os arquivos fornecidos pelo servidore ausentes no sistema local.

SA versão local foi modificada. Se havia mudanças no servidor, foi possível fundiras diferenças na cópia local.

PA versão local foi corrigida com a versão do servidor.

CO arquivo local está em conflito com a versão atual do repositório.

?Este arquivo não existe no CVS.

O status M indica um arquivo modificado localmente. Envie a cópia local para o servidorou remova o arquivo local e execute a atualização novamente. Nesse caso, o arquivoausente será recuperado do servidor. Se você enviar um arquivo modificado localmentee 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 duasversões. Como essa tarefa pode ser desagradável, você pode abandonar as mudanças,apagar o arquivo local e digitar cvs up para recuperar a versão atual do servidor.

Sincronização de arquivos 517

Page 518: Reference Pt BR

27.4.3 Mais informaçõesEsta seção simplesmente oferece uma breve introdução sobre as várias possibilidadesdo CVS. Uma documentação mais abrangente está disponível no seguinte URL:http://www.cvshome.org/http://www.gnu.org/manual/

27.5 Introdução ao SubversionO Subversion é um sistema de controle de versão de código-fonte aberto gratuito eamplamente considerado como sucessor do CVS, o que quer dizer que os recursosapresentados pelo CVS normalmente também estão presentes no Subversion. Ele éespecialmente recomendável quando as vantagens do CVS são almejadas sem que sejanecessário tolerar as desvantagens. Muitos desses recursos já foram apresentadosbrevemente na Seção 27.1.3, “Subversion” (p 507).

27.5.1 Instalando um servidor SubversionA instalação de um banco de dados repositório em um servidor é um procedimentorelativamente simples. O Subversion fornece uma ferramenta de administração dedicadapara essa finalidade. Digite o comando a seguir para criar um novo repositório:svnadmin create /path/to/repository

Outras opções podem ser relacionadas com svnadmin help. Em oposição ao CVS,o Subversion não é baseado no RCS, mas em tipos diferentes de repositório. O Bancode Dados Berkeley ou FSFS (um repositório que utiliza o sistema de arquivosdiretamente) é usado normalmente. Não instale um repositório em sistemas de arquivosremotos, como NFS, AFS ou Windows SMB. O banco de dados requer mecanismosde bloqueio POSIX, não suportados por esses sistemas de arquivos.

O comando svnlook fornece informações sobre um repositório existente.svnlook info /path/to/repository

É necessário configurar um servidor para permitir que usuários diferentes acessem orepositório. Use o servidor Web do Apache com o WebDAV para fazer isso, ou use osvnserve, o servidor fornecido com o Subversion. Quando o svnserve estiver emexecução, o repositório poderá ser acessado com um URL com svn:// ou

518 Referência

Page 519: Reference Pt BR

svn+ssh://. Usuários que podem se autenticar chamando svn podem ser definidosem /etc/svnserve.conf.

A decisão sobre o uso do Apache ou do svnserce depende de vários fatores. Érecomendável pesquisar o manual do Subversion. Mais informações sobre o assuntopodem ser encontradas na Seção 27.5.3, “Mais informações” (p 521).

27.5.2 Utilização e operaçãoUse o comando svn (similar ao cvs) para acessar um repositório do Subversion. Useo comando svn help para obter a descrição de um parâmetro 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 conteúdo fornecido por um servidor configurado corretamente correspondente adeterminado repositório pode ser acessado por qualquer cliente com um dos seguintescomandos:svn list http://svn.example.com/path/to/project

ousvn list svn://svn.example.com/path/to/project

Grave um projeto existente no diretório atual (registre a saída) com o comandosvn checkout:svn checkout http://svn.example.com/path/to/project nameofproject

O registro da saída cria um novo subdiretórionameofproject no cliente. Operações(adição, cópia, renomeação, exclusão) podem ser executadas em:svn add filesvn copy oldfile newfilesvn move oldfile newfilesvn delete file

Sincronização de arquivos 519

Page 520: Reference Pt BR

Esses comandos também podem ser usados em diretórios. Além disso, o Subversionpode registrar as propriedades de um arquivo ou diretório:svn propset license GPL foo.txt

O exemplo anterior define o valorGPL para a propriedadelicense. Exiba propriedadescom svn proplist:svn proplist --verbose foo.txt Properties on 'foo.txt': license : GPL

Grave as mudanças no servidor com svn commit. Outro usuário pode incorporar suasmudanças no diretório de trabalho dele sincronizando com o servidor e usandosvn update.

Diferentemente do CVS, o status de um diretório em operação no Subversion pode serexibido sem acesso ao repositório com svn status. Mudanças locais são exibidasem cinco colunas, sendo a primeira a mais importante:

' 'Nenhuma mudança.

'A'O objeto é marcado para adição.

'D'O objeto é marcado para exclusão.

'M'O objeto foi modificado.

'C'O objeto está em conflito.

'I'O objeto foi ignorado.

'?'O objeto não está sendo mantido por controle de versão.

520 Referência

Page 521: Reference Pt BR

'!'O objeto é reportado como ausente. Este flag é exibido quando o objeto é apagadoou movido sem o comando svn.

'~'O objeto estava sendo mantido como um arquivo, mas foi substituído por umdiretório, ou ocorreu o oposto.

A segunda coluna mostra o status das propriedades. O significado de todas as outrascolunas pode ser lido no manual do Subversion.

27.5.3 Mais informaçõesO primeiro ponto de referência é a home page do projeto Subversion, em http://subversion.tigris.org/. Um manual altamente recomendável pode serencontrado no diretóriofile:///usr/share/doc/packages/subversion/html/book.html depois da instalação do pacote subversion-doc e tambémestá disponível online emhttp://svnbook.red-bean.com/svnbook/index.html.

27.6 Introdução ao rsyncO rsync será útil quando for necessário transmitir grandes quantidades de dadosregularmente, sem que haja muitas mudanças. Esse é, por exemplo, sempre o caso dacriação de backups. Uma outra aplicação diz respeito a servidores para teste. Essesservidores armazenam árvores completas de diretório de servidores Web regularmenteespelhadas em um servidor Web em um DMZ.

27.6.1 Configuração e operaçãoO rsync pode ser operado em dois modos diferentes. Ele pode ser usado para arquivarou copiar dados. Para isso, somente um shell remoto, como o ssh, é necessário nosistema de destino. Entretanto, o rsync também pode ser usado como um daemon parafornecer diretórios à rede.

O modo de operação básica do rsync não requer qualquer configuração especial. Orsync permite diretamente o espelhamento de diretórios inteiros em outro sistema. Como

Sincronização de arquivos 521

Page 522: Reference Pt BR

exemplo, o comando a seguir cria um backup do diretório pessoal do tux em um servidorde backup chamado de sun:rsync -baz -e ssh /home/tux/ tux@sun:backup

O comando a seguir é usado para reproduzir o diretório de volta:rsync -az -e ssh tux@sun:backup /home/tux/

Até esse ponto, o gerenciamento não é muito diferente do de uma ferramenta de cópiacomum, como o scp.

O rsync deve ser operado no modo “rsync” para que todos os recursos fiquem totalmentedisponíveis. 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 diretório/srv/ftp disponível com o rsync, use a seguinte configuração:gid = nobodyuid = nobodyread only = trueuse chroot = notransfer logging = truelog format = %h %o %f %l %blog file = /var/log/rsyncd.log

[FTP] path = /srv/ftp comment = An Example

Em seguida, inicie o rsyncd com rcrsyncd start. O rsyncd também pode seriniciado automaticamente durante o processo de inicialização. Configure esse recursoativando esse serviço no editor de níveis de execução fornecido pelo YaST ou digitandomanualmente o comando insserv rsyncd. O rsyncd também pode ser iniciado comxinetd. Entretanto, isso só é recomendável para servidores que raramente usam o rsyncd.

O exemplo também cria um arquivo de registro listando todas as conexões. Esse arquivoé armazenado em /var/log/rsyncd.log.

Então será possível testar a transferência de um sistema cliente. Faça isso com o seguintecomando:rsync -avz sun::FTP

Esse comando lista todos os arquivos presentes no diretório /srv/ftp do servidor.Essa solicitação também é registrada no arquivo de registro /var/log/rsyncd

522 Referência

Page 523: Reference Pt BR

.log. Para iniciar uma transferência real, forneça um diretório de destino. Use . parao diretório atual. Por exemplo:rsync -avz sun::FTP .

Por padrão, nenhum arquivo será apagado durante a sincronização com o rsync. Se esseprocedimento for forçado, a opção adicional --delete deverá ser expressa. Paragarantir que nenhum arquivo novo seja apagado, use a opção --update comoalternativa. Qualquer conflito ocorrido deve ser resolvido manualmente.

27.6.2 Mais informaçõesInformações importantes sobre o rsync são fornecidas nas páginas de manualman rsync eman rsyncd.conf. Uma referência técnica sobre os princípios deoperação do rsync pode ser encontrada em/usr/share/doc/packages/rsync/tech_report.ps. Encontre as notícias mais recentes sobre o rsync no site do projeto,em http://rsync.samba.org/.

27.7 Introdução ao mailsyncO mailsync é principalmente adequado para as três tarefas a seguir:

• Sincronização de e-mails armazenados localmente com e-mails armazenados emum servidor

• Migração de caixas de correio de um formato diferente ou de um servidor diferente

• Verificação de integridade de uma caixa de correio ou pesquisa de duplicatas

27.7.1 Configuração e usoO mailsync faz a distinção entre a própria caixa de correio (o armazenamento) e aconexão entre duas caixas de correio (o canal). As definições de armazenamentos ecanais estão em ~/.mailsync. Os parágrafos a seguir explicam alguns exemplos dearmazenamento.

Uma simples definição pode ser exibida como a seguir:

Sincronização de arquivos 523

Page 524: Reference Pt BR

store saved-messages { pat Mail/saved-messagesprefix Mail/}

O Mail/ é um subdiretório do diretório pessoal do usuário que contém pastas de e-mail, incluindo a pasta saved-messages. Se o mailsync for iniciado commailsync -m saved-messages, ele listará um índice de todas as mensagens emsaved-messages. Se a definição a seguir for feitastore localdir { pat Mail/* prefix Mail/ }

o comando mailsync -m localdir listará todas as mensagens armazenadas emMail/. Em contraste, o comando mailsync localdir relaciona os nomes depastas. As especificações de um armazenamento em um servidor IMAP são exibidascomo 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. Umarmazenamento 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 conexões criptografadas, as especificações do servidordevem mudar paraserver {mail.edu.harvard.com/ssl/user=gulliver}

ou, se o certificado do servidor não for conhecido, paraserver {mail.edu.harvard.com/ssl/novalidate-cert/user=gulliver}

O prefixo será explicado posteriormente.

Agora, as pastas em Mail/ devem ser conectadas aos subdiretórios do servidor IMAP.

524 Referência

Page 525: Reference Pt BR

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 padrão em ambos os lados.

• Remove o prefixo dos nomes de pasta resultantes.

• Sincroniza as pastas em pares (ou os cria, caso não existam).

Dessa maneira, a pasta INBOX.sent-mail do servidor IMPA é sincronizada coma pasta local Mail/sent-mail (desde que as definições explicadas acima existam).A sincronização entre a pasta específica é 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 (não listada no arquivomsinfo), ela será transmitida aqui.

• Se a mensagem simplesmente existir em um dos lados e for antiga (já listada noarquivo msinfo), ela será apagada (pois a mensagem que obviamente existia dooutro lado foi apagada).

Para saber com antecedência quais mensagens serão transmitidas e quais serão apagadasdurante uma sincronização, inicie o mailsync com um canal e um armazenamento commailsync folder localdir. Esse comando produz uma lista de todas asmensagens novas nos hosts locais, bem como uma lista de todas as mensagens queseriam apagadas no lado do IMAP durante uma sincronização. Da mesma forma, ocomando mailsync folder imapdir produz uma lista de todas as mensagensnovas no lado do IMAP e uma lista de todas as mensagens que devem ser apagadas dohost local durante uma sincronização.

27.7.2 Problemas possíveisNo caso de perda de dados, o método mais seguro é apagar o arquivo de registro docanal relevantemsinfo. Conseqüentemente, todas as mensagens que existam somente

Sincronização de arquivos 525

Page 526: Reference Pt BR

em um lado serão vistas como novas e, portanto, transmitidas durante a próximasincronização.

Somente mensagens com um ID são incluídas na sincronização. Mensagens sem IDsão simplesmente ignoradas, o que significa que não são transmitidas nem apagadas.Um ID de mensagem ausente normalmente é causado por programas com falhas noenvio ou na gravação de uma mensagem.

Em certos servidores IMAP, a pasta principal é chamada de INBOX e as subpastas sãochamadas de um nome selecionado ao acaso (em contraste com INBOX e INBOX.name).Portanto, não é possível especificar um padrão exclusivamente para as subpastas dosservidores IMAP.

Depois da transmissão bem-sucedida de mensagens para um servidor IMAP, os driversda caixa de correio (c-client) usados pelo mailsync definem um flag de status especial.Por essa razão, alguns programas de e-mail, como mutt, não são capazes de reconheceressas mensagens como novas. Desabilite a configuração desse flag de status especialcom a opção -n.

27.7.3 Mais informaçõesO README in /usr/share/doc/packages/mailsync/, incluído emmailsync, fornece informações adicionais. Nesse contexto, o RFC 2076 “CommonInternet Message Headers” é de especial interesse.

526 Referência

Page 527: Reference Pt BR

28SambaCom o Samba, uma máquina Unix pode ser configurada como um servidor de arquivose de impressão para máquinas em DOS, Windows e OS/2. O Samba se tornou umproduto completo e bastante complexo. Configure o Samba com o YaST, o SWAT(uma interface da Web) ou o arquivo de configuração.

28.1 TerminologiaProtocolo SMB

O Samba usa o protocolo SMB (bloco de mensagens do servidor), baseado nosserviços NetBIOS. Devido à pressão da IBM, a Microsoft lançou o protocolo paraque outros fabricantes de software pudessem estabelecer conexões com uma redede domínio Microsoft. Com o Samba, o protocolo SMB opera acima do protocoloTCP/IP, de modo que este último precisa estar instalado em todos os clientes.

Protocolo CIFSO protocolo CIFS (sistema de arquivos da Internet comuns) é outro protocolo parao qual o Samba oferece suporte. O CIFS é um protocolo de acesso padrão a sistemasde arquivos remotos para utilização pela rede, permitindo que grupos de usuáriostrabalhem juntos e compartilhem documentos pela rede.

NetBIOSO NetBIOS é uma interface de software (API) projetada para a comunicação entremáquinas. Nesse caso, é prestado um serviço de nome. Ele permite que máquinasconectadas à rede reservem nomes para si. Após a reserva, essas máquinas podemser tratadas pelo nome. Não há um processo central para a verificação de nomes.

Samba 527

Page 528: Reference Pt BR

Qualquer máquina da rede pode reservar quantos nomes quiser, contanto que osnomes não estejam em uso ainda. A interface NetBIOS passa a poder serimplementada para diferentes arquiteturas de rede. Uma implementação que funcionacom relativa proximidade com o hardware da rede é chamada de NetBEUI, masela muitas vezes é chamada de NetBIOS. Os protocolos de rede implementadoscom o NetBIOS são o IPX da Novell (NetBIOS via TCP/IP) e TCP/IP.

Os nomes de NetBIOS enviados por TCP/IP não possuem nada em comum comos nomes usados em /etc/hosts ou com os nomes definidos pelo DNS. ONetBIOS usa sua própria convenção de nomes independente. Contudo, érecomendável usar nomes que correspondam aos nomes de hosts DNS para facilitara administração. Esse é o padrão usado pelo Samba.

servidor SambaO servidor Samba é um servidor que fornece serviços SMB/CIFS e serviços denomeação NetBIOS por IP aos clientes. No caso do Linux, há dois daemons parao servidor Samba: smnd para os serviços SMB/CIFS e nmbd para serviços denomeação.

cliente SambaO cliente Samba é um sistema que usa serviços Samba de um servidor Samba peloprotocolo SMB. Todos os sistemas operacionais comuns, como Mac OS X, Windowse OS/2, prestam suporte ao protocolo SMB. O protocolo TCP/IP precisa estarinstalado em todos os computadores. O Samba fornece um cliente para as diferentesversões do UNIX. No caso do Linux, há um módulo de kernel para SMB quepermite a integração de recursos SMB no nível de sistema Linux. Não é necessárioexecutar daemons para o cliente Samba.

CompartilhamentosOs servidores SMB oferecem espaço em hardware a seus clientes por meio decompartilhamentos. Compartilhamentos são impressoras e diretórios com seussubdiretórios no servidor. Ele é exportado por meio de um nome e pode ser acessadopelo nome. O nome do compartilhamento pode ser definido por qualquer nome;não precisa ser o nome do diretório de exportação. Uma impressora também recebeum nome. Os clientes podem acessar a impressora pelo nome.

528 Referência

Page 529: Reference Pt BR

28.2 Iniciando e interrompendo oSamba

Você pode iniciar ou interromper o servidor Samba manualmente ou automaticamentedurante a inicialização. A política de iniciar e interromper faz parte da configuração doservidor Samba YaST descrita na Seção 28.3.1, “Configurando um servidor Sambacom o YaST” (p 529).

Para interromper ou iniciar a execução dos serviços Samba com o YaST, use Sistema→ Serviços do Sistema (Runlevel). Na linha de comando, interrompa os serviçosnecessários ao Samba com rcsmb stop && rcnmb stop e use rcnmb start&& rcsmb start para iniciá-los.

28.3 Configurando um servidor SambaO servidor Samba no SUSE Linux pode ser configurado de duas maneiras diferentes:com o YaST ou manualmente. A configuração manual oferece um nível maior dedetalhes, mas não tem a conveniência da interface gráfica de usuário do YaST.

28.3.1 Configurando um servidor Sambacom o YaST

Para configurar o servidor Samba, inicie o YaST e selecione Serviços de Rede →Servidor Samba. Quando o módulo é iniciado pela primeira vez, a caixa de diálogoInstalação do Servidor Samba é iniciada, solicitando que você tome algumas decisõesbásicas em relação à administração do servidor. No final da configuração, a senha deroot do Samba é solicitada. Nas inicializações seguintes, a caixa de diálogoConfiguraçãodo Servidor Samba será exibida.

A caixa de diálogo Instalação do Servidor Samba consiste em duas etapas:

Nome de Grupo de Trabalho ou DomínioSelecione um nome existente em Nome de Grupo de Trabalho ou Domínio oudigite um novo nome e clique em Próximo.

Samba 529

Page 530: Reference Pt BR

Tipo de Servidor SambaNa etapa seguinte, especifique se o servidor deverá funcionar como PDC e cliqueem Próximo.

É possível mudar todas as configurações na Instalação do Servidor Sambaposteriormente na caixa de diálogo Configuração do Servidor Samba com a guiaIdentidade.

Na primeira vez que você iniciar o módulo do servidor Samba, a caixa de diálogoConfiguração do Servidor Samba é exibida logo após a caixa de diálogo Instalação doServidor Samba. Ela contém três guias:

InicializaçãoNa guia Inicialização, você pode definir como iniciar o servidor Samba. Para iniciaro serviço sempre que o sistema for inicializado, clique emDurante a Inicialização.Para ativar a inicialização automática, escolha Manualmente. Mais informaçõessobre como iniciar um servidor Samba são fornecidas na Seção 28.2, “Iniciando einterrompendo o Samba” (p 529).

Nesta guia, também é possível abrir portas no seu firewall. Para fazer isso, selecioneAbrir Porta no Firewall. Se tiver várias interfaces de rede, clique em Detalhes doFirewall, selecione as interfaces e clique emOK para selecionar a interface de redepara os serviços Samba.

CompartilhamentosNesta guia, determine os compartilhamentos do Samba a serem ativados. Há algunscompartilhamentos predefinidos, como homes e impressoras. Use Alternar Statuspara alternar entre Ativo e Inativo. Clique em Adicionar para adicionar novoscompartilhamentos e Apagar para apagar o compartilhamento selecionado.

IdentidadeEm Identidade, você pode determinar o domínio ao qual o host deve ser associado(Configurações de Base) e se um nome de host alternativo deve ser usado na rede(Nome de Host do NetBIOS). Para definir configurações globais de especialista ouautenticação de usuário, clique em Configurações de Usuário.

Clique em Concluir para fechar a configuração.

530 Referência

Page 531: Reference Pt BR

28.3.2 Administração da Web com o SWATUma ferramenta alternativa para a administração do servidor Samba é o SWAT(Ferramenta de Administração da Web do Samba). Ele oferece uma interface da Websimples para configuração do servidor Samba. Para usar o SWAT, abra http://localhost:901 e efetue login como usuário root. Se você não tiver uma contaroot especial do Samba, use a conta root do sistema.

NOTA: Ativando o SWAT

Após a instalação do servidor Samba, o SWAT não estará ativado. Para ativá-lo, abra Serviços de Rede → Serviços de Rede (xinetd) no YaST, habilite aconfiguração dos serviços de rede, selecione swat na tabela e clique em AlternarStatus (Ativado ou Desativado).

28.3.3 Configurando o servidormanualmente

Se pretender usar o Samba como servidor, instale samba. O arquivo de configuraçãodo Samba é o /etc/samba/smb.conf. Esse arquivo pode ser dividido em duaspartes lógicas. A seção [global] contém as configurações central e global. As seções[share] contêm os compartilhamentos individuais de arquivo e impressora. Comessa abordagem, detalhes relativos aos compartilhamentos podem ser definidos deforma diferenciada ou global na seção [global], que aumenta a transparênciaestrutural do arquivo de configuração.

A seção globalOs seguintes parâmetros da seção [global] precisam de ajustes para atender aosrequisitos de configuração da sua rede para que outras máquinas possam acessar seuservidor Samba via SMB em um ambiente Windows.

workgroup = TUX-NETEssa linha designa o servidor Samba a um grupo de trabalho. Substitua o TUX-NETpor um grupo de trabalho apropriado do seu ambiente de rede. Seu servidor Sambaaparece sob o nome DNS, a menos que esse nome tenha sido designado a algumaoutra máquina na rede. Se o nome DNS não estiver disponível, defina o nome do

Samba 531

Page 532: Reference Pt BR

servidor usando netbiosname=MYNAME. Consulte mansmb.conf para obtermais detalhes sobre esse parâmetro.

os level = 2Esse parâmetro determina se seu servidor Samba tenta se tornar um LMB (LocalMaster Browser - Browser Master Local) para seu grupo de trabalho. Escolha umvalor bem reduzido para poupar a rede do Windows existente de perturbaçõescausadas por um servidor Samba mal configurado. Mais informações sobre esseimportante tópico podem ser encontradas nos arquivos BROWSING.txt eBROWSING-Config.txt, no subdiretório textdocs da documentação dopacote.

Se nenhum outro servidor SMB estiver presente na rede (como o servidor WindowsNT ou 2000) e você desejar que o servidor Samba mantenha uma lista de todos ossistemas 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 redelocal.

Ao mudar essa configuração, reflita bem sobre como isso pode afetar um ambientede rede Windows existente. Primeiro, teste as mudanças em uma rede isolada ouem um horário não crítico do dia.

suporte WINS e servidor WINSPara integrar o servidor Samba a uma rede Windows existente dotada de um servidorWINS ativo, habilite a opção wins server e defina seu valor para o endereçoIP desse servidor WINS.

Se as suas máquinas do Windows estiverem conectadas a sub-redes separadas eainda assim precisarem levar as restantes em consideração, será necessárioconfigurar um servidor WINS. Para transformar um servidor Samba em um servidorWINS, defina a opçãowins support = Yes. Verifique se somente um servidorSamba da rede possui essa configuração habilitada. As opções wins server ewins support nunca devem ficar habilitadas ao mesmo tempo no arquivo smb.conf.

CompartilhamentosOs exemplos a seguir ilustram como uma unidade de CD-ROM e os diretórios do usuário(homes) são disponibilizados aos clientes SMB.

532 Referência

Page 533: Reference Pt BR

[cdrom]Para evitar a disponibilização acidental da unidade de CD-ROM, essas linhas sãodesativadas com marcas de comentários (nesse caso, pontos-e-vírgulas). Removaos pontos-e-vírgulas da primeira coluna para compartilhar a unidade do CD-ROMcom o Samba.

Exemplo 28.1 Compartilhamento de CD-ROM;[cdrom]; comment = Linux CD-ROM; path = /media/cdrom; locking = No

[cdrom] e commentA entrada [cdrom] é o nome do compartilhamento que pode ser visto portodos os clientes SMB na rede. Um comment adicional pode ser feito paraenriquecer a descrição do compartilhamento.

path = /media/cdrompath exporta o diretório /media/cdrom.

Por meio de uma configuração padrão bastante restritiva, esse tipo decompartilhamento somente é disponibilizado aos usuários presentes nesse sistema.Se esse compartilhamento precisar ser disponibilizado a todos, adicione uma linhaguest ok = yes à configuração. Essa configuração concede permissões deleitura a todos na rede. Recomenda-se muita cautela no manejo desse parâmetro.Isso se aplica ainda mais intensamente ao uso desse parâmetro na seção[global].

[homes]O compartilhamento[home] possui especial importância aqui. Se o usuário possuiruma conta e senha válidas para o servidor de arquivos Linux e seu próprio diretóriopessoal, 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

Page 534: Reference Pt BR

[homes]Contanto que não haja nenhum outro compartilhamento usando o nome decompartilhamento do usuário que estabelece a conexão ao servidor SMB, umcompartilhamento é gerado dinamicamente usando as diretivas decompartilhamento [homes]. O nome resultante do compartilhamento é onome do usuário.

valid users = %S%S é substituído pelo nome concreto do compartilhamento logo que umaconexão tenha sido estabelecida com sucesso. Para um compartilhamento[homes], sempre será usado o nome do usuário. Conseqüentemente, osdireitos de acesso ao compartilhamento de um usuário ficam restritosexclusivamente a ele.

browseable = NoEssa configuração torna o compartilhamento invisível no ambiente da rede.

read only = NoPor padrão, o Samba proíbe o acesso de gravação aos compartilhamentosexportados por meio do parâmetro read only = Yes. Para tornar umcompartilhamento gravável, defina o valor read only = No, quecorresponde a writeable = Yes.

create mask = 0640Como os sistemas que não se baseiam no MS Windows NT não compreendemo conceito de permissões do UNIX, não são capazes de designar permissõesao criar um arquivo. O parâmetro create mask define as permissões deacesso designadas a arquivos recém-criados. Isso somente se aplica acompartilhamentos graváveis. Na verdade, essa configuração significa que oproprietário possui permissões de leitura e gravação e que os membros dogrupo principal do proprietário possuem permissões de leitura.valid users= %S impede o acesso de leitura mesmo se o grupo possuir permissões deleitura. Para que o grupo tenha acesso de leitura ou gravação, desative a linhavalid users = %S.

Níveis de segurançaPara aumentar a segurança, cada acesso a compartilhamento pode ser protegido porsenha. O SMB possui três formas de verificar as permissões:

534 Referência

Page 535: Reference Pt BR

Segurança no nível do compartilhamento (security = share)Uma senha é rigorosamente designada a um compartilhamento. Todos que conheçamessa senha possuem acesso ao compartilhamento.

Segurança no nível do usuário (security = user)Essa variação introduz o conceito do usuário ao SMB. Cada usuário precisa seregistrar no servidor com sua própria senha. Após o registro, o servidor podeconceder acesso a compartilhamentos exportados específicos condicionados anomes de usuários.

Segurança no nível do servidor (security = server):Para seus clientes, o Samba age como se estivesse operando em modo de nível deusuário. Entretanto, ele encaminha todas as consultas de senha a outro servidor demodo de nível de usuário, que se encarrega da autenticação. Essa configuraçãopressupõe um parâmetro adicional (password server).

A seleção de segurança no nível de compartilhamento, usuário ou servidor se aplica atodo o servidor. Não é possível oferecer compartilhamentos individuais de umaconfiguração de servidor com segurança no nível de compartilhamento e outros comsegurança no nível de usuário. Entretanto, é possível executar um servidor Sambaseparado para cada endereço IP configurado em um sistema.

Para obter mais informações sobre esse assunto, consulte a Coleção HOWTO do Samba.No caso de vários servidores em um sistema, preste atenção nas opções interfacese bind interfaces only.

28.4 Configurando clientesOs clientes somente podem acessar o servidor Samba via TCP/IP. O NetBEUI e oNetBIOS via IPX não podem ser usados com o Samba.

28.4.1 Configurando um cliente Samba como YaST

Configure um cliente Samba para acessar recursos (arquivos ou impressoras) no servidorSamba. Digite o domínio ou grupo de trabalho na caixa de diálogo Grupo de TrabalhoSamba. Clique em Pesquisar para exibir todos os grupos ou domínios disponíveis, que

Samba 535

Page 536: Reference Pt BR

podem ser selecionados com o mouse. Se você ativar Usar também informações SMBpara a Autenticação de Linux, a autenticação do usuário será executada no servidorSamba. Após concluir todas as configurações, clique em Concluir para finalizar aconfiguração.

28.4.2 Windows 9x e MEO Windows 9x e ME já vêm com suporte para TCP/IP. Entretanto, esse suporte não éinstalado como o padrão. Para adicionar TCP/IP, vá até Painel de Controle → Sistemae escolha Adicionar → Protocolos → TCP/IP da Microsoft. Após reinicializar suamáquina 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 impressorapadrão Apple-PostScript na versão correspondente do Windows. É melhorvincular essa unidade à fila de impressão do Linux, que aceita o Postscript comoum formato de entrada.

28.5 Samba como servidor de loginEm redes onde se encontram predominantemente clientes Windows, muitas vezes épreferível que os usuários somente possam se registrar com uma conta e senha válidos.Em uma rede baseada no Windows, essa tarefa é realizada por um servidor WindowsNT configurado como um controlador de domínio primário (PDC), mas também podeser executada com a ajuda de um servidor Samba. As entradas a serem feitas na seção[global] de smb.conf aparecem no Exemplo 28.3, “Seção global em smb.conf”(p 536).

Exemplo 28.3 Seção global em smb.conf[global] workgroup = TUX-NET domain logons = Yes domain master = Yes

536 Referência

Page 537: Reference Pt BR

Se forem usadas senhas criptografadas para fins de verificação (essa é a configuraçãopadrão com instalações bem mantidas do MS Windows 9x, MS Windows NT 4.0 dopacote de serviços 3, e todos os produtos posteriores) o servidor Samba precisará sercapaz de tratá-las. A entrada encrypt passwords = yes na seção [global]permite isso (com a versão 3 do Samba, esse passa a ser o padrão). Além disso, énecessário preparar contas e senhas de usuários em formato de criptografia compatívelcom o Windows. Para isso, use o comando smbpasswd -a name. Crie a conta dedomínio dos computadores, exigida pelo conceito de domínio do Windows NT, comos seguintes comandos:

Exemplo 28.4 Configurando uma conta de máquinauseradd hostname\$ smbpasswd -a -m hostname

Com o comando useradd, um símbolo de cifrão é adicionado. O comandosmbpasswd insere esse símbolo automaticamente quando o parâmetro -m é usado.O exemplo de configuração comentado (/usr/share/doc/packages/Samba/examples/smb.conf.SuSE) contém configurações que automatizam essa tarefa.

Exemplo 28.5 Configuração automatizada de uma conta de máquinaadd 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 usuáriodo Samba com as permissões de administrador obrigatórias. Para isso, selecione umusuário e adicione-o ao grupo ntadmin. Depois disso, será possível designar a todosos usuários pertencentes a esse grupo Linux o status de Domain Admin com ocomando:net groupmap add ntgroup="Domain Admins" unixgroup=ntadmin

Mais informações sobre esse tópico aparecem no Capítulo 12 da Coleção HOWTO doSamba, contida no arquivo /usr/share/doc/packages/samba/Samba-HOWTO-Collection.pdf.

28.6 Mais informaçõesInformações detalhadas sobre o Samba estão disponíveis na documentação digital.Digite apropos samba na linha de comando para exibir algumas páginas do manualou simplesmente pesquise no diretório /usr/share/doc/packages/samba, se

Samba 537

Page 538: Reference Pt BR

a documentação do Samba estiver instalada, para obter mais documentação e exemplosonline. Uma configuração de exemplo comentada (smb.conf.SuSE) pode serencontrada no subdiretório exemplos.

A Coleção HOWTO fornecida pela equipe Samba inclui uma seção sobre a solução deproblemas. Além disso, a Parte V do documento oferece um guia passo a passo para averificação da configuração. A coleção HOWTO do Samba pode ser encontrada em/usr/share/doc/packages/samba/Samba-HOWTO-Collection.pdfapós a instalação do pacote samba-doc.

538 Referência

Page 539: Reference Pt BR

29O Servidor Proxy SquidO Squid é um proxy de cache amplamente utilizado em plataformas Linux e UNIX.Isso significa que armazena objetos da Internet solicitados, como dados em um servidorda Web ou FTP, em uma máquina mais próxima da estação de trabalho solicitante doque o servidor. Este capítulo discute sua configuração, as configurações necessáriaspara executá-lo, como configurar o sistema para realizar um proxy transparente, comoreunir estatísticas sobre o uso do cache com a ajuda dos programas, como o Calamarise o cachemgr, e como filtrar conteúdos 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 chegamdo servidor, ele fornece os objetos ao cliente e mantém uma cópia deles no cache dodisco rígido. Uma das vantagens do cache é que vários clientes que solicitem o mesmoobjeto podem ser atendidos a partir do cache do disco rígido. Este procedimento permiteque os clientes recebam os dados muito mais rapidamente em relação à Internet. Alémdisso, reduz o tráfego da rede.

Junto com o cache real, o Squid oferece uma ampla gama de recursos. Entre eles,distribuir a carga entre hierarquias de intercomunicação dos servidores proxy, definirlistas de controle de acesso restrito para todos os clientes que acessam o proxy, permitirou negar o acesso a páginas da Web específicas com a ajuda de outros aplicativos egerar estatísticas sobre páginas da Web visitadas com freqüência para avaliação doshábitos de navegação dos usuários. O Squid não é um proxy genérico. Normalmente,ele funciona como proxy apenas para conexões HTTP. Ele também tem suporte paraprotocolos FTP, Gopher, SSL e WAIS, mas não para outros protocolos da Internet,como Real Audio, notícias ou videoconferência. Como o Squid tem suporte apenaspara o protocolo UDP a fim de fornecer comunicação entre caches diferentes, não hásuporte para vários outros programas multimídia.

O Servidor Proxy Squid 539

Page 540: Reference Pt BR

29.1 Alguns fatos sobre caches proxyComo cache proxy, o Squid pode ser usado de várias maneiras. Quando combinadocom um firewall, pode ajudar na segurança. Vários proxies podem ser usados juntos.Também pode determinar os tipos de objetos que devem ser armazenados no cache edurante quanto tempo.

29.1.1 Squid e segurançaÉ possível usar o Squid junto com um firewall para proteger as redes internas de acessoexterno usando um cache proxy. O firewall nega acesso de todos os clientes a serviçosexternos, exceto o Squid. Todas as conexões da Web devem ser estabelecidas peloproxy. Com esta configuração, o Squid controla totalmente o acesso à Web.

Se a configuração do firewall incluir um DMZ, o proxy deve operar dentro desta zona.A Seção 29.5, “Configurando um proxy transparente” (p 551) descreve como implementarum proxytransparente. Isto simplifica a configuração dos clientes, porque neste casoeles não necessitam de informações sobre o proxy.

29.1.2 Vários cachesVárias instâncias do Squid podem ser configuradas para trocar objetos entre eles. Istoreduz a carga total do sistema e aumenta as chances de encontrar um objeto já existentena rede local. Também é possível configurar hierarquias de cache, de maneira que umcache seja capaz de encaminhar solicitações de objeto para caches irmãos ou para umcache pai, fazendo com que obtenha objetos de outro cache na rede local ou diretamenteda origem.

Escolher a topologia adequada para a hierarquia de cache é muito importante, porquenão é desejável aumentar o tráfego geral na rede. Para uma rede muito grande, fazsentido 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 comunicações são tratadas pelo ICP (Internet cache protocol) que éexecutado no protocolo UDP. As transferências de dados entre caches são tratadas comHTTP (hypertext transmission protocol) baseado no TCP.

540 Referência

Page 541: Reference Pt BR

Para encontrar o servidor mais adequado do qual obter os objetos, um cache envia umasolicitação ICP a todos os proxies irmãos. Estes respondem às solicitações via repostasICP com um código HIT se o objeto foi detectado ou, em caso contrário, com um MISS.Se forem encontradas várias respostas HIT, o servidor proxy decide de qual servidorfazer download, dependendo de fatores como que cache enviou a resposta mais rápidaou qual está mais próximo. Se não for recebida nenhuma resposta satisfatória, asolicitação é enviada ao cache pai.

DICA

Para evitar duplicação de objetos em vários caches na rede, são usados outrosprotocolos ICP, como CARP (cache array routing protocol) ou HTCP (hypertextcache protocol). Quanto maior o número de objetos mantidos na rede, maiora possibilidade de localizar o desejado.

29.1.3 Armazenando objetos da Internet emcache

Nem todos os objetos disponíveis na rede são estáticos. Há muitas páginas CGI,contadores de visitantes e documentos com conteúdo SSL criptografado que são geradosdinamicamente. Objetos como estes não são armazenados no cache porque mudam todavez que são acessados.

A questão é com relação a quanto tempo todos os outros objetos armazenados no cachedevem permanecer ali. Para determiná-lo, todos os objetos no cache recebem a atribuiçãode um ou vários estados possíveis. Os servidores da Web e proxy descobrem o statusde um objeto adicionando cabeçalhos aos objetos, como “Última modificação” ou“Vencimento” e a data correspondente. Também são usados outros cabeçalhosespecificando que objetos não devem ser armazenados no cache.

Os objetos no cache normalmente são substituídos, devido à falta de espaço livro nodisco rígido, usando algoritmos como LRU (last recently used). Basicamente, significaque o proxy elimina os objetos que não foram solicitados pelo tempo mais longo.

O Servidor Proxy Squid 541

Page 542: Reference Pt BR

29.2 Requisitos do sistemaO fator mais importante é determinar o máximo de carga de rede que o sistema devesuportar. Portanto, é importante prestar mais atenção aos picos de carga, porque podemser superiores a quatro vezes a média do dia. Quando em dúvida, seria melhorsuperestimar os requisitos do sistema, porque com o Squid trabalhando no limite dassuas capacidades pode haver uma perda grave de qualidade do serviço. As seções aseguir assinalam os fatores do sistema em ordem de importância.

29.2.1 Discos rígidosA velocidade exerce uma importante função no processo de cache, de maneira que estefator merece uma atenção especial. Para discos rígidos, este parâmetro é descrito comotempo de busca aleatório, medido em milissegundos. Como os blocos de dados que oSquid lê no disco rígido ou grava dele tendem a ser pequenos, o tempo de busca dodisco rígido é mais importante que seus throughput de dados. Para fins de um proxy,os discos rígidos com velocidades de alta rotação são provavelmente a melhor opção,porque permitem que a cabeça de leitura-gravação seja posicionada no ponto desejadomais rapidamente. Uma possibilidade para acelerar o sistema é usar vários discossimultaneamente ou empregar matrizes de RAID de distribuição.

29.2.2 Tamanho do cache do discoEm um cache pequeno, a possibilidade de um HIT (encontrar o objeto solicitado jálocalizado ali) é pequena, porque o cache é facilmente arquivado e os objetos menossolicitados são substituídos por outros mais novos. Se, por exemplo, um GB estiverdisponível para o cache e os usuários só navegarem 10 MB por dia, levaria mais de 100dias para preencher o cache.

A maneira mais fácil de determinar o tamanho de cache necessário é considerar a taxamáxima de transferência da conexão. Com uma conexão de 1 Mbit/s, a taxa máximade transferência é de 125 KB/s. Se todo este tráfego terminar no cache, em uma horateria adicionado 450 MB e, considerando-se que todo esse tráfego seja gerado em apenasoito horas de trabalho, alcançaria 3,6 GB em um dia. Como a conexão normalmentenão é usada até o seu limite superior de volume, pode-se presumir que o volume dedados total tratado pelo cache seja aproximadamente de 2 GB. Por esta razão é necessário

542 Referência

Page 543: Reference Pt BR

um espaço em disco de 2 GB no exemplo, para que o Squid guarde os dados interessantespesquisados no cache.

29.2.3 RAMA quantidade de memória (RAM) de que o Squid necessita é diretamente relacionadaao número de objetos no cache. O Squid também armazena referências de objeto eobjetos solicitados freqüentemente na memória principal do cache para acelerar arecuperação destes dados. A memória de acesso aleatório é muito mais rápida do queum disco rígido.

Além disso, há outros dados que o Squid necessita manter na memória, como umatabela com todos os endereços IP tratados, um cache de nome de domínio exato, osobjetos solicitados com mais freqüência, listas de controle de acesso, buffers e mais.

É muito importante ter memória suficiente para o processo Squid, porque o desempenhodo sistema é muito reduzido se tiver que se trocado para o disco. A ferramentacachemgr.cgi pode ser usada para gerenciamento da memória de cache. Esta ferramentaé apresentada na Seção 29.6, “cachemgr.cgi” (p 554). Sites com grande tráfego de rededevem considerar o uso de um sistema AMD64 ou Intel EM64T com memória superiora 4 GB.

29.2.4 CPUO Squid não é um programa que necessite de uso intenso de CPU. A carga doprocessador só é aumentada enquanto os conteúdos do cache são armazenados ouverificados. O uso de uma máquina multiprocessadora não aumenta o desempenho dosistema. Para aumentar a eficiência, é melhor comprar discos mais rápidos ou adicionarmais memória.

29.3 Iniciando o SquidO Squid já é pré-configurado no SUSE Linux, é possível iniciá-lo logo após a instalação.Para assegurar uma inicialização mais fácil, a rede deve ser configurada de maneiraque pelo menos um servidor e a Internet possam ser alcançados. Pode haver problemasse for usada uma conexão discada com uma configuração DNS dinâmica. Neste caso,

O Servidor Proxy Squid 543

Page 544: Reference Pt BR

deve ser digitado pelo menos o nome do servidor, porque o Squid não inicia se nãodetectar um servidor DNS em /etc/resolv.conf.

29.3.1 Comandos para iniciar e interrompero Squid

Para iniciar o Squid, digite rcsquid start na linha de comando como root. Nainicialização, a estrutura do diretório do cache deve ser definida primeiro em /var/cache/squid. Isto é feito automaticamente pelo script de inicialização /etc/init.d/squid e pode levar alguns segundo ou mesmo minutos. Se aparecer concluídoà direita em verde, o Squid foi carregado com êxito. Para testar a funcionalidade doSquid no sistema local, digitelocalhost como proxy e 3128 como porta no browser.

Para permitir que usuários do sistema local e outros sistemas acessem o Squid e aInternet, mude a entrada nos arquivos de configuração /etc/squid/squid.confde http_access deny all para http_access allow all. Entretanto, aofazer isto, leve em conta que, com esta ação, o Squid fica totalmente acessível a qualquerum. Assim, defina ACLs que acessam o controle ao proxy. Mais informações sobreisto estão disponíveis na Seção 29.4.2, “Opções de controles de acesso” (p 549).

Após modificar o arquivo de configuração /etc/squid/squid.conf, o Squiddeve recarregar o arquivo de configuração. Faça isto com rcsquid reload. Outraalternativa é reiniciar o Squid com rcsquid restart.

O comando rcsquid status pode ser usado para verificar se o proxy está sendoexecutado. 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 conexões para os clientes e gravar seus dadosno disco.

ATENÇÃO: Encerrando o Squid

Encerrar o Squid com kill ou killall pode danificar o cache. Para poderreiniciar o Squid, o cache danificado deve ser apagado.

Se o Squid morrer após um curto período 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 inicialização no

544 Referência

Page 545: Reference Pt BR

arquivo /var/log/squid/cache.log. Se o Squid tiver que ser carregadoautomaticamente quando o sistema é inicializado, use o editor de nível de execuçãoYaST para ativar o Squid para os níveis de execução desejados. Consulte aSeção “Serviços do Sistema (Runlevel)” (Capítulo 2, Configuração do sistema comYaST, ↑Inicialização).

Uma desinstalação do Squid não remove a hierarquia de cache nem os arquivos deregistro. Para removê-los, apague o diretório /var/cache/squid manualmente.

29.3.2 Servidor DNS localConfigurar um servidor DNS local é útil mesmo se ele não gerencia o seu própriodomínio. Ele então atua simplesmente como um servidor de nomes apenas para cachese é capaz de resolver as solicitações de DNS através dos servidores de nome raiz semnecessitar de qualquer configuração especial (consulte a Seção 20.3, “Iniciando o BINDdo servidor de nomes” (p 390)). Como isto pode ser feito depende de como você escolheo DNS dinâmico durante a configuração da conexão da Internet.

DNS dinâmicoNormalmente, com DNS dinâmico, o servidor DNS é configurado pelo provedordurante o estabelecimento da conexão Internet e o arquivo local /etc/resolv.conf é ajustado automaticamente. Este comportamento é controlado no arquivo/etc/sysconfig/network/config com a variável sysconfigMODIFY_RESOLV_CONF_DYNAMICALLY, que é definida como"yes". Definaesta variável para "no" com o editor sysconfig do YaST (consulte a Seção 8.3.1,“Mudando a configuração do sistema usando o Editor sysconfig do YaST” (p 198)).Digite o servidor DNS local no arquivo /etc/resolv.conf com o endereçoIP 127.0.0.1 para localhost. Desta maneira o Squid pode sempre encontraro nome do servidor local quando inicia.

Para tornar o nome do servidor do provedor acessível, digite-o no arquivo deconfiguração /etc/named.conf em forwarders junto com seu endereçoIP. Com DNS dinâmico, isto pode ser feito automaticamente durante oestabelecimento da conexão, definindo a variável sysconfigMODIFY_NAMED_CONF_DYNAMICALLY para SIM.

DNS estáticoCom DNS estático, não ocorre nenhum ajuste de DNS automático enquanto éestabelecida uma conexão, assim não é necessário mudar quaisquer variáveis

O Servidor Proxy Squid 545

Page 546: Reference Pt BR

sysconfig. Entretanto, é preciso digitar o servidor DNS local no arquivo /etc/resolv.conf como descrito acima. Para tornar o nome do servidor do provedoracessível, digite-o no arquivo de configuração /etc/named.conf sobforwarders junto com seu endereço IP.

DICA: DNS e Firewall

Se você tiver um firewall em execução, verifique se as solicitações de DNSpodem passar por ele.

29.4 O arquivo de configuração/etc/squid/squid.conf

Todas as definições do servidor proxy do Squid são feitas no arquivo /etc/squid/squid.conf . Para iniciar o Squid pela primeira vez, não são necessárias mudançasneste arquivo, mas clientes externos terão acesso negado inicialmente. O proxy édisponível para localhost. A porta padrão é 3128. O arquivo de configuração pré-instalado /etc/squid/squid.conf fornece informações detalhadas sobre asopções e vários exemplos. Praticamente todas as entradas começam com # (as linhassão comentadas) e as especificações relevantes podem ser encontradas no fim da linha.Os valores dados praticamente sempre se correlacionam com os valores padrão, portantoremover os sinais de comentário sem mudar nenhum dos parâmetros na realidade tempouco efeito na maioria dos casos. Se possível, deixe o exemplo como é e insira asopções junto com os parâmetros modificados na linha abaixo. Desta maneira, os valorespadrão podem ser facilmente recuperados e comparados com as mudanças.

DICA: Adaptando o arquivo de configuração após uma atualização

Se você tiver atualizado de uma versão anterior do Squid, é recomendáveleditar o novo /etc/squid/squid.conf e aplicar somente as mudançasfeitas no arquivo anterior. Se tentar usar o antigo squid.conf, há risco daconfiguração deixar de funcionar, porque as opções às vezes são modificadase novas mudanças adicionadas.

546 Referência

Page 547: Reference Pt BR

29.4.1 Opções de configuração geral(seleção)

http_port 3128Esta é a porta em que o Squid ouve as solicitações do cliente. A porta padrão é3128, mas 8080 também é comum. Se quiser, especifique vários números deporta, separados por espaços em branco.

cache_peer hostname tipo proxy-port icp-portNeste caso, digite um proxy pai, por exemplo, se quiser usar o proxy do seu ISP.Como hostname, digite o nome e o endereço IP do proxy a usar e, como tipo,digite pai. Para proxy-port, digite o número de porta que também é dado pelooperador do pai para uso no browser, normalmente 8080. Defina a icp-portpara 7 ou 0 se a porta ICP do pai não for conhecida e seu uso for irrelevante parao provedor. Além disso, default e no-query podem ser especificados apósos números de porta para proibir o uso do protocolo ICP. O Squid comporta-seentão como um browser normal no que diz respeito ao proxy do provedor.

cache_mem 8 MBEsta entrada define a quantidade de memória que o Squid pode usar para respostasmuito populares. O padrão é 8 MB. Isto não especifica o uso de memória do Squide poderá ser excedido.

cache_dir ufs /var/cache/squid/ 100 16 256A entrada cache_dir define o diretório em que todos os objetos são armazenadosno disco. Os números ao final indicam o espaço máximo de disco no MB a usar eo número de diretórios no primeiro e no segundo nível. O parâmetro ufs deve serdeixado sozinho. O padrão é 100 MB de espaço de disco ocupado no diretório/var/cache/squid e a criação de 16 subdiretórios dentro dele, cada um commais 256 subdiretórios. Ao especificar o espaço de disco a usar, deixe espaço dedisco de reserva suficiente. Os valores de um mínimo de 50% até um máximo de80% do espaço de disco disponível são o ideal aqui. Os dois últimos números paraos diretórios só devem ser aumentados com cuidado, porque diretórios demaistambém pode causar problemas de desempenho. Se você tiver vários discos quecompartilhem o cache, digite várias linhas cache_dir.

O Servidor Proxy Squid 547

Page 548: Reference Pt BR

cache_access_log /var/log/squid/access.log, cache_log /var/log/squid/cache.log,cache_store_log /var/log/squid/store.log

Estas três entradas especificam os caminhos em que o Squid registra todas as suasações. Normalmente, nada é mudado aqui. Se o Squid estiver passado por umasobrecarga de uso pesado, pode fazer sentido distribuir o cache e os arquivos deregistro em vários discos.

emulate_httpd_log offSe a entrada for definida como on, obtenha arquivos de registro legíveis. Entretanto,alguns programas de avaliação não podem interpretar isto.

client_netmask 255.255.255.255Com esta entrada, faça mascaramento dos endereços IP dos clientes nos arquivosde registro. O último dígito do endereço IP é definido como zero se você digitar255.255.255.0 aqui. Você pode proteger a privacidade dos seus clientes destamaneira.

ftp_user Squid@Com isto, defina a senha que o Squid deve usar para o login do FTP anônimo. Fazsentido especificar um endereço de e-mail válido aqui, porque alguns servidoresde FTP os verificam para fins de validade.

cache_mgr webmasterUm endereço de e-mail ao qual o Squid envia uma mensagem se ele falharinesperadamente. O padrão é webmaster.

logfile_rotate 0Se você executar squid -k rotate, o Squid poderá rotacionar arquivos deregistro protegidos. Os arquivos são numerados neste processo e, após alcançaremo valor especificado, o arquivo mais antigo é sobregravado. O valor padrão é 0porque os arquivos de registro de arquivamento e apagamento no SUSE Linux sãorealizados por uma tarefa cron definida no arquivo de configuração /etc/logrotate/squid.

append_domain <domain>Com append_domain, especifique que domínio anexar automaticamente quandonão for dado nenhum. Normalmente, o seu próprio domínio é digitado aqui, portantodigitar www no browser dá acesso ao seu próprio servidor da Web.

548 Referência

Page 549: Reference Pt BR

forwarded_for onSe você definir a entrada como off, o Squid removerá o endereço IP e o nome dosistema do cliente das solicitações HTTP. Caso contrário, ele adicionará uma linhaao cabeçalho comoX-Forwarded-For: 192.168.0.0

negative_ttl 5 minutes; negative_dns_ttl 5 minutesNormalmente, não é necessário mudar esses valores. Porém, se você tiver umaconexão discada, é possível que às vezes a Internet não esteja acessível. O Squiddetecta as solicitações que falharam e não emite novas solicitações, embora aconexão com a Internet tenha sido restabelecida. Neste caso, mude osminutos parasegundos e, após você clicar em Recarregar no browser, o processo de discagemdeve continuar em alguns segundos.

never_direct allow acl_namePara impedir que o Squid faça solicitações diretamente da Internet, use o comandoacima para forçar conexão com outro proxy. É necessário que ele tenha sido digitadoanteriormente em cache_peer. Se all estiver especificado como acl_name,force todas as solicitações para que sejam encaminhadas diretamente ao pai. Istopode ser necessário, por exemplo, se você estiver usando um provedor que estipulaestritamente o uso de seus proxies ou nega acesso direto do seu firewall à Internet.

29.4.2 Opções de controles de acessoO Squid fornece um sistema detalhado para controle do acesso ao proxy. Com aimplementação de ACLs, ele pode ser configurado de forma fácil e abrangente. Istoenvolve listas com regras que são processadas em seqüência. As ACLs devem serdefinidas antes de serem usadas. Algumas ACLs padrão, como all e localhost, já existem.Entretanto, a simples definição de uma ACL não significa que ela será realmenteaplicada. Isto só acontece em conjunto com regras http_access.

acl <acl_name> <type> <data>Uma ACL requer pelo menos três especificações para defini-la. O nome<acl_name> pode ser escolhido arbitrariamente. Para <type>, selecione entrevárias opções diferentes, que podem ser encontradas na seçãoACCESSCONTROLSno arquivo/etc/squid/squid.conf . A especificação para<dados> dependedo tipo de cada ACL e só pode ser lida em um arquivo, por exemplo, por meio denomes de host, endereços IP ou URLs. A seguir, alguns exemplos simples:

O Servidor Proxy Squid 549

Page 550: Reference Pt BR

acl mysurfers srcdomain .my-domain.comacl teachers src 192.168.1.0/255.255.255.0acl students src 192.168.7.0-192.168.9.0/255.255.255.0acl lunch time MTWHF 12:00-15:00

http_access allow <acl_name>http_access define quem tem permissão de usar o proxy e quem pode acessar oquê na Internet. Para isto, as ACLs devem ser fornecidas. localhost e all já foramdefinidos acima, o que pode negar ou permitir acesso com deny ou allow. Umalista com qualquer número de entradas http_access pode ser criada, processada decima para baixo e, dependendo do que ocorrer primeiro, o acesso é permitido ounegado 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 outroshosts têm acesso completamente negado.http_access allow localhosthttp_access deny all

Em outro exemplo com estas regras, o grupo teachers (professores) sempre temacesso à Internet. O grupo students (alunos) só tem acesso de segunda-feira asexta-feira na hora do almoço.http_access deny localhosthttp_access allow teachershttp_access allow students lunch timehttp_access deny all

Para fins de legibilidade, a lista com as entradas http_access só pode ser digitadana posição designada no arquivo /etc/squid/squid.conf. Isto é, entre otexto# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR# CLIENTS

e o últimohttp_access deny all

redirect_program /usr/bin/squidGuardCom esta opção, especifique um redirecionador como squidGuard, que permitebloquear URLs indesejados. O acesso de vários grupos de usuários à Internet podeser controlado individualmente com a ajuda da autenticação de proxy e das ACLsadequadas. O squidGuard é um pacote separado que pode ser instalado econfigurado.

550 Referência

Page 551: Reference Pt BR

auth_param basic program /usr/sbin/pam_authSe for necessário autenticar usuários no proxy, defina um programa correspondente,como pam_auth. Ao acessar pam_auth pela primeira vez, o usuário vê uma janelade login na qual deve digitar o nome de usuário e senha. Além disso, ainda énecessário usar uma ACL, de forma que apenas clientes com login válido podemusar a Internet:acl password proxy_auth REQUIRED

http_access allow passwordhttp_access deny all

REQUIRED após proxy_auth pode ser substituído por uma lista de nomes deusuários permitidos ou pelo caminho para essa lista.

ident_lookup_access allow <acl_name>Com isto, execute uma solicitação de identificação para todos os clientes definidosvia ACL para encontrar a identidade de cada usuário. Se você aplicar all ao<acl_name>, isto será válido para todos os clientes. Além disso, um daemon deidentificação deve estar em execução em todos os clientes. No caso do Linux,instale o pacote pidentd para este fim. No caso do Microsoft Windows, há umsoftware grátis para download na Internet. Para garantir que apenas clientes compesquisa de identificação bem-sucedida sejam permitidos, defina uma ACLcorrespondente aqui:acl identhosts ident REQUIRED

http_access allow identhostshttp_access deny all

Aqui, substitua tambémREQUIRED por uma lista de nomes de usuários permitidos.O uso de ident pode tornar o tempo de acesso um pouco lento, porque pesquisasde identificação são repetidas para cada solicitação.

29.5 Configurando um proxytransparente

O modo normal de trabalhar com servidores proxy é o seguinte: o browser da Webenvia solicitações para uma determinada porta no servidor proxy e o proxy forneceestes objetos solicitados, estejam ou não no cache. Quando você trabalha em uma rede,várias situações podem surgir:

O Servidor Proxy Squid 551

Page 552: Reference Pt BR

• Para fins de segurança, é recomendado que todos os clientes usem um proxy paranavegar na Internet.

• Todos os clientes devem usar um proxy, independentemente de estarem conscientesdele.

• O proxy em uma rede é movido, mas os clientes existentes devem manter sua antigaconfiguração.

Em todos esses casos, pode ser usado um proxy transparente. O princípio é muito fácil:o proxy intercepta e responde as solicitações do browser da Web, de maneira que obrowser da Web recebe as páginas solicitadas sem saber de onde elas vêm. Como onome indica, todo o processo é feito de maneira transparente.

29.5.1 Opções de configuração em/etc/squid/squid.conf

As opções que devem ser ativadas no arquivo /etc/squid/squid.conf paragarantir a execução do proxy transparente são:

• httpd_accel_host virtual

• httpd_accel_port 80

O número de porta em que o servidor HTTP real está localizado

• httpd_accel_with_proxy em

• httpd_accel_uses_host_header em

29.5.2 Configuração de firewall comSuSEfirewall2

Agora redirecione todas as solicitações de entrada através do firewall com ajuda deuma regra de encaminhamento de porta para a porta do Squid. Para fazer isso, use aferramenta SuSEfirewall2 anexada, descrita em “Configurando com o YaST” (p 110).Seu arquivo de configuração é encontrado em/etc/sysconfig/SuSEfirewall2.

552 Referência

Page 553: Reference Pt BR

O arquivo de configuração consiste em entradas bem documentadas. Para definir umproxy transparente, é preciso configurar várias opções de firewall:

• Dispositivo apontando para a Internet: FW_DEV_EXT="eth1"

• Dispositivo apontando para a rede: FW_DEV_INT="eth0"

Definir portas e serviços (consulte /etc/services) no firewall que são acessadasde redes não confiáveis (externas), como a Internet. Neste exemplo, apenas os serviçosda Web são oferecidos externamente:FW_SERVICES_EXT_TCP="www"

Definir portas ou serviços (consulte /etc/services) no firewall que são acessadasde rede segura (interna), ambas via TCP e UDP:FW_SERVICES_INT_TCP="domain www 3128"FW_SERVICES_INT_UDP="domain"

Isto permite acessar serviços da Web e o Squid (cuja porta padrão é 3128). O serviço“domain” representa o DNS (serviço de nome de domínio). Este serviço é normalmenteusado. Caso contrário, basta retirá-lo das entradas acima e definir a opção seguintecomo no:FW_SERVICE_DNS="yes"

A opção mais importante é a número 15:

Exemplo 29.1 Configuração de firewall: Opção 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 comentários acima mostram a sintaxe a seguir. Primeiro, digite o endereço IP e amáscara de rede das redes internas que acessam o firewall de proxy. Em seguida, digite

O Servidor Proxy Squid 553

Page 554: Reference Pt BR

o endereço IP e a máscara de rede às quais estes clientes enviam suas solicitações. Nocaso de browsers da Web, especifique as redes 0/0, um curinga que significa “a todosos lugares.” Depois, digite a porta original para a qual estas solicitações são enviadase, finalmente, a porta para a qual todas essas solicitações são redirecionadas. Como oSquid tem suporte para outros protocolos além do HTTP, redirecione as solicitaçõesde outras portas para o proxy, como FTP (porta 21), HTTPS ou SSL (porta 443). Nesteexemplo, serviços da Web (porta 80) são redirecionados para a porta do proxy (porta3128). Se houver mais redes ou serviços a adicionar, eles devem ser separados por umespaço 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 configuração com ele, mude um entrada no arquivo/etc/sysconfig/SuSEfirewall2 . A entrada START_FW deve ser definidacomo "yes".

Iniciar o Squid como mostrado na Seção 29.3, “Iniciando o Squid” (p 543). Para verificarse tudo está funcionando corretamente, verifique os registros do Squid em /var/log/squid/access.log. Para verificar se todas as portas estão corretamenteconfiguradas, realize uma exploração de portas na máquina de qualquer computadorexterno à rede. Apenas os serviços da Web (porta 80) devem ser abertos. Para exploraras portas com nmap, a sintaxe do comando é nmap -O IP_address.

29.6 cachemgr.cgiO gerenciador de cache (cachemgr.cgi) é um utilitário CGI para exibição de estatísticassobre o uso da memória de um processo Squid em execução. É também uma maneiramais prática de gerenciar o cache e ver estatísticas sem efetuar login no servidor.

29.6.1 ConfiguraçãoPrimeiro, é necessário um servidor da Web em execução no sistema. Configure o Apachecomo descrito no Capítulo 26, Servidor HTTPApache (p 463). Para verificar se o Apachejá está em execução, como root, digite o comando rcapache status. Se apareceruma mensagem como a seguinte:Checking for service httpd: OK Server uptime: 1 day 18 hours 29 minutes 39 seconds

554 Referência

Page 555: Reference Pt BR

O Apache estará em execução na máquina. Caso contrário, digitercapacheiniciarpara iniciar o Apache com as configurações padrão do SUSE Linux. A última etapa aconfigurar é copiar o arquivo cachemgr.cgi para o diretório 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 configurações padrão no arquivo original que são necessárias para ogerenciador de cache. Primeiro, duas ACLs são definidas e depois as opções http_accessusam estas ACLs para fornecer acesso do script CGI ao Squid. A primeira ACL é amais importante, porque o gerenciador de cache tenta se comunicar com o Squid peloprotocolo cache_object.acl manager proto cache_objectacl localhost src 127.0.0.1/255.255.255.255

As regras a seguir dão os direitos de acesso do Apache para o Squid:http_access allow manager localhosthttp_access deny manager

Estas regras consideram que o servidor da Web e o Squid estão em execução na mesmamáquina. Se a comunicação entre o gerenciador do cache e o Squid tiver origem emum servidor da Web em outro computador, incluir uma ACL extra como noExemplo 29.2, “Regras de acesso” (p 555).

Exemplo 29.2 Regras de acessoacl manager proto cache_objectacl localhost src 127.0.0.1/255.255.255.255acl 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) parapermitir acesso do servidor da Web.

Exemplo 29.3 Regras de acessohttp_access allow manager localhosthttp_access allow manager webserverhttp_access deny manager

O Servidor Proxy Squid 555

Page 556: Reference Pt BR

Configure uma senha para que o gerenciador acesse mais opções, como fechar o cacheremotamente ou mostrar mais informações sobre o cache. Para isto, configure a entradacachemgr_passwd com uma senha para o gerenciador e a lista de opções a serexibida. Esta lista aparece como parte dos comentários de entrada em /etc/squid/squid.conf.

Reinicie o Squid toda vez que mudar o arquivo de configuração. Faça isto facilmentecom rcsquid reload.

29.6.3 Exibindo estatísticasVá para o site da Web correspondente — http://webserver.example.org/cgi-bin/cachemgr.cgi. Pressione continue e pesquise as diversas estatísticas.Mais detalhes de cada entrada mostrada pelo gerenciador de cache são encontrados noFAQ do Squid emhttp://www.squid-cache.org/Doc/FAQ/FAQ-9.html.

29.7 squidGuardEsta seção não pretende explicar uma configuração do squidGuard em profundidade,apenas apresentá-lo e fornecer alguns conselhos para usá-lo. Para obter informaçõesmais detalhadas sobre questões de configuração, consulte o site do squidGuard emhttp://www.squidguard.org.

O squidGuard é um plug-in grátis (GPL) e flexível, além de atuar como um filtro rápido,redirecionador e controlador de acesso para o Squid. Permite que você defina váriasregras de acesso com diferentes restrições para diferentes grupos de usuário em umcache do Squid. O squidGuard usa a interface redirecionadora padrão do Squid. OsquidGuard pode fazer o seguinte:

• Limitar o acesso à Web para alguns usuários a uma lista de servidores da Web ouURLs aceitos ou bem conhecidos.

• Bloquear o acesso a alguns servidores da Web ou URLS listados ou constantes dalista negra para alguns usuários.

• Bloquear o acesso a URLs correspondentes a uma lista de expressões ou palavrasregulares.

556 Referência

Page 557: Reference Pt BR

• Redirecionar URLs bloqueados para uma página de informação “intelligent” baseadaem CGI.

• Redirecionar usuários não registrados a um formulário 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 usuários diferentes.

O squidGuard e o Squid não podem ser usados para:

• Editar, filtrar ou censurar texto dentro de documentos.

• Editar, filtrar ou censurar linguagens de script embutidas em HTML, comoJavaScript e VBscript.

Para usá-los, instale squidGuard. Forneça um arquivo de configuração mínimo,como/etc/squidguard.conf. Encontre exemplos de configuração emhttp://www.squidguard.org/config/. Experimente depois com definições deconfiguração mais complicadas.

Em seguida, crie uma página de simulação de “acesso negado” ou uma página CGImais ou menos complexa para redirecionar o Squid se o cliente solicitar um site da Webincluído na lista negra. A utilização do Apache é altamente recomendável.

Agora, configure o Squid para usar o squidGuard. Use a seguinte entrada no arquivo/etc/squid/squid.conf:redirect_program /usr/bin/squidGuard

Outra opção, denominada redirect_children, configura o número de processosde “redirect” (neste caso o squidGuard) executados na máquina. O squidGuard é bastanterápido para tratar várias solicitações: em um Pentium 500 MHz com 5.900 domínios e7.880 URLs (totalizando 13.780), podem ser processadas 100.000 solicitações em 10segundos. Assim, não é recomendado definir mais do que quatro processos, porque aalocação desses processos consumiria uma quantidade excessiva de memória.redirect_children 4

Finalmente, faça o Squid carregar a nova configuração executando rcsquid reload.Agora, teste suas configurações com um browser.

O Servidor Proxy Squid 557

Page 558: Reference Pt BR

29.8 Geração de relatório de cachecom o Calamaris

O Calamaris é um script Perl usado para gerar relatórios de atividade de cache emformato ASCII ou HTML. Funciona com arquivos de registro de acesso nativos doSquid. A home page do Calamaris está localizada em http://Calamaris.Cord.de/. O programa é bem fácil de usar.

Faça login como root e digite cat access.log.files | calamarisoptions > reportfile. É importante, na condução de mais de um arquivo deregistro, ordenar os arquivos de registro cronologicamente, com os arquivos mais antigosprimeiro. Há algumas opções do programa:

-asaída de todos os relatórios disponíveis

-wsaída como relatório HTML

-linclui uma mensagem ou logotipo no cabeçalho do relatório

Mais informações sobre as diversas opções são encontradas na página do manual doprograma com man calamaris.

Um exemplo típico é:cat access.log.2 access.log.1 access.log | calamaris -a -w \ > /usr/local/httpd/htdocs/Squid/squidreport.html

Isto coloca o relatório no diretório do servidor da Web. É necessário usar o Apachepara exibir os relatórios.

Outra ferramenta avançada para geração de relatórios de cache é o SARG (SquidAnalysis Report Generator). Mais informações sobre isso estão disponíveis em:http://sarg.sourceforge.net/.

558 Referência

Page 559: Reference Pt BR

29.9 Mais informaçõesVisite a home page do Squid emhttp://www.squid-cache.org/. Aqui, encontreo “Guia de Usuário do Squid” e um amplo conjunto de FAQs sobre o Squid.

Após a instalação, uma pequena lista de orientações sobre proxies transparentes éencontrada em howtoenh como /usr/share/doc/howto/en/txt/TransparentProxy.gz. Além disso, há listas de discussões sobre o Squid [email protected]. O arquivo referente a isso está localizado emhttp://www.squid-cache.org/mail-archive/squid-users/.

O Servidor Proxy Squid 559

Page 560: Reference Pt BR
Page 561: Reference Pt BR

Parte 5. Mobilidade

Page 562: Reference Pt BR
Page 563: Reference Pt BR

30Computação móvel com o LinuxA computação móvel é geralmente associada a laptops, PDAs e telefones celulares, eao intercâmbio de dados entre esses aparelhos. Componentes de hardware móveis, comodiscos rígidos externos, unidades flash ou câmeras digitais, podem ser conectados alaptops ou sistemas de desktop. Vários componentes de software estão envolvidos emcenários de computação e alguns aplicativos são desenvolvidos para uso móvel.

30.1 LaptopsO hardware de laptops difere do hardware de um sistema de desktop normal. Isso ocorreporque critérios como intercambiamento, espaço ocupado e consumo de energia sãopropriedades relevantes. Os fabricantes de hardware móvel desenvolveram o padrãoPCMCIA (Personal Computer Memory Card International Association - AssociaçãoInternacional de Cartões de Memória para Computadores Pessoais). Esse padrão abrangecartões de memória, placas de interface de rede, ISDN e placas de modem, além dediscos rígidos externos. A forma como o suporte para tal hardware é implementado noLinux, os pontos a serem levados em consideração durante a configuração, qual softwareestá disponível para o controle do PCMCIA e como solucionar quaisquer possíveisproblemas são descritos no Capítulo 31, PCMCIA (p 575).

30.1.1 Conservação de energiaA inclusão de componentes de sistema com otimização de energia durante a fabricaçãode laptops contribui para a sua adequação ao uso sem acesso à rede elétrica. Acontribuição desses componentes para a preservação de energia é, ao menos, tão

Computação móvel com o Linux 563

Page 564: Reference Pt BR

importante quanto a do sistema operacional. O SUSE Linux dá suporte a diversosmétodos que influenciam o consumo de energia de um laptop e surtem efeitos variáveissobre o tempo de operação com a carga da bateria. A lista a seguir está em ordemdecrescente de contribuição para a conservação de energia:

• Regulagem da velocidade da CPU

• Desativação da iluminação da tela durante pausas

• Ajuste manual da iluminação da tela

• Desconexão de acessórios não utilizados e habilitados para hotplug (CD-ROMUSB, mouse externo, placas PCMCIA não utilizadas etc.)

• Colocar o disco rígido em modo de espera quando inativo

Informações de apoio detalhadas sobre o gerenciamento de energia no SUSE Linux esobre a operação do módulo de gerenciamento de energia YaST podem ser encontradasno Capítulo 33, Gerenciamento de energia (p 597).

30.1.2 Integração em ambientesoperacionais variáveis

Seu sistema precisa se adaptar a ambientes operacionais variáveis quando for usadopara a computação móvel. Vários serviços dependem do ambiente e os clientessubjacentes precisam ser reconfigurados. O SUSE Linux faz isso para você.

564 Referência

Page 565: Reference Pt BR

Figura 30.1 Integrando um laptop em uma rede

??

?

?

??

?

?

PrintingMail

Proxy

Network

X configuration

Os serviços afetados no caso de um laptop que transita entre uma pequena rede domésticae uma rede de escritório são:

RedeInclui a atribuição de endereço IP, a resolução do nome, a conectividade à Internete a conectividade a outras redes.

ImpressãoPrecisam estar presentes um banco de dados atual de impressoras disponíveis e umservidor de impressão disponível, dependendo da rede.

E-Mail e proxiesAssim como ocorre com a impressão, a lista dos servidores correspondentes precisaser atual.

XSe o seu laptop estiver temporariamente conectado a um projetor ou monitor externo,as diferentes configurações de exibição precisam estar disponíveis.

Computação móvel com o Linux 565

Page 566: Reference Pt BR

O SUSE Linux oferece várias opções de integração de um laptop a ambientesoperacionais existentes:

SCPMO SCPM (system configuration profile management - gerenciamento de perfil deconfiguração do sistema) permite o armazenamento de estados de configuraçãoarbitrários de um sistema em um tipo de “instantâneo” chamado de perfil. Os perfispodem ser criados para diferentes situações. Eles são úteis quando um sistema éoperado em ambientes variáveis (rede doméstica, rede de escritório). Sempre épossível alternar entre perfis. Encontre informações sobre o SCPM no Capítulo 32,System Configuration Profile Management (p 583). Você pode usar o applet Seletorde Perfil do kicker no KDE para alternar entre perfis. O aplicativo requer a senhado root antes de alternar.

NetworkManagerO NetworkManager é desenvolvido especialmente para rede móvel em laptops.Ele fornece uma maneira para alternar de forma fácil e automática entre ambientesde rede ou tipos diferentes de redes, como LAN sem fio e ethernet. ONetworkManager suporta a criptografia WEP e WPA-PSK em conexões LANssem fio, por discagem (com smpppd). Ambos os ambientes de área de trabalho(GNOME e KDE) incluem um front-end para o NetworkManager.

Tabela 30.1 Casos de uso para o NetworkManager

Usar NetworkManagerMeu computador…

Simé um laptop

Simalgumas vezes está conectado a redes diferentes

Nãofornece serviços de rede (como DNS ou DHCP)

Nãousa somente um endereço IP estático

Use as ferramentas do YaST para configurar a rede sempre que o NetworkManagernão deve gerenciar a configuração de rede.

SLPO SLP (Service Location Protocol) simplifica a conexão de um laptop a uma redeexistente. Sem o SLP, o administrador do laptop normalmente necessita ter

566 Referência

Page 567: Reference Pt BR

conhecimentos detalhados sobre os serviços disponíveis em uma rede. O SLPtransmite a disponibilidade de um determinado tipo de serviço a todos os clientesde uma rede local. Os aplicativos que dão suporte ao SLP podem processar asinformações despachadas pelo SLP e podem ser configurados automaticamente.O SLP pode até ser usado para a instalação de um sistema, poupando o esforço debusca de uma fonte de instalação adequada. Encontre informações detalhadas sobreo SLP no Capítulo 19, Serviços SLP na rede (p 377).

O ponto forte do SCPM é a habilitação e a manutenção de condições de sistemareproduzíveis. O SLP torna a configuração de um computador em rede bem mais fácil,automatizando boa parte desse processo.

30.1.3 Opções de softwareDiversas áreas de tarefas especiais no uso móvel são abrangidas por software dedicado:monitoramento do sistema (principalmente a carga da bateria), sincronização de dadose comunicação sem fio com periféricos e a Internet. As seções a seguir tratam dosaplicativos mais importantes oferecidos pelo SUSE Linux para cada tarefa.

Monitoramento do sistemaDuas ferramentas de monitoramento do sistema KDE são oferecidas pelo SUSE Linux:

KPowersaveO KPowersave é um applet que exibe o estado da bateria recarregável no painelde controle. O ícone se ajusta de modo a representar o tipo de fonte de energia. Aotrabalhar em corrente alternada, um pequeno ícone de plug é exibido. Ao trabalharcom bateria, o ícone se transforma em uma bateria. O menu correspondente abreo módulo YaST de gerenciamento de energia após solicitar a senha do root. Dessemodo, é possível configurar o comportamento do sistema com diferentes tipos defontes de energia. Encontre informações sobre gerenciamento de energia e sobreo módulo YaST correspondente no Capítulo 33,Gerenciamento de energia (p 597).

KSysguardO KSysguard é um aplicativo independente que reúne todos os parâmetrosmensuráveis do sistema em um único ambiente de monitoramento. O KSysguardpossui monitores de ACPI (status da bateria), carga da CPU, rede, particionamentoe uso da memória. Ele também pode observar e exibir todos os processos do sistema.A apresentação e filtragem dos dados coletados podem ser personalizadas. É possível

Computação móvel com o Linux 567

Page 568: Reference Pt BR

monitorar diferentes parâmetros do sistema em diversas páginas de dados ou coletaros dados de diversas máquinas em paralelo na rede. O KSysguard também podeser executado como um daemon em máquinas desprovidas de um ambiente KDE.Encontre mais informações sobre esse programa na sua função de ajuda integradaou nas páginas de ajuda do SUSE.

Figura 30.2 Monitorando o status da bateria com o KSysguard

Na área de trabalho do GNOME, use o applet do painel ACPI do GNOME e o aplicativoMonitor do Sistema.

Sincronizando dadosAo alternar entre o trabalho em uma máquina móvel desconectada da rede e o trabalhoem uma estação em rede em um escritório, é necessário manter a sincronização dosdados processados em todas as instâncias. Isso pode incluir pastas de e-mail, diretóriose arquivos individuais que precisam estar presentes tanto para o trabalho remoto comopara o trabalho no escritório. A solução nos dois casos é a seguinte:

Sincronizando e-mailUse uma conta IMAP para armazenar seus e-mails na rede do escritório. Em seguida,acesse os e-mails da estação de trabalho com o uso de qualquer cliente de e-maildesconectado habilitado para IMAP, como o Mozilla Thunderbird Mail, o Evolutionou o KMail, conforme descrito em Aplicativos. O cliente de e-mail precisa serconfigurado de tal modo que as Mensagens enviadas sejam sempre acessadasda mesma pasta. Isso assegura a disponibilidade de todas as mensagens cominformações sobre seu status após a conclusão do processo de sincronização. Useum servidor SMTP implementado no cliente de e-mail para o envio de mensagens,

568 Referência

Page 569: Reference Pt BR

em vez do postfix ou do sendmail do MTA em todo o sistema, para receber retornoconfiável sobre e-mails não enviados.

Sincronizando arquivos e diretóriosExistem diversos utilitários adequados para a sincronização de dados entre umlaptop e uma estação de trabalho. Para obter informações detalhadas, consulte oCapítulo 27, Sincronização de arquivos (p 505).

Comunicação sem fioAlém da conexão a redes domésticas ou de escritórios com um cabo, também é possívelfazer uma conexão sem fio de um laptop a outros computadores, periféricos, telefonescelulares ou PDAs. O Linux dá suporte a três tipos de comunicação sem fio:

WLANCom o maior alcance dessas tecnologias sem fio, o WLAN é a única adequada paraa operação de redes de grande porte e, às vezes, até mesmo de redes desconectadasvirtualmente. Máquinas individuais podem se conectar entre si para formar umarede sem fio independente ou para acessar a Internet. Dispositivos chamados depontos de acesso atuam como estações de base para dispositivos habilitados paraWLAN, além de servir como intermediários para o acesso à Internet. Um usuáriomóvel pode alternar entre pontos de acesso dependendo do local e de que ponto deacesso ofereça a melhor conexão. Assim como na telefonia celular, uma rede degrande porte está disponível aos usuários da WLAN sem restringi-los a um localespecífico para o acesso. Encontre informações sobre a WLAN na Seção 34.1,“LAN sem fio” (p 623).

BluetoothO Bluetooth possui o mais amplo espectro de aplicação de todas as tecnologiassem fio. Ele pode ser usado na comunicação entre computadores (laptops) e PDAsou telefones celulares, assim como o IrDA. Também pode ser utilizado para conectardiversos computadores dentro de uma faixa visível. O Bluetooth também é usadopara conectar componentes sem fio do sistema, como um teclado ou mouse.Entretanto, o alcance dessa tecnologia não é suficiente para conectar sistemasremotos a uma rede. A WLAN é a melhor opção de tecnologia para comunicaçõesem locais com obstáculos físicos, como paredes. Encontre mais informações sobreBluetooth, seus aplicativos e configuração na Seção 34.2, “Bluetooth” (p 635).

Computação móvel com o Linux 569

Page 570: Reference Pt BR

IrDAO IrDA é a tecnologia sem fio de menor alcance. As duas extremidades dacomunicação precisam estar a uma distância visível uma da outra. Não é possívelcontornar obstáculos como paredes. Uma aplicação possível do IrDA é a transmissãode arquivos de um laptop para um telefone celular. O curto caminho do laptop parao telefone celular é coberto com o uso do IrDA. O transporte de longo alcance doarquivo ao seu destinatário é feito pela rede móvel. Outra aplicação do IrDA é atransmissão sem fio de serviços de impressão no escritório. Há mais informaçõesa respeito do IrDA na Seção 34.3, “Transmissão de dados infravermelhos” (p 647).

30.1.4 Segurança de dadosEm termos ideais, os dados contidos no seu laptop são protegidos de diversas maneirascontra o acesso não autorizado. Possíveis medidas de segurança podem ser tomadasnas seguintes áreas:

Proteção contra rouboSempre que possível proteja a integridade física do seu sistema contra roubo.Diversas ferramentas de segurança, como correntes, podem ser adquiridas em lojasvarejistas.

Protegendo dados no sistemaDados importantes devem ser criptografados não apenas durante a transmissão,mas também no disco rígido. Essa medida assegura sua segurança em caso deroubo. A criação de uma partição criptografada com o SUSE Linux é descrita naSeção 4.3, “Criptografando partições e arquivos” (p 121).

IMPORTANTE: Segurança de dados e o evento Suspender para Disco

As partições criptografadas não são desmontadas durante um evento desuspender para disco. Assim, todos os dados contidos nessas partiçõesficarão disponíveis para qualquer pessoa que conseguir roubar o hardwaree inicializar o disco rígido.

Segurança de redeQualquer transferência de dados deve ser protegida, independentemente de comoseja feita. Encontre problemas de segurança geral referentes ao Linux e redes naSeção 4.5, “Segurança e confidencialidade” (p 134). Medidas de segurança referentesa redes sem fio são fornecidas no Capítulo 34, Comunicação sem fio (p 623).

570 Referência

Page 571: Reference Pt BR

30.2 Hardware móvelO SUSE Linux dá suporte à detecção automática de dispositivos de armazenamentomóveis no Firewire (IEEE 1394) ou USB. O termo dispositivo de armazenamento móvelse aplica a qualquer tipo de disco rígido Firewire ou USB, unidade flash USB ou câmeradigital. Esses dispositivos são automaticamente detectados e configurados por meio dosistema hotplug logo que são conectados ao sistema pela interface correspondente. Osubfs e o submount asseguram a montagem dos dispositivos nos locais correspondentesno sistema de arquivos. O usuário é totalmente poupado da montagem e desmontagemmanuais encontradas em versões anteriores do SUSE Linux. Um dispositivo pode sersimplesmente desconectado quando não houver nenhum programa acessando-o.

Discos rígidos externos (USB e Firewire)Logo após o correto reconhecimento de um disco rígido externo pelo sistema, seuícone aparece emMeu Computador (KDE) ou emComputador (GNOME), na listade unidades montadas. Clique no ícone para exibir o conteúdo da unidade. É possívelcriar pastas e arquivos aqui, além de editá-los ou apagá-los. Para mudar o nomeque um disco rígido recebeu do sistema, clique o botão direito do mouse no íconee selecione o item correspondente no menu. Essa mudança de nome é limitada àexibição no gerenciador de arquivos. O descritor através do qual o dispositivo émontado em /media permanece não afetado por isso.

Unidades flash USBEsses dispositivos são tratados pelo sistema como discos rígidos externos. Tambémnesses dispositivos é possível renomear as entradas do gerenciador de arquivos.

Câmeras digitais (USB e Firewire)As câmeras digitais reconhecidas pelo sistema também aparecem como unidadesexternas na visão geral do gerenciador de arquivos. O KDE permite a leitura e oacesso às imagens no URL camera:/. Essas imagens podem ser processadascom o Digikam ou o GIMP. Ao usar o GNOME, o Nautilus exibe as imagens emsua própria pasta. Um utilitário simples de processamento e gerenciamento deimagens é o f-spot. O processamento avançado de fotos é feito com o GIMP. Paraobter mais detalhes sobre câmeras digitais e sobre o gerenciamento de imagens,consulte Capítulo Câmeras digitais e Linux (↑Aplicativos).

Computação móvel com o Linux 571

Page 572: Reference Pt BR

30.3 Telefones celulares e PDAsTanto um sistema de desktop como um laptop podem se comunicar com um telefonecelular via Bluetooth ou IrDA. Alguns modelos dão suporte aos dois protocolos; outros,somente a um dos dois. As áreas de uso dos dois protocolos e a documentação ampliadacorrespondente já foram citadas em “Comunicação sem fio” (p 569). A configuraçãodesses protocolos nos telefones celulares é descrita nos respectivos manuais. Aconfiguração do componente Linux é descrita na Seção 34.2, “Bluetooth” (p 635) eSeção 34.3, “Transmissão de dados infravermelhos” (p 647).

O suporte à sincronização com dispositivos portáteis fabricados pela Palm, Inc., já vemincorporado ao Evolution e ao Kontact. Nos dois casos, a conexão inicial com odispositivo é facilmente realizada com um assistente. Após a configuração do suportepara Palm Pilots, é necessário determinar que tipo de dados deve ser sincronizado(endereços, compromissos etc.). Ambos os aplicativos de groupware são descritos emAplicativos.

O programa KPilot, conforme integração no Kontact, também está disponível comoum utilitário independente. É descrito emAplicativos. O programa KitchenSync tambémestá disponível para a sincronização de dados de endereços.

30.4 Mais informaçõesO ponto central de referência para todas as dúvidas relativas a dispositivos móveis e oLinux é http://tuxmobil.org/. Diversas seções desse site da Web tratam deaspectos de hardware e software de laptops, PDAs, telefones celulares e outros hardwaresmóveis.

Uma abordagem semelhante de http://tuxmobil.org/ é feita por http://www.linux-on-laptops.com/. Informações sobre laptops e dispositivos portáteispodem ser encontradas nesse local.

O SUSE mantém uma lista de discussão em alemão dedicada a laptops. Consultehttp://lists.suse.com/archive/suse-laptop/. Nessa lista, usuáriose desenvolvedores discutem todos os aspectos da computação móvel com o uso doSUSE Linux. As mensagens em inglês são respondidas, mas a maioria das informaçõesdos arquivos está disponível somente em alemão.

572 Referência

Page 573: Reference Pt BR

No caso de problemas com o gerenciamento de energia com o SUSE Linux em laptops,é recomendável ler o arquivo README em /usr/share/doc/packages/powersave. Como muitas vezes contém comentários bem recentes de testadores edesenvolvedores, esse diretório oferece dicas valiosas para a solução de problemas.

Computação móvel com o Linux 573

Page 574: Reference Pt BR
Page 575: Reference Pt BR

31PCMCIAO PCMCIA é geralmente usado para se referir ao próprio hardware, embora ele seorigine da organização que padronizou todos os tipos possíveis de placas PC, a PCMemory Card International Association. No início, o PCMCIA incluiu somente placasPC (usando um barramento de 16 bits como placas ISA), porém, mais tarde, placasCardBus (usando um barramento de 32 bits) foram incluídas. Uma ampla variedade dehardware PCMCIA é suportada no Linux. Além disso, o Linux inclui ferramentas paragerenciar o PCMCIA.

Placas PCMCIA são geralmente usadas em computação móvel para propósitos diferentes.Exemplos incluem:

• Adaptadores LAN sem fio e Ethernet

• Placas Bluetooth

• Cartões de memória (Flash, SRAM e outros)

• Adaptadores de cartão de memória (SD, MMC, SmartMedia, CompactFlash,MemoryStick)

• Modems

A maioria do gerenciamento de placas é tratada silenciosamente por udev e hotplug.Quando for necessária a interação do usuário, use o comando pccardctl. Para obtermais informações de apoio sobre o PCMCIA, consulte a Seção 31.2, “PCMCIA emdetalhes” (p 576). Para obter detalhes sobre pccardctl, consulte a Seção 31.1,“Controlando placas PCMCIA usando pccardctl” (p 576).

PCMCIA 575

Page 576: Reference Pt BR

31.1 Controlando placas PCMCIAusando pccardctl

O gerenciamento de placas é normalmente tratado por udev e hotplug sem necessitarde qualquer interação do usuário. O pccardctl oferece controle manual da placa caso oprocesso automatizado não funcione perfeitamente.

A seguir está uma lista dos comandos pccardctl mais importantes. Todos os comandosdevem ser executados como root:

pccardctl insertSe a placa não foi detectada automaticamente, notifique os drivers do cliente quea placa acabou de ser inserida.

pccardctl ejectEjete a placa manualmente e notifique os drivers do cliente que ela será ejetada.Desligue a energia para o soquete. Essa opção é especialmente útil se você percebeuproblemas com suspensão e reinício conforme descrito na Seção 31.3.2, “Problemasde suspensão geral com o PCMCIA” (p 582).

pccardctl suspendDesligue e desabilite a energia para um soquete, mas não ejete a placa (desvinculeos módulos apropriados).

pccardctl resumeApós um comandopccardctl resume, ligue a energia para o soquete e restaurea configuração anterior ao evento suspend.

Para obter mais informações, consulte a página do manual de pccardctl.

31.2 PCMCIA em detalhesAs seções a seguir descrevem o que acontece no seu sistema Linux quando umdispositivo PCMCIA é conectado à sua máquina. Os componentes interagem entre sie vários requisitos precisam ser atendidos para suportar um dispositivo PCMCIA.

A seguir uma descrição geral do processo de inicialização do PCMCIA no Linux:

576 Referência

Page 577: Reference Pt BR

1. A ponte PCMCIA (ou soquete) deve ser configurada de forma apropriadaconforme descrito na Seção 31.2.1, “Inicialização da ponte” (p 577). Os pré-requisitos são:

• um driver apropriado para a ponte

• faixas de memória e E/S adicionais para placas PC

2. Após a ponte ser configurada de forma apropriada, o driver da ponte detecta apresença de uma placa e aciona a sua inicialização conforme descrito naSeção 31.2.2, “Inicialização da placa” (p 578):

a. Determine o tipo de placa.

b. Forneça a voltagem apropriada.

c. Atribua faixas de memória e E/S e linhas IRQ à placa.

d. Acione a inicialização do dispositivo ou da placa vinculando o driver deplaca apropriado.

e. Para algumas placas, é preciso fazer o upload da CIS (Card InformationStructure).

3. Finalmente, a própria interface é configurada e está pronta para uso. Consulte aSeção 31.2.3, “Configuração de interface” (p 579) para obter detalhes.

31.2.1 Inicialização da ponteA maioria das pontes PCMCIA é composta de dispositivos PCI e é tratada como tal. Oprocesso de inicialização da ponte pode ser resumido como a seguir:

1. O hotplug cria um evento PCI.

2. udev chama/sbin/hwup para carregar o driver./sbin/hwup verifica/etc/sysconfig/hardware em busca de uma configuração de dispositivoexistente. Se uma configuração apropriada for encontrada, ela será usada. Casocontrário /sbin/hwup chama modprobe com a string modalias fornecidapelo kernel para carregar o módulo de driver.

3. Novos eventos de hotplug são enviados (um por soquete de PCMCIA).

PCMCIA 577

Page 578: Reference Pt BR

4. As etapas a seguir serão omitidas se somente as placas CardBus forem usadas:

a. Os eventospcmcia_socket acionam o udev para chamar/sbin/hwupe carregar o módulo de kernel pcmcia.

b. Todas as faixas de memória e E/S especificadas em /etc/pcmcia/config.opts são adicionadas ao soquete.

c. Os serviços da placa no kernel verificam essas faixas. Se as faixas dememória em /etc/pcmcia/config.opts estiverem erradas, essaetapa poderá causar falha na sua máquina. Consulte a Seção 31.3.1, “Amáquina falha com o PCMCIA” (p 580) para obter informações sobre comodepurar e corrigir esse problema.

Após essas etapas serem concluídas com êxito, a ponte será totalmente inicializada.Após isso, a própria placa será inicializada conforme descrito na seção seguinte.

31.2.2 Inicialização da placaOs eventos causados pela conexão com uma placa PCMCIA podem ser resumidos comoa seguir:

1. Um evento de hotplug ocorre. Para placas PC, esse é um evento pcmcia. Paraplacas CardBus, esse é um evento pci.

2. Para quaisquer eventos, udev chama /sbin/hwup para carregar um módulode driver. O nome do módulo é especificado em um arquivo hwcfg* sob /etc/sysconfig/hardware ou através de modprobe modalias.

3. Se necessário, a inicialização do dispositivo aciona um evento hotplug defirmware. Isso pesquisa por firmware e o carrega.

4. O driver de dispositivo registra as interfaces.

Após essas etapas serem concluídas, o sistema continua com a configuração de interfaceconforme descrito na seção seguinte.

Se a sua placa for uma placa PC, você talvez precise de alguns dos seguintes parâmetrosem /etc/sysconfig/pcmcia para que ela seja totalmente suportada e funcionesem falhas:

578 Referência

Page 579: Reference Pt BR

PCMCIA_LOAD_CISUm firmware de placa PC é chamado de CIS (Card Information Structure). Elefornece detalhes de implementação adicional da placa. O comando hwup verificaa integridade da CIS integrada da placa e tenta carregar outra CIS do disco se aCIS da placa estiver com defeito. A configuração padrão é yes. Para desabilitar aCIS de carregar a partir do disco, defina esta variável como no.

PCMCIA_ALLOW_FUNC_MATCHOs drivers de dispositivo do Linux contêm uma tabela de ID de dispositivo queinforma aos drivers quais dispositivos devem ser gerenciados. Isso significa quesomente os dispositivos cujos IDs são conhecidos pelo kernel são suportados. Parasuportar essas placas cujo ID não está listado, é possível usar a correspondênciade função. Isso significa que o driver não está selecionado por ID, mas pela funçãoda placa (como uma placa de rede) e seria responsável por qualquer placa PCinserida com essa função (como placas de rede). A configuração padrão é yes.Para desabilitar a correspondência de função, defina esta variável para no.

PCMCIA_COLDPLUG_REINSERTPlacas que foram inseridas antes da inicialização às vezes não são detectadas. Paraevitar isso, cause uma ejeção automática e uma inserção automática da placadefinindo PCMCIA_COLDPLUG_REINSERT como yes. A configuração padrãoé no.

31.2.3 Configuração de interfaceDependendo do tipo de placa, interfaces diferentes são registradas após a inicializaçãoter sido concluída com sucesso. O registro de interface é gerenciado pelo hotplug doudev. Para obter detalhes sobre udev e hotplug, consulte o Capítulo 12,Gerenciamentode dispositivo de kernel dinâmico com udev (p 261).

31.3 Solução de problemasA seguir está uma lista dos problemas mais proeminentes encontrados ocasionalmentecom PCMCIA. Mais informações sobre esse assunto estão disponíveis no READMEdo PCMCIA (/usr/share/doc/packages/pcmciautils/README.SuSE).

PCMCIA 579

Page 580: Reference Pt BR

31.3.1 A máquina falha com o PCMCIAA sua máquina falha quando o PCMCIA é iniciado com boot. Para descobrir o quecausou a falha na máquina, configure-a manualmente conforme descrito abaixo. Aoconfigurar com cuidado o PCMCIA manualmente, você pode identificar com clarezaa etapa ou o componente que causou falha na sua máquina. Após a identificação doresponsável, você pode contornar o componente ou a etapa problemática.

Para configurar manualmente o PCMCIA, proceda da seguinte maneira:

1 Evite que o PCMCIA seja iniciado durante a inicialização do sistema e habiliteo SysRq para depuração mais fácil acrescentando as seguintes opções ao promptde inicialização:init=3 pcmcia=off sysrq=1

Para obter mais informações sobre SysRq, consulte /usr/src/linux/Documentation/sysrq.txt.

2 Inicialize o sistema em um ambiente baseado em texto e efetue login como root.

3 Adicione os módulos PCMCIA apropriados ao kernel:/sbin/modprobe yenta_socket/sbin/modprobe pcmcia

4 Inicie o soquete do PCMCIA:/sbin/pcmcia-socket-startupN

Substitua N pelo número do soquete. Repita esta etapa para cada soquete.

5 Se a etapa anterior causou falhas na máquina, isso pode ter sido causado porfaixas de memória ou E/S erradas especificadas em /etc/pcmcia/config.opts. Para evitar isso, execute uma das seguintes ações:

• Exclua faixas em /ect/pcmcia/config.opts e tente novamente aconfiguração do soquete.

• Adicione as faixas manualmente conforme descrito abaixo.

Após ter adicionado com êxito as faixas apropriadas manualmente, defina-as de forma permanente incluindo-as em/etc/pcmcia/config.opts.

580 Referência

Page 581: Reference Pt BR

6 Após a configuração de soquete ter sido concluída com êxito, a inicialização daplaca e a configuração da interface funcionam conforme descrito na Seção 31.2.2,“Inicialização da placa” (p 578) e na Seção 31.2.3, “Configuração de interface”(p 579).

Para adicionar manualmente faixas de E/S, proceda da seguinte maneira (para cadasoquete):

1 Mude para o diretório que mantém as configurações de faixa (neste caso,pcmcia_socket0, adaptado para outros números de soquete):cd /sys/class/pcmcia_socket/pcmcia_socket0

2 Execute o seguinte comando:echo begin - end > available_resources_io

Substitua begin e end pelos endereços onde a nova faixa deve iniciar e encerrar.Os valores corretos só podem ser determinados por tentativa e erro.

Adicionando manualmente as seguintes faixas:echo 0x800 - 0x8ff > available_resources_ioecho 0xc00 - 0xcff > available_resources_io

é igual à seguinte linha de /etc/pcmcia/config.opts:include port 0x800-0x8ff, port 0xc00 0xcff

O mesmo procedimento se aplica às faixas de memória sob available_resources_mem.

IMPORTANTE: Identificando configurações padrão com falhas

Se você encontrar uma faixa com falha no arquivo de configuração padrão(/etc/pcmcia/config.opts) enviado com este produto, arquive umrelatório de erros sobre ele em http://bugzilla.novell.com, para queos desenvolvedores possam analisar esse problema.

PCMCIA 581

Page 582: Reference Pt BR

31.3.2 Problemas de suspensão geral com oPCMCIA

Ao suspender o sistema (suspender para disco, suspender para RAM ou standby), nãoconecte ou desconecte quaisquer itens de hardware enquanto o sistema estiver no modode suspensão. De outra forma, o sistema talvez não continue de forma adequada.

Para ejetar placas PCMCIA automaticamente na suspensão, proceda da seguinte maneira:

1 Efetue login como Root.

2 Abra o arquivo /etc/powersave/sleep.

3 Defina as seguintes variáveis:SUSPEND2DISK_EJECT_PCMCIA="yes"SUSPEND2RAM_EJECT_PCMCIA="yes"STANDBY_EJECT_PCMCIA="yes"

4 Grave o arquivo para aplicar as configurações.

Se módulos adicionais precisarem ser ejetados na suspensão, proceda como acima eadicione os nomes de módulos às seguintes variáveis:UNLOAD_MODULES_BEFORE_SUSPEND2DISK=""UNLOAD_MODULES_BEFORE_SUSPEND2RAM=""UNLOAD_MODULES_BEFORE_STANDBY=""

Para obter informações gerais sobre o daemon de economia de energia, consulte aSeção 33.5, “O Pacote powersave” (p 610).

31.3.3 Mais informaçõesEncontre as informações mais atualizadas sobre o PCMCIA em /usr/share/doc/packages/pcmciautils/README.SuSE. Para obter uma visão geral abrangentesobre o hardware do PCMCIA e seus campos de uso, vá para o site oficial do PCMCIA(http://www.pcmcia.org/pccard.htm). Para verificar se uma determinadaplaca ou dispositivo é geralmente suportada pelo Linux, consulte a LinuxPCMCIA/CF/CardBusCard Survey emhttp://tuxmobil.org/pcmcia_linux.html.

582 Referência

Page 583: Reference Pt BR

32System Configuration ProfileManagementCom a ajuda do SCPM (System Configuration Profile Management - Gerenciamentode Perfil da Configuração do Sistema) adapte a configuração do seu computador adiferentes ambientes operacionais ou configurações de hardware. O SCPM gerenciaum conjunto de perfis do sistema para os diferentes cenários. O SCPM permite alternarfacilmente entre perfis do sistema, eliminando a necessidade de reconfigurarmanualmente o sistema.

Algumas situações requerem uma configuração do sistema modificada. Isso seria emgeral o caso para computadores móveis que são operados em locais variáveis. O SCPMé prático se um sistema do desktop deve ser operado temporariamente usandocomponentes de hardware diferentes dos normais. A restauração da configuração dosistema original deve ser fácil e a modificação da configuração do sistema pode serreproduzida. Com o SCPM, qualquer parte da configuração do sistema pode ser mantidaem um perfil personalizado.

O campo principal de aplicação do SCPM é a configuração de rede em laptops.Configurações de rede diferentes geralmente requerem configurações diferentes deoutros serviços, como e-mail ou proxies. Depois disso, vêm outros elementos, comoimpressoras diferentes em casa e no escritório, uma configuração personalizada deservidor X para o projetor multimídia em conferências, configurações especiais deeconomia de energia para viagens ou um fuso horário diferente em uma subsidiáriaestrangeira.

System Configuration Profile Management 583

Page 584: Reference Pt BR

32.1 TerminologiaA seguir, estão alguns termos usados na documentação do SCPM e no módulo YaST.

configuração do sistemaRefere-se à configuração completa do computador. Ele abrange todas asconfigurações fundamentais, como o uso de partições de disco rígido, configuraçõesde rede, seleção de fuso horário e mapeamentos de teclado.

perfil ou perfil do sistemaUm estado que foi preservado e pode ser restaurado a qualquer momento.

perfil ativoRefere-se ao perfil selecionado por último. Isso não significa que a configuraçãodo sistema atual corresponde exatamente a este perfil, porque ela pode sermodificada a qualquer momento.

recursoUm elemento que contribui para a configuração do sistema. Pode se tratar de umarquivo ou um softlink que inclua metadados (como o usuário), permissões outempo de acesso. Também pode ser um serviço do sistema que é executado nesteperfil, mas está desabilitado em outro.

grupo de recursosCada recurso pertence a um determinado grupo de recursos. Esses grupos contêmtodos os recursos que logicamente devem estar juntos. A maioria de grupos conteriaum serviço e seus arquivos de configuração. É muito fácil agrupar recursosgerenciados pelo SCPM porque isso não requer nenhum conhecimento dos arquivosde configuração do serviço desejado. O SCPM é fornecido com uma seleção degrupos de recursos pré-configurados que devem ser suficientes para a maioria doscenários.

32.2 Configurando o SCPMAs seções a seguir o introduzem à configuração do SCPM através de um exemplo davida real: um computador móvel executado em várias redes diferentes. Os problemasprincipais neste cenário são:

584 Referência

Page 585: Reference Pt BR

• Ambientes de rede variáveis, como LAN sem fio em casa e uma ethernet no trabalho

• Configuração de impressora diferente em casa e no trabalho

Para que o SCPM funcione corretamente e gerencie a sua configuração de sistemavariável, proceda como a seguir:

1 Adicione o applet Seletor de Perfil ao seu painel e configure-o para permitir aalternação de usuário conforme descrito na Seção 32.3.1, “Configurando o appletdo painel Seletor de Perfil” (p 585).

2 Configure o SCPM usando o módulo do Gerenciador de Perfis do YaST conformedescrito na Seção 32.3.2, “Definindo configurações básicas do SCPM” (p 586).

3 Crie um perfil para cada uma das configurações diferentes usando SUMF (SCPMUnified Management Front-End) conforme descrito na Seção 32.3.3, “Criandoum novo perfil” (p 588).

4 Alterne para o perfil apropriado para sua situação atual conforme descrito naSeção 32.3.4, “Alternando perfis” (p 589).

Se você preferir controlar o SCPM com a interface de linha de comando, consulte aSeção 32.4, “Configurando o SCPM com a linha de comando” (p 592) para obter detalhes.

32.3 Configurando o SCPM usandouma interface gráfica de usuário

As seções a seguir introduzem as ferramentas gráficas usadas para controlar asconfigurações de perfil.

32.3.1 Configurando o applet do painelSeletor de Perfil

Antes que você possa usar o Seletor de Perfil para controlar a configuração de sistema,configure-a para ser iniciada automaticamente no login:

System Configuration Profile Management 585

Page 586: Reference Pt BR

• No GNOME, clique o botão direito do mouse no painel e selecione Seletor de Perfilna lista de applets disponíveis.

• No KDE, selecione Sistema→Applet de Desktop→ Seletor de Perfil para adicionaro Seletor de Perfil ao seu painel.

32.3.2 Definindo configurações básicas doSCPM

Configure o comportamento básico do SCPM através do YaST.

1 Inicie o YaST no menu principal e selecione o Gerenciador de Perfis do YaST.

2 Em System Configuration Profile Management, clique em Opções e selecioneHabilitado.

3 Determine quão verboso o SCPM deve ser selecionando uma ou ambas opçõesMensagens de Andamento Detalhadas e Registrar Mensagens de Depuração.

4 Determine o modo de troca apropriado para a sua configuração:

• Deve o SCPM listar qualquer recurso modificado ao alternar para outro perfile gravar essas mudanças para o perfil ativo? Selecione Normal ou SalvarMudanças.

• Deve o SCPM descartar qualquer configuração de recurso mudada aoalternar? Selecione Descartar Mudanças.

5 Defina o modo de inicialização e determine se as mudanças no perfil atual devemser gravadas ou se devem ser descartadas com a alternação do perfil acionada nomomento da inicialização.

6 Verifique se todos os grupos de recursos necessários estão cobertos pela seleçãoativa, exibida na seçãoGrupos de Recursos. Se você precisa de grupos de recursosadicionais, ajuste os recursos comConfigurar Recursos. Para obter informações,consulte a Seção 32.3.6, “Configurando grupos de recursos” (p 590).

586 Referência

Page 587: Reference Pt BR

Para o cenário de exemplo, você não precisa configurar recursos adicionais, poisos recursos de impressora e rede são incluídos por padrão.

Figura 32.1 YaST: Configuração básica do SCPM

Para permitir que usuários diferentes de root gerenciem perfis, proceda da seguintemaneira:

1 Inicie o YaST no menu principal e selecione o Gerenciador de Perfis do YaST.

2 MarquePermitir queUsuários não-root GerenciemPerfis. Consulte a Figura 32.2,“YaST: Configurar usuários do SCPM” (p 588).

3 Clique em Configurar Usuários.

4 Clique em Adicionar para adicionar qualquer usuário que seja capaz de gerenciarperfis.

5 Para cada usuário, especifique se ele deve ter permissões de alternação somenteou se este usuário deve ter permissão para alternar, modificar e criar perfis.

6 Clique em Aceitar para aplicar suas configurações e fechar o YaST.

System Configuration Profile Management 587

Page 588: Reference Pt BR

Figura 32.2 YaST: Configurar usuários do SCPM

32.3.3 Criando um novo perfilApós ter habilitado o SCPM, você terá um perfil chamado default que contém a suaconfiguração de sistema atual. Crie outro perfil que corresponda aos requisitos da outraconfiguração.

Para adicionar um novo perfil baseado na configuração de sistema atual, proceda comoa seguir:

1 Clique o botão direito do mouse no Seletor de Perfil e selecione ExecutarGerenciador de Perfis (SUMF).

2 Selecione Perfis → Adicionar.

3 Digite o nome do novo perfil e clique em OK.

4 Determine se o novo perfil deve ser o perfil ativo.

Se você selecionou Sim, o SCPM alterna para o novo perfil imediatamente apósele ter sido criado.

588 Referência

Page 589: Reference Pt BR

Para este exemplo, proceda da seguinte maneira:

1 Na sua configuração inicial, habilite o SCPM.

2 Renomeie o perfil default para um nome mais descritivo iniciando o SUMFe selecionando Perfis → Editar e digitando o novo nome.

3 Na sua configuração no trabalho, inicie o SUMF e crie o perfil para o ambientede sistema no trabalho.

Após ter todos os perfis necessários, você já estará pronto para alternar para eles sempreque uma configuração de sistema diferente for necessária. A alternação de perfis édescrita na Seção 32.3.4, “Alternando perfis” (p 589).

32.3.4 Alternando perfisHá duas maneiras de alternar perfis. Você pode selecionar um novo perfil na inicializaçãoou alternar perfis no sistema em execução.

Para selecionar um perfil na inicialização, proceda da seguinte maneira:

1 Na tela de inicialização, pressione F2 para entrar no menu Outras Opções.

2 Pressione F3 para acessar a lista de perfis disponível.

3 Use as teclas de seta para selecionar o perfil apropriado e pressione Enter .

O sistema inicializa na configuração selecionada.

Para alternar perfis em um sistema em execução, proceda da seguinte maneira:

1 Verifique se você tem permissão para alternar perfis como um usuário não-root.Se você não tiver permissão para isso, consulte a Seção 32.3.2, “Definindoconfigurações básicas do SCPM” (p 586).

2 Clique com o botão esquerdo do mouse no applet de painel Seletor de Perfil.

3 Selecione o perfil necessário no menu aberto usando as teclas de seta e pressioneEnter .

System Configuration Profile Management 589

Page 590: Reference Pt BR

O SCPM executa uma verificação para os recursos modificados e solicita umaconfirmação da alternação. Se foram feitas mudanças à configuração do sistemaantes da alternação, o SCPM pergunta se você deseja mantê-las ou descartá-lasao alternar para outro perfil.

32.3.5 Editando um perfilPara ajustar perfis existentes a um ambiente modificado, por exemplo, se você desejamudar a configuração da impressora da sua rede doméstica, proceda da seguinte maneira:

1 Alterne para o perfil para ajustá-lo conforme descrito na Seção 32.3.4, “Alternandoperfis” (p 589). Neste exemplo, você escolheria o perfil home.

2 Mude os recursos que precisam de ajustes usando o módulo YaST apropriado.Neste exemplo, execute a configuração da impressora do YaST.

3 Após as mudanças de configuração terem sido aplicadas, o SCPM pergunta seessas mudanças devem ser aplicadas permanentemente ao seu perfil ativo napróxima alternação de perfil.

DICA: Forçando uma atualização de perfil

Se você deseja forçar uma atualização do perfil ativo, clique no perfil nomenu de seleção do perfil do applet de painel Seletor de Perfil. Issoacionará um recarregamento do perfil e você será solicitado a aplicar asmudanças de configuração ou descartá-las.

32.3.6 Configurando grupos de recursosO SCPM vem com um conjunto de grupos de recursos pré-definidos que estão incluídosem qualquer perfil por padrão. Porém, alguns cenários exigem a inclusão de recursosadicionais e grupos de recursos.

Para mudar a configuração de recursos (grupo), proceda da seguinte maneira:

1 Inicie o YaST no menu principal e inicie o módulo do Gerenciador de Perfis doYaST.

590 Referência

Page 591: Reference Pt BR

2 Na caixa de diálogo System Configuration Profile Management, clique emConfigurar Recursos.

Todos os grupos de recursos disponíveis no sistema são listados como mostradona Figura 32.3, “Configurando grupos de recursos” (p 591).

3 Para adicionar ou editar um grupo de recursos:

a Defina ou edite Grupo de Recursos e Descrição.

b Insira os recursos apropriados (recursos, serviços ou ambos) e apague osque não são necessários. Para redefinir o status dos recursos selecionados,descarte quaisquer mudanças feitas neles e retorne aos valores deconfiguração inicial, escolha Reconfigurar Grupo.

c Clique em OK para sair da configuração de recursos.

4 Clique em OK para gravar as mudanças no perfil ativo.

Figura 32.3 Configurando grupos de recursos

System Configuration Profile Management 591

Page 592: Reference Pt BR

32.4 Configurando o SCPM com alinha de comando

Esta seção introduz a configuração de linha de comando do SCPM. Aprenda comoiniciá-la, configurá-la e trabalhar com perfis.

32.4.1 Iniciando o SCPM e definindo gruposde recursos

O SCPM deve ser ativado antes de ser usado. Ative o SCPM com scpm enable. Aoser executado pela primeira vez, o SCPM é inicializado, o que leva alguns segundos.Desative o SCPM com scpm disable a qualquer momento para evitar a troca nãointencional de perfis. Uma reativação subseqüente simplesmente reinicia a inicialização.

Por padrão, o SCPM trata configurações de rede e impressora, assim como aconfiguração X.Org. Para gerenciar serviços ou arquivos de configuração especiais,ative os grupos de recursos respectivos. Para relacionar os grupos de recursospredefinidos, use scpm list_groups. Para ver somente os grupos já ativados, usescpm list_groups -a. Emita estes comandos como root na linha de comando.scpm list_groups -a

nis Network Information Service clientmail Mail subsystemntpd Network Time Protocol daemonxf86 X Server settingsautofs Automounter servicenetwork Basic network settingsprinter Printer settings

Ative ou desative um grupo com scpm activate_group NOME ou scpmdeactivate_group NOME. Substitua NOME pelo nome de grupo relevante.

32.4.2 Criando e gerenciando perfisUm perfil chamado default já existe depois que o SCPM foi ativado. Obtenha umalista de todos os perfis disponíveis com scpm list. Este perfil existente também éo perfil ativo, que pode ser verificado com scpm active. O perfil default é uma

592 Referência

Page 593: Reference Pt BR

configuração básica da qual os outros perfis são derivados. Por este motivo, todas asconfigurações que devem ser idênticas em todos os perfis devem ser criadas primeiro.Em seguida, armazene essas modificações no perfil ativo com scpm reload. O perfildefault pode ser copiado e renomeado como a base de novos perfis.

Existem duas maneiras de adicionar um novo perfil. Se o novo perfil (chamadotrabalho aqui) deve ser baseado no perfil default, crie-o com scpm copydefault trabalho. O comando scpm switch trabalho muda para o novoperfil, que pode então ser modificado. Convém modificar a configuração do sistemapara finalidades especiais e gravar as mudanças em um novo perfil. O comando scpmadd trabalho cria um novo perfil gravando a configuração do sistema atual noperfiltrabalho e tornando-a ativa. A execução descpm reload grava as mudançasno perfil trabalho.

Os perfis podem ser renomeados ou apagados com os comandos scpm rename xy escpm delete z. Por exemplo, para renomeartrabalho paraprojeto, digitescpm rename trabalho projeto. Para apagar projeto, digite scpmdelete projeto. O perfil ativo não pode ser apagado.

32.4.3 Alternando perfis de configuraçãoO comando scpm switch trabalho alterna para um outro perfil (o perfiltrabalho, neste caso). Alterne para o perfil ativo a fim de incluir configuraçõesmodificadas da configuração do sistema no perfil. Isso corresponde ao comando scpmreload.

Ao alternar perfis, o SCPM primeiro verifica que recursos do perfil ativo forammodificados. Em seguida, ele consulta se a modificação de cada recurso deve seradicionada ao perfil ativo ou descartada. Se você preferir ter uma lista separada derecursos (como em versões antigas do SCPM), use o comando de troca com o parâmetro-r: scpm switch -r trabalho.scpm switch -r trabalho

Checking for modified resources Checking for Resources to be started/shut down Checking for dependencies Restoring profile default

O SCPM compara então a configuração do sistema atual com o perfil para o qualalternar. Nesta fase, o SCPM avalia que serviços do sistema precisam ser interrompidos

System Configuration Profile Management 593

Page 594: Reference Pt BR

ou reiniciados devido a dependências mútuas ou a fim de refletir as mudanças naconfiguração. Isso é como uma reinicialização parcial do sistema que somente afetauma pequena parte do sistema enquanto o resto continua operando sem mudanças. Ésomente neste ponto que os serviços do sistema são interrompidos, todos os recursosmodificados, como arquivos de configuração, são gravados, e os serviços do sistemasão reiniciados.

32.4.4 Configurações avançadas de perfilVocê pode digitar uma descrição para cada perfil que é exibido com scpm list. Parao perfil ativo, defina-o com scpm set description "texto". Forneça o nomedo perfil para perfis inativos, por exemplo, scpm set description "texto"trabalho. Talvez convenha, algumas vezes, executar ações adicionais não fornecidaspelo SCPM ao alternar perfis. Anexe de um a quatro executáveis para cada perfil. Elessão chamados em estágios diferentes do processo de alternação. Estes estágios sãoconhecidos como:

pré-pararantes de interromper serviços ao deixar o perfil

pós-pararapós interromper serviços ao deixar o perfil

pré-iniciarantes de iniciar serviços ao ativar o perfil

pós-iniciarapós iniciar serviços ao ativar os perfis

Insira estas ações com o comando set digitando scpm set pré-pararfilename, scpm set pós-parar filename, scpm set pré-iniciarfilename ou scpm set pós-iniciar filename. Os scripts devem serexecutáveis e devem indicar o interpretador correto.

ATENÇÃO: Integrando um script personalizado

Os scripts adicionais a serem executados pelo SCPM devem ser legíveis eexecutáveis para o superusuário (root). O acesso a esses arquivos deve serbloqueado para todos os usuários. Digite os comandos chmod 700 filename

594 Referência

Page 595: Reference Pt BR

e chown root:root filename para dar ao root permissões exclusivasaos arquivos.

Consulte todas as configurações adicionais digitadas com set com get. O comandoscpm get pós-iniciar, por exemplo, retorna o nome da chamada pós-iniciarou simplesmente nada se nada foi anexado. Redefina essas configurações sobregravandocom "". O comando scpm set pré-parar "" remove o programa pré-pararanexado.

Todos os comandos set e get podem ser aplicados a um perfil arbitrário da mesmamaneira que os comentários são adicionados. Por exemplo, scpm get pré-pararfilename trabalho ou scpm get pré-parar trabalho.

32.5 Solução de problemasEsta seção abrange problemas freqüentes encontrados com o SCPM. Aprenda comoeles podem ocorrer e como você pode resolvê-los.

32.5.1 O SCPM e o NetworkManagerO NetworkManager e o SCPM compartilham funcionalidade. Ambos integram a máquinaem uma rede existente, ocultando essa transação do usuário. O NetworkManager trabalhadinamicamente e adapta-se a qualquer novo ambiente. O SCPM é usado para restaurarconfigurações de sistema definidas.

Usar o NetworkManager e o SCPM em paralelo não funciona de forma correta, pois oNetworkManager não fornece configurações que possam ser restauradas pelo SCPM.O SCPM funciona de forma excelente para qualquer pessoa que precisa de configuraçõesreproduzíveis. Qualquer usuário privado que alterna constantemente entre redes (semfio) deve considerar o uso do NetworkManager se a configuração de rede for o únicocomponente que precise de ajuste.

Para usar o SCPM para o gerenciamento de configuração de rede, desabilite oNetworkManager.

System Configuration Profile Management 595

Page 596: Reference Pt BR

32.5.2 Encerramento durante o processo dealternação

Às vezes, o SCPM pára de funcionar durante um procedimento de alternação. Isso podeser causado por algum efeito externo, como uma interrupção do usuário, uma falha deenergia ou mesmo um erro no próprio SCPM. Se isso ocorrer, uma mensagem de erroque declara que o SCPM está bloqueado será exibida na próxima vez que você iniciaro SCPM. Isso é para a segurança do sistema, pois os dados armazenados no seu bancode dados talvez sejam diferentes do estado do sistema. Para resolver essa questão,execute scpm recover. O SCPM executa todas as operações ausentes da execuçãoanterior. Você também pode executar scpm recover -b, que tenta desfazer todasas operações já executadas da execução anterior. Se estiver usando o gerenciador deperfis do YaST, obtenha uma caixa de diálogo de recuperação na inicialização queoferece a execução dos comandos descritos acima.

32.6 Mais informaçõesA documentação mais recente está disponível nas páginas de informações do SCPM(info scpm). As informações para desenvolvedores estão disponíveis em/usr/share/doc/packages/scpm.

596 Referência

Page 597: Reference Pt BR

33Gerenciamento de energiaO gerenciamento de energia é especialmente importante em laptops, mas também é útilem outros sistemas. Duas tecnologias estão disponíveis: APM (Advanced PowerManagement - Gerenciamento Avançado Energia) e ACPI (Advanced Configurationand Power Interface - Interface de Energia e Configuração Avançada). Além delas,também é possível controlar o dimensionamento de freqüência de CPU para economizarenergia ou reduzir o ruído. Estas opções podem ser configuradas manualmente ouusando um módulo YaST especial.

Ao contrário de APM, que era usado em laptops apenas para gerenciamento de energia,a ferramenta ACPI de configuração e informações sobre hardware está disponível emtodos os computadores modernos (laptops, desktops e servidores). Todas as tecnologiasde gerenciamento de energia exigem hardware adequado e rotinas BIOS. A maioriados laptops e muitas áreas de trabalho e servidores modernos atendem a estes requisitos.

APM era usado em muitos computadores antigos. Como APM consiste amplamenteem um conjunto de funções implementado no BIOS, o nível de suporte de APM podevariar, dependendo do hardware. O mesmo vale para o ACPI, que é ainda maiscomplexo. Por esta razão, é virtualmente impossível recomendar um ou outro. Testeos diversos procedimentos no seu hardware e selecione a tecnologia que é suportadade forma melhor.

IMPORTANTE: Gerenciamento de energia para processadores AMD64

Processadores AMD64 com kernel de 64 bits suportam apenas o ACPI.

Gerenciamento de energia 597

Page 598: Reference Pt BR

33.1 Funções de economia de energiaAs funções de economia de energia não são significativas apenas para o uso móvel delaptops, como também para sistemas desktop. As principais funções e uso respectivonos sistemas de gerenciamento de energia APM e ACPI são:

StandbyEste modo operacional desativa a exibição. Em alguns computadores, o desempenhodo processador é restringido. Essa função não está disponível em todas asimplementações do APM. Ela corresponde ao estado S1 ou S2 da ACPI.

Suspender (para memória)Este modo grava todo o estado do sistema na memória RAM. Em seguida, todo osistema é colocado para adormecer, salvo a memória RAM. Neste estado, ocomputador consome pouquíssima energia. A vantagem desse estado é apossibilidade de reiniciar o trabalho no mesmo ponto em alguns segundos semprecisar inicializar e reiniciar os aplicativos. Dispositivos que usam APM geralmentepodem ser suspensos fechando-se a tampa e ativados abrindo-a. Esta funçãocorresponde ao estado S3 de ACPI. O suporte desse estado ainda está emdesenvolvimento e, portanto, depende muito do hardware.

Suspender (para o disco)Neste modo operacional, o estado do sistema inteiro é gravado no disco rígido e osistema é desligado. Deve existir uma partição de troca pelo menos tão grandequanto a RAM para gravar todos os dados ativos. A reativação desse estado levade 30 a 90 segundos. O estado anterior ao suspenso é restaurado. Alguns fabricantesoferecem variantes híbridas desse modo, como RediSafe em Thinkpads da IBM.O estado correspondente da ACPI é S4. No Linux, suspender para disco é realizadopelas rotinas kernel que são independentes de APM e ACPI.

Monitor de bateriaACPI e APM verificam o status da carga da bateria e fornecem informações sobreele. Além disso, os dois sistemas coordenam ações a realizar quando um status decarga é atingido.

Desligamento automáticoApós um encerramento, o computador é desligado. Isto é especialmente importantequando um encerramento automático é realizado pouco antes da bateria esgotar-se.

598 Referência

Page 599: Reference Pt BR

Encerramento dos componentes do sistemaDesativar o disco rígido é o principal aspecto do potencial de economia de energiade todo o sistema. Dependendo da confiabilidade do sistema, o disco rígido podeser colocado para adormecer por algum tempo. No entanto, o risco de perder dadosaumenta com a duração dos períodos de adormecimento. Outros componentes,como dispositivos PCI que podem ser colocados em um modo especial de economiade energia, podem ser desativados com o ACPI (pelo menos em teoria) oudesabilitados de forma permanente na configuração do BIOS.

Controle de velocidade do processadorJunto com a CPU, é possível economizar energia de três maneiras: escala defreqüência e voltagem (também conhecida como PowerNow! ou Speedstep),obstruindo e colocando o processador para adormecer (estados C). Dependendodo modo operacional do computador, esses métodos também podem ser combinados.

33.2 APMAlgumas das funções de economia de energia são realizadas pelo próprio BIOS doAPM. Em muitos laptops, os estados standby e suspender podem ser ativados comcombinações de tecla ou fechando a tampa sem qualquer função especial do sistemaoperacional. No entanto, para ativar esses modos com um comando, algumas açõesdevem ser acionadas antes que o sistema seja suspenso. Para visualizar o nível de cargada bateria, são necessários pacotes especiais de programa e um kernel adequado.

Os kernels do SUSE Linux têm suporte de APM interno. No entanto, APM só é ativadose ACPI não estiver implementada no BIOS e for detectado um BIOS de APM. Paraativar o suporte APM, ACPI deve ser desativado com acpi=off no prompt deinicialização. Digite cat /proc/apm para verificar se APM está ativo. Uma saídacomposta de vários números indica que tudo está OK. Você agora poderá desligar ocomputador com o comando shutdown -h.

As implementações do BIOS que não forem totalmente compatíveis com o padrãopoderão provocar problemas com APM. Alguns problemas poderão ser contornadoscom parâmetros de boot especiais. Todos os parâmetros são digitados no prompt dainicialização na forma de apm=parâmetro. parâmetro é um de:

ativar ou desativarHabilitar ou desabilitar suporte APM.

Gerenciamento de energia 599

Page 600: Reference Pt BR

(no-)allow-intsPermitir interrupções durante a execução das funções do BIOS

(no-)broken-psrA função “GetPowerStatus” do BIOS não funciona corretamente.

(no-)realmode-power-offRedefina o processador para o modo real antes de desligar.

(no-)debugRegistre os eventos APM no registro do sistema.

(no-)realmode-power-offDesligue o sistema após o encerramento.

bounce-interval=nTempo em centésimos de segundo após um evento suspenso durante o qual oseventos suspensos adicionais são ignorados.

idle-threshold=nPorcentagem de inatividade do sistema na qual a função do BIOSidle é executada(0=sempre, 100=nunca).

idle-period=nTempo em centésimos de segundo após o qual a atividade do sistema é medida.

O daemon APM (apmd) não é mais usado. A sua funcionalidade agora é tratada pelanova economia de energia, que também suporta ACPI e fornece vários outros recursos.

33.3 ACPIA ACPI (Interface de Energia e Configuração Avançada) foi projetada para habilitar osistema operacional a configurar e controlar os componentes individuais do hardware.A ACPI substitui PnP e APM. Envia informações sobre a bateria, adaptador de CA,temperatura, ventilador e eventos do sistema, como “fechar tampa” ou “bateria fraca.”

O BIOS fornece tabelas que contém informações sobre os componentes individuais emétodos de acesso ao hardware. O sistema operacional usa essas informações paratarefas como atribuir interrupções ou ativar e desativar componentes. Como o sistema

600 Referência

Page 601: Reference Pt BR

operacional executa comandos armazenados no BIOS, a funcionalidade depende daimplementação do BIOS. As tabelas que a ACPI podem detectar e carregar sãoreportadas em /var/log/boot.msg. Consulte a Seção 33.3.4, “Solução deproblemas” (p 606) para obter mais informações sobre solução de problemas da ACPI.

33.3.1 ACPI em açãoSe o kernel detectar um BIOS de ACPI quando o sistema for inicializado, a ACPI seráautomaticamente ativada e o APM desativado. O parâmetro de inicializaçãoacpi=force poderá ser necessário para algumas máquinas mais antigas. O computadordeve aceitar ACPI 2.0 ou posterior. Verifique as mensagens de boot do kernel em/var/log/boot.msg para ver se a ACPI foi ativada.

Em seguida, deverá ser carregado um número de módulos. Isso é feito pelo script deinício de acpid. Se algum destes módulos causar problemas, o módulo respectivo poderáser excluído de carregar ou descarregar em /etc/sysconfig/powersave/common. O registro do sistema (/var/log/messages) contém as mensagens dosmódulos, permitindo que você veja que componentes foram detectados.

/proc/acpi agora contém vários arquivos que fornecem informações sobre o estadodo sistema ou que podem ser usados para mudar alguns dos estados. Alguns recursosainda não funcionam porque estão em desenvolvimento e o suporte de algumas funçõesdepende muito da implementação do fabricante.

Todos os arquivos (exceto dsdt e fadt) podem ser lidos com cat. Em algunsarquivos, as configurações podem ser modificadas com echo, por exemplo, echo X> file para especificar valores adequados para X. Uma possibilidade para acessofácil a esses valores é o comando powersave, que age como um front end para odaemon de economia de energia. Os arquivos mais importantes estão descritos abaixo:

/proc/acpi/infoInformações gerais sobre a ACPI.

/proc/acpi/alarmAqui, especifique quando o sistema deve ser ativado de um estado de inatividade.Atualmente, esse recurso não é totalmente suportado.

/proc/acpi/sleepFornece informações sobre possíveis estados de adormecimento.

Gerenciamento de energia 601

Page 602: Reference Pt BR

/proc/acpi/eventTodos os eventos são reportados aqui e processados pelo daemon do Powersave(powersaved). Se nenhum daemon acessar o arquivo, eventos como um cliquerápido no botão de alimentação ou fechamento da tampa podem ser lidos com cat/proc/acpi/event (encerrar com Ctrl + C ).

/proc/acpi/dsdt e /proc/acpi/fadtEstes arquivos contêm as tabelas DSDT (differentiated system description table -tabela de descrição de sistema diferenciado) e FADT (fixed ACPI description table- tabela de descrição de ACPI fixa) da ACPI. Elas podem ser lidas com acpidmp,acpidisasm e dmdecode. Estes programas e sua documentação localizam-seno pmtools do pacote. Por exemplo, acpidmp DSDT | acpidisasm.

/proc/acpi/ac_adapter/AC/stateMostra se o adaptador de CA está conectado.

/proc/acpi/battery/BAT*/{alarme,info,estado}Informações detalhadas sobre o estado da bateria. O nível de carga é lido atravésda comparação daúltima capacidade cheia einfo com acapacidaderemanescente no estado. Um modo mais confortável de fazer isto é usar umdos programas especiais apresentados na Seção 33.3.3, “Ferramentas da ACPI”(p 606). O nível de carga em que o evento bateria (como um alerta, baixa e crítica)é acionado pode ser especificado em alarme.

/proc/acpi/buttonEste diretório contém informações sobre vários switches, como botões e a tampado laptop.

/proc/acpi/fan/FAN/stateMostra se o ventilador está ativo atualmente. Ativar ou desativar o ventiladormanualmente, escrevendo 0 (ligado) ou 3 (desligado) neste arquivo. No entanto,os dois códigos da ACPI no kernel e no hardware (ou no BIOS) sobregravam estaconfiguração no caso de aquecimento do sistema.

/proc/acpi/processor/*É mantido um subdiretório separado para cada CPU incluída no seu sistema.

/proc/acpi/processor/*/infoInformações sobre as opções de economia de energia do processador.

602 Referência

Page 603: Reference Pt BR

/proc/acpi/processor/*/powerInformações sobre o estado atual do processador. Um asterisco próximo a C2 indicaque o processador está inativo. Este é o estado mais freqüente, como pode serverificado no valor de utilização.

/proc/acpi/processor/*/throttlingPode ser usado para configurar o throttling do relógio do processador. Normalmente,é possível o throttling em oito níveis. Isto é independente do controle de freqüênciada CPU.

/proc/acpi/processor/*/limitSe o desempenho (desatualizado) e o throttling forem controlados automaticamentepor um daemon, os limites máximos podem ser especificados aqui. Alguns doslimites são determinados pelo sistema. Alguns podem ser ajustados pelo usuário.

/proc/acpi/thermal_zone/Existe um subdiretório separado para cada zona térmica. Uma zona térmica é umaárea com propriedades térmicas similares, cujo número e nomes são designadospelo fabricante do hardware. No entanto, muitas das possibilidades oferecidas pelaACPI raramente são implementadas. Ao contrário, o controle de temperaturaconvencionalmente é administrado pelo BIOS. O sistema operacional não temmuita oportunidade de intervir, porque a vida útil do hardware está ameaçada.Portanto, alguns dos arquivos têm apenas um valor teórico.

/proc/acpi/thermal_zone/*/temperatureTemperatura atual da zona térmica.

/proc/acpi/thermal_zone/O estado indica se tudo está ok ou se a ACPI aplica o resfriamento ativo oupassivo. No caso de controle de ventilador independente da ACPI, o estado estásempre ok.

/proc/acpi/thermal_zone/*/cooling_modeSelecione o método de resfriamento controlado pela ACPI Escolha o modo deresfriamento passivo (menor desempenho, econômico) ou ativo (total desempenho,ruído do ventilador).

/proc/acpi/thermal_zone/*/trip_pointsHabilita a determinação de limites de temperatura para acionamento de açõesespecíficas, como resfriamento ativo ou passivo, suspensão (quente), ou umshutdown (crítico). As ações possíveis são definidas no DSDT (dependente do

Gerenciamento de energia 603

Page 604: Reference Pt BR

dispositivo). Os pontos de desligamento determinados na especificação da ACPIsão crítico, quente, passivo, ativo1 e ativo2. Mesmo que nem todoseles sejam implementados, devem ser sempre digitados neste arquivo nesta ordem.Por exemplo, a entrada echo 90:0:70:0:0 > trip_points configura atemperatura de crítico a 90 e a temperatura de passivo a 70 (todas astemperaturas medidas em graus Celsius).

/proc/acpi/thermal_zone/*/polling_frequencySe o valor em temperatura não for atualizado automaticamente quando atemperatura mudar, alterne o modo polling aqui. Com o comando echo X >/proc/acpi/thermal_zone/*/polling_frequency a temperatura éverificada a cada X segundos. Configure X=0 para desabilitar o polling.

Nenhuma destas configurações, informações e eventos precisam ser editadosmanualmente. Isto pode ser feito com o daemon do Powersave (economia de energia)e diversos front ends, como powersave, kpowersave e wmpowersave. Consulte aSeção 33.3.3, “Ferramentas da ACPI” (p 606).

33.3.2 Controlando o desempenho da CPUA CPU pode economizar energia de três maneiras. Dependendo do modo operacionaldo computador, estes métodos também podem ser combinados. Economizar energiatambém significa que o sistema esquenta menos e os ventiladores são ativados commenos freqüência.

Dimensionamento de freqüência e voltagemPowerNow! e Speedstep são as designações de uso AMD e Intel para esta tecnologia. No entanto, essa tecnologia também é aplicada em processadores de outrosfabricantes. A freqüência do relógio da CPU e sua voltagem básica são reduzidasao mesmo tempo, resultando em economias de energia mais do que lineares. Issosignifica que quando a freqüência for reduzida pela metade (meio desempenho),muito menos que metade da energia é consumida. Essa tecnologia é independentede APM ou ACPI. Há duas abordagens principais para executar a escala defreqüência da CPU: pelo próprio kernel ou por um aplicativo de espaço de usuário.Portanto, há diferentes gerenciadores de kernel que podem ser definidos abaixo de/sys/devices/system/cpu/cpu*/cpufreq/.

604 Referência

Page 605: Reference Pt BR

gerenciador de espaço de usuárioSe o gerenciador de espaço de usuário estiver definido, o kernel passa o controleda escala de freqüência de CPU para um aplicativo de espaço de usuário,geralmente um daemon. Em distribuições do SUSE Linux, este daemon é opacote powersaved. Quando essa implementação é usada, a freqüência deCPU é ajustada em relação à carga do sistema atual. Por padrão, uma dasimplementações de kernel é usada. Porém, em alguns hardwares ou em relaçãoa drivers ou processadores específicos, a implementação do espaço de usuárioainda é a única solução que funciona.

gerenciador em demandaEsta é a implementação de kernel de uma política de freqüência de CPUdinâmica e deve funcionar na maioria dos sistemas. Assim que houver umacarga alta de sistema, a freqüência de CPU é imediatamente aumentada. Ela éreduzida em uma carga de sistema baixa.

gerenciador conservadorEsse gerenciador é similar à implementação em demanda, exceto que umapolítica mais conservadora é usada. A carga do sistema deve ser alta por umtempo específico antes que a freqüência do CPU seja aumentada.

gerenciador de economia de energiaA freqüência de cpu é definida estaticamente para o mais baixo possível.

gerenciador de desempenhoA freqüência de cpu é definida estaticamente para o mais alto possível.

Throttling da freqüência do relógioEsta tecnologia omite uma determinada porcentagem dos impulsos de sinal dorelógio para a CPU. Com throttling a 25%, todo quarto impulso é omitido. A 87,5%,apenas cada oitavo impulso chega ao processador. No entanto, as economias deenergia são pouco menos que lineares. Normalmente, o throttling só é usado se odimensionamento da freqüência não estiver disponível ou para maximizar aseconomias de energia. Essa tecnologia também deve ser controlada por um processoespecial. A interface do sistema é/proc/acpi/processor/*/throttling.

Colocando o processador para hibernarO sistema operacional coloca o processador para hibernar sempre que não houvernada para fazer. Neste caso, o sistema operacional envia um comando de haltpara a CPU. Há três estados: C1, C2 e C3. No estado mais econômico, C3, até a

Gerenciamento de energia 605

Page 606: Reference Pt BR

sincronização do cache do processador com a memória principal é interrompida.Portanto, esse estado só pode ser aplicado se nenhum dispositivo modificar oconteúdo da memória principal por meio de atividade do barramento mestre. Algunsdrivers impedem o uso de C3. O estado atual é exibido em /proc/acpi/processor/*/power.

O dimensionamento e o throttling da freqüência só são relevantes se o processadorestiver ocupado, porque o estado C mais econômico é aplicado sempre que o processadorestá inativo. Se a CPU estiver ocupada, o dimensionamento da freqüência é o métodorecomendado para economia de energia. Em geral o processador só trabalha com cargaparcial. Neste caso, pode ser executado com uma freqüência inferior. Normalmente, aescala de freqüência dinâmica controlada pelo gerenciador em demanda do kernel oupor um daemon, como powersaved, é o melhor método. Uma configuração estática embaixa freqüência é útil para operações à bateria ou se você desejar que o computadorpermaneça frio ou em silêncio.

Throttling deve ser usado como última alternativa, por exemplo, para ampliar o tempode operação da bateria, apesar de uma alta carga do sistema. Contudo, alguns sistemasnão são executados suavemente quando ocorrem throttlings em excesso. Ademais, othrottling da CPU não faz sentido se a CPU tem pouco a fazer.

No SUSE Linux estas tecnologias são controladas pelo daemon do powersave. Aconfiguração está explicada na Seção 33.5, “O Pacote powersave” (p 610).

33.3.3 Ferramentas da ACPIA faixa mais ou menos abrangente dos utilitários da ACPI inclui ferramentas que apenasexibem informações, como o nível de carga e a temperatura da bateria (acpi,klaptopdaemon, wmacpimon, etc.), ferramentas que facilitam o acesso às estruturas de/proc/acpi ou que auxiliam no monitoramento das mudanças (akpi, acpiw, gtkacpiw)e ferramentas para edição das tabelas da ACPI no BIOS (pacote pmtools).

33.3.4 Solução de problemasHá dois tipos de problemas. De um lado, o código ACPI do kernel pode conter errosque não foram detectados em tempo útil. Neste caso, uma solução estará disponívelpara download. No entanto, o mais comum é que os problemas sejam causados peloBIOS. Às vezes, desvios da especificação da ACPI são integrados de propósito no BIOS

606 Referência

Page 607: Reference Pt BR

para contornar erros na implementação da ACPI em outros sistemas operacionaisamplamente utilizados. Componentes de hardware que têm erros sérios na implementaçãoda ACPI são gravados em uma lista negra que impede que o kernel do Linux use aACPI para esses componentes.

A primeira ação a ser tomada quando problemas forem detectados, é atualizar o BIOS.Se o computador não inicializar de jeito nenhum, um dos seguintes parâmetros deinicialização poderá ser útil:

pci=noacpiNão use ACPI para configurar os dispositivos PCI.

acpi=oldbootRealize apenas uma configuração com recursos simples. Não use a ACPI paraoutros fins.

acpi=offDesabilitar a ACPI.

ATENÇÃO: Problemas de inicialização sem ACPI

Algumas máquinas mais novas (especialmente os sistemas SMP e AMD64)precisam de ACPI para configurar o hardware corretamente. Nestas máquinas,desabilitar a ACPI pode causar problemas.

Monitore as mensagens de inicialização do sistema com o comando dmesg | grep-2i acpi (ou todas as mensagens, porque o problema pode não ser causado pelaACPI) após a inicialização. Se ocorrer um erro ao analisar uma tabela da ACPI, a tabelamais importante, a DSDT, pode ser substituída por uma versão aperfeiçoada. Nestecaso, a DSDT defeituosa do BIOS é ignorada. O procedimento está descrito naSeção 33.5.4, “Solução de problemas” (p 616).

Na configuração do kernel, há um switch para ativar as mensagens de depuração daACPI. Se um kernel com depuração da ACPI for compilado e instalado, os técnicosque procuram o erro podem ser auxiliados com informações detalhadas.

Se você tiver problemas com BIOS ou hardware, é sempre recomendável entrar emcontato com os fabricantes. Especialmente se eles nem sempre derem assistência aoLinux, devem ser indagados em caso de problemas. Os fabricantes só levarão a questãoa sério se compreenderem que um número satisfatório de seus clientes usa Linux.

Gerenciamento de energia 607

Page 608: Reference Pt BR

Mais informaçõesDocumentação adicional e suporte para a ACPI:

• http://www.cpqlinux.com/acpi-howto.html (ACPI HOWTOdetalhado, contém patches DSDT)

• http://www.intel.com/technology/iapc/acpi/faq.htm (ACPIFAQ @Intel)

• http://acpi.sourceforge.net/ (O projeto ACPI4Linux em Sourceforge)

• http://www.poupinou.org/acpi/ (patches DSDT por Bruno Ducrot)

33.4 Descanso do disco rígidoNo Linux, o disco rígido pode colocado em hibernação total se não estiver em uso epode ser executado em modo mais econômico ou silencioso. Nos laptops modernos,não é necessário desativar o disco rígido manualmente, porque entram automaticamenteem um modo operacional econômico sempre que não estão em uso. Contudo, se quisermaximizar a economia de energia, teste um dos seguintes métodos. A maioria dasfunções pode ser controlada com powersaved e o módulo de gerenciamento de energiaYaST, que é explicado em mais detalhes na Seção 33.6, “O módulo Gerenciamento deenergia YaST” (p 618).

O aplicativo hdparm pode ser usado para modificar diversas configurações do discorígido. A opção -y alterna instantaneamente o disco rígido para o modo standby. -Ycoloca-o em hibernação. hdparm -S x faz o disco rígido ser encerrado após umdeterminado período de inatividade. Substitua x como segue: 0 desabilita estemecanismo, fazendo com que o disco rígido seja executado continuamente. Valores de1 a 240 são multiplicados por 5 segundos. Valores de 241 a 251 correspondem de 1a 11 vezes 30 minutos.

As opções de economia de energia interna do disco rígido podem ser controladas pelaopção -B. Selecione um valor de 0 a 255 para obter de economia máxima a throughputmáximo. O resultado depende do disco rígido usado e é difícil de avaliar. Para tornarum disco rígido mais silencioso, use a opção -M. Selecione um valor de 128 a 254para obter de silencioso a rápido.

608 Referência

Page 609: Reference Pt BR

Muitas vezes não é fácil colocar o disco rígido para hibernar. No Linux, vários processosgravam no disco rígido, ativando-o repetidamente. Portanto, é importante entendercomo o Linux trata os dados que necessitam ser gravados no disco rígido. Primeiro,todos os dados estão no buffer da memória RAM. O buffer é monitorado pelo daemondo kernel update (kupdated). Quando os dados atingem uma determinada idade limiteou quando o buffer está cheio até certo grau, o conteúdo do buffer é descarregado parao disco rígido. O tamanho do buffer é dinâmico e depende do tamanho da memória eda carga do sistema. Por padrão, kupdated é configurado em intervalos curtos paraatingir a integridade de dados máxima. Verifica o buffer a cada 5 segundos e notificao daemon do bdflush quando os dados têm mais de 30 segundos ou quando o bufferatinge um nível de preenchimento de 30%. Em seguida, o daemon do bdflush grava osdados no disco rígido. Também grava independentemente do kupdated se, por exemplo,o buffer estiver cheio.

ATENÇÃO: Deficiência da integridade de dados

Mudanças nas configurações do daemon de atualização do kernel colocam aintegridade dos dados em perigo.

Além destes processos, sistemas de arquivo de registro em diário, como ReiserFS eExt3, gravam seus metadados independentemente de bdflush, que também impede odisco rígido de ser encerrado. Para evitar isso, foi desenvolvida uma extensão especialde kernel para dispositivos móveis. Consulte/usr/src/linux/Documentation/laptop-mode.txt para obter detalhes.

Outro fator importante é o modo como se comportam os programas ativos. Por exemplo,os bons editores gravam regularmente backups ocultos do arquivo modificado nomomento para o disco rígido, fazendo com que ele saia do modo de hibernação. Recursoscomo este podem ser desabilitados às custas da integridade dos dados.

Com relação a isso, o mail daemon postfix faz uso da variável POSTFIX_LAPTOP.Se essa variável for configurada para sim, postfix acessa o disco rígido com muitomenos freqüência. No entanto, isto é irrelevante se o intervalo para kupdated foraumentado.

Gerenciamento de energia 609

Page 610: Reference Pt BR

33.5 O Pacote powersaveO pacote powersave trata de todas as funções de economia de energia previamentemencionadas. Devido à demanda crescente para consumo de energia inferior em geral,alguns dos recursos também são importantes em estações de trabalho e servidores, comosuspensão, standby ou a escala de freqüência de cpu.

Este pacote contém todos os recursos de gerenciamento de energia do seu computador.Suporta hardware que usa discos rígidos ACPI, APM, IDE e tecnologias PowerNow!ou SpeedStep. As funcionalidades dos pacotes apmd, acpid, ospmd e cpufreqd(agora cpuspeed) foram consolidadas no pacote powersave. Daemons destespacotes, exceto acpid que age como um multiplexador para eventos acpi, não devemser executados simultaneamente com o daemon de economia de energia.

Mesmo que o seu sistema não contenha todos os elementos de hardware listados acima,use o daemon powersave para controlar a função de economia de energia. Como ACPIe APM excluem-se mutuamente, você só pode usar um destes sistemas no seucomputador. O daemon detecta automaticamente quaisquer mudanças na configuraçãodo hardware.

33.5.1 Configurando o Pacote powersaveA configuração de powersave é distribuída para vários arquivos. Cada opção deconfiguração listada aqui contém documentação adicional sobre sua funcionalidade.

/etc/sysconfig/powersave/commonEste arquivo contém configurações gerais para o daemon de economia de energia.Por exemplo, a quantidade de mensagens de depurar em /var/log/messagespode ficar maior, aumentando-se o valor da variável DEBUG.

/etc/sysconfig/powersave/eventsO daemon de economia de energia precisa deste arquivo para processar eventos dosistema. Um evento pode receber atribuição de ações externas ou de ações realizadaspelo próprio daemon. Para as ações externas, o daemon tenta executar um arquivoexecutável (geralmente um script Bash) em/usr/lib/powersave/scripts/. Ações internas predefinidas:

• ignore

610 Referência

Page 611: Reference Pt BR

• throttle

• dethrottle

• suspend_to_disk

• suspend_to_ram

• standby

• do_suspend_to_disk

• do_suspend_to_ram

• do_standby

• notify

• screen_saver

• reread_cpu_capabilities

throttle torna o processador mais lento de acordo com o valor definido emMAX_THROTTLING. Este valor depende do esquema atual. dethrottleconfigura o processador para desempenho total. suspend_to_disk,suspend_to_ram e standby acionam o evento do sistema para um modoadormecido. Essas três ações são de maneira geral responsáveis pelo acionamentodo modo adormecido, mas elas devem ser sempre associadas a eventos específicosdo sistema.

O diretório /usr/lib/powersave/scripts contém scripts paraprocessamento de eventos:

switch_vtÚtil se a tela for deslocada após suspensão ou standby.

wm_logoutSalva as configurações e efetua logout de GNOME, KDE ou outrosgerenciadores de janela.

wm_shutdownSalva as configurações GNOME ou KDE e desliga o sistema.

Gerenciamento de energia 611

Page 612: Reference Pt BR

set_disk_settingsExecuta as configurações de disco realizadas em /etc/sysconfig/powersave/disk.

Se, por exemplo, a variávelEVENT_GLOBAL_SUSPEND2DISK="prepare_suspend_to_diskdo_suspend_to_disk" for configurada, os dois scripts ou ações sãoprocessados na ordem especificada tão logo o usuário dê ao powersaved o comandopara o modo adormecidosuspender para disco. O daemon executa o scriptexterno/usr/lib/powersave/scripts/prepare_suspend_to_disk.Após o script ser processado com êxito, o daemon executa a ação internado_suspend_to_disk e configura o computador para o modo adormecidodepois que o script tiver descarregado módulos críticos e interrompido serviços.

As ações para o evento de um botão adormecido podem ser modificadas como emEVENT_BUTTON_SLEEP="notify suspend_to_disk". Neste caso, ousuário é informado sobre a suspensão por uma janela pop-up em X ou umamensagem no console. Em seguida, o evento EVENT_GLOBAL_SUSPEND2DISKé gerado, resultando na execução das ações mencionadas e um modo suspenso desistema seguro. A ação interna notify pode ser personalizada usando a variávelNOTIFY_METHOD em /etc/sysconfig/powersave/common.

/etc/sysconfig/powersave/cpufreqContém variáveis para otimizar as configurações de freqüência de CPU dinâmicae determinar se a implementação de kernel ou o espaço de usuário deve ser usado.

/etc/sysconfig/powersave/batteryContém limites de bateria e outras configurações específicas da bateria.

/etc/sysconfig/powersave/sleepNeste arquivo, ative os modos adormecidos e determine que módulos críticos devemser descarregados e que serviços devem ser interrompidos antes de um eventosuspender ou aguardar. Quando o sistema é reiniciado, os módulos são recarregadose os serviços iniciam novamente. Você pode até retardar um modo adormecidoacionado, por exemplo, para gravar arquivos. As configurações padrões referem-se sobretudo aos módulos USB e PCMCIA. Normalmente, uma falha de suspenderou aguardar é causada por determinados módulos. Consulte a Seção 33.5.4, “Soluçãode problemas” (p 616) para obter mais informações sobre identificação do erro.

612 Referência

Page 613: Reference Pt BR

/etc/sysconfig/powersave/cpufreqAtiva o controle de resfriamento e térmico. Detalhes sobre este assunto estãodisponíveis no arquivo/usr/share/doc/packages/powersave/README.thermal.

/etc/sysconfig/powersave/diskEste arquivo de configuração controla as ações e as configurações realizadas deacordo com o disco rígido.

/etc/sysconfig/powersave/scheme_*Estes são os vários esquemas que adaptam o consumo de energia a determinadoscenários de distribuição. Vários esquemas são pré-configurados e podem ser usadosna forma como são apresentados. Esquemas personalizados podem ser salvos aqui.

33.5.2 Configurando APM e ACPI

Suspender e StandbyHá três modos adormecidos básicos de ACPI e dois de APM:

Suspender para Disco (ACPI S4, suspender APM)Grava todo o conteúdo da memória no disco rígido. O computador é completamentedesativado e não consome nenhuma energia. Esse modo adormecido é habilitadopor padrão e deve funcionar em todos os sistemas.

Suspender para RAM (ACPI S3, suspender APM)Grava os estados de todos os dispositivos na memória principal. Apenas a memóriaprincipal continua consumindo energia. Esse modo adormecido é desabilitado porpadrão pois ainda causa problemas em alguns sistemas. Porém, o suporte foi bastanteestendido.

Standby (ACPI S1, APM standby)Desativa alguns dispositivos (dependente do fabricante).

Verifique se as seguintes opções padrões estão configuradas no arquivo /etc/sysconfig/powersave/events para o correto processamento de suspender,standby e reiniciar (configurações padrões de acordo com a instalação do SUSE Linux):EVENT_GLOBAL_SUSPEND2DISK= "prepare_suspend_to_disk screen_saver do_suspend_to_disk"

Gerenciamento de energia 613

Page 614: Reference Pt BR

EVENT_GLOBAL_SUSPEND2RAM= "prepare_suspend_to_ram screen_saver do_suspend_to_ram"EVENT_GLOBAL_STANDBY= "prepare_standby screen_saver do_standby"EVENT_GLOBAL_RESUME_SUSPEND2DISK= "restore_after_suspend_to_disk"EVENT_GLOBAL_RESUME_SUSPEND2RAM= "restore_after_suspend_to_ram"EVENT_GLOBAL_RESUME_STANDBY= "restore_after_standby"

Estados de bateria padronizadosNo arquivo /etc/sysconfig/powersave/battery, defina três níveis de cargade bateria (em porcentagem) que acionem alertas do sistema ou ações específicas quandoforem atingidos.BATTERY_WARNING=12BATTERY_LOW=7BATTERY_CRITICAL=2

As ações ou scripts a executar quando os níveis de carga caem abaixo dos limitesespecificados estão definidos no arquivo de configuração /etc/sysconfig/powersave/events. As ações padrões para botões podem ser modificadas comodescrito na Seção 33.5.1, “Configurando o Pacote powersave” (p 610).EVENT_BATTERY_NORMAL="ignore"EVENT_BATTERY_WARNING="notify"EVENT_BATTERY_LOW="notify"EVENT_BATTERY_CRITICAL="wm_shutdown"

Adaptando o consumo de energia a várias condiçõesO comportamento do sistema pode ser adaptado ao tipo de fonte de alimentação. Oconsumo de energia do sistema deve ser reduzido quando o sistema estiver desconectadoda fonte de alimentação CA e operar com bateria. Da mesma maneira, o desempenhodeve aumentar automaticamente, tão logo o sistema seja conectado à fonte dealimentação CA. A freqüência da CPU, a função de economia de energia de IDE evários outros parâmetros podem ser modificados.

As ações a executar quando o computador for desconectado ou conectado à fonte dealimentação CA estão definidas em /etc/sysconfig/powersave/events.Selecione os esquemas a usar em /etc/sysconfig/powersave/common:

614 Referência

Page 615: Reference Pt BR

AC_SCHEME="performance"BATTERY_SCHEME="powersave"

Os esquemas são armazenados em arquivos em /etc/sysconfig/powersave.Os nomes de arquivos têm o formatoscheme_name-of-the-scheme. O exemplorefere-se a dois esquemas: scheme_performance e scheme_powersave.desempenho, powersave, apresentação e acústico são pré-configurados.Os esquemas existentes podem ser editados, criados, apagados ou associados comdiferentes estados de fonte de alimentação com o auxílio do módulo gerenciamento deenergia YaST descrito na Seção 33.6, “O módulo Gerenciamento de energia YaST”(p 618).

33.5.3 Recursos de ACPI adicionaisSe usar ACPI, você poderá controlar a resposta do seu sistema para os botões ACPI(energia, adormecido, tampa aberta e tampa fechada). Configure a execução das açõesem/etc/sysconfig/powersave/events. Consulte este arquivo de configuraçãopara obter uma explicação sobre as opções individuais.

EVENT_BUTTON_POWER="wm_shutdown"Quando o botão de alimentação é pressionado, o sistema responde desligando orespectivo gerenciador de janela (KDE, GNOME, fvwm, etc.).

EVENT_BUTTON_SLEEP="suspend_to_disk"Quando o botão adormecido é pressionado, o sistema é configurado para o modosuspend-to-disk.

EVENT_BUTTON_LID_OPEN="ignore"Nada acontece quando a tampa está aberta.

EVENT_BUTTON_LID_CLOSED="screen_saver"Quando a tampa está fechada, o protetor de tela é ativado.

EVENT_OTHER="ignore"Esse evento ocorre se um evento desconhecido for encontrado pelo daemon. Eventosdesconhecidos incluem teclas de atalho ACPI em algumas máquinas.

É possível mais throttling do desempenho da CPU se a carga da CPU não exceder umlimite especificado durante um período especificado. Especifique o limite de carga emPROCESSOR_IDLE_LIMIT e o tempo de espera em CPU_IDLE_TIMEOUT. Se a

Gerenciamento de energia 615

Page 616: Reference Pt BR

carga da CPU ficar abaixo do limite mais tempo do que o tempo de espera, o eventoconfigurado em EVENT_PROCESSOR_IDLE é ativado. Se a CPU estiver ocupadanovamente, EVENT_PROCESSOR_BUSY é executado.

33.5.4 Solução de problemasTodas as mensagens de erro e alertas são registradas no arquivo /var/log/messages. Se não conseguir encontrar as informações necessárias, aumente odetalhamento das mensagens de economia de energia usando DEBUG no arquivo /etc/sysconfig/powersave/common. Aumente o valor da variável para 7 ou mesmo15 e reinicie o daemon. As mensagens de erro mais detalhadas em /var/log/messages devem ajudá-lo a localizar o erro. As seguintes seções abordam os problemasmais comuns relacionados à economia de energia.

ACPI ativada com suporte de hardware mas funçõesnão funcionamSe você tiver problemas com a ACPI, use o comando dmesg|grep -i acpi parapesquisar a saída de dmesg para mensagens específicas à ACPI. Poderá ser necessárioatualizar o BIOS para solucionar o problema. Na home page do fabricante do seu laptop,procure uma versão atualizada do BIOS e instale-a. Peça ao fabricante para estar emconformidade com a última especificação da ACPI. Se os erros persistirem após aatualização do BIOS, faça o seguinte para substituir a tabela DSDT defeituosa no seuBIOS com um DSDT atualizado:

1 Faça o download do DSDT para o seu sistema em http://acpi.sourceforge.net/dsdt/tables. Verifique se o arquivo estádescompactado e compilado como mostra a extensão de arquivo.aml (linguagemcomputacional ACPI). Se for o caso, continue com a etapa 3.

2 Se a extensão de arquivo da tabela do download for .asl (linguagem fonteACPI), compile-a com iasl (pacote pmtools). Digite o comando iasl -safile.asl. A última versão de iasl (compilador ACPI da Intel) está disponívelem http://developer.intel.com/technology/iapc/acpi/downloads.htm.

3 Copie o arquivo DSDT.aml para qualquer localização (/etc/DSDT.aml érecomendada). Edite /etc/sysconfig/kernel e adapte o caminho para o

616 Referência

Page 617: Reference Pt BR

arquivo DSDT de forma compatível. Inicie mkinitrd (pacote mkinitrd).Sempre que instalar o kernel e usar mkinitrd para criar um initrd, o DSDTmodificado é integrado e carregado quando o sistema é inicializado.

A freqüência da CPU não funcionaConsulte as fontes de kernel (kernel-source) para ver se o seu processador ésuportado. Você poderá precisar de um módulo de kernel ou de opção especial paraativar o controle de freqüência da CPU. Essas informações estão disponíveis em /usr/src/linux/Documentation/cpu-freq/*. Se for necessário um móduloespecial ou de opção, configure-o no arquivo /etc/sysconfig/powersave/cpufreq por meio das variáveisCPUFREQD_MODULE eCPUFREQD_MODULE_OPTS.

Suspender e Standby não funcionamHá vários problemas relacionados ao kernel que impedem o uso de suspender e standbynos sistemas da ACPI:

• Atualmente, os sistemas com mais de 1 GB de RAM não oferecem suporte asuspender.

• Atualmente, os sistemas multiprocessadores e sistemas com um processador P4(com hyperthreading) não oferecem suporte a suspender.

O erro também pode ser devido à implementação errada de DSDT (BIOS). Se for ocaso, instale um novo DSDT.

Em sistemas ACPI e APM: Quando o sistema tenta descarregar módulos defeituosos,o sistema é verificado ou o evento suspenso não é acionado. O mesmo também podeacontecer se você não descarregar módulos ou interromper serviços que impeçam sumasuspensão bem-sucedida. Em ambos os casos, tente identificar o módulo defeituosoque impediu o modo adormecido. Os arquivos de registro gerados pelo daemon deeconomia de energia em /var/log/suspend2ram.log e /var/log/suspend2disk.log são muito úteis em relação a isto. Se o computador não entrarno modo adormecido, a causa está no último módulo descarregado. Manipule asseguintes configurações em /etc/sysconfig/powersave/sleep paradescarregar módulos problemáticos antes de suspender ou colocar em standby.UNLOAD_MODULES_BEFORE_SUSPEND2DISK=""UNLOAD_MODULES_BEFORE_SUSPEND2RAM=""UNLOAD_MODULES_BEFORE_STANDBY=""

Gerenciamento de energia 617

Page 618: Reference Pt BR

SUSPEND2DISK_RESTART_SERVICES=""SUSPEND2RAM_RESTART_SERVICES=""STANDBY_RESTART_SERVICES=""

Se suspender ou colocar em standby ambientes de rede em transformação ou em conexãocom sistemas de arquivo montados remotamente, como Samba e NIS, use automounterpara montá-los ou adicionar os serviços respectivos como smbfs ou nfs, na variávelacima mencionada. Se um aplicativo acessar o sistema de arquivo montado remotamenteantes de suspender ou colocar em standby, o serviço não pode ser interrompidocorretamente e o sistema de arquivo não pode ser desmontado de forma adequada. Apósreiniciar o sistema, o sistema de arquivo pode estar corrompido e deve ser remontado.

33.5.5 Mais informações• /usr/share/doc/packages/powersave— Documentação local do daemon

de economia de energia

• http://powersave.sourceforge.net — Documentação mais recentedo daemon de economia de energia

• http://www.opensuse.org/Projects_Powersave— Página de projetono openSUSE wiki

33.6 O módulo Gerenciamento deenergia YaST

O módulo de gerenciamento de energia YaST pode definir todas as configurações degerenciamento de energia já descritas. Quando iniciado no Centro de Controle do YaSTcom Sistema → Gerenciamento de Energia, a primeira caixa de diálogo do módulo seabre (consulte a Figura 33.1, “Seleção de Esquema” (p 619)).

618 Referência

Page 619: Reference Pt BR

Figura 33.1 Seleção de Esquema

Nesta caixa de diálogo, selecione os esquemas a usar na operação a bateria e na operaçãode CA. Para adicionar ou modificar os esquemas, clique em Editar Esquemas, que abreuma visão geral dos esquemas existentes como a da Figura 33.2, “Visão geral dosesquemas existentes” (p 619).

Figura 33.2 Visão geral dos esquemas existentes

Gerenciamento de energia 619

Page 620: Reference Pt BR

Na visão geral dos esquemas, selecione o esquema a modificar e clique em Editar. Paracriar um novo esquema, clique em Adicionar. A caixa de diálogo que abre é a mesmanos dois casos e é mostrada na Figura 33.3, “Configurando um esquema” (p 620).

Figura 33.3 Configurando um esquema

Primeiro, digite um nome adequado e uma descrição para o esquema novo ou editado.Determine se e como o desempenho da CPU deve ser controlado para este esquema.Decida se e em que medida o dimensionamento de freqüência e o throttling devem serusados. Na caixa de diálogo seguinte para o disco rígido, defina uma Política de Standbypara desempenho máximo ou para economia de energia. A Política de Acústica controlao nível de ruído do disco rígido (suportado por poucos discos rígidos). A Política deResfriamento determina o método de resfriamento a ser usado. Infelizmente, este tipode controle térmico raras vezes é suportado pelo BIOS. Leia /usr/share/doc/packages/powersave/powersave_manual.html#Thermal para aprendercomo usar o ventilador e métodos de resfriamento passivos.

As configurações globais de gerenciamento de energia também podem ser feitas dacaixa de diálogo inicial usando Alerta de Bateria, Configurações ACPI ou HabilitarSuspend. Clique em Alerta de Bateria para acessar a caixa de diálogo do nível de cargade bateria, mostrada na Figura 33.4, “Nível de carga de bateria” (p 621).

620 Referência

Page 621: Reference Pt BR

Figura 33.4 Nível de carga de bateria

O BIOS do seu sistema notifica o sistema operacional sempre que o nível de carga caiabaixo de certos limites configuráveis. Nesta caixa de diálogo, defina três limites: Alertade Capacidade, Capacidade Baixa e Capacidade Crítica. Ações específicas sãoacionadas quando o nível de carga cai abaixo desses limites. Normalmente, os doisprimeiros estados apenas acionam uma notificação para o usuário. O terceiro nívelcrítico aciona um shutdown, porque a energia restante não é suficiente para operaçãocontinuada do sistema. Selecione os níveis de carga adequados e as ações desejadas eclique em OK para retornar à caixa de diálogo de inicialização.

Gerenciamento de energia 621

Page 622: Reference Pt BR

Figura 33.5 Configurações ACPI

Acesse a caixa de diálogo para configurar os botões de ACPI usando ConfiguraçõesACPI. Isso é mostrado na Figura 33.5, “Configurações ACPI” (p 622). As configuraçõesdos botões de ACPI determinam como o sistema deve responder a certos switches.Configure a resposta do sistema ao pressionar o botão de energia e o botão sleep e aofechar a tampa do laptop. Clique emOK para concluir a configuração e retornar à caixade diálogo inicial.

Clique em Habilitar Suspensão para inserir uma caixa de diálogo na qual determinarse e como os usuários deste sistema podem usar a funcionalidade suspender ou aguardar.Clique em OK para retornar à caixa de diálogo principal. Clique em OK novamentepara sair do módulo e confirmar as suas configurações de gerenciamento de energia.

622 Referência

Page 623: Reference Pt BR

34Comunicação sem fioHá várias possibilidades de usar o sistema Linux para estabelecer comunicação comoutros computadores, telefones celulares ou dispositivos periféricos. A WLAN (wirelessLAN - LAN sem fio) pode ser usada para colocar laptops em rede. O bluetooth podeser usado para conectar componentes individuais do sistema (mouse, teclado),dispositivos periféricos, telefones celulares, PDAs e computadores individuais uns comos outros. O IrDA é mais usado para comunicação com PDAs ou telefones celulares.Este capítulo introduz todas as três tecnologias e sua configuração.

34.1 LAN sem fioAs LANs sem fio tornaram-se um aspecto indispensável da computação móvel.Atualmente, a maioria dos laptops tem placas WLAN embutidas. O padrão 802.11 paraa comunicação sem fio de placas WLAN foi preparado pela organização IEEE.Originalmente, este padrão forneceu uma taxa de transmissão máxima de 2 MBit/s.Entretanto, vários suplementos foram adicionados para aumentar a taxa de dados. Essessuplementos definem detalhes como a modulação, saída de transmissão e taxas detransmissão:

Comunicação sem fio 623

Page 624: Reference Pt BR

Tabela 34.1 Visão geral de vários padrões WLAN

NotaTaxa detransmissãomáxima (MBit/s)

Banda(GHz)

Nome

Desatualizado; praticamentenenhum dispositivo finaldisponível

22.4802.11

Comum112.4802.11b

Menos comum545802,11a

Compatibilidade retroativacom 11b

542.4802.11g

Além disso, existem padrões patenteados, como a variação 802.11b da Texas Instrumentscom uma taxa de transmissão máxima de 22 MBit/s (às vezes conhecida como 802.11b+).Porém, a popularidade de placas que utilizam este padrão é limitada.

34.1.1 HardwarePlacas 802.11 não são suportadas pelo SUSE Linux. A maioria das placas que utilizam802.11a, 802.11b e 802.11g é suportada. Placas novas normalmente são compatíveiscom o padrão 802.11g, mas as placas que utilizam o 802.11b ainda estão disponíveis.Normalmente, placas com os seguintes chips são suportadas:

• Aironet 4500, 4800

• Atheros 5210, 5211, 5212

• Atmel at76c502, at76c503, at76c504, at76c506

• Intel PRO/Wireless 2100, 2200BG, 2915ABG

• Intersil Prism2/2.5/3

• Intersil PrismGT

624 Referência

Page 625: Reference Pt BR

• Lucent/Agere Hermes

• Ralink RT2400, RT2500

• Texas Instruments ACX100, ACX111

• ZyDAS zd1201

Várias placas antigas que raramente são usadas e que não estão mais disponíveis tambémsão suportadas. Uma ampla lista de placas WLAN e os chips que elas utilizam estádisponível no site da Web da AbsoluteValue Systems no endereço http://www.linux-wlan.org/docs/wlan_adapters.html.gz. http://wiki.uni-konstanz.de/wiki/bin/view/Wireless/ListeChipsatz ofereceuma visão geral de vários chips WLAN.

Algumas placas precisam de uma imagem de firmware que deve ser carregada na placaquando o driver é inicializado. Isto acontece com o Intersil PrismGT, Atmel e TIACX100 e ACX111. O firmware pode ser facilmente instalado com a AtualizaçãoOnline YaST. O firmware para placas Intel PRO/Wireless é fornecido com o SUSELinux e é instalado automaticamente pelo YaST assim que uma placa desse tipo édetectada. Mais informações sobre esse assunto estão disponíveis no sistema instaladoem /usr/share/doc/packages/wireless-tools/README.firmware.

Placas sem o suporte nativo do Linux podem ser usadas com a execução do aplicativondiswrapper. O ndiswrapper utiliza os drivers do Windows XP que são fornecidos juntocom a maioria das placas WLAN.

Para configurar o ndiswrapper, siga estas etapas:

1 Instale o pacote ndiswrapper usando YaST.

2 Faça o download do driver apropriado do Windows XP para o seu adaptador derede sem fio. Use os drivers mencionados na lista de placas suportadas emhttp://ndiswrapper.sourceforge.net/mediawiki/index.php/List. Os drivers não testados do seu CD de instalação da placa de rede talvezfuncionem, mas podem causar problemas inesperados.

3 Descompacte o arquivo. Cada driver consiste em um arquivo com a extensão.inf e um ou mais DLLs. Como root, instale o driver com o comandondiswrapper -i driver_name.inf. Ele copia todos os arquivos

Comunicação sem fio 625

Page 626: Reference Pt BR

necessários para o diretório /etc/ndiswrapper/ e cria os arquivos deconfiguração para a sua placa.

4 Verifique se o driver foi instalado de forma adequada com o comandondiswrapper -l.

5 Carregue o módulo com o comando modprobe ndiswrapper. O registrode sistema /var/log/messages indica sucesso ou falha.

6 Se tudo funcionar, você poderá digitar ndiswrapper -m para carregar omódulo quando o sistema iniciar.

7 Configure o adaptador de rede sem fio no YaST com Dispositivos de Rede →Placa de Rede. Escolha Sem Fio para o Tipo de Dispositivo, O para Nome deConfiguração e ndiswrapper para Nome do Módulo. Deixe outros camposcom seus padrões.

É possível encontrar uma descrição do ndiswrapper em /usr/share/doc/packages/ndiswrapper/README.SUSE quando o pacote ndiswrapper éinstalado. Para obter informações mais detalhadas sobre ndiswrapper, consulte o siteda Web do projeto em http://ndiswrapper.sourceforge.net/support.html.

34.1.2 FunçãoNas redes sem fio, várias técnicas e configurações são usadas para assegurar conexõesrápidas, seguras e com alta qualidade. Tipos operacionais diferentes adaptam-se aconfigurações diferentes. Pode ser difícil escolher o método de autenticação correto.Os métodos de criptografia disponíveis possuem diferentes vantagens e armadilhas.

Modo de funcionamentoBasicamente, as redes sem fio podem ser classificadas como redes gerenciadas e redesad-hoc. As redes gerenciadas possuem um elemento de gerenciamento: o ponto deacesso. Neste modo (também conhecido como modo de infra-estrutura), todas asconexões das estações WLAN na rede passam pelo ponto de acesso, que também podeservir como uma conexão para uma ethernet. Redes ad-hoc não possuem um ponto deacesso. As estações se comunicam diretamente umas com as outras. A faixa detransmissão e o número de estações participantes são muito limitados nas redes ad-hoc.

626 Referência

Page 627: Reference Pt BR

Portanto, um ponto de acesso normalmente é mais eficiente. É até mesmo possível usaruma placa WLAN como um ponto de acesso. A maioria das placas suporta estafuncionalidade.

Como uma rede sem fio é muito mais fácil de interceptar e comprometer do que umarede com fio, os vários padrões incluem métodos de autenticação e criptografia. Naversão original do padrão IEEE 802.11, esses métodos são descritos sob o termo WEP.Porém, como foi provado que o WEP não é seguro (consulte “Segurança” (p 634)), aindústria WLAN (reunida sob o nome Wi-Fi Alliance) definiu uma nova extensão,chamada WPA, que supostamente elimina os pontos fracos do WEP. O padrão IEEE802.11i posterior (também conhecido como WPA2, porque o WPA é baseado em umaversão de rascunho do 802.11i) inclui o WPA e alguns outros métodos de autenticaçãoe criptografia.

AutenticaçãoPara garantir que apenas as estações autorizadas possam se conectar, vários mecanismosde autenticação são usados em redes gerenciadas:

AbertoUm sistema aberto é um sistema que não precisa de autenticação. Qualquer estaçãopode se juntar à rede. Contudo, a criptografia WEP (consulte “Criptografia” (p 628))pode ser usada.

Chave compartilhada (de acordo com o padrão IEEE 802.11)Neste procedimento, a chave WEP é usada para autenticação. Porém, esteprocedimento não é recomendado, porque torna a chave WEP mais suscetível aataques. Tudo o que um invasor precisa fazer é escutar durante tempo suficiente acomunicação entre a estação e o ponto de acesso. Durante o processo deautenticação, ambos os lados trocam as mesmas informações, uma vez de formacriptografada e outra de forma não criptografada. Isso possibilita a reconstruçãoda chave com as ferramentas adequadas. Como esse método utiliza a chave WEPpara a autenticação e para a criptografia, ele não melhora a segurança da rede. Umaestação com a chave WEP correta pode ser autenticada, criptografada edescriptografada. Uma estação que não tem a chave não pode descriptografar ospacotes recebidos. Da mesma maneira, ela não pode se comunicar, mesmo quetenha que se autenticar.

Comunicação sem fio 627

Page 628: Reference Pt BR

WPA-PSK (de acordo com o padrão IEEE 802.1x)O WPA-PSK (PSK corresponde a preshared key - chave pré-compartilhada)funciona de maneira semelhante ao procedimento Chave compartilhada. Todas asestações participantes, assim como o ponto de acesso, precisam da mesma chave.A chave tem 256 bits de tamanho e normalmente é digitada como uma frase secreta.Este sistema não precisa de um gerenciamento de chave complexo como o WPA-EAP e é mais adequado para uso privado. Portanto, o WPA-PSK é às vezesconhecido como WPA “Home”.

WPA-EAP (de acordo com o padrão IEEE 802.1x)Na verdade, o WPA-EAP não é um sistema de autenticação, e sim um protocolopara transporte de informações de autenticação. O WPA-EAP é usado para protegerredes sem fio em empresas. Em redes privadas, ele é raramente usado. Por estemotivo, o WPA-EAP é às vezes conhecido como WPA “Enterprise”.

O WPA-EAP precisa de um servidor Radius para autenticar os usuários. O EAPoferece três métodos diferentes de conexão e autenticação no servidor: TLS(Transport Layer Security), TTLS (Tunneled Transport Layer Security) e PEAP(Protected Extensible Authentication Protocol). Em resumo, essas opções funcionamda seguinte maneira:

EAP-TLSA autenticação TLS utiliza a troca mútua de certificados para servidor e cliente.Primeiro, o servidor apresenta o seu certificado para o cliente, onde ele éavaliado. Se o certificado for considerado válido, o cliente, por sua vez,apresenta o seu certificado para o servidor. Embora o TLS seja seguro, eleexige uma infra-estrutura de gerenciamento de certificação que funcione emsua rede. Esta infra-estrutura é raramente encontrada em redes particulares.

EAP-TTLS e PEAPOs protocolos TTLS e PEAP são protocolos de dois estágios. No primeiroestágio, a segurança é estabelecida e, no segundo, os dados de autenticação docliente são trocados. Eles exigem muito menos overhead de gerenciamento decertificação do que o TLS, se houver.

CriptografiaExistem vários métodos de criptografia para assegurar que pessoas não autorizadas nãopossam ler os pacotes de dados que são trocados em uma rede sem fio nem obter acessoà rede:

628 Referência

Page 629: Reference Pt BR

WEP (definido no padrão IEEE 802.11)Este padrão utiliza o algoritmo de criptografia RC4, originalmente com um tamanhode chave de 40 bits, posteriormente também com 104 bits. Muitas vezes, o tamanhoé declarado como 64 bits ou 128 bits, dependendo da inclusão ou não dos 24 bitsdo vetor de inicialização. Porém, este padrão possui algumas fraquezas. Os ataquescontra as chaves geradas por este sistema podem ser bem-sucedidos. Contudo, émelhor usar o WEP do que não criptografar a rede de nenhuma maneira.

TKIP (definido no padrão WPA/IEEE 802.11i)Este protocolo de gerenciamento de chave definido no padrão WPA utiliza o mesmoalgoritmo de criptografia do WEP, mas elimina sua fraqueza. Como uma novachave é gerada para cada pacote de dados, os ataques contra essas chaves são emvão. O TKIP é usado junto com o WPA-PSK.

CCMP (definido no padrão IEEE 802.11i)O CCMP descreve o gerenciamento de chave. Normalmente, ele é usado na conexãocom o WPA-EAP, mas também pode ser usado com o WPA-PSK. A criptografiaacontece de acordo com o AES e é mais forte do que a criptografia RC4 do padrãoWEP.

34.1.3 Configuração com o YaSTPara configurar uma placa de rede sem fio, inicio o módulo Placa de Rede do YaST.Aqui você também pode escolher se deseja usar o YaST ou o NetworkManager paragerenciar sua placa de rede. Se você selecionar o YaST, selecione o tipo de dispositivoSem Fio emConfiguração de Endereço de Rede e clique emPróximo. EmConfiguraçãode Placa de Rede Sem Fio, exibido na Figura 34.1, “YaST: Configurando a placa derede sem fio” (p 630), defina as configurações básicas para a operação da WLAN:

Comunicação sem fio 629

Page 630: Reference Pt BR

Figura 34.1 YaST: Configurando a placa de rede sem fio

Modo de funcionamentoUma estação pode ser integrada em uma WLAN de três modos diferentes. O modomais adequado depende da rede na qual deve ocorrer a comunicação: Ad-hoc (redenão-hierárquica sem ponto de acesso), Gerenciada (a rede é gerenciada por umponto de acesso) ou Master (sua placa de rede deve ser usada como o ponto deacesso). Para usar qualquer um dos modos WPA-PSK ou WPA-EAP, o modo defuncionamento deverá ser definido como gerenciado.

Nome da Rede (ESSID)Todas as estações em uma rede sem fio precisam do mesmo ESSID para secomunicar umas com as outras. Se nenhuma opção for especificada, a placaselecionará automaticamente um ponto de acesso, que pode não ser o desejado.

Modo de AutenticaçãoSelecione um método de autenticação adequado para a sua rede: Abra, ChaveCompartilhada, WPA-PSK ou WPA-EAP. Se você selecionar a autenticação WPA,um nome de rede deverá ser definido.

Configurações de Usuário AvançadoEste botão abre uma caixa de diálogo com as configurações detalhadas da suaconexão WLAN. Uma descrição detalhada desta caixa de diálogo será fornecidaposteriormente.

630 Referência

Page 631: Reference Pt BR

Após serem completadas as configurações básicas, a sua estação estará pronta para adistribuição na WLAN.

IMPORTANTE: Segurança em redes sem fio

Certifique-se de usar um dos métodos de autenticação e criptografia suportadospara proteger o tráfego da rede. As conexões de WLAN não criptografadaspermitem que terceiros interceptem todos os dados da rede. Mesmo umacriptografia mais fraca (WEP) é melhor do que nenhuma. Consulte “Criptografia”(p 628) e a “Segurança” (p 634) para obter mais informações.

Dependendo do método de autenticação selecionado, o YaST solicita que você façaum ajuste fino das configurações em outra caixa de diálogo. Para a opção Aberto, nãohá nada para definir, porque essa configuração implementa operações não criptografadassem autenticação.

Chaves WEPDefina um tipo de entrada de chave. Selecione dentre Frase Secreta, ASCII ouHexadecimal. É possível manter até quatro chaves diferentes para criptografar osdados transmitidos. Clique em Várias Chaves para informar a caixa de diálogo deconfiguração de chave. Defina o tamanho da chave: 128 bits ou 64 bits. Aconfiguração padrão é 128 bits. Na área de listas na parte inferior da caixa dediálogo, até quatro chaves diferentes podem ser especificadas para serem usadaspela sua estação para a criptografia. Pressione Definir como Padrão para definiruma delas como a chave padrão. A não ser que você mude a opção, o YaST utilizaa primeira chave informada como a chave padrão. Se a chave padrão for apagada,uma das outras chaves deverá ser marcada manualmente como a chave padrão.Clique em Editar para modificar as entradas de lista existentes ou criar novaschaves. Neste caso, uma janela pop-up solicita que você selecione um tipo deentrada (Frase Secreta, ASCII ouHexadecimal). Se você selecionar Frase Secreta,digite uma palavra ou string de caractere da qual uma chave é gerada de acordocom o tamanho especificado anteriormente. O ASCII exige uma entrada de 5caracteres para uma chave de 64 bits e 13 caracteres para uma chave de 128 bits.Para a opção Hexadecimal, digite 10 caracteres para uma chave de 64 bits ou 26caracteres para uma chave de 128 bits em notação hexadecimal.

WPA-PSKPara digitar uma chave para WPA-PSK, selecione o método de entrada FraseSecreta ou Hexadecimal. No modo Frase Secreta, a entrada deve ser de 8 a 63caracteres. No modo Hexadecimal, digite 64 caracteres.

Comunicação sem fio 631

Page 632: Reference Pt BR

WPA-EAPDigite as credenciais fornecidas pelo seu administrador de rede. Para TLS, forneçao Certificado de Cliente e o Certificado de Servidor. TTLS e PEAP exigemIdentidade e Senha. O Certificado de Servidor é opcional. O YaST procura algumcertificado em /etc/cert, então grave os certificados dados a você neste locale restrinja o acesso a esses arquivos a 0600 (leitura e gravação do proprietário).

Clique emConfigurações Avançadas para entrar na caixa de diálogo de autenticaçãoavançada para sua configuração de WPA-EAP. Selecione o método de autenticaçãopara o segundo estágio da comunicação de EAP-TTLS ou EAP-PEAP. Se vocêselecionou TTLS na caixa de diálogo anterior, escolha auto, MD5, GTC, CHAP,PAP, MSCHAPv1 ou MSCHAPv2. Se você selecionou PEAP, escolha auto, MD5,GTC ou MSCHAPv2. A versão PEAP pode ser usada para forçar o uso de umadeterminada implementação de PEAP se a configuração determinadaautomaticamente não funcionar para você. Saia dessa caixa de diálogo clicandoem OK.

Clique em Configurações de Usuário Avançado para sair da caixa de diálogo para aconfiguração básica da conexão WLAN e informe a configuração de usuário avançado.As seguintes opções estão disponíveis nesta caixa de diálogo:

CanalA especificação de um canal no qual a estação WLAN deve funcionar é necessáriasomente nos modos Ad-hoc e Master. No modo Gerenciado, a placa pesquisaautomaticamente os canais disponíveis para pontos de acesso. No modo Ad-hoc,selecione um dos 12 canais oferecidos para a comunicação da sua estação com asoutras estações. No modoMaster, determine em qual canal a sua placa deve oferecerfuncionalidade de ponto de acesso. A configuração padrão para esta opção é Auto.

Taxa de BitsDependendo do desempenho da sua rede, você pode definir uma determinada taxade bits para a transmissão de um ponto para outro. Na configuração padrãoAutomático, o sistema tenta usar a taxa de transmissão de dados mais alta possível.Algumas placas WLAN não suportam a configuração da taxa de bits.

Ponto de AcessoEm um ambiente com vários pontos de acesso, um deles pode ser pré-selecionadoespecificando-se o endereço MAC.

632 Referência

Page 633: Reference Pt BR

Utilizar o Gerenciamento de EnergiaQuando você estiver em trânsito, use as tecnologias de gerenciamento de energiapara maximizar o tempo de funcionamento da bateria. Mais informações sobre ogerenciamento de energia estão disponíveis no Capítulo 33, Gerenciamento deenergia (p 597).

34.1.4 UtilitáriosO hostap (pacote hostap) é usado para executar uma placa WLAN como um pontode acesso. Mais informações sobre este pacote estão disponíveis na home page doprojeto (http://hostap.epitest.fi/).

O kismet (pacote kismet) é uma ferramenta de diagnóstico de rede com a qual épossível escutar o tráfego de pacote WLAN. Desta forma, você também pode detectarquaisquer tentativas de invasão na rede. Mais informações estão disponíveis emhttp://www.kismetwireless.net/ e na página do manual.

34.1.5 Dicas sobre a configuração de umaWLAN

Essas dicas podem ajudar a ajustar a velocidade e a estabilidade, assim como os aspectosde segurança da sua WLAN.

Estabilidade e velocidadeO desempenho e a confiabilidade de uma rede sem fio dependem principalmente dofato de as estações participantes receberem ou não um sinal claro das outras estações.Obstruções como paredes podem enfraquecer grandemente o sinal. Quanto menor aforça do sinal, mais lenta fica a transmissão. Durante a operação, verifique a força dosinal com o utilitário iwconfig na linha de comando (campo Qualidade do Link)ou com o KInternet no KDE. Se tiver problemas com a qualidade do sinal, tenteconfigurar os dispositivos em outro lugar ou ajuste a posição das antenas do seu pontode acesso. Antenas auxiliares que melhoram substancialmente a recepção estãodisponíveis para várias placas PCMCIA WLAN. A taxa especificada pelo fabricante,como 54 MBit/s, é um valor nominal que representa o máximo teórico. Na prática, othroughput máximo de dados não passa da metade desse valor.

Comunicação sem fio 633

Page 634: Reference Pt BR

SegurançaSe você desejar configurar uma rede sem fio, lembre-se de que qualquer pessoa dentroda faixa de transmissão poderá acessá-la facilmente se não forem implementadas medidasde segurança. Portanto, certifique-se de ativar o método de criptografia. Todas as placasWLAN e pontos de acesso suportam a criptografia WEP. Embora ainda não sejacompletamente segura, ela representa um obstáculo para um invasor em potencial. Acriptografia WEP é normalmente adequada para uso particular. A WPA-PSK é aindamelhor, mas não é implementada em pontos de acesso ou roteadores antigos comfuncionalidade WLAN. Em alguns dispositivos, o WPA pode ser implementado pormeio de uma atualização de firmware. Além disso, o Linux não suporta o WPA emtodos os componentes de hardware. Quando esta documentação estava sendo preparada,o WPA funcionava somente com placas que utilizavam chips Atheros, IntelPRO/Wireless ou Prism2/2.5/3. No chip Prism2/2.5/3, o WPA funcionava somente seo driver hostap estivesse em uso (consulte “Problemas com placas Prism2” (p 635)). Seo WPA não estiver disponível, é melhor utilizar a criptografia WEP do que nenhumtipo de criptografia. Em empresas com requisitos de segurança avançados, as redes semfio devem ser operadas somente com WPA.

34.1.6 Solução de problemasSe a sua placa WLAN falhar na resposta, verifique se realizou o download do firmwarenecessário. Consulte a Seção 34.1.1, “Hardware” (p 624). Os parágrafos a seguirdescrevem alguns problemas conhecidos.

Vários dispositivos de redeLaptops modernos geralmente tem uma placa de rede e uma placa WLAN. Se vocêconfigurou ambos os dispositivos com DHCP (atribuição de endereço automática),poderá encontrar problemas com a resolução de nome e o gateway padrão. Isto ficaevidente quando você pode efetuar ping no roteador, mas não pode navegar na Internet.O Banco de Dados de Suporte no endereço http://portal.suse.com apresentaum artigo sobre o assunto. Para encontrar o artigo, digite “DHCP” na caixa de diálogode pesquisa.

634 Referência

Page 635: Reference Pt BR

Problemas com placas Prism2Vários drivers estão disponíveis para dispositivos com chips Prism2. As várias placasfuncionam mais ou menos adequadamente com os vários drivers. Com essas placas, acriptografia WPA somente pode ser usada com o driver hostap. Se tal placa não funcionaradequadamente ou não funcionar ou se você desejar usar a criptografia WPA, leia/usr/share/doc/packages/wireless-tools/README.prism2.

WPAO suporte a criptografia WPA é muito novo no SUSE Linux e ainda está emdesenvolvimento. Além disso, o YaST não suporta a configuração de todos os métodosde autenticação WPA. Nem todas as placas e drivers LAN suportam a criptografiaWPA. Algumas placas precisam de uma atualização do firmware para habilitar acriptografia WPA. Se você deseja usar a criptografia WPA, leia /usr/share/doc/packages/wireless-tools/README.wpa.

34.1.7 Mais informaçõesAs páginas da Internet de Jean Tourrilhes, que desenvolveu as Ferramentas Sem Fiopara o Linux, apresentam uma grande variedade de informações sobre dispositivos semfio. Consulte http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Wireless.html.

34.2 BluetoothBluetooth é uma tecnologia sem fio para conexão de vários dispositivos, como telefonescelulares, PDAs, dispositivos periféricos ou componentes de sistema como teclado oumouse. O nome deriva do rei dinamarquês Harold Bluetooth, que uniu várias facçõesguerreiras na Escandinávia. O logotipo da Bluetooth baseia-se nas runas de “H” (lembrauma estrela) e “B”.

Vários aspectos importantes distinguem o Bluetooth do IrDA. Primeiro, os dispositivosindividuais não precisam “ver” um ao outro diretamente e, segundo, vários dispositivospodem ser conectados em uma rede. Contudo, a taxa de dados máxima é de 720 Kbps(na versão atual 1.2). Teoricamente, o Bluetooth pode se comunicar até através de

Comunicação sem fio 635

Page 636: Reference Pt BR

paredes. Na prática, porém, isto depende das propriedades da parede e da classe dodispositivo. Há três classes de dispositivos com faixas de transmissão entre dez e 100metros.

34.2.1 Noções básicasAs seções a seguir resumem os princípios básicos da maneira como o Bluetooth trabalha.Obtenha mais informações sobre os requisitos que o software deve atender, como oBluetooth interage com o seu sistema e como ele traça o seu perfil de trabalho.

SoftwarePara poder usar o Bluetooth, você precisa de um adaptador de Bluetooth (adaptadorinterno ou dispositivo externo), drivers e uma pilha de protocolos Bluetooth. O kerneldo Linux já contém os drivers básicos para usar o Bluetooth. O sistema Bluez é usadocomo pilha de protocolos. Para verificar se os aplicativos funcionam com o Bluetooth,os pacotes básicos bluez-libs e bluez-utils devem estar instalados. Essespacotes oferecem diversos serviços e utilitários necessários. Além disso, algunsadaptadores, como Broadcom ou AVM BlueFritz! exigem que o pacotebluez-firmware seja instalado. O pacote bluez-cups habilita a impressão nasconexões Bluetooth. Se você precisa depurar problemas com conexões de Bluetooth,instale o pacote bluez-hcidump.

Interação geralUm sistema Bluetooth consiste em quatro camadas interbloqueadas que fornecem afuncionalidade desejada:

HardwareO adaptador e um driver adequado para suporte pelo kernel do Linux.

Arquivos de configuraçãoUsados para controlar o sistema Bluetooth.

DaemonsServiços que são controlados pelos arquivos de configuração e fornecem afuncionalidade.

636 Referência

Page 637: Reference Pt BR

AplicativosOs aplicativos possibilitam que a funcionalidade fornecida pelos daemons sejausada e controlada pelo usuário.

Ao inserir um adaptador Bluetooth, seu driver é carregado pelo sistema hotplug. Depoisque o driver for carregado, o sistema verifica os arquivos de configuração para ver seo Bluetooth deve ser iniciado. Se for o caso, determina os serviços a serem iniciados.Com base nestas informações, os daemons respectivos são iniciados. Os adaptadoresBluetooth são examinados durante a instalação. Se for encontrado um ou mais, oBluetooth é habilitado. Caso contrário, o sistema Bluetooth é desativado. Qualquerdispositivo Bluetooth acrescentado depois deve ser habilitado manualmente.

PerfisNo Bluetooth, os serviços são definidos por meio de perfis, como o perfil de transferênciade arquivo, o perfil de impressão básica e o perfil de rede de área pessoal. Para habilitarum dispositivo para usar os serviços de outro dispositivo, ambos devem compreendero mesmo perfil. Freqüentemente, essa parte das informações não é incluída no pacotee no manual do dispositivo. Infelizmente, alguns fabricantes não atendem rigorosamenteas definições dos perfis individuais. Apesar disto, a comunicação entre os dispositivosem geral funciona uniformemente.

No texto a seguir, os dispositivos locais são os fisicamente conectados ao computador.Os demais dispositivos que só podem ser acessados por conexões sem fio são chamadosde dispositivos remotos.

34.2.2 ConfiguraçãoEsta seção apresenta a configuração do Bluetooth. Saiba quais os arquivos deconfiguração envolvidos, que ferramentas são necessárias e como configurar o Bluetoothcom YaST ou manualmente.

Configurando o Bluetooth com YaSTUse o módulo YaST do Bluetooth, mostrado na Figura 34.2, “Configuração YaST doBluetooth” (p 638), para configurar o suporte do Bluetooth no sistema. Assim que ohotplug detectar um adaptador de Bluetooth no sistema (por exemplo, durante a

Comunicação sem fio 637

Page 638: Reference Pt BR

inicialização ou quando você conectar um adaptador), o Bluetooth iniciaautomaticamente com as configurações desse módulo.

Figura 34.2 Configuração YaST do Bluetooth

Na primeira etapa da configuração, determine se os serviços Bluetooth devem serinicializados no sistema. Se tiver habilitado os serviços Bluetooth, dois itens podemser configurados. Primeiro, o Nome do Dispositivo. É o nome que outros dispositivosexibem quando o seu computador tiver sido descoberto. Há dois marcadores de espaçodisponíveis — %h significa o nome de host do sistema (útil, por exemplo, se foi atribuídodinamicamente por DHCP) e %d insere o número da interface (só é útil se você tivermais de um adaptador Bluetooth no computador). Por exemplo, se você gravar Laptop%h no campo e DHCP atribuir o nome unidade123 ao seu computador, outrosdispositivos remotos reconheceriam o seu computador comoLaptop unidade123.

O parâmetro Gerenciador de Segurança refere-se ao comportamento do sistema localquando um dispositivo remoto tenta se conectar. A diferença está no tratamento donúmero PIN. Permita que qualquer dispositivo se conecte sem um PIN ou, se o PIN fornecessário, determine como o correto é escolhido. Você pode gravar um PIN(armazenado em um arquivo de configuração) no campo de entrada adequado. Se umdispositivo tentar se conectar, primeiro usa este PIN. Se falhar, ele recua para utilizaçãosem PIN. Para máxima segurança, é melhor escolher Solicitar PIN Sempre. Esta opçãopermite que você use vários PINs para vários dispositivos (remotos).

638 Referência

Page 639: Reference Pt BR

Clique em Configuração Daemon Avançada para ativar a caixa de diálogo paraselecionar e configurar os serviços disponíveis (chamados perfis no Bluetooth). Todosos serviços disponíveis são exibidos em uma lista e podem ser habilitados oudesabilitados clicando em Ativar ou Desativar. Clique em Editar para abrir uma caixade diálogo na qual especificar argumentos adicionais para o serviço selecionado(daemon). Não mude nada, a menos que conheça o serviço. Após concluir a configuraçãodos daemons, saia desta caixa de diálogo clicando em OK.

De volta à caixa de diálogo principal, clique emOpções de Segurança para abrir a caixade diálogo de segurança e especificar criptografia, autenticação e configurações deexploração. Em seguida, saia da caixa de diálogo de segurança para retornar à caixa dediálogo principal. Após fechar a caixa de diálogo principal com Concluir, o sistemaBluetooth está pronto para uso.

Da caixa de diálogo principal, você também pode acessar a caixa de diálogo Classesde Dispositivo e Serviço. Os dispositivos Bluetooth são agrupados em várias classesde dispositivo. Nesta caixa de diálogo, escolha o correto para o seu computador, comoDesktop ou Laptop. A classe de dispositivo não é muito importante, ao contrário daclasse de serviço, também configurada aqui. Às vezes, dispositivos Bluetooth remotos,como telefones celulares, só aceitam determinadas funções se puderem detectar a classede serviço correta configurada no sistema. Isso ocorre com freqüência com os telefonescelulares que esperam uma classe chamada Transferência de Objeto antes de permitira transferência dos arquivos de ou para o computador. Você pode escolher várias classes.Não é útil selecionar todas as classes “por via das dúvidas.” A seleção padrão deve seradequada na maioria dos casos.

Para usar o Bluetooth para configurar uma rede, ative PAND na caixa de diálogoConfiguração Daemon Avançada e configure o modo do daemon com Editar. Parauma conexão de rede Bluetooth funcional, um pand deve operar no modo Recepção eo peer no modo Pesquisar. Por padrão, o modo Recepção é predefinido. Adapte ocomportamento do seu pand local. Adicionalmente, configure a interface bnepX (Xrepresenta o número do dispositivo no sistema) no módulo YaST daPlaca de Rede.

Configurando o Bluetooth manualmenteOs arquivos de configuração dos componentes individuais do sistema Bluez estãolocalizados no diretório /etc/bluetooth. A única exceção é o arquivo /etc/sysconfig/bluetooth para inicialização dos componentes, que é modificadapelo módulo YaST.

Comunicação sem fio 639

Page 640: Reference Pt BR

Os arquivos de configuração descritos abaixo só podem ser modificados pelo root dousuário. Atualmente, não há interface de usuário gráfico para mudar todas asconfigurações. Os mais importantes podem ser configurados com o módulo YaST doBluetooth, descrito em “Configurando o Bluetooth com YaST” (p 637). Todas as outrasconfigurações só são do interesse de usuários experientes com casos especiais.Normalmente, as configurações padrão devem ser adequadas.

Um número PIN fornece proteção básica contra conexões indesejadas. Telefones móveisnormalmente consultam o PIN quando estabelecem o primeiro contato (ou quandoconfiguram um dispositivo de contato no telefone). Para que dois dispositivos possamse comunicar, ambos devem se identificar com o mesmo PIN. No computador, o PINse localiza no arquivo /etc/bluetooth/pin.

IMPORTANTE: Segurança das conexões Bluetooth

Apesar dos PINs, a transmissão entre dois dispositivos pode não ser totalmentesegura. Por padrão, a autenticação e a criptografia das conexões Bluetooth sãodesativadas. Ativar a autenticação e a criptografia pode resultar em problemasde comunicação com alguns dispositivos Bluetooth.

Várias configurações, como os nomes de dispositivo e o modo de segurança podem sermudados no arquivo de configuração/etc/bluetooth/hcid.conf. Normalmente,as configurações padrão devem ser adequadas. O arquivo contém comentáriosdescrevendo as opções para as diversas configurações.

Duas seções no arquivo incluído são designadas como opções e dispositivo. Oprimeiro contém informações gerais que hcid usa para iniciar. O último contémconfigurações para dispositivos Bluetooth individuais e locais.

Uma das configurações mais importantes da seção opções é segurançaautomática. Se configurado em auto, hcid tenta usar o PIN local para as conexõesrecebidas. Se falhar, alterna para nenhum e estabelece a conexão. Para maior segurança,esta configuração padrão deve ser definida para usuário para verificar se o usuárioé solicitado a digitar um PIN toda vez que uma conexão é estabelecida.

Configure o nome sob o qual o computador é exibido do outro lado na seçãodispositivo. A classe de dispositivo, como Desktop, Laptop ou Servidoré definida nessa seção. Autenticação e criptografia também são habilitadas oudesabilitadas aqui.

640 Referência

Page 641: Reference Pt BR

34.2.3 Componentes e utilitários do sistemaA operabilidade do Bluetooth depende da interação de vários serviços. Pelo menos doisdaemons em segundo plano são necessários: hcid (daemon da interface do controladorde host), que atua como interface para o dispositivo Bluetooth e o controla e sdpd(daemon de protocolo de discovery de serviços), por meio do qual um dispositivo podedescobrir que serviços o host torna disponível. Se não forem ativados automaticamentequando o sistema é inicializado, hcid e sdpd podem ser ativados com o comandorcbluetooth start. Este comando deve ser executado como root.

Os parágrafos a seguir descrevem resumidamente as ferramentas shell mais importantesque podem ser usadas para trabalhar com o Bluetooth. Embora vários componentesgráficos sejam agora disponíveis para controlar o Bluetooth, pode ser válido verificaresses programas.

Alguns dos comandos só podem ser executados como root. Entre eles o comandol2ping device_address para testar a conexão a um dispositivo remoto.

hcitoolhcitool pode ser usado para determinar se dispositivos locais e remotos são detectados.O comando hcitool dev lista os dispositivos locais. A saída gera uma linha naforma interface_name device_address para todo dispositivo local detectado.

Procure dispositivos remotos com o comando hcitool inq. Três valores retornampara todo dispositivo detectado: o endereço do dispositivo, a diferença de relógio e aclasse de dispositivo. O endereço do dispositivo é importante, porque outros comandoso usam para identificar o dispositivo de destino. A diferença de relógio serveprincipalmente para um propósito técnico. A classe especifica o tipo de dispositivo eo tipo de serviço como um valor hexadecimal.

O comando hcitool name device-address pode ser usado para determinaro nome do dispositivo de um dispositivo remoto. No caso de um computador remoto,a classe e o nome do dispositivo correspondem às informações em seu /etc/bluetooth/hcid.conf. Endereços de dispositivo local geram uma saída de erro.

Comunicação sem fio 641

Page 642: Reference Pt BR

hciconfigO comando /usr/sbin/hciconfig envia mais informações sobre o dispositivolocal. Se hciconfig for executado sem quaisquer argumentos, a saída mostrainformações do dispositivo, como o nome do dispositivo (hciX), o endereço dodispositivo físico (um número de 12 dígitos no formato 00:12:34:56:78) einformações sobre a quantidade de dados transmitida.

hciconfig hci0 name exibe o nome que é retornado pelo seu computador quandorecebe solicitações de dispositivos remotos. Assim como consultar as configuraçõesdo dispositivo local, hciconfig pode ser usado para modificar essas configurações.Por exemplo, hciconfig hci0 name TEST configura o nome em TEST.

sdptoolO programa sdptool pode ser usado para verificar que serviços se tornam disponíveispor um dispositivo específico. O comando sdptool browse device_addressretorna todos os serviços de um dispositivo. Use o comando sdptool searchservice_code para procurar um serviço específico. Este comando digitaliza todosos dispositivos acessíveis para o serviço solicitado. Se um dos dispositivos oferecer oserviço, o programa imprime o nome completo do serviço retornado pelo dispositivocom uma breve descrição. Veja uma lista de todos os códigos de serviço possíveisdigitando sdptool sem parâmetros.

34.2.4 Aplicativos gráficosEm Konqueror, digite o URL bluetooth:/ para listar dispositivos Bluetooth locaise remotos. Clique duas vezes em um dispositivo para obter uma visão geral dos serviçosfornecidos pelo dispositivo. Se você mover por um dos serviços especificados com omouse, a barra de status do browser mostra que perfil é usado para o serviço. Se vocêclicar em um serviço, uma caixa de diálogo é aberta, perguntando o que fazer: salvar,usar o serviço (deve ser iniciado um aplicativo para fazer isto) ou cancelar a ação.Marque uma caixa de seleção se não quiser que a caixa de diálogo seja exibidanovamente mas quer que a ação selecionada seja realizada. Para alguns serviços, osuporte ainda não está disponível. Para outros, pode ser necessário instalar pacotesadicionais.

642 Referência

Page 643: Reference Pt BR

34.2.5 ExemplosEsta seção oferece dois exemplos típicos de possíveis cenários Bluetooth. O primeiromostra como uma conexão de rede entre dois hosts pode ser estabelecida através doBluetooth. O segundo apresenta uma conexão entre um computador e um telefonemóvel.

Conexão de rede entre dois hostsNo primeiro exemplo, é estabelecida uma conexão de rede entre os hostsH1 eH2. Estesdois hosts têm endereços do dispositivo Bluetooth baddr1 e baddr2 (determinado nosdois hosts com o comando hcitool dev como descrito acima). Os hosts devem seridentificados com os endereços IP 192.168.1.3 (H1) e 192.168.1.4 (H2).

A conexão Bluetooth é estabelecida com a ajuda de pand (daemon de personal areanetwork). Os seguintes comandos devem ser executados pelo usuárioroot. A descriçãoenfoca as ações específicas do Bluetooth e não fornece uma explicação detalhada docomando de rede ip.

Digite pand -s para iniciar pand no host H1. Em seguida, uma conexão pode serestabelecida no host H2 com pand -c baddr1. Se você digitar ip link showem um dos hosts para listar as interfaces de rede disponíveis, a saída deve conter umaentrada como a seguinte:bnep0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000 link/ether 00:12:34:56:89:90 brd ff:ff:ff:ff:ff:ff

Em vez de 00:12:34:56:89:90, a saída deve conter o endereço do dispositivolocal baddr1 ou baddr2. Agora é necessário atribuir e ativar um endereço IP a estainterface. Em H1, isso pode ser feito com os dois comandos seguintes:ip addr add 192.168.1.3/24 dev bnep0ip link set bnep0 up

Em H2:ip addr add 192.168.1.4/24 dev bnep0ip link set bnep0 up

Agora H1 pode ser acessado de H2 com o IP 192.168.1.3. Use o comando ssh192.168.1.4 para acessarH2 deH1, supondo queH2 executa um sshd, que é ativado

Comunicação sem fio 643

Page 644: Reference Pt BR

por padrão no SUSE Linux. O comando ssh 192.168.1.4 também pode serexecutado como um usuário normal.

Transferência de dados de um telefone móvel parao computadorO segundo exemplo mostra como transferir uma fotografia criada em um telefone móvelcom uma câmara digital interna para um computador (sem incorrer em custos adicionaispara a transmissão de uma mensagem multimídia). Embora a estrutura do menu possaser diferente em vários telefones móveis, o procedimento geralmente é bastantesemelhante. Consulte o manual do seu telefone, se necessário. Este exemplo descrevea transferência de uma fotografia de um telefone móvel Sony Ericsson para um laptop.O serviço Obex-Push deve estar disponível no computador e o computador deve concederacesso ao telefone móvel. Na primeira etapa, o serviço se torna disponível no laptop.Você precisa de um daemon de serviço especial no laptop para obter os dados dotelefone. Se o pacote kbluetooth estiver instalado, você não precisa iniciar umdaemon especial. Se o kbluetooth não estiver instalado, use o daemon opd do pacotebluez-utils. Inicie o daemon com o seguinte comando:opd --mode OBEX --channel 10 --daemonize --path /tmp --sdp

São usados dois importantes parâmetros: --sdp registra o serviço com sdpd e --path/tmp instrui o programa onde salvar os dados recebidos, neste caso em /tmp. Vocêtambém pode especificar qualquer outro diretório ao qual tenha acesso de gravação.

Se você usar o kbluetooth, você será solicitado por um diretório onde a fotografia érecebida no laptop.

Agora o telefone móvel deve reconhecer o computador. Para isso, abra o menuConectarno telefone e selecione Bluetooth. Se necessário, clique em Ativar antes de selecionarMeus dispositivos. Selecione Novo dispositivo e deixe o seu telefone procurar o laptop.Se um dispositivo for detectado, o nome aparecerá na tela. Selecione o dispositivoassociado ao laptop. Se encontrar uma consulta de PIN, digite o PIN especificado em/etc/bluetooth/pin. Agora o seu telefone reconhece o laptop e é capaz de trocardados com o laptop. Saia do menu atual e vá para o menu da imagem. Selecione aimagem a transferir e pressione Mais. No menu seguinte, pressione Enviar paraselecionar um modo de transmissão. Selecione Via Bluetooth. O laptop deve ser listadocomo dispositivo de destino. Selecione o laptop para iniciar a transmissão. A imagemé então salva no diretório especificado com o comando opd. Faixas de áudio podemser transferidas para o laptop da mesma maneira.

644 Referência

Page 645: Reference Pt BR

34.2.6 Solução de problemasSe tiver dificuldades em estabelecer uma conexão, prossiga de acordo com a seguintelista. Lembre-se de que o erro pode estar de um lado da conexão ou mesmo de ambos.Se possível, reconstrua o problema com outro dispositivo Bluetooth para verificar seo dispositivo não está com defeito.

O dispositivo local está listado na saída do hcitool dev?Se o dispositivo local não estiver listado nesta saída, hcid não é iniciado ou odispositivo não é reconhecido como um dispositivo Bluetooth. Isto pode ter váriascausas. O dispositivo pode estar com defeito ou o driver correto pode estar faltando.Laptops com Bluetooth interno em geral têm um switch de ativar e desativar paradispositivos sem fio, como WLAN e Bluetooth. Consulte o manual do laptop paraver se o seu dispositivo tem este switch. Reinicie o sistema Bluetooth com ocomandorcbluetooth restart e verifique se há erros reportados em/var/log/messages.

O seu adaptador Bluetooth precisa de um arquivo firmware?Nesse caso, instale bluez-bluefw e reinicie o sistema Bluetooth comrcbluetooth restart.

A saída de hcitool inq retorna outros dispositivos?Teste este comando mais de uma vez. A conexão pode ter interferências, porque abanda da freqüência do Bluetooth já é usada por outros dispositivos.

Os PINs correspondem?Verifique se o número PIN do computador (em /etc/bluetooth/pin)corresponde ao do dispositivo de destino.

O dispositivo remoto pode “ver” o seu computador?Tente estabelecer a conexão do dispositivo remoto. Verifique se este dispositivovê o computador.

A conexão de rede pode ser estabelecida (veja “Conexão de rede entre dois hosts”(p 643))?

A configuração descrita em “Conexão de rede entre dois hosts” (p 643) pode nãofuncionar por várias razões. Por exemplo, um dos dois computadores pode não tersuporte para o protocolo ssh. Tente ping 192.168.1.3 ou ping192.168.1.4. Se funcionar, verifique se sshd está ativo. Outro problema podeser que um dos dois dispositivo já possui configurações de rede que conflitam com

Comunicação sem fio 645

Page 646: Reference Pt BR

o endereço 192.168.1.X do exemplo. Se for o caso, tente vários endereços,como 10.123.1.2 e 10.123.1.3.

O laptop parece um dispositivo de destino (consulte “Transferência de dados de umtelefone móvel para o computador” (p 644))? O dispositivo móvel reconhece o serviçoObex-Push no laptop?

EmMeus dispositivos, selecione o respectivo dispositivo e veja a lista de Serviços.Se Obex-Push não for exibido (mesmo depois da atualização da lista), o problemaé causado por opd no laptop. O opd está ativo? Você tem acesso de gravação aodiretório especificado?

O cenário descrito em “Transferência de dados de um telefone móvel para o computador”(p 644) funciona na direção contrária?

Se o pacote obexftp estiver instalado, o comando obexftp -bdevice_address -B 10 -p image pode ser usado em alguns dispositivos.Vários modelos Siemens e Sony Ericsson foram testados e demonstraram serfuncionais. Consulte a documentação em /usr/share/doc/packages/obexftp.

Se você instalou o pacote bluez-hcidump, poderá usar hcidump -X para verificaro que é enviado entre os dispositivos. Algumas vezes as ajudas da saída fornecem umasugestão de onde o problema está, mas esteja ciente de que estará apenas parcialmenteem “texto legível”.

34.2.7 Mais informaçõesAlguma documentação adicional (recente) pode ser encontrada em /usr/share/doc/packages/bluez-utils/ (versão em alemão e inglês disponível).

Uma ampla visão geral de várias instruções para o uso e a configuração do Bluetoothestá disponível emhttp://www.holtmann.org/linux/bluetooth/. Outrasinformações e instruções úteis:

• Documentação HOWTO oficial sobre a pilha de protocolos Bluetooth integradaao kernel: http://bluez.sourceforge.net/howto/index.html

• Conexão para PalmOS PDA: http://www.cs.ucl.ac.uk/staff/s.zachariadis/btpalmlinux.html

646 Referência

Page 647: Reference Pt BR

34.3 Transmissão de dadosinfravermelhos

A IrDA (Infrared Data Association - Associação de Dados Infravermelhos) é um padrãoda indústria para comunicação sem fio com luz infravermelha. Muitos laptops vendidosatualmente são equipados com um transceptor compatível com IrDA que permite acomunicação com outros dispositivos, como impressoras, modems, LANs ou outroslaptops. A velocidade de transferência varia de 2.400 bps a 4 Mbps.

Há dois modos de operação IrDA. O modo padrão, SIR, acessa a porta infravermelhapor meio de uma interface serial. Esse modo funciona em quase todos os sistemas,sendo suficiente para a maioria dos requisitos. O modo mais rápido, FIR, requer umdriver especial para o chip do IrDA. Nem todos os tipos de chip são suportados nomodo FIR, devido à ausência de drivers apropriados. Defina o modo de IrDA desejadono BIOS de seu computador. O BIOS também mostra que interface serial é usada nomodo SIR.

É possível encontrar informações sobre o IrDA no guia do IrDA da Werner Heuser,em http://tuxmobil.org/Infrared-HOWTO/Infrared-HOWTO.html.Além disso, consulte o site da Web do Projeto IrDA do Linux, em http://irda.sourceforge.net/.

34.3.1 SoftwareOs módulos de kernel necessários são incluídos no pacote do kernel. O pacote irdafornece os aplicativos ajudantes necessários para suportar a interface infravermelha. Adocumentação pode ser encontrada em /usr/share/doc/packages/irda/README, depois da instalação do pacote.

34.3.2 ConfiguraçãoO serviço do sistema IrDA não é iniciado automaticamente quando o sistema é iniciado.Use o módulo IrDA do YaST para a ativação. Só é possível modificar uma configuraçãoneste módulo: a interface serial do dispositivo infravermelho. A janela de teste mostraduas saídas. Uma é a saída de irdadump, que registra todos os pacotes de IrDAenviados e recebidos. Essa saída deve conter o nome do computador e os nomes de

Comunicação sem fio 647

Page 648: Reference Pt BR

todos os dispositivos infravermelhos da faixa de transmissão. Há um exemplo dessasmensagens na Seção 34.3.4, “Solução de problemas” (p 649). Todos os dispositivospara os quais existe uma conexão IrDA são relacionados na parte inferior da janela.

O IrDA consome uma quantidade considerável de energia da bateria, pois pacotes dedescoberta são enviados com um intervalo de poucos segundos para detectar outrosdispositivos periféricos. Portanto, caso você dependa da energia da bateria, o IrDA sódeverá ser iniciado quando necessário. Digite o comando rcirda start para ativá-lo ou rcirda stop para encerrá-lo. Todos os módulos de kernel necessários serãocarregados automaticamente quando a interface for ativada.

A configuração manual pode ser executada no arquivo /etc/sysconfig/irda.O arquivo contém apenas uma variável, IRDA_PORT, que determina a interface a serusada no modo SIR.

34.3.3 UsoOs dados podem ser enviados para o arquivo de dispositivo /dev/irlpt0 paraimpressão. O arquivo do dispositivo /dev/irlpt0 age como a interface cabeada/dev/lp0 normal, sendo que os dados de impressão são enviados em modo sem fiocom a luz infravermelha. Para imprimir, verifique se a impressora está dentro da faixavisual da interface infravermelha do computador e se o suporte a infravermelho foiiniciado.

Uma impressora operada pela interface infravermelha pode ser configurada com omódulo Impressora do YaST. Como ela não é detectada automaticamente, configure-a manualmente clicando em Outro (não detectado). Na caixa de diálogo seguinte,selecione Impressora IrDA. Normalmente, a conexão correta é irlpt0. Os detalhessobre as impressoras em operação no Linux estão disponíveis no Capítulo 11,Operaçãoda impressora (p 237).

A comunicação com outros hosts e com telefones celulares ou dispositivos semelhantesé conduzida por meio do arquivo de dispositivo/dev/ircomm0. Os telefones celularesSiemens S25 e Nokia 6210, por exemplo, podem discar e se conectar com a Internetcom o aplicativo wvdial, usando a interface infravermelha. A sincronização de dadoscom um Palm Pilot também é possível, desde que a configuração do dispositivo doaplicativo correspondente seja definida como /dev/ircomm0.

648 Referência

Page 649: Reference Pt BR

Se desejar, você poderá usar apenas dispositivos que suportem os protocolos daimpressora ou IrCOMM. Dispositivos que suportam o protocolo IROBEX, como 3ComPalm Pilot, podem ser acessados com aplicativos especiais, como irobexpalm eirobexreceive. Consulte IR-HOWTO (http://tldp.org/HOWTO/Infrared-HOWTO/) para obter mais informações. Os protocolos suportados pelodispositivo são relacionados entre colchetes depois do nome do dispositivo, na saídade irdadump. O suporte ao protocolo rLAN ainda está “em andamento”.

34.3.4 Solução de problemasSe os dispositivos conectados à porta infravermelha não responderem, use o comandoirdadump (como root) para verificar se o outro dispositivo é reconhecido pelocomputador. Algo semelhante ao Exemplo 34.1, “Saída de irdadump” (p 649) seráexibido regularmente, quando uma impressora Canon BJC-80 estiver dentro de umafaixa visível do computador:

Exemplo 34.1 Saída de irdadump21:41:38.435239 xid:cmd 5b62bed5 > ffffffff S=6 s=0 (14) 21:41:38.525167 xid:cmd 5b62bed5 > ffffffff S=6 s=1 (14) 21:41:38.615159 xid:cmd 5b62bed5 > ffffffff S=6 s=2 (14) 21:41:38.705178 xid:cmd 5b62bed5 > ffffffff S=6 s=3 (14) 21:41:38.795198 xid:cmd 5b62bed5 > ffffffff S=6 s=4 (14) 21:41:38.885163 xid:cmd 5b62bed5 > ffffffff S=6 s=5 (14) 21:41:38.965133 xid:rsp 5b62bed5 < 6cac38dc S=6 s=5 BJC-80 hint=8804 [IrCOMM de impressora] (23) 21:41:38.975176 xid:cmd 5b62bed5 > ffffffff S=6 s=* earth hint=0500 [ Computador PnP ] (21)

Verifique a configuração da interface se não houver saída ou se o outro dispositivo nãoresponder. Verifique se a interface correta está sendo usada. Algumas vezes, a interfaceinfravermelha está localizada em /dev/ttyS2 ou em /dev/ttyS3, e interrupçõesdiferentes de IRQ 3 são usadas ocasionalmente. Essas configurações podem serverificadas e modificadas no menu de configuração do BIOS de quase todos os laptops.

Uma simples câmera de vídeo também pode ajudar a determinar se o LED infravermelhoestá acendendo. A maioria das câmeras de vídeo pode ver a luz infravermelha, quenossos olhos não vêem.

Comunicação sem fio 649

Page 650: Reference Pt BR
Page 651: Reference Pt BR

ÍndiceRemissivoAACLs, 147–159

acesso, 150, 153algoritmo de verificação, 158bits de permissão, 152definições, 150efeitos, 155estrutura, 150gerenciando, 150máscaras, 154padrão, 150, 155suporte, 158

ajudapáginas de informações, 229X, 288

Apache, 463–504configurando, 465

arquivos, 466assistente de HTTP do YaST, 473Configuração de Servidor HTTP doYaST, 478host virtual, 469manualmente, 465–473YaST, 473–480

inicialização rápida, 463iniciando, 480instalação, 464mais informações, 502módulos, 482–490

criando módulos, 489disponíveis, 484instalando, 483módulos de multiprocessamento, 486módulos externos, 488

parando, 480scripts CGI, 490segurança, 499solução de problemas, 501Squid, 554SSL, 493–499

configurar Apache com SSL, 498criando um certificado SSL, 493

aplicativosrede

remota, 299remotos

FreeNX, 299arquivos

criptografando, 123localização, 226sincronizando, 505–526

CVS, 506, 515–518iFolder, 508mailsync, 507, 523–526rsync, 507Subversion, 507Unison, 506, 513–515

arquivos básicos, 227arquivos de configuração, 366

.bashrc, 224, 227

.emacs, 229

.mailsync, 523

.profile, 224

.xsession, 119acpi, 601crontab, 224csh.cshrc, 233dhclient.conf, 426dhcp, 366dhcpd.conf, 426economia de energia, 601exportações, 420exports, 419group, 70

Page 652: Reference Pt BR

grub.conf, 210gshadow, 76host.conf, 369HOSTNAME, 373hosts, 348, 368idioma, 232–233ifcfg-*, 366inittab, 189, 192, 230inputrc, 231irda, 648kernel, 187logrotate.conf, 225menu.lst, 204modprobe.conf, 72modules.conf, 72named.conf, 391–401, 545nscd.conf, 372nsswitch.conf, 370, 453pam_unix2.conf, 452passwd, 70perfil, 233permissões, 144powersave.conf, 82profile, 223, 227rede, 366redes, 369resolv.conf, 228, 367, 391, 544rotas, 366samba, 531sem fio, 366serviços, 531, 553slapd.conf, 443smb.conf, 531, 538smppd.conf, 375squid.conf, 544, 546, 549, 552, 555, 557squidguard.conf, 557sshd_config, 120suseconfig, 200sysconfig, 198–200

termcap, 231XF86Config, 86xorg.conf, 86, 283

Dispositivo, 287Monitor, 288Tela, 285

arquivos de registro, 225boot.msg, 601mensagens, 114, 391Squid, 544, 548, 554Unison, 515XFree86, 297

atualizando, 69–72mixers de som, 84passwd e group, 70problemas, 70YaST, 70

autenticaçãoKerberos, 85PAM, 313–321

BBancos de dados

NSS, 371Bash

.bashrc, 224

.profile, 224profile, 223

BIND, 390–401Bluetooth, 569, 635

hciconfig, 642hcitool, 641opd, 644pand, 643rede, 639sdptool, 642

Cchown, 76

Page 653: Reference Pt BR

CJK, 231codificação

ISO-8859-1, 233UTF-8, 75

comandoschown, 76fontes-configuração, 289free, 228getfacl, 154grub, 202head, 76ldapadd, 449ldapdelete, 452ldapmodify, 451ldapsearch, 451lp, 247nice, 76rpm, 91rpmbuild, 91scp, 116setfacl, 154sftp, 117slptool, 379smbpasswd, 537sort, 76ssh, 116ssh-agent, 119ssh-keygen, 119tail, 76

computação remotaFreeNX, 299–311

conexões sem fioBluetooth, 635

configurando, 198DNS, 351, 381DSL, 357GRUB, 202, 210imprimindo, 241–244IPv6, 346IrDA, 647

ISDN, 354modem a cabo, 357modems, 352PAM, 86redes, 349

manualmente, 362–374roteamento, 351, 366Samba, 529–535

clientes, 535Squid, 546SSH, 115T-DSL, 359

configuration filessmpppd-c.conf, 376

consolesalternando, 230designando, 230gráficos, 219

cpuspeed, 610criptografando, 121–124

arquivos, 123–124arquivos com o vi, 124criando partições, 122mídia removível, 124partições, 122–123YaST, com, 122

cron, 224CVS, 506, 515–518câmeras digitais, 571

Ddeltarpm, 95desinstalando

GRUB, 217Linux, 217

DHCP, 421–430configurando com o YaST, 422designação de endereço estático, 428dhcpd, 426–428

Page 654: Reference Pt BR

pacotes, 426servidor, 426–428

discosboot, 217

DNS, 347BIND, 390–401configurando, 351, 381domínios, 367encaminhamento, 391iniciando, 391mail exchanger, 348multicast, 75NIC, 348opções, 393pesquisa reversa, 400registro, 395segurança e, 143servidores de nomes, 367solução de problemas, 391Squid e, 545terminologia, 381top level domain, 347zonas

arquivos, 397domínios

.local, 75DOS

compartilhando arquivos, 527

Ee-mail

sincronizando, 507mailsync, 523–526

sincronização, 568editores

Emacs, 229–230Emacs, 229–230

.emacs, 229default.el, 229

endereços IP, 335classes, 335designação dinâmica, 421IPv6, 338

configurando, 346mascarando, 107privados, 337

Evolution, 572Extensão de teclado X (Ver teclado, XKB)

Ffiltros de pacote (Ver firewalls)Firefox

comando aberto de URL, 91firewalls, 105

filtros de pacote, 105filtros de pacotes, 109Squid e, 552SuSEfirewall2, 105, 109

Firewire (IEEE1394)discos rígidos, 571

folhas de estilo TEI XSLnova localização, 89

fontecompilando, 99

fontes, 289central X11, 290indexadas do CID, 294TrueType, 289Xft, 291

FreeNX, 299–311

GGerenciador de Volumes Lógicos (VerLVM)gerenciamento de energia, 563, 597–618

ACPI, 597, 600–608, 613APM, 597, 599–600, 613cpufrequency, 610

Page 655: Reference Pt BR

cpuspeed, 610hibernação, 598monitor de bateria, 598nível de carga, 614powersave, 610standby, 598suspender, 598YaST, 618

gráficos3D, 295–297

3Ddiag, 297diagnóstico, 296drivers, 295SaX, 296solucionando problemas, 297suporte para, 295suporte à instalação para, 297testando, 296

GLIDE, 295–297OpenGL, 295–297

drivers, 295testando, 296

placas3D, 295–297

GRUB, 201–221comandos, 202–212desinstalando, 217device.map, 203, 209editor de menu, 208Erro de geometria do GRUB, 220grub.conf, 203, 210inicializando, 202JFS e GRUB, 220limitações, 202menu de boot, 204menu.lst, 203–204nomes de dispositivos, 205nomes de partições, 205Registro Mestre de Inicialização(MBR), 201

senha de boot, 210setores de boot, 202solução de problemas, 219

Hhardware

ISDN, 354hciconfig, 642hcitool, 641head, 76help

páginas de manual, 229

II18N, 231iFolder, 508impressão, 237

xpp, 247imprimindo, 241–244

aplicativos, de, 247arquivo PPD, 242conexão, 242configurando com o YaST, 241CUPS, 247driver Ghostscript, 242drivers, 242filas, 242impressoras GDI, 253IrDA, 648kprinter, 247linha de comando, 247porta, 242página de teste, 242rede, 255Samba, 528solução de problemas

rede, 255inicializando

configurando

Page 656: Reference Pt BR

YaST, 212–217GRUB, 201–221gráfico, 219initramfs, 187initrd, 187

inicialização, 185setores de boot, 201–202

init, 189adicionando scripts, 194inittab, 189scripts, 192–196

instalandoGRUB, 202manualmente, 85pacotes, 92

internacionalização, 231Internet

cinternet, 375discagem, 374–376DSL, 357ISDN, 354KInternet, 375qinternet, 375smpppd, 374–376TDSL, 359

IrDA, 570, 647–649configurando, 647encerrando, 647iniciando, 647solução de problemas, 649

Kkernels

caches, 228limites, 279módulos

modprobe.conf, 72versão 2.6, 72

Kontact, 572

KPilot, 572KPowersave, 567KSysguard, 567

LL10N, 231laptops, 563–570

gerenciamento de energia, 563, 597–609hardware, 563IrDA, 647–649NetworkManager, 566PCMCIA, 563SCPM, 564, 583SLP, 566

LDAP, 437–462ACLs, 444adicionando dados, 448administrando grupos, 460administrando usuários, 460apagando dados, 452buscando dados, 451cliente LDAP do YaST, 452configuração do servidor, 443controle de acesso, 446ldapadd, 448ldapdelete, 452ldapmodify, 450ldapsearch, 451modificando dados, 450YaST

modelos, 453módulos, 453

árvore de diretórios, 440LFS, 278Lightweight Directory Access Protocol(Ver LDAP)Linux

Page 657: Reference Pt BR

compartilhando arquivos com outro SO,527desinstalando, 217redes e, 331

Linux de 64 bits, 181desenvolvimento de software, 182especificações do kernel, 184suporte ao tempo de execução, 181

linuxrcinstalação manual, 85

linuxthreads, 73local

UTF-8, 75localização, 231locate, 226logrotate, 225LSB

instalando pacotes, 91LVM

YaST, 55

Mmascaramento

configurando com o SuSEfirewall2, 109mascarando, 107MBR, 201–202memória

RAM, 228mobilidade, 563–573

câmeras digitais, 571discos rígidos externos, 571Firewire (IEEE1394), 571laptops, 563PDAs, 572segurança de dados, 570telefones celulares, 572USB, 571

modemscabo, 357

YaST, 352monitoramento do sistema, 567

KPowersave, 567KSysguard, 567

mountd, 420mídia removível

subfs, 79

NNAT (Ver mascarando)NetBIOS, 527Network File System (Ver NFS)Network Information Service (Ver NIS)NetworkManager, 566NFS, 415

clientes, 415exportando, 418importando, 416montando, 416permissões, 419servidores, 417

nfsd, 420NGPT, 73nice, 76NIS, 405–413

clientes, 412escravos, 405–412masters, 405–412

notebooks (Ver laptops)Novell iFolder, 508NPTL, 73–74NSS, 370

Oopd, 644OpenLDAP (Ver LDAP)OpenSSH (Ver SSH)OS/2

compartilhando arquivos, 527

Page 658: Reference Pt BR

Ppacotes

compilando, 99compilando com build, 101desinstalando, 92gerenciador de pacotes, 91instalando, 92LSB, 91RPMs, 91verificando, 92

pacotes de threadNPTL, 74

páginas de informações, 229páginas de manual, 229PAM, 313–321

configurando, 86pand, 643partições

criptografando, 122tabela de partição, 201

PBX, 355PCMCIA, 563, 575

IrDA, 647–649PDAs, 572permissões

ACLs, 147–159permissões de arquivo, 226

placasrede, 348–349vídeo, 288

Pluggable Authentication Modules (VerPAM)portas

53, 393explorando, 554

PostgreSQLatualizando, 70

powersave, 610configurando, 610

protocolosCIFS, 527IPv6, 338LDAP, 437SLP, 377SMB, 527

proxies (Ver Squid)caches, 539transparentes, 551vantagens, 539

RRAID

YaST, 63RAID de software (Ver RAID)Recursos do Squid, 539redes, 331

arquivos de configuração, 366–373Bluetooth, 569, 639configurando, 348–359, 362–374

IPv6, 346DHCP, 421DNS, 347endereço de broadcast, 337endereço de rede de base, 337host local, 337IrDA, 570máscaras de rede, 335roteamento, 335, 351sem fio, 569SLP, 377TCP/IP, 331WLAN, 569YaST, 349

Registro Mestre de Inicialização (VerMBR)RFCs, 331roteamento, 335, 351, 366–367

estático, 367

Page 659: Reference Pt BR

máscaras de rede, 335rotas, 366

roteandomascarando, 107

RPM, 91–102atualizando, 93banco de dados

reconstruindo, 94, 99consultas, 96deltarpm, 95dependências, 92desinstalando, 94ferramentas, 102patches, 94rpmnew, 92rpmorig, 92rpmsave, 92segurança, 145SRPMS, 100verificando, 92verificar, 98

rpmbuild, 91rsync, 507, 521runlevels, 189–192

editando no YaST, 196mudando, 191–192

SSamba, 527–538

CIFS, 527clientes, 528, 535–536compartilhamentos, 528, 532configurando, 529–535impressoras, 528imprimindo, 536iniciando, 529instalando, 529interrompendo, 529login, 536

nomes, 527permissões, 534segurança, 534–535servidor, 528servidores, 529–535SMB, 527swat, 531TCP/IP e, 527

SCPM, 583alternando perfis, 593configurações avançadas, 594gerenciando perfis, 592grupos de recursos, 592iniciando, 592laptops, 564

scriptsinit.d, 189, 192–196, 373

boot, 193boot.local, 194boot.setup, 194halt, 194network, 373nfsserver, 373, 419portmap, 373, 419rc, 192, 194sendmail, 374squid, 544ypbind, 374ypserv, 374

irda, 648mkinitrd, 187modify_resolvconf, 228, 368SuSEconfig, 198–200

desabilitando, 200sdptool, 642segurança, 134–146

assinaturas RPM, 145ataques, 142–143bugs e, 138, 141detecção de intrusos, 86

Page 660: Reference Pt BR

dicas e truques, 143DNS, 143engenharia, 135firewalls, 105inicialização, 135, 137local, 136–139permissões, 137–138rede, 140–143relatando problemas, 146Samba, 534senhas, 136–137sistema de arquivos criptografados, 570Squid, 540SSH, 115–121tcpd, 146telnet, 115terminais seriais, 135vírus, 139worms, 143X e, 140

segurança de dados, 570Service Location Protocol (Ver SLP)servidores de nomes (Ver DNS)SGML

diretórios, 79sincronização de dados, 569

e-mail, 568Evolution, 572Kontact, 572KPilot, 572

sistemaatualizando, 69–72limitação do uso de recursos, 227localização, 231

sistema de nomes de domínio (Ver DNS)Sistema X Window (Ver X)sistemas de arquivos, 269–280

ACLs, 147–159criptografando, 121cryptofs, 121

Ext2, 271–272Ext3, 272–274LFS, 278limitações, 278Reiser4, 274–275ReiserFS, 270–271selecionando, 270suportados, 276–278termos, 269XFS, 275–276

SLP, 377, 566browser, 379Konqueror, 379registrando serviços, 377slptool, 379

SMB (Ver Samba)smpd, 527software

compilando, 99som

mixers, 84sort, 76spm, 99Squid, 539

ACLs, 549Apache, 554arquivos de registro, 544, 548, 554cachemgr.cgi, 554, 556caches, 539–540

danificado, 544tamanho, 542

Calamaris, 558configurando, 546controles de acesso, 555CPU e, 543desinstalando, 545diretórios, 544DNS, 545estatísticas, 554, 556firewalls e, 552

Page 661: Reference Pt BR

iniciando, 543interrompendo, 544permissões, 544, 549proxies transparentes, 551, 554RAM e, 543relatórios, 558requisitos do sistema, 542segurança, 540solução de problemas, 544squidGuard, 556status do objeto, 541

SSH, 115–121daemon, 117mecanismos de autenticação, 119pares de chaves, 117, 119scp, 116sftp, 117ssh, 116ssh-agent, 119–120ssh-keygen, 119sshd, 117X e, 120

subfsmídia removível, 79

Subversion, 507, 518suporte à instalação

placas gráficas 3D e, 297SVN (Subversion), 507

Ttail, 76TCP/IP, 331

ICMP, 332IGMP, 332modelo em camadas, 332pacotes, 333–334TCP, 332UDP, 332

teclado

Caracteres asiáticos, 231Extensão de teclado X, 231layout, 230mapeamento, 230

compor, 231multikey, 231

XKB, 231tela

resolução, 287telefones celulares, 572Tripwire

substituído por AIDE, 86

Uulimit, 227

opções, 227unidades flash, 571USB

discos rígidos, 571unidades flash, 571

users/etc/passwd, 453

usuários/etc/passwd, 316

UTF-8codificação, 75

Vvariables

environment, 232vídeo

placasdrivers, 288

Wwhois, 348Windows

compartilhando arquivos, 527WLAN, 569

Page 662: Reference Pt BR

XX

ajuda, 288conjuntos de caracteres, 289drivers, 288fontes, 289fontes centrais X11, 290fontes indexadas do CID, 294fontes TrueType, 289otimizando, 283–289SaX2, 284segurança, 140sistemas de fontes, 289SSH e, 120tela virtual, 287xf86config, 284xft, 289Xft, 291

X.Org, 283Xen, 323

visão geral, 323Xft, 291XKB (Ver teclado, XKB)XML

diretórios, 79xorg.conf

Depth, 286Device, 286Display, 286Files, 284InputDevice, 284intensidade de cor, 286Linha modelo, 286modelines, 284Modes, 285Modos, 286Monitor, 284, 286ServerFlags, 284

YYaST

3D, 295atualizando, 70browser SLP, 379carregador de boot

localização, 214ordem do disco, 216senha, 216tipo, 213

cliente LDAP, 452clientes NIS, 412configuração de inicialização, 212

segurança, 216sistema padrão, 215tempo de espera, 215

DHCP, 422DSL, 357editor sysconfig, 198gerenciamento de energia, 618GRUB, 213imprimindo, 241–244ISDN, 354LILO, 213LVM, 55modem a cabo, 357modems, 352placa de rede, 349RAID, 63runlevels, 196Samba

clientes, 535T-DSL, 359

YP (Ver NIS)