09.12.2012 Views

Documentação do SUSE LINUX - Index of

Documentação do SUSE LINUX - Index of

Documentação do SUSE LINUX - Index of

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>SUSE</strong> Linux<br />

10.1<br />

02/21/2006 Referência<br />

www.novell.com


Referência<br />

Lista de Autores: Jörg Arndt, Stefan Behlert, Frank Bodammer, James Branam, Volker Buzek, Klara<br />

Cihlarova, Stefan Dirsch, Olaf Donjak, Roman Drahtmüller, Thorsten Dubiel, Torsten Duwe, Thomas<br />

Fehr, Stefan Fent, Werner Fink, Jakub Friedl, Kurt Garl<strong>of</strong>f, Joachim Gleißner, Carsten Groß, Andreas<br />

Grünbacher, Berthold Gunreben, Franz Hassels, Andreas Jaeger, Jana Jaeger, Klaus Kämpf, Andi<br />

Kleen, Hubert Mantel, Lars Marowsky-Bree, Chris Mason, Johannes Meixner, Lars Müller, Matthias<br />

Nagorni, Anas Nashif, Siegfried Olschner, Edith Parzefall, Peter Pöml, Thomas Renninger, Hannes<br />

Reinecke, Scott Rhoades, Thomas Rölz, Heiko Rommel, Tanja Roth, Marcus Schäfer, Thomas<br />

Schraitle, Klaus Singvogel, Frank Sundermeyer, Elisabeth Tobiasson, Hendrik Vogelsang, Klaus G.<br />

Wagner, Rebecca Walter, Christian Zoz<br />

Esta publicação é propriedade intelectual da Novell Inc.<br />

O seu conteú<strong>do</strong> pode ser duplica<strong>do</strong>, em parte ou integralmente, desde que um rótulo de copyright<br />

esteja visivelmente localiza<strong>do</strong> em cada cópia.<br />

Todas as informações deste manual foram compiladas com a maior atenção possível aos detalhes.<br />

Entretanto, isso não garante uma precisão absoluta. O <strong>SUSE</strong> <strong>LINUX</strong> GmbH, os autores ou os tradutores<br />

não deverão ser responsabiliza<strong>do</strong>s por possíveis erros ou conseqüências decorrentes.<br />

Novell, o logotipo da Novell, o logotipo N e <strong>SUSE</strong> são marcas registradas da Novell, Inc. nos Esta<strong>do</strong>s<br />

Uni<strong>do</strong>s e em outros países. *Linux é marca registrada de Linus Torvalds. Todas as outras marcas<br />

registradas de terceiros pertencem aos seus respectivos proprietários.<br />

Envie sugestões e comentários para <strong>do</strong>cumentation@suse.de.


Sumário<br />

Sobre este guia xi<br />

Parte 1 Cenários de distribuição avançada 15<br />

1 Instalação remota 17<br />

1.1 Cenários de instalação para instalação remota . . . . . . . . . . . . . 17<br />

1.2 Configuran<strong>do</strong> o servi<strong>do</strong>r que mantém as fontes de instalação . . . . . . 26<br />

1.3 Preparan<strong>do</strong> a inicialização <strong>do</strong> sistema de destino . . . . . . . . . . . 36<br />

1.4 Inicializan<strong>do</strong> o sistema de destino para instalação . . . . . . . . . . . 46<br />

1.5 Monitoran<strong>do</strong> o processo de instalação . . . . . . . . . . . . . . . . 51<br />

2 Configuração de disco avançada 55<br />

2.1 Configuração da LVM . . . . . . . . . . . . . . . . . . . . . . . 55<br />

2.2 Configuração de RAID de s<strong>of</strong>tware . . . . . . . . . . . . . . . . . 63<br />

3 Atualizan<strong>do</strong> o gerenciamento de sistemas e pacotes 69<br />

3.1 Atualizan<strong>do</strong> o <strong>SUSE</strong> Linux . . . . . . . . . . . . . . . . . . . . . 69<br />

3.2 Mudanças no s<strong>of</strong>tware de versão para versão . . . . . . . . . . . . . 72<br />

3.3 RPM— o Gerencia<strong>do</strong>r de pacotes . . . . . . . . . . . . . . . . . . 91<br />

Parte 2 Administração 103<br />

4 Segurança no Linux 105<br />

4.1 Mascaramento e firewalls . . . . . . . . . . . . . . . . . . . . . 105<br />

4.2 SSH: operações seguras de rede . . . . . . . . . . . . . . . . . . 115


4.3 Criptografan<strong>do</strong> partições e arquivos . . . . . . . . . . . . . . . . 121<br />

4.4 Delimitan<strong>do</strong> privilégios com o AppArmor . . . . . . . . . . . . . . 124<br />

4.5 Segurança e confidencialidade . . . . . . . . . . . . . . . . . . . 134<br />

5 Listas de controle de acesso no Linux 147<br />

5.1 Permissões de arquivo tradicionais . . . . . . . . . . . . . . . . . 147<br />

5.2 Vantagens das ACLs . . . . . . . . . . . . . . . . . . . . . . . 149<br />

5.3 Definições . . . . . . . . . . . . . . . . . . . . . . . . . . . 150<br />

5.4 Gerencian<strong>do</strong> ACLs . . . . . . . . . . . . . . . . . . . . . . . . 150<br />

5.5 Suporte a ACL em aplicativos . . . . . . . . . . . . . . . . . . . 158<br />

5.6 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 159<br />

6 Utilitários de monitoramento <strong>do</strong> sistema 161<br />

6.1 Lista de arquivos abertos: ls<strong>of</strong> . . . . . . . . . . . . . . . . . . 161<br />

6.2 Arquivos de acesso <strong>do</strong> usuário: fuser . . . . . . . . . . . . . . . 163<br />

6.3 Propriedades de arquivo: stat . . . . . . . . . . . . . . . . . . 163<br />

6.4 Dispositivos USB: lsusb . . . . . . . . . . . . . . . . . . . . . 164<br />

6.5 Informações sobre um dispositivo SCSI: scsiinfo . . . . . . . . . . 164<br />

6.6 Processos: top . . . . . . . . . . . . . . . . . . . . . . . . . 165<br />

6.7 Lista de processos: ps . . . . . . . . . . . . . . . . . . . . . . 166<br />

6.8 Árvore de processos: pstree . . . . . . . . . . . . . . . . . . . 168<br />

6.9 Quem está fazen<strong>do</strong> o quê: w . . . . . . . . . . . . . . . . . . . . 168<br />

6.10 Uso da memória: free . . . . . . . . . . . . . . . . . . . . . . 169<br />

6.11 Buffer <strong>do</strong> anel de kernel: dmesg . . . . . . . . . . . . . . . . . . 169<br />

6.12 Sistemas de arquivos e sua utilização: mount, df e du . . . . . . . . 170<br />

6.13 O sistema de arquivos /proc . . . . . . . . . . . . . . . . . . . 170<br />

6.14 Recursos PCI: lspci . . . . . . . . . . . . . . . . . . . . . . . 174<br />

6.15 Chamadas <strong>do</strong> sistema de uma execução de programa: strace . . . . . 175<br />

6.16 Chamadas da biblioteca de uma execução de programa: ltrace . . . . 176<br />

6.17 Especificação da biblioteca necessária: ldd . . . . . . . . . . . . . 176<br />

6.18 Informações adicionais sobre binários ELF . . . . . . . . . . . . . . 177<br />

6.19 Comunicação entre processos: ipcs . . . . . . . . . . . . . . . . 177<br />

6.20 Medição <strong>do</strong> tempo com time . . . . . . . . . . . . . . . . . . . 178<br />

Parte 3 Sistema 179<br />

7 Aplicativos de 32 bits e 64 bits em um ambiente de sistema de 64 bits<br />

181<br />

7.1 Suporte ao tempo de execução . . . . . . . . . . . . . . . . . . 181<br />

7.2 Desenvolvimento de s<strong>of</strong>tware . . . . . . . . . . . . . . . . . . . 182<br />

7.3 Compilação de s<strong>of</strong>tware em plataformas biarch . . . . . . . . . . . 183


7.4 Especificações <strong>do</strong> kernel . . . . . . . . . . . . . . . . . . . . . 184<br />

8 Inicializan<strong>do</strong> e configuran<strong>do</strong> um sistema Linux 185<br />

8.1 Processo de inicialização <strong>do</strong> Linux . . . . . . . . . . . . . . . . . 185<br />

8.2 O processo init . . . . . . . . . . . . . . . . . . . . . . . . . 189<br />

8.3 Configuração <strong>do</strong> sistema via /etc/sysconfig . . . . . . . . . . . . . . 198<br />

9 O Carrega<strong>do</strong>r de Boot 201<br />

9.1 Selecionan<strong>do</strong> um carrega<strong>do</strong>r de boot . . . . . . . . . . . . . . . . 202<br />

9.2 Inicializan<strong>do</strong> com o GRUB . . . . . . . . . . . . . . . . . . . . . 202<br />

9.3 Configuran<strong>do</strong> o carrega<strong>do</strong>r de boot com o YaST . . . . . . . . . . . 212<br />

9.4 Desinstalan<strong>do</strong> a controla<strong>do</strong>ra de boot <strong>do</strong> Linux . . . . . . . . . . . . 217<br />

9.5 Crian<strong>do</strong> CDs de boot . . . . . . . . . . . . . . . . . . . . . . . 217<br />

9.6 A tela gráfica <strong>do</strong> <strong>SUSE</strong> . . . . . . . . . . . . . . . . . . . . . . 219<br />

9.7 Solução de problemas . . . . . . . . . . . . . . . . . . . . . . 219<br />

9.8 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 221<br />

10 Recursos especiais <strong>do</strong> <strong>SUSE</strong> Linux 223<br />

10.1 Informações sobre pacotes de s<strong>of</strong>tware especiais . . . . . . . . . . . 223<br />

10.2 Consoles virtuais . . . . . . . . . . . . . . . . . . . . . . . . . 230<br />

10.3 Mapeamento de tecla<strong>do</strong> . . . . . . . . . . . . . . . . . . . . . 230<br />

10.4 Configurações de idioma e específicas de país . . . . . . . . . . . . 231<br />

11 Operação da impressora 237<br />

11.1 Fluxo de trabalho <strong>do</strong> sistema de impressão . . . . . . . . . . . . . 239<br />

11.2 Méto<strong>do</strong>s e protocolos de conexão de impressoras . . . . . . . . . . 239<br />

11.3 Instalação <strong>do</strong> s<strong>of</strong>tware . . . . . . . . . . . . . . . . . . . . . . 240<br />

11.4 Configuração da impressora . . . . . . . . . . . . . . . . . . . . 241<br />

11.5 Configuração de aplicativos . . . . . . . . . . . . . . . . . . . . 247<br />

11.6 Recursos especiais <strong>do</strong> <strong>SUSE</strong> Linux . . . . . . . . . . . . . . . . . . 248<br />

11.7 Solução de problemas . . . . . . . . . . . . . . . . . . . . . . 253<br />

12 Gerenciamento de dispositivo de kernel dinâmico com udev 261<br />

12.1 O diretório /dev . . . . . . . . . . . . . . . . . . . . . . . . 261<br />

12.2 udev e uevents de kernel . . . . . . . . . . . . . . . . . . . . . 262<br />

12.3 Drivers, módulos de kernel e dispositivos . . . . . . . . . . . . . . 262<br />

12.4 Inicialização e configuração <strong>do</strong> dispositivo inicial . . . . . . . . . . . 263<br />

12.5 Depuran<strong>do</strong> eventos <strong>do</strong> udev . . . . . . . . . . . . . . . . . . . . 264<br />

12.6 Influencian<strong>do</strong> o tratamento de evento de dispositivo de kernel com regras <strong>do</strong> udev<br />

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


12.7 Nomeação de dispositivo persistente . . . . . . . . . . . . . . . . 265<br />

12.8 O pacote de hotplug substituí<strong>do</strong> . . . . . . . . . . . . . . . . . . 266<br />

12.9 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 267<br />

13 Sistemas de arquivos no Linux 269<br />

13.1 Terminologia . . . . . . . . . . . . . . . . . . . . . . . . . . 269<br />

13.2 Principais sistemas de arquivos no Linux . . . . . . . . . . . . . . . 270<br />

13.3 Outros sistemas de arquivos suporta<strong>do</strong>s . . . . . . . . . . . . . . . 276<br />

13.4 LFS (Large File Support - Suporte a Arquivos Grandes) no Linux . . . . . 278<br />

13.5 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 279<br />

14 O sistema X Win<strong>do</strong>w 281<br />

14.1 Configuração <strong>do</strong> X11 com o SaX2 . . . . . . . . . . . . . . . . . 281<br />

14.2 Otimizan<strong>do</strong> a configuração <strong>do</strong> X . . . . . . . . . . . . . . . . . . 283<br />

14.3 Instalan<strong>do</strong> e configuran<strong>do</strong> fontes . . . . . . . . . . . . . . . . . . 289<br />

14.4 Configuração 3D <strong>do</strong> OpenGL . . . . . . . . . . . . . . . . . . . 295<br />

15 FreeNX: controlan<strong>do</strong> outro computa<strong>do</strong>r remotamente 299<br />

15.1 Noções básicas <strong>do</strong> NX . . . . . . . . . . . . . . . . . . . . . . 299<br />

15.2 Configuração avançada <strong>do</strong> FreeNX . . . . . . . . . . . . . . . . . 302<br />

15.3 Solução de problemas . . . . . . . . . . . . . . . . . . . . . . 308<br />

15.4 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 311<br />

16 Autenticação com o PAM 313<br />

16.1 Estrutura de um arquivo de configuração PAM . . . . . . . . . . . . 314<br />

16.2 A configuração PAM <strong>do</strong> sshd . . . . . . . . . . . . . . . . . . . 316<br />

16.3 Configuração de módulos PAM . . . . . . . . . . . . . . . . . . 318<br />

16.4 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 320<br />

17 Virtualização com o Xen 323<br />

17.1 Instalação <strong>do</strong> Xen . . . . . . . . . . . . . . . . . . . . . . . . 325<br />

17.2 Instalação <strong>do</strong> <strong>do</strong>mínio . . . . . . . . . . . . . . . . . . . . . . 325<br />

17.3 Inician<strong>do</strong> e controlan<strong>do</strong> <strong>do</strong>mínios <strong>do</strong> Xen com xm . . . . . . . . . . 326<br />

17.4 Solução de problemas . . . . . . . . . . . . . . . . . . . . . . 327<br />

17.5 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 328


Parte 4 Serviços 329<br />

18 Rede básica 331<br />

18.1 Roteamento e endereços IP . . . . . . . . . . . . . . . . . . . . 335<br />

18.2 IPv6 — A Internet da próxima geração . . . . . . . . . . . . . . . 338<br />

18.3 Resolução de nomes . . . . . . . . . . . . . . . . . . . . . . . 347<br />

18.4 Configuran<strong>do</strong> uma conexão de rede com o YaST . . . . . . . . . . . 348<br />

18.5 Gerencian<strong>do</strong> conexões de rede com o NetworkManager . . . . . . . . 359<br />

18.6 Configuran<strong>do</strong> uma conexão de rede manualmente . . . . . . . . . . 362<br />

18.7 smpppd como Assistente de Discagem . . . . . . . . . . . . . . . 374<br />

19 Serviços SLP na rede 377<br />

19.1 Registran<strong>do</strong> seus próprios serviços . . . . . . . . . . . . . . . . . 377<br />

19.2 Front ends de SLP no <strong>SUSE</strong> Linux . . . . . . . . . . . . . . . . . . 378<br />

19.3 Ativan<strong>do</strong> o SLP . . . . . . . . . . . . . . . . . . . . . . . . . 379<br />

19.4 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 379<br />

20 Domain Name System (Sistema de Nomes de Domínio) 381<br />

20.1 Terminologia DNS . . . . . . . . . . . . . . . . . . . . . . . . 381<br />

20.2 Configuração com o YaST . . . . . . . . . . . . . . . . . . . . . 382<br />

20.3 Inician<strong>do</strong> o BIND <strong>do</strong> servi<strong>do</strong>r de nomes . . . . . . . . . . . . . . . 390<br />

20.4 O arquivo de configuração /etc/named.conf . . . . . . . . . . . . . 392<br />

20.5 Arquivos de zona . . . . . . . . . . . . . . . . . . . . . . . . 397<br />

20.6 Atualização dinâmica <strong>do</strong>s da<strong>do</strong>s da zona . . . . . . . . . . . . . . 401<br />

20.7 Transações de segurança . . . . . . . . . . . . . . . . . . . . . 402<br />

20.8 Segurança <strong>do</strong> DNS . . . . . . . . . . . . . . . . . . . . . . . . 403<br />

20.9 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 403<br />

21 Usan<strong>do</strong> o NIS 405<br />

21.1 Configuran<strong>do</strong> servi<strong>do</strong>res NIS . . . . . . . . . . . . . . . . . . . . 405<br />

21.2 Configuran<strong>do</strong> clientes NIS . . . . . . . . . . . . . . . . . . . . . 412<br />

22 Compartilhan<strong>do</strong> sistemas de arquivos com o NFS 415<br />

22.1 Importan<strong>do</strong> sistemas de arquivos com o YaST . . . . . . . . . . . . 415<br />

22.2 Importan<strong>do</strong> sistemas de arquivos manualmente . . . . . . . . . . . 416<br />

22.3 Exportan<strong>do</strong> sistemas de arquivos com o YaST . . . . . . . . . . . . 417<br />

22.4 Exportan<strong>do</strong> sistemas de arquivos manualmente . . . . . . . . . . . . 418<br />

22.5 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 420


23 DHCP 421<br />

23.1 Configuran<strong>do</strong> um servi<strong>do</strong>r DHCP com o YaST . . . . . . . . . . . . 422<br />

23.2 Pacotes de s<strong>of</strong>tware DHCP . . . . . . . . . . . . . . . . . . . . 426<br />

23.3 O dhcpd <strong>do</strong> servi<strong>do</strong>r DHCP . . . . . . . . . . . . . . . . . . . . 426<br />

23.4 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 430<br />

24 Sincronização de horário com NTP 431<br />

24.1 Configuran<strong>do</strong> um cliente NTP com YaST . . . . . . . . . . . . . . . 431<br />

24.2 Configuran<strong>do</strong> o xntp na rede . . . . . . . . . . . . . . . . . . . 435<br />

24.3 Configuran<strong>do</strong> um relógio de referência local . . . . . . . . . . . . . 435<br />

25 LDAP — Um serviço de diretório 437<br />

25.1 LDAP versus NIS . . . . . . . . . . . . . . . . . . . . . . . . . 439<br />

25.2 Estrutura de uma árvore de diretórios LDAP . . . . . . . . . . . . . 440<br />

25.3 Configuração <strong>do</strong> servi<strong>do</strong>r com slapd.conf . . . . . . . . . . . . . . 443<br />

25.4 Tratamento de da<strong>do</strong>s no diretório LDAP . . . . . . . . . . . . . . . 448<br />

25.5 O cliente LDAP <strong>do</strong> YaST . . . . . . . . . . . . . . . . . . . . . . 452<br />

25.6 Configuran<strong>do</strong> grupos e usuários LDAP no YaST . . . . . . . . . . . . 460<br />

25.7 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 461<br />

26 Servi<strong>do</strong>r HTTP Apache 463<br />

26.1 Inicialização Rápida . . . . . . . . . . . . . . . . . . . . . . . 463<br />

26.2 Configuran<strong>do</strong> o Apache . . . . . . . . . . . . . . . . . . . . . . 465<br />

26.3 Inician<strong>do</strong> e paran<strong>do</strong> o Apache . . . . . . . . . . . . . . . . . . . 480<br />

26.4 Instalan<strong>do</strong>, ativan<strong>do</strong> e configuran<strong>do</strong> módulos . . . . . . . . . . . . 482<br />

26.5 Obten<strong>do</strong> scripts CGI para trabalhar . . . . . . . . . . . . . . . . . 490<br />

26.6 Configuran<strong>do</strong> um servi<strong>do</strong>r Web seguro com SSL . . . . . . . . . . . 493<br />

26.7 Evitan<strong>do</strong> problemas de segurança . . . . . . . . . . . . . . . . . 499<br />

26.8 Solução de problemas . . . . . . . . . . . . . . . . . . . . . . 501<br />

26.9 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 502<br />

27 Sincronização de arquivos 505<br />

27.1 S<strong>of</strong>tware de sincronização de da<strong>do</strong>s disponível . . . . . . . . . . . . 505<br />

27.2 Determinan<strong>do</strong> fatores para selecionar um programa . . . . . . . . . 509<br />

27.3 Introdução ao Unison . . . . . . . . . . . . . . . . . . . . . . 513<br />

27.4 Introdução ao CVS . . . . . . . . . . . . . . . . . . . . . . . . 515<br />

27.5 Introdução ao Subversion . . . . . . . . . . . . . . . . . . . . . 518<br />

27.6 Introdução ao rsync . . . . . . . . . . . . . . . . . . . . . . . 521<br />

27.7 Introdução ao mailsync . . . . . . . . . . . . . . . . . . . . . . 523


28 Samba 527<br />

28.1 Terminologia . . . . . . . . . . . . . . . . . . . . . . . . . . 527<br />

28.2 Inician<strong>do</strong> e interrompen<strong>do</strong> o Samba . . . . . . . . . . . . . . . . 529<br />

28.3 Configuran<strong>do</strong> um servi<strong>do</strong>r Samba . . . . . . . . . . . . . . . . . 529<br />

28.4 Configuran<strong>do</strong> clientes . . . . . . . . . . . . . . . . . . . . . . 535<br />

28.5 Samba como servi<strong>do</strong>r de login . . . . . . . . . . . . . . . . . . . 536<br />

28.6 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 537<br />

29 O Servi<strong>do</strong>r Proxy Squid 539<br />

29.1 Alguns fatos sobre caches proxy . . . . . . . . . . . . . . . . . . 540<br />

29.2 Requisitos <strong>do</strong> sistema . . . . . . . . . . . . . . . . . . . . . . . 542<br />

29.3 Inician<strong>do</strong> o Squid . . . . . . . . . . . . . . . . . . . . . . . . 543<br />

29.4 O arquivo de configuração /etc/squid/squid.conf . . . . . . . . . . . 546<br />

29.5 Configuran<strong>do</strong> um proxy transparente . . . . . . . . . . . . . . . . 551<br />

29.6 cachemgr.cgi . . . . . . . . . . . . . . . . . . . . . . . . . . 554<br />

29.7 squidGuard . . . . . . . . . . . . . . . . . . . . . . . . . . . 556<br />

29.8 Geração de relatório de cache com o Calamaris . . . . . . . . . . . 558<br />

29.9 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 559<br />

Parte 5 Mobilidade 561<br />

30 Computação móvel com o Linux 563<br />

30.1 Laptops . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563<br />

30.2 Hardware móvel . . . . . . . . . . . . . . . . . . . . . . . . . 571<br />

30.3 Telefones celulares e PDAs . . . . . . . . . . . . . . . . . . . . 572<br />

30.4 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 572<br />

31 PCMCIA 575<br />

31.1 Controlan<strong>do</strong> placas PCMCIA usan<strong>do</strong> pccardctl . . . . . . . . . . . . 576<br />

31.2 PCMCIA em detalhes . . . . . . . . . . . . . . . . . . . . . . . 576<br />

31.3 Solução de problemas . . . . . . . . . . . . . . . . . . . . . . 579<br />

32 System Configuration Pr<strong>of</strong>ile Management 583<br />

32.1 Terminologia . . . . . . . . . . . . . . . . . . . . . . . . . . 584<br />

32.2 Configuran<strong>do</strong> o SCPM . . . . . . . . . . . . . . . . . . . . . . 584<br />

32.3 Configuran<strong>do</strong> o SCPM usan<strong>do</strong> uma interface gráfica de usuário . . . . . 585<br />

32.4 Configuran<strong>do</strong> o SCPM com a linha de coman<strong>do</strong> . . . . . . . . . . . 592<br />

32.5 Solução de problemas . . . . . . . . . . . . . . . . . . . . . . 595<br />

32.6 Mais informações . . . . . . . . . . . . . . . . . . . . . . . . 596


33 Gerenciamento de energia 597<br />

33.1 Funções de economia de energia . . . . . . . . . . . . . . . . . . 598<br />

33.2 APM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599<br />

33.3 ACPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600<br />

33.4 Descanso <strong>do</strong> disco rígi<strong>do</strong> . . . . . . . . . . . . . . . . . . . . . 608<br />

33.5 O Pacote powersave . . . . . . . . . . . . . . . . . . . . . . . 610<br />

33.6 O módulo Gerenciamento de energia YaST . . . . . . . . . . . . . . 618<br />

34 Comunicação sem fio 623<br />

34.1 LAN sem fio . . . . . . . . . . . . . . . . . . . . . . . . . . . 623<br />

34.2 Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635<br />

34.3 Transmissão de da<strong>do</strong>s infravermelhos . . . . . . . . . . . . . . . . 647<br />

Índice Remissivo 651


Sobre este guia<br />

Este manual <strong>of</strong>erece uma visão geral <strong>do</strong> <strong>SUSE</strong> Linux. Ele se destina principalmente a<br />

administra<strong>do</strong>res de sistemas e usuários <strong>do</strong>mésticos com conhecimentos básicos de<br />

administração de sistemas. Este manual apresenta uma seleção de aplicativos necessários<br />

na vida quotidiana e <strong>of</strong>erece descrições detalhadas de cenários de instalação e<br />

configuração avançadas.<br />

Cenários de distribuição avançada<br />

Informações sobre como distribuir o <strong>SUSE</strong> Linux em ambientes complexos.<br />

Administração<br />

Informações sobre segurança no sistema <strong>SUSE</strong> Linux, controles de acesso a sistemas<br />

de arquivos e alguns importantes utilitários para administra<strong>do</strong>res <strong>do</strong> Linux.<br />

Sistema<br />

Informações sobre o funcionamento <strong>do</strong>s componentes <strong>do</strong> sistema Linux e detalhes<br />

sobre sua interação.<br />

Serviços<br />

Informações sobre como configurar os diversos serviços de rede e de arquivos<br />

<strong>of</strong>ereci<strong>do</strong>s pelo <strong>SUSE</strong> Linux.<br />

Mobilidade<br />

Informações básicas sobre computação móvel com o <strong>SUSE</strong> Linux e configuração<br />

das diversas opções de computação sem fio, gerenciamento de energia e<br />

gerenciamento de perfil.<br />

1 Feedback<br />

Queremos receber seus comentários e sugestões sobre este manual e sobre a<br />

<strong>do</strong>cumentação restante que acompanha este produto. Use a função Comentários <strong>do</strong><br />

Usuário, situada na parte inferior de cada página da <strong>do</strong>cumentação online e digite seus<br />

comentários.


xii Referência<br />

2 <strong>Documentação</strong> adicional<br />

Há outros manuais disponíveis sobre o produto <strong>SUSE</strong> Linux: online em http://www<br />

.novell.com/<strong>do</strong>cumentation/ ou no sistema instala<strong>do</strong> em /usr/share/<br />

<strong>do</strong>c/manual/:<br />

Inicialização <strong>do</strong> <strong>SUSE</strong> Linux<br />

Este guia apresenta o procedimento de instalação <strong>do</strong> <strong>SUSE</strong> Linux e o uso básico<br />

<strong>do</strong> ambiente de área de trabalho. Uma versão online deste <strong>do</strong>cumento pode ser<br />

encontrada em http://www.novell.com/<strong>do</strong>cumentation/suse101/<br />

Aplicativos <strong>do</strong> <strong>SUSE</strong> Linux<br />

Este guia apresenta uma seleção das ferramentas mais importantes fornecidas pelo<br />

<strong>SUSE</strong> Linux. Uma versão online deste <strong>do</strong>cumento pode ser encontrada em<br />

http://www.novell.com/<strong>do</strong>cumentation/suse101/.<br />

Guia de Administração <strong>do</strong> Novell AppArmor 2.0<br />

Este guia contém informações detalhadas sobre o uso <strong>do</strong> AppArmor em seu<br />

ambiente. Uma versão online deste <strong>do</strong>cumento pode ser encontrada em http://<br />

www.novell.com/<strong>do</strong>cumentation/apparmor/.<br />

3 Convenções da <strong>do</strong>cumentação<br />

As seguintes convenções tipográficas são usadas neste manual:<br />

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

• marca<strong>do</strong>r: substitua marca<strong>do</strong>r pelo valor real<br />

• PATH: a variável de ambiente PATH<br />

• ls, --help: coman<strong>do</strong>s, opções e parâmetros<br />

• user: usuários ou grupos<br />

• Alt , Alt + F1 : uma tecla ou combinação de teclas para pressionar, mostradas em<br />

maiúsculas como no tecla<strong>do</strong><br />

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


• Pingüins dançan<strong>do</strong> (Capítulo Pingüins, ↑Referência): Referência a um capítulo em<br />

outro manual.<br />

4 Sobre este manual<br />

Este livro é escrito em Nov<strong>do</strong>c, um subconjunto de DocBook (consulte http://www<br />

.<strong>do</strong>cbook.org). Os arquivos de origem XML foram valida<strong>do</strong>s por xmllint,<br />

processa<strong>do</strong>s por xsltproc e converti<strong>do</strong>s em HTML usan<strong>do</strong> uma versão personalizada<br />

das folhas de estilo de Norman Walsh.<br />

5 Reconhecimento<br />

Os desenvolve<strong>do</strong>res <strong>do</strong> Linux estão voluntariamente empenha<strong>do</strong>s com a promoção <strong>do</strong><br />

desenvolvimento <strong>do</strong> Linux em escala global. Agradecemos por seus esforços — esta<br />

distribuição não seria possível sem eles. Ademais, gostaríamos de agradecer a Frank<br />

Zappa e a Pawar. Agradecimentos especiais, claro, a Linus Torvalds.<br />

Divirta-se!<br />

Equipe <strong>SUSE</strong><br />

Sobre este guia xiii


Parte 1. Cenários de distribuição<br />

avançada


Instalação remota<br />

O <strong>SUSE</strong> Linux pode ser instala<strong>do</strong> de várias maneiras. Como na instalação comum de<br />

CD ou DVD abordada no Capítulo Instalação com o YaST (↑Inicialização), você pode<br />

escolher entre vários méto<strong>do</strong>s basea<strong>do</strong>s em rede ou até mesmo optar por um méto<strong>do</strong><br />

totalmente sem intervenção para a instalação <strong>do</strong> <strong>SUSE</strong> Linux.<br />

Cada méto<strong>do</strong> é apresenta<strong>do</strong> por meio de duas listas de verificação breves: uma que<br />

relaciona os pré-requisitos <strong>do</strong> méto<strong>do</strong> e outra que ilustra o procedimento básico. São<br />

forneci<strong>do</strong>s mais detalhes para todas as técnicas usadas nos cenários de instalação.<br />

NOTA<br />

Nas seções a seguir, o sistema que manterá a instalação <strong>do</strong> seu novo <strong>SUSE</strong><br />

Linux é conheci<strong>do</strong> como sistema de destino ou destino de instalação. O termo<br />

fonte de instalação é usa<strong>do</strong> para todas as fontes de da<strong>do</strong>s de instalação. Isso<br />

inclui mídia física, como CD e DVD e servi<strong>do</strong>res de rede que distribuem os<br />

da<strong>do</strong>s de instalação na sua rede.<br />

1.1 Cenários de instalação para<br />

instalação remota<br />

Esta seção apresenta os cenários de instalação mais comuns para instalações remotas.<br />

Para cada cenário, verifique cuida<strong>do</strong>samente a lista de pré-requisitos e siga o<br />

procedimento descrito para este cenário. Se necessitar de instruções detalhadas para<br />

uma etapa específica, siga os links forneci<strong>do</strong>s para cada uma.<br />

1<br />

Instalação remota 17


18 Referência<br />

IMPORTANTE<br />

A configuração <strong>do</strong> sistema X Win<strong>do</strong>w não faz parte de nenhum processo de<br />

instalação remota. Após o término da instalação, efetue login no sistema de<br />

destino como root, digite telinit 3 e inicie SaX2 para configurar o hardware<br />

de vídeo, como descrito na Seção 14.1, “Configuração <strong>do</strong> X11 com o SaX2”<br />

(p 281).<br />

1.1.1 Instalação remota simples por VNC:<br />

configuração de rede estática<br />

Este tipo de instalação ainda requer algum grau de acesso físico ao sistema de destino<br />

para inicializar na instalação. A instalação em si é inteiramente controlada por uma<br />

estação de trabalho remota usan<strong>do</strong> VNC para se conectar ao programa de instalação.<br />

A interação <strong>do</strong> usuário é necessária, como na instalação manual no Capítulo Instalação<br />

com o YaST (↑Inicialização).<br />

Para este tipo de instalação, verifique se os seguintes requisitos foram atendi<strong>do</strong>s:<br />

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

• Sistema de destino com conexão de rede ativa<br />

• Sistema de controle com conexão de rede ativa e s<strong>of</strong>tware visualiza<strong>do</strong>r VNC ou<br />

browser habilita<strong>do</strong> para Java (Firefox, Konqueror, Internet Explorer ou Opera)<br />

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

• Endereços IP estático váli<strong>do</strong>s já atribuí<strong>do</strong>s à fonte de instalação e ao sistema de<br />

controle<br />

• Endereços IP estático váli<strong>do</strong>s para atribuir ao sistema de destino<br />

Para executar este tipo de instalação, proceda da seguinte maneira:<br />

1 Configure a fonte de instalação como descrito na Seção 1.2, “Configuran<strong>do</strong> o<br />

servi<strong>do</strong>r que mantém as fontes de instalação” (p 26).


2 Inicialize o sistema de destino usan<strong>do</strong> o primeiro CD ou DVD <strong>do</strong> kit de mídia<br />

<strong>do</strong> <strong>SUSE</strong> Linux.<br />

3 Quan<strong>do</strong> a tela de inicialização <strong>do</strong> sistema de destino for exibida, use o prompt<br />

de opções de inicialização para definir as opções de VNC apropriadas e o endereço<br />

da fonte de instalação. Isso está descrito detalhadamente na Seção 1.4,<br />

“Inicializan<strong>do</strong> o sistema de destino para instalação” (p 46).<br />

O sistema de destino é inicializa<strong>do</strong> em um ambiente basea<strong>do</strong> em texto,<br />

apresentan<strong>do</strong> o endereço de rede e número de exibição sob o qual o ambiente de<br />

instalação gráfico pode ser endereça<strong>do</strong> por qualquer aplicativo visualiza<strong>do</strong>r VNC<br />

ou browser. As instalações VNC se anunciam em OpenSLP e podem ser<br />

encontradas usan<strong>do</strong>-se o Konqueror no mo<strong>do</strong> service:// ou slp://.<br />

4 Na estação de trabalho de controle, abra um aplicativo de visualização VNC ou<br />

browser da Web e conecte-se ao sistema de destino como descrito na Seção 1.5.1,<br />

“Instalação VNC” (p 51).<br />

5 Execute a instalação como descrito no Capítulo Instalação com o YaST<br />

(↑Inicialização).<br />

Será necessário reconectar-se ao sistema de destino depois de reinicializa<strong>do</strong>, para<br />

concluir a parte final da instalação.<br />

6 Conclua a instalação.<br />

1.1.2 Instalação remota simples por VNC:<br />

configuração de rede dinâmica por<br />

DHCP<br />

Este tipo de instalação ainda requer algum grau de acesso físico ao sistema de destino<br />

para inicializar na instalação. A configuração de rede é feita com DHCP. A instalação<br />

em si é inteiramente controlada por uma estação de trabalho remota usan<strong>do</strong> VNC para<br />

conectar-se ao instala<strong>do</strong>r, mas ainda requer a interação <strong>do</strong> usuário no trabalho real de<br />

configuração.<br />

Para este tipo de instalação, verifique se os seguintes requisitos foram atendi<strong>do</strong>s:<br />

Instalação remota 19


20 Referência<br />

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

• Sistema de destino com conexão de rede ativa<br />

• Sistema de controle com conexão de rede ativa e s<strong>of</strong>tware visualiza<strong>do</strong>r VNC ou<br />

browser habilita<strong>do</strong> para Java (Firefox, Konqueror, Internet Explorer ou Opera)<br />

• Mídia física de inicialização (CD, DVD, disco de inicialização personaliza<strong>do</strong>) para<br />

inicializar o sistema de destino<br />

• Servi<strong>do</strong>r DHCP em execução fornecen<strong>do</strong> endereços IP<br />

Para executar este tipo de instalação, proceda da seguinte maneira:<br />

1 Configure a fonte de instalação como descrito na Seção 1.2, “Configuran<strong>do</strong> o<br />

servi<strong>do</strong>r que mantém as fontes de instalação” (p 26). Escolha um servi<strong>do</strong>r de<br />

rede NFS, HTTP ou FTP. No caso de uma fonte de instalação SMB, consulte a<br />

Seção 1.2.5, “Gerencian<strong>do</strong> uma fonte de instalação SMB” (p 35).<br />

2 Inicialize o sistema de destino usan<strong>do</strong> o primeiro CD ou DVD <strong>do</strong> kit de mídia<br />

<strong>do</strong> <strong>SUSE</strong> Linux.<br />

3 Quan<strong>do</strong> a tela de inicialização <strong>do</strong> sistema de destino for exibida, use o prompt<br />

de opções de inicialização para definir as opções de VNC apropriadas e o endereço<br />

da fonte de instalação. Isso está descrito detalhadamente na Seção 1.4,<br />

“Inicializan<strong>do</strong> o sistema de destino para instalação” (p 46).<br />

O sistema de destino é inicializa<strong>do</strong> em um ambiente basea<strong>do</strong> em texto,<br />

apresentan<strong>do</strong> o endereço de rede e número de exibição sob o qual o ambiente de<br />

instalação gráfico pode ser endereça<strong>do</strong> por qualquer aplicativo visualiza<strong>do</strong>r VNC<br />

ou browser. As instalações VNC se anunciam em OpenSLP e podem ser<br />

encontradas usan<strong>do</strong>-se o Konqueror no mo<strong>do</strong> service:// ou slp://.<br />

4 Na estação de trabalho de controle, abra um aplicativo de visualização VNC ou<br />

browser da Web e conecte-se ao sistema de destino como descrito na Seção 1.5.1,<br />

“Instalação VNC” (p 51).<br />

5 Execute a instalação como descrito no Capítulo Instalação com o YaST<br />

(↑Inicialização).<br />

Será necessário reconectar-se ao sistema de destino depois de reinicializa<strong>do</strong>, para<br />

concluir a parte final da instalação.


6 Conclua a instalação.<br />

1.1.3 Instalação remota por VNC:<br />

inicialização PXE e Wake on LAN<br />

Este tipo de instalação ocorre totalmente sem intervenção. A máquina de destino é<br />

inicializada remotamente. A interação <strong>do</strong> usuário só é necessária para a instalação em<br />

si. Este méto<strong>do</strong> é adequa<strong>do</strong> para distribuições entre sites.<br />

Para executar este tipo de instalação, verifique se os seguintes requisitos foram atendi<strong>do</strong>s:<br />

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

• Servi<strong>do</strong>r TFTP<br />

• Servi<strong>do</strong>r DHCP em execução para sua rede<br />

• Sistema de destino com recurso de inicialização PXE, rede e Wake on LAN,<br />

conecta<strong>do</strong> à rede<br />

• Sistema de controle com conexão de rede ativa e s<strong>of</strong>tware visualiza<strong>do</strong>r VNC ou<br />

browser habilita<strong>do</strong> para Java (Firefox, Konqueror, Internet Explorer ou Opera)<br />

Para executar este tipo de instalação, proceda da seguinte maneira:<br />

1 Configure a fonte de instalação como descrito na Seção 1.2, “Configuran<strong>do</strong> o<br />

servi<strong>do</strong>r que mantém as fontes de instalação” (p 26). Escolha um servi<strong>do</strong>r de<br />

rede NFS, HTTP, FTP ou configure uma fonte de instalação SMB como descrito<br />

na Seção 1.2.5, “Gerencian<strong>do</strong> uma fonte de instalação SMB” (p 35).<br />

2 Configure um servi<strong>do</strong>r TFTP para manter uma imagem de inicialização que possa<br />

ser extraída pelo sistema de destino. Isso está descrito na Seção 1.3.2,<br />

“Configuran<strong>do</strong> um servi<strong>do</strong>r TFTP” (p 38).<br />

3 Configure um servi<strong>do</strong>r DHCP para fornecer endereços IP a todas as máquinas e<br />

revelar a localização <strong>do</strong> servi<strong>do</strong>r TFTP para o sistema de destino. Isso está descrito<br />

na Seção 1.3.1, “Configuran<strong>do</strong> um servi<strong>do</strong>r DHCP” (p 37).<br />

Instalação remota 21


22 Referência<br />

4 Prepare o sistema de destino para a inicialização PXE. Isso está descrito<br />

detalhadamente na Seção 1.3.5, “Preparan<strong>do</strong> o sistema de destino para<br />

inicialização PXE” (p 45).<br />

5 Inicie o processo de inicialização <strong>do</strong> sistema de destino usan<strong>do</strong> Wake on LAN.<br />

Isso está descrito na Seção 1.3.7, “Wake on LAN” (p 45).<br />

6 Na estação de trabalho de controle, abra um aplicativo de visualização VNC ou<br />

browser da Web e conecte-se ao sistema de destino como descrito na Seção 1.5.1,<br />

“Instalação VNC” (p 51).<br />

7 Execute a instalação como descrito no Capítulo Instalação com o YaST<br />

(↑Inicialização).<br />

Será necessário reconectar-se ao sistema de destino depois de reinicializa<strong>do</strong>, para<br />

concluir a parte final da instalação.<br />

8 Conclua a instalação.<br />

1.1.4 Instalação remota simples por SSH:<br />

configuração de rede estática<br />

Este tipo de instalação ainda requer algum grau de acesso físico ao sistema de destino<br />

para a inicialização na instalação e para determinar o endereço IP <strong>do</strong> destino de<br />

instalação. A instalação em si é inteiramente controlada de uma estação de trabalho<br />

remota usan<strong>do</strong> SSH para se conectar ao instala<strong>do</strong>r. A interação <strong>do</strong> usuário é necessária,<br />

como na instalação comum descrita no Capítulo Instalação com o YaST (↑Inicialização).<br />

Para este tipo de instalação, verifique se os seguintes requisitos foram atendi<strong>do</strong>s:<br />

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

• Sistema de destino com conexão de rede ativa<br />

• Sistema de controle com conexão de rede ativa e s<strong>of</strong>tware cliente SSH ativo.<br />

• Mídia física de inicialização (CD, DVD, disco de inicialização personaliza<strong>do</strong>) para<br />

o sistema de destino


• Endereços IP estático váli<strong>do</strong>s já atribuí<strong>do</strong>s à fonte de instalação e ao sistema de<br />

controle<br />

• Endereços IP estático váli<strong>do</strong>s para atribuir ao sistema de destino<br />

Para executar este tipo de instalação, proceda da seguinte maneira:<br />

1 Configure a fonte de instalação como descrito na Seção 1.2, “Configuran<strong>do</strong> o<br />

servi<strong>do</strong>r que mantém as fontes de instalação” (p 26).<br />

2 Inicialize o sistema de destino usan<strong>do</strong> o primeiro CD ou DVD <strong>do</strong> kit de mídia<br />

<strong>do</strong> <strong>SUSE</strong> Linux.<br />

3 Quan<strong>do</strong> a tela de inicialização <strong>do</strong> sistema de destino for exibida, use o prompt<br />

de opções de inicialização para definir os parâmetros apropria<strong>do</strong>s de conexão de<br />

rede, o endereço da fonte de instalação e a habilitação SSH. Isso está descrito<br />

detalhadamente na Seção 1.4.3, “Usan<strong>do</strong> opções de inicialização personalizadas”<br />

(p 48).<br />

O sistema de destino é inicializa<strong>do</strong> em um ambiente basea<strong>do</strong> em texto,<br />

apresentan<strong>do</strong> o endereço de rede sob o qual o ambiente de instalação gráfica<br />

pode ser endereça<strong>do</strong> por qualquer cliente SSH.<br />

4 Na estação de trabalho de controle, abra uma janela de terminal e conecte-se ao<br />

sistema de destino como descrito em “Conectan<strong>do</strong>-se ao programa de instalação”<br />

(p 53).<br />

5 Execute a instalação como descrito no Capítulo Instalação com o YaST<br />

(↑Inicialização).<br />

Será necessário reconectar-se ao sistema de destino depois de reinicializa<strong>do</strong>, para<br />

concluir a parte final da instalação.<br />

6 Conclua a instalação.<br />

Instalação remota 23


24 Referência<br />

1.1.5 Instalação remota simples por SSH:<br />

configuração de rede dinâmica por<br />

DHCP<br />

Este tipo de instalação ainda requer algum grau de acesso físico ao sistema de destino<br />

para a inicialização na instalação e para determinar o endereço IP <strong>do</strong> destino de<br />

instalação. A instalação em si é inteiramente controlada por uma estação de trabalho<br />

remota usan<strong>do</strong> VNC para conectar-se ao instala<strong>do</strong>r, mas ainda requer a interação <strong>do</strong><br />

usuário no trabalho real de configuração.<br />

Para este tipo de instalação, verifique se os seguintes requisitos foram atendi<strong>do</strong>s:<br />

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

• Sistema de destino com conexão de rede ativa<br />

• Sistema de controle com conexão de rede ativa e s<strong>of</strong>tware cliente SSH ativo.<br />

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

• Servi<strong>do</strong>r DHCP em execução fornecen<strong>do</strong> endereços IP<br />

Para executar este tipo de instalação, proceda da seguinte maneira:<br />

1 Configure a fonte de instalação como descrito na Seção 1.2, “Configuran<strong>do</strong> o<br />

servi<strong>do</strong>r que mantém as fontes de instalação” (p 26). Escolha um servi<strong>do</strong>r de<br />

rede NFS, HTTP ou FTP. No caso de uma fonte de instalação SMB, consulte a<br />

Seção 1.2.5, “Gerencian<strong>do</strong> uma fonte de instalação SMB” (p 35).<br />

2 Inicialize o sistema de destino usan<strong>do</strong> o primeiro CD ou DVD <strong>do</strong> kit de mídia<br />

<strong>do</strong> <strong>SUSE</strong> Linux.<br />

3 Quan<strong>do</strong> a tela de inicialização <strong>do</strong> sistema de destino for exibida, use o prompt<br />

de opções de inicialização para passar os parâmetros apropria<strong>do</strong>s de conexão de<br />

rede, a localização da fonte de instalação e a habilitação SSH. Consulte a<br />

Seção 1.4.3, “Usan<strong>do</strong> opções de inicialização personalizadas” (p 48) para obter<br />

instruções detalhadas sobre o uso desses parâmetros.


O sistema de destino é inicializa<strong>do</strong> em um ambiente basea<strong>do</strong> em texto,<br />

apresentan<strong>do</strong> o endereço de rede sob o qual o ambiente de instalação gráfica<br />

pode ser endereça<strong>do</strong> por qualquer cliente SSH.<br />

4 Na estação de trabalho de controle, abra uma janela de terminal e conecte-se ao<br />

sistema de destino como descrito em “Conectan<strong>do</strong>-se ao programa de instalação”<br />

(p 53).<br />

5 Execute a instalação como descrito no Capítulo Instalação com o YaST<br />

(↑Inicialização).<br />

Será necessário reconectar-se ao sistema de destino depois de reinicializa<strong>do</strong>, para<br />

concluir a parte final da instalação.<br />

6 Conclua a instalação.<br />

1.1.6 Instalação remota por SSH:<br />

inicialização PXE e Wake on LAN<br />

Este tipo de instalação ocorre totalmente sem intervenção. A máquina de destino é<br />

inicializada remotamente.<br />

Para executar este tipo de instalação, verifique se os seguintes requisitos foram atendi<strong>do</strong>s:<br />

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

• Servi<strong>do</strong>r TFTP<br />

• Servi<strong>do</strong>r DHCP em execução para sua rede, fornecen<strong>do</strong> um IP estático para o host<br />

a ser instala<strong>do</strong><br />

• Sistema de destino com recurso de inicialização PXE, rede e Wake on LAN,<br />

conecta<strong>do</strong> à rede<br />

• Sistema de controle com conexão de rede ativa e s<strong>of</strong>tware cliente SSH<br />

Para executar este tipo de instalação, proceda da seguinte maneira:<br />

1 Configure a fonte de instalação como descrito na Seção 1.2, “Configuran<strong>do</strong> o<br />

servi<strong>do</strong>r que mantém as fontes de instalação” (p 26). Escolha um servi<strong>do</strong>r de<br />

Instalação remota 25


26 Referência<br />

rede NFS, HTTP ou FTP. Para obter informações sobre como configurar uma<br />

fonte de instalação SMB, consulte a Seção 1.2.5, “Gerencian<strong>do</strong> uma fonte de<br />

instalação SMB” (p 35).<br />

2 Configure um servi<strong>do</strong>r TFTP para manter uma imagem de inicialização que possa<br />

ser extraída pelo sistema de destino. Isso está descrito na Seção 1.3.2,<br />

“Configuran<strong>do</strong> um servi<strong>do</strong>r TFTP” (p 38).<br />

3 Configure um servi<strong>do</strong>r DHCP para fornecer endereços IP a todas as máquinas e<br />

revelar a localização <strong>do</strong> servi<strong>do</strong>r TFTP para o sistema de destino. Isso está descrito<br />

na Seção 1.3.1, “Configuran<strong>do</strong> um servi<strong>do</strong>r DHCP” (p 37).<br />

4 Prepare o sistema de destino para a inicialização PXE. Isso está descrito<br />

detalhadamente na Seção 1.3.5, “Preparan<strong>do</strong> o sistema de destino para<br />

inicialização PXE” (p 45).<br />

5 Inicie o processo de inicialização <strong>do</strong> sistema de destino usan<strong>do</strong> Wake on LAN.<br />

Isso está descrito na Seção 1.3.7, “Wake on LAN” (p 45).<br />

6 Na estação de trabalho de controle, inicie um cliente SSH e conecte-se ao sistema<br />

de destino como descrito na Seção 1.5.2, “Instalação SSH” (p 53).<br />

7 Execute a instalação como descrito no Capítulo Instalação com o YaST<br />

(↑Inicialização).<br />

Será necessário reconectar-se ao sistema de destino depois de reinicializa<strong>do</strong>, para<br />

concluir a parte final da instalação.<br />

8 Conclua a instalação.<br />

1.2 Configuran<strong>do</strong> o servi<strong>do</strong>r que<br />

mantém as fontes de instalação<br />

Dependen<strong>do</strong> <strong>do</strong> sistema operacional executa<strong>do</strong> na máquina a ser usada como fonte de<br />

instalação em rede para o <strong>SUSE</strong> Linux, há várias opções para a configuração <strong>do</strong> servi<strong>do</strong>r.<br />

A maneira mais fácil de configurar um servi<strong>do</strong>r de instalação é usar o YaST no <strong>SUSE</strong><br />

<strong>LINUX</strong> Enterprise Server 9 ou <strong>SUSE</strong> Linux 9.3 e superior. Em outras versão <strong>do</strong> <strong>SUSE</strong>


<strong>LINUX</strong> Enterprise Server ou <strong>do</strong> <strong>SUSE</strong> Linux, configure a fonte de instalação<br />

manualmente.<br />

DICA<br />

Você pode usar uma máquina Micros<strong>of</strong>t Win<strong>do</strong>ws como servi<strong>do</strong>r de instalação<br />

para a distribuição <strong>do</strong> Linux. Consulte a Seção 1.2.5, “Gerencian<strong>do</strong> uma fonte<br />

de instalação SMB” (p 35) para obter detalhes.<br />

1.2.1 Configuran<strong>do</strong> um servi<strong>do</strong>r de<br />

instalação usan<strong>do</strong> YaST<br />

O YaST <strong>of</strong>erece uma ferramenta gráfica para criar fontes de instalação em rede. Ele<br />

possui suporte a servi<strong>do</strong>res de instalação em rede HTTP, FTP e NFS.<br />

1 Efetue login como root na máquina que deverá atuar como servi<strong>do</strong>r de instalação.<br />

2 Inicie YaST → Diversos → Servi<strong>do</strong>r de Instalação.<br />

3 Selecione Configuração de Servi<strong>do</strong>r.<br />

4 Selecione o tipo de servi<strong>do</strong>r (HTTP, FTP ou NFS).<br />

O serviço de servi<strong>do</strong>r seleciona<strong>do</strong> é inicia<strong>do</strong> automaticamente toda vez que o<br />

sistema inicializa. Se um serviço <strong>do</strong> tipo seleciona<strong>do</strong> já estiver em execução no<br />

seu sistema e você quiser configurá-lo manualmente para o servi<strong>do</strong>r, desative a<br />

configuração automática <strong>do</strong> serviço de servi<strong>do</strong>r com Não configure serviços de<br />

rede. Em ambos os casos, defina o diretório em que os da<strong>do</strong>s da instalação devem<br />

estar disponíveis no servi<strong>do</strong>r.<br />

5 Configure o tipo de servi<strong>do</strong>r necessário.<br />

Esta etapa refere-se à configuração automática <strong>do</strong>s serviços de servi<strong>do</strong>r. Ela é<br />

ignorada quan<strong>do</strong> a configuração automática está desativada. Defina um álias para<br />

o diretório raiz <strong>do</strong> servi<strong>do</strong>r FTP ou HTTP no qual os da<strong>do</strong>s de instalação devem<br />

ser encontra<strong>do</strong>s. A fonte de instalação posteriormente estará localizada em<br />

ftp://IP <strong>do</strong> servi<strong>do</strong>r/Álias/Nome (FTP) ou em http://IP <strong>do</strong><br />

servi<strong>do</strong>r/Álias/Nome (HTTP). Nome significa o nome da fonte de<br />

Instalação remota 27


28 Referência<br />

instalação, que é definida na etapa seguinte. Se você selecionou NFS na etapa<br />

anterior, defina curingas e opções de exportações. O servi<strong>do</strong>r NFS estará<br />

disponível em nfs://IP <strong>do</strong> servi<strong>do</strong>r/Nome. Detalhes sobre NFS e<br />

exportações são encontra<strong>do</strong>s no Capítulo 22, Compartilhan<strong>do</strong> sistemas de<br />

arquivos com o NFS (p 415).<br />

6 Configure a fonte de instalação.<br />

Antes que as mídias de instalação sejam copiadas para seu destino, defina o nome<br />

da fonte de instalação (de preferência, uma abreviação fácil de ser lembrada <strong>do</strong><br />

produto e da versão). O YaST permite fornecer imagens ISO da mídia em vez<br />

de cópias <strong>do</strong>s CDs de instalação. Se desejar, ative a caixa de seleção relevante e<br />

especifique o caminho de diretório no qual os arquivos ISO podem ser encontra<strong>do</strong>s<br />

localmente. Dependen<strong>do</strong> <strong>do</strong> produto a distribuir usan<strong>do</strong> este servi<strong>do</strong>r de instalação,<br />

talvez sejam necessários mais CDs de expansão ou CDs de service pack para<br />

instalar o produto completamente. Se você ativar Solicitar CDs adicionais, o<br />

YaST o lembrará automaticamente de fornecer essas mídias. Para anunciar o<br />

servi<strong>do</strong>r de instalação na rede por OpenSLP, ative a opção adequada.<br />

DICA<br />

Considere anunciar a sua fonte de instalação por OpenSLP se a sua<br />

configuração de rede for compatível com esta opção. Isto o livra de<br />

digitar o caminho de instalação da rede em todas as máquinas de destino.<br />

Os sistemas de destino, inicializa<strong>do</strong>s com a opção de inicialização SLP,<br />

encontrarão a fonte de instalação de rede sem outras configurações.<br />

Para obter detalhes sobre esta opção, consulte a Seção 1.4, “Inicializan<strong>do</strong><br />

o sistema de destino para instalação” (p 46).<br />

7 Faça o upload <strong>do</strong>s da<strong>do</strong>s de instalação.<br />

A etapa mais longa da configuração de um servi<strong>do</strong>r de instalação é copiar os<br />

CDs de instalação. Insira a mídia na seqüência solicitada pelo YaST e aguarde<br />

o término <strong>do</strong> procedimento de cópia. Quan<strong>do</strong> as fontes tiverem si<strong>do</strong><br />

completamente copiadas, volte para a visão geral das fontes de informações<br />

existentes e feche a configuração selecionan<strong>do</strong> Concluir.<br />

O seu servi<strong>do</strong>r de instalação agora está totalmente configura<strong>do</strong> e pronto para<br />

serviço. Ele é inicializa<strong>do</strong> automaticamente toda vez que o sistema é inicia<strong>do</strong>.<br />

Nenhuma outra intervenção é necessária. Você precisa apenas configurar e


inicializar este serviço de forma correta e manualmente se tiver desativa<strong>do</strong> a<br />

configuração automática <strong>do</strong> serviço de rede seleciona<strong>do</strong> com YaST como etapa<br />

inicial.<br />

Para desativar uma fonte de instalação, selecione Mudar na visão geral para chegar a<br />

uma lista de todas as fontes de instalação disponíveis. Escolha a entrada para remover<br />

e selecione Apagar. Este procedimento de exclusão só diz respeito à desativação <strong>do</strong><br />

serviço de servi<strong>do</strong>r. Os da<strong>do</strong>s de instalação em si permanecem no diretório escolhi<strong>do</strong>.<br />

No entanto, você pode removê-lo manualmente.<br />

Se o seu servi<strong>do</strong>r de instalação fornecer os da<strong>do</strong>s de instalação para mais de um produto<br />

da versão de produto, inicie o módulo de servi<strong>do</strong>r de instalação YaST e selecione<br />

Configurar na visão geral das fontes de instalação existentes para configurar a nova<br />

fonte de instalação.<br />

1.2.2 Configuração manual de uma fonte de<br />

instalação NFS<br />

A configuração de uma fonte NFS para instalação é feita basicamente em duas etapas.<br />

Na primeira etapa, crie a estrutura de diretório que manterá os da<strong>do</strong>s de instalação e<br />

copie a mídia de instalação nessa estrutura. Em seguida, exporte o diretório que manterá<br />

os da<strong>do</strong>s de instalação para a rede.<br />

Para criar um diretório para manter os da<strong>do</strong>s de instalação, proceda da seguinte<br />

maneira:<br />

1 Efetue login como Root.<br />

2 Crie um diretório que posteriormente manterá to<strong>do</strong>s os da<strong>do</strong>s de instalações e vá<br />

até ele. Por exemplo:<br />

mkdir install/produto/versão_<strong>do</strong>_produto<br />

cd install/produto/versão_<strong>do</strong>_produto<br />

Substitua produto por uma abreviação <strong>do</strong> nome <strong>do</strong> produto (neste caso, <strong>SUSE</strong><br />

Linux) e versão_<strong>do</strong>_produto por uma string que contenha o nome e a versão<br />

<strong>do</strong> produto.<br />

3 Para cada CD conti<strong>do</strong> no kit de mídia, execute os seguintes coman<strong>do</strong>s:<br />

Instalação remota 29


30 Referência<br />

a Copie to<strong>do</strong> o conteú<strong>do</strong> <strong>do</strong> CD de instalação para o diretório <strong>do</strong> servi<strong>do</strong>r de<br />

instalação:<br />

cp -a /media/caminho_unidade_de_CD-ROM .<br />

Substitua caminho_unidade_de_CD-ROM pelo caminho real no qual<br />

está endereçada sua unidade de CD ou DVD. Dependen<strong>do</strong> <strong>do</strong> tipo de unidade<br />

usa<strong>do</strong> no seu sistema, as opções são cdrom, cdrecorder, dvd ou<br />

dvdrecorder.<br />

b Renomeie o diretório com o número <strong>do</strong> CD:<br />

mv caminho_unidade_de_CD-ROM CDx<br />

Substitua x pelo número real <strong>do</strong> seu CD.<br />

Para exportar as fontes de instalação por NFS usan<strong>do</strong> YaST, proceda da seguinte<br />

maneira:<br />

1 Efetue login como Root.<br />

2 Inicie YaST → Serviços de Rede → Servi<strong>do</strong>r NFS.<br />

3 Selecione Iniciar Servi<strong>do</strong>r NFS e Abrir Porta no Firewall e clique em Próximo.<br />

4 Selecione Adicionar Diretório e digite o caminho <strong>do</strong> diretório que mantém os<br />

da<strong>do</strong>s de instalação. Neste caso, é /versão_<strong>do</strong>_produto.<br />

5 Selecione Adicionar Host e digite os nomes de host das máquinas para as quais<br />

exportar os da<strong>do</strong>s de instalação. Em vez de especificar os nomes de host aqui,<br />

você pode usar curingas, faixas de endereços de rede ou apenas o nome de<br />

<strong>do</strong>mínio da sua rede. Digite as opções de exportação adequadas ou mantenha o<br />

padrão, que funciona bem na maioria das configurações. Para obter mais<br />

informações sobre a sintaxe usada na exportação de compartilhamentos NFS,<br />

leia a página de manual sobre exports.<br />

6 Clique em Concluir.<br />

O servi<strong>do</strong>r NFS que mantém as fontes de instalação <strong>do</strong> <strong>SUSE</strong> Linux é inicializa<strong>do</strong><br />

automaticamente e integra<strong>do</strong> ao processo de inicialização.


Se você preferir exportar manualmente as fontes de instalação por NFS em vez de<br />

usar o módulo de servi<strong>do</strong>r NFS <strong>do</strong> YaST, proceda da seguinte maneira:<br />

1 Efetue login como Root.<br />

2 Abra o arquivo /etc/exports e digite a seguinte linha:<br />

/versão_<strong>do</strong>_produto *(ro,root_squash,sync)<br />

Isso exporta o diretório /versão_<strong>do</strong>_produto para qualquer host que faça<br />

parte desta rede ou para qualquer host que possa se conectar com este servi<strong>do</strong>r.<br />

Para limitar o acesso a este servi<strong>do</strong>r, use máscaras de rede ou nomes de <strong>do</strong>mínio<br />

em vez <strong>do</strong> curinga geral *. Consulte a página de manual sobre export para<br />

obter detalhes. Grave e saia deste arquivo de configuração.<br />

3 Para adicionar o serviço NFS à lista de servi<strong>do</strong>res inicia<strong>do</strong>s durante a inicialização<br />

<strong>do</strong> sistema, execute os seguintes coman<strong>do</strong>s:<br />

insserv /etc/init.d/nfsserver<br />

insserv /etc/init.d/portmap<br />

4 Inicie o servi<strong>do</strong>r NFS usan<strong>do</strong> o seguinte coman<strong>do</strong>:<br />

rcnfsserver start<br />

Se você precisar mudar a configuração <strong>do</strong> seu servi<strong>do</strong>r NFS posteriormente,<br />

modifique o arquivo de configuração e reinicie o daemon NFS com<br />

rcnfsserver restart.<br />

Anunciar o servi<strong>do</strong>r NFS por OpenSLP faz o seu endereço ser conheci<strong>do</strong> por to<strong>do</strong>s<br />

os clientes da sua rede.<br />

1 Efetue login como Root.<br />

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

3 Crie um arquivo de configuração chama<strong>do</strong> install.suse.nfs.reg conten<strong>do</strong><br />

as seguintes linhas:<br />

# Register the NFS Installation Server<br />

service:install.suse:nfs://$HOSTNAME/path_instsource/CD1,en,65535<br />

description=NFS Installation Source<br />

Instalação remota 31


32 Referência<br />

Substitua caminho_fonte_inst pelo caminho real da fonte de instalação<br />

no seu servi<strong>do</strong>r.<br />

4 Grave este arquivo de configuração e inicie o daemon OpenSLP usan<strong>do</strong> o seguinte<br />

coman<strong>do</strong>:<br />

rcslpd start<br />

Para obter mais informações sobre OpenSLP, consulte a <strong>do</strong>cumentação <strong>do</strong> pacote<br />

localizada em /usr/share/<strong>do</strong>c/packages/openslp/ ou consulte o Capítulo 19,<br />

Serviços SLP na rede (p 377).<br />

1.2.3 Configuração manual de uma fonte de<br />

instalação FTP<br />

Criar uma fonte de instalação FTP é muito semelhante à criação de uma fonte de<br />

instalação NFS. As fontes de instalação FTP podem ser anunciadas na rede também<br />

usan<strong>do</strong> OpenSLP.<br />

1 Crie um diretório que mantenha as fontes de instalação como descrito na<br />

Seção 1.2.2, “Configuração manual de uma fonte de instalação NFS” (p 29).<br />

2 Configure o servi<strong>do</strong>r FTP para distribuir o conteú<strong>do</strong> <strong>do</strong> seu diretório de instalação:<br />

a Efetue login como root e instale o pacote pure-ftpd (um servi<strong>do</strong>r FTP<br />

simples) usan<strong>do</strong> o gerencia<strong>do</strong>r de pacotes <strong>do</strong> YaST.<br />

b Digite o diretório raiz <strong>do</strong> servi<strong>do</strong>r FTP:<br />

cd/srv/ftp<br />

c Crie um subdiretório que mantenha as fontes de instalação no diretório raiz<br />

<strong>do</strong> FTP:<br />

mkdir fonte_inst<br />

Substitua fonte_inst pelo nome <strong>do</strong> produto.<br />

d Copie o conteú<strong>do</strong> de to<strong>do</strong>s os CDs de instalação no diretório raiz <strong>do</strong> servi<strong>do</strong>r<br />

FTP (semelhante ao procedimento descrito na Seção 1.2.2, “Configuração<br />

manual de uma fonte de instalação NFS” (p 29), Passo 3 (p 29)).


Como alternativa, monte o conteú<strong>do</strong> <strong>do</strong> repositório de instalação já existente<br />

no ambiente raiz de mudanças <strong>do</strong> servi<strong>do</strong>r FTP:<br />

mount --bind caminho_fonte_inst /srv/ftp/fonte_inst<br />

Substitua caminho_fonte_inst e fonte_inst pelos valores<br />

correspondentes à sua configuração. Se precisar tornar os valores<br />

permanentes, adicione-os a /etc/fstab.<br />

e Inicie pure-ftpd:<br />

pure-ftpd &<br />

3 Anuncie a fonte de instalação por OpenSLP, se for suporta<strong>do</strong> pela configuração<br />

da sua rede:<br />

a Crie um arquivo de configuração chama<strong>do</strong> install.suse.ftp.reg<br />

em /etc/slp/reg.d/ com as seguintes linhas:<br />

# Register the FTP Installation Server<br />

service:install.suse:ftp://$HOSTNAME/srv/ftp/instsource/CD1,en,65535<br />

description=FTP Installation Source<br />

Substitua fonte_inst pelo nome real no diretório da fonte de instalação<br />

<strong>do</strong> seu servi<strong>do</strong>r. A linha service: deve ser digitada como uma linha<br />

contínua.<br />

b Grave este arquivo de configuração e inicie o daemon OpenSLP usan<strong>do</strong> o<br />

seguinte coman<strong>do</strong>:<br />

rcslpd start<br />

1.2.4 Configuração manual de uma fonte de<br />

instalação HTTP<br />

Criar uma fonte de instalação HTTP é muito semelhante à criação de uma fonte de<br />

instalação NFS. As fontes de instalação HTTP podem ser anunciadas na rede também<br />

usan<strong>do</strong> OpenSLP.<br />

Instalação remota 33


34 Referência<br />

1 Crie um diretório que mantenha as fontes de instalação como descrito na<br />

Seção 1.2.2, “Configuração manual de uma fonte de instalação NFS” (p 29).<br />

2 Configure o servi<strong>do</strong>r HTTP para distribuir o conteú<strong>do</strong> <strong>do</strong> seu diretório de<br />

instalação:<br />

a Instale o servi<strong>do</strong>r Web <strong>do</strong> Apache como descrito na Seção 26.1.2,<br />

“Instalação” (p 464).<br />

b Digite o diretório raiz <strong>do</strong> servi<strong>do</strong>r HTTP (/srv/www/ht<strong>do</strong>cs) e crie um<br />

subdiretório que manterá as fontes de instalação:<br />

mkdir fonte_inst<br />

Substitua fonte_inst pelo nome <strong>do</strong> produto.<br />

c Crie um link simbólico <strong>do</strong> local das fontes de instalação para o diretório<br />

raiz <strong>do</strong> servi<strong>do</strong>r Web (/srv/www/ht<strong>do</strong>cs):<br />

ln -s /caminho_fonte_inst /srv/www/ht<strong>do</strong>cs/fonte_inst<br />

d Modifique o arquivo de configuração <strong>do</strong> servi<strong>do</strong>r HTTP (/etc/apache2/<br />

default-server.conf) para fazê-lo seguir links simbólicos. Substitua<br />

a seguinte linha:<br />

Options None<br />

por<br />

Options <strong>Index</strong>es FollowSymLinks<br />

e Recarregue a configuração <strong>do</strong> servi<strong>do</strong>r HTTP usan<strong>do</strong> rcapache2<br />

reload.<br />

3 Anuncie a fonte de instalação por OpenSLP, se for suporta<strong>do</strong> pela configuração<br />

da sua rede:<br />

a Crie um arquivo de configuração chama<strong>do</strong> install.suse.http.reg<br />

em /etc/slp/reg.d/ com as seguintes linhas:<br />

# Register the HTTP Installation Server<br />

service:install.suse:http://$HOSTNAME/srv/www/ht<strong>do</strong>cs/instsource/CD1/,en,65535<br />

description=HTTP Installation Source


Substitua caminho_fonte_inst pelo caminho real da fonte de instalação<br />

no seu servi<strong>do</strong>r. A linha service: deve ser digitada como uma linha<br />

contínua.<br />

b Grave este arquivo de configuração e inicie o daemon OpenSLP usan<strong>do</strong><br />

rcslpd restart.<br />

1.2.5 Gerencian<strong>do</strong> uma fonte de instalação<br />

SMB<br />

Com o SMB (Samba), é possível importar as fontes de instalação de um servi<strong>do</strong>r<br />

Micros<strong>of</strong>t Win<strong>do</strong>ws e iniciar a distribuição <strong>do</strong> Linux mesmo sem nenhuma máquina<br />

Linux.<br />

Para configurar um Compartilhamento Win<strong>do</strong>ws exporta<strong>do</strong> manten<strong>do</strong> as suas fontes<br />

de instalação <strong>do</strong> <strong>SUSE</strong> Linux, proceda da seguinte maneira:<br />

1 Efetue login na sua máquina Win<strong>do</strong>ws.<br />

2 Inicie o Explorer e crie uma nova pasta que manterá toda a árvore de instalação<br />

e denomine-a INSTALAR, por exemplo.<br />

3 Exporte este compartilhamento de acor<strong>do</strong> com o procedimento descrito na sua<br />

<strong>do</strong>cumentação <strong>do</strong> Win<strong>do</strong>ws.<br />

4 Digite este compartilhamento e crie uma subpasta, denominada produto.<br />

produto deve ser substituí<strong>do</strong> pelo nome real <strong>do</strong> produto (<strong>SUSE</strong> Linux neste<br />

caso).<br />

5 Copie cada CD <strong>do</strong> <strong>SUSE</strong> Linux em uma pasta separada e denomine essas pastas<br />

CD1, CD2, CD3 etc.<br />

6 Digite o diretório superior <strong>do</strong> compartilhamento exporta<strong>do</strong> (INSTALAR, neste<br />

exemplo) e copie os seguintes arquivos de produto/CD1 para esta pasta:<br />

content, media.1, control.xml e boot.<br />

7 Crie uma nova pasta em INSTALAR e denomine-a yast.<br />

Instalação remota 35


36 Referência<br />

Digite a pasta yast e crie os arquivos order e instorder.<br />

8 Abra o arquivo order e digite a seguinte linha:<br />

/NLD/CD1 smb://usuário:senha@nome_<strong>do</strong>_host/produtoCD1<br />

Substitua usuário pelo nome de usuário que você usa na máquina Win<strong>do</strong>ws<br />

ou use Guest para habilitar o login de convida<strong>do</strong> a este compartilhamento.<br />

senha deve ser substituí<strong>do</strong> por sua senha de login ou qualquer outra string para<br />

login de convida<strong>do</strong>. nome_<strong>do</strong>_host deve ser substituí<strong>do</strong> pelo nome de rede<br />

da sua máquina Win<strong>do</strong>ws.<br />

9 Abra o arquivo instorder e digite a seguinte linha:<br />

/produto/CD1<br />

Para usar um compartilhamento SMB monta<strong>do</strong> como fonte de instalação, proceda da<br />

seguinte maneira:<br />

1 Inicialize o destino de instalação.<br />

2 Selecione Instalação.<br />

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

4 Escolha SMB e digite o nome ou endereço IP da máquina Win<strong>do</strong>ws, o nome de<br />

compartilhamento (INSTALAR, neste exemplo), nome de usuário e senha.<br />

Depois que você pressionar Enter , o YaST será inicia<strong>do</strong> e você poderá executar<br />

a instalação.<br />

1.3 Preparan<strong>do</strong> a inicialização <strong>do</strong><br />

sistema de destino<br />

Esta seção aborda as tarefas de configuração necessárias em cenários complexos de<br />

inicialização. Contém exemplos de configurações prontas para aplicar referentes a<br />

DHCP, inicialização PXE, TFTP e Wake on LAN.


1.3.1 Configuran<strong>do</strong> um servi<strong>do</strong>r DHCP<br />

A configuração de um servi<strong>do</strong>r DHCP em <strong>SUSE</strong> Linux é feita editan<strong>do</strong>-se manualmente<br />

os arquivos de configuração apropria<strong>do</strong>s. Esta seção aborda a extensão de configuração<br />

de um servi<strong>do</strong>r DHCP existente visan<strong>do</strong> fornecer os da<strong>do</strong>s necessários para atender um<br />

ambiente TFTP, PXE e WOL.<br />

Configuração manual de um servi<strong>do</strong>r DHCP<br />

Tu<strong>do</strong> o que o servi<strong>do</strong>r DHCP deve fazer, além de fornecer alocação de endereço<br />

automática para os seus clientes de rede, é anunciar o endereço IP <strong>do</strong> servi<strong>do</strong>r TFTP e<br />

o arquivo que deve ser extraí<strong>do</strong> pelas rotinas de instalação na máquina de destino.<br />

1 Efetue login como root na máquina que hospeda o servi<strong>do</strong>r DHCP.<br />

2 Anexe as linhas seguintes ao arquivo de configuração <strong>do</strong> seu servi<strong>do</strong>r DHCP<br />

localiza<strong>do</strong> em /etc/dhcpd.conf:<br />

group {<br />

# PXE related stuff<br />

#<br />

# "next server" defines the tftp server that will be used<br />

next server ip_servi<strong>do</strong>r_tftp:<br />

#<br />

# "filename" specifies the pxelinux image on the tftp server<br />

# the server runs in chroot under /srv/tftpboot<br />

filename "pxelinux.0";<br />

}<br />

Substitua ip_servi<strong>do</strong>r_tftp pelo endereço IP real <strong>do</strong> servi<strong>do</strong>r TFTP.<br />

Para obter mais informações sobre as opções disponíveis em dhcpd.conf,<br />

consulte a página de manual sobre dhcpd.conf.<br />

3 Reinicie o servi<strong>do</strong>r DHCP executan<strong>do</strong> rcdhcpd restart.<br />

Se você planeja usar SSH para controle remoto de uma instalação PXE e Wake on<br />

LAN, especifique explicitamente o endereço IP que o DHCP deve fornecer ao destino<br />

de instalação. Para isso, modifique a configuração DHCP mencionada acima de acor<strong>do</strong><br />

com o exemplo a seguir:<br />

group {<br />

# PXE related stuff<br />

Instalação remota 37


38 Referência<br />

#<br />

# "next server" defines the tftp server that will be used<br />

next server ip_servi<strong>do</strong>r_tftp:<br />

#<br />

# "filename" specifiies the pxelinux image on the tftp server<br />

# the server runs in chroot under /srv/tftpboot<br />

filename "pxelinux.0";<br />

host test { hardware ethernet endereço_mac; }<br />

fixed-address um_endereço_ip; }<br />

}<br />

A declaração de host apresenta o nome de host <strong>do</strong> destino de instalação. Para vincular<br />

o nome de host e o endereço IP a um host específico, você precisa conhecer e especificar<br />

o endereço de hardware <strong>do</strong> sistema (MAC). Substitua todas as variáveis usadas neste<br />

exemplo pelos valores reais que correspondem ao seu ambiente.<br />

Após a reinicialização <strong>do</strong> servi<strong>do</strong>r DHCP, ele fornece um IP estático para o host<br />

especifica<strong>do</strong>, habilitan<strong>do</strong>-o a conectar-se ao sistema por SSH.<br />

1.3.2 Configuran<strong>do</strong> um servi<strong>do</strong>r TFTP<br />

Configure um servi<strong>do</strong>r TFTP com YaST ou manualmente em qualquer outro sistema<br />

operacional Linux que tenha suporte a xinetd e tftp. O servi<strong>do</strong>r TFTP fornece a imagem<br />

de boot para o sistema de destino uma vez que inicializa e envia uma solicitação ao<br />

mesmo.<br />

Configuran<strong>do</strong> um servi<strong>do</strong>r TFTP usan<strong>do</strong> YaST<br />

1 Efetue login como Root.<br />

2 Inicie YaST → Serviços de Rede → Servi<strong>do</strong>r TFTP e instale o pacote solicita<strong>do</strong>.<br />

3 Clique em Habilitar para verificar se o servi<strong>do</strong>r foi inicia<strong>do</strong> e incluí<strong>do</strong> nas rotinas<br />

de inicialização. De sua parte, não é necessária nenhuma outra ação de proteção.<br />

O xinetd inicia o tftpd no momento de inicialização.<br />

4 Clique em Abrir Porta no Firewall para abrir a porta adequada no firewall em<br />

execução na sua máquina. Se nenhum firewall estiver em execução no seu<br />

servi<strong>do</strong>r, esta opção não está disponível.<br />

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


O diretório padrão /tftpboot é cria<strong>do</strong> e seleciona<strong>do</strong> automaticamente.<br />

6 Clique em Concluir para aplicar as suas configurações e iniciar o servi<strong>do</strong>r.<br />

Configuração manual de um servi<strong>do</strong>r TFTP<br />

1 Efetue login como root e instale os pacotes tftp e xinetd.<br />

2 Se indisponível, crie os diretórios /srv/tftpboot e /srv/tftpboot/<br />

pxelinux.cfg.<br />

3 Adicione os arquivos adequa<strong>do</strong>s para a imagem de boot como descrito na<br />

Seção 1.3.3, “Inicialização PXE” (p 39).<br />

4 Modifique a configuração de xinetd localizada em /etc/xinetd.d/ para<br />

verificar se o servi<strong>do</strong>r TFTP é inicia<strong>do</strong> durante a inicialização:<br />

a Se não existir, crie um arquivo chama<strong>do</strong> tftp neste diretório com touch<br />

tftp. Em seguida, execute chmod 755 tftp.<br />

b Abra o arquivo tftp e adicione as seguintes linhas:<br />

service tftp<br />

{<br />

socket_type = dgram<br />

protocol = udp<br />

wait = yes<br />

user = root<br />

server = /usr/sbin/in.tftpd<br />

server_args = -s /tftpboot<br />

disable = no<br />

}<br />

c Grave o arquivo e reinicie xinetd com rcxinetd restart.<br />

1.3.3 Inicialização PXE<br />

Informações técnicas e especificações completas sobre PXE estão disponíveis no<br />

<strong>do</strong>cumento Preboot Execution Environment (PXE) ftp://<strong>do</strong>wnload.intel.com/<br />

labs/manage/wfm/<strong>do</strong>wnload/pxespec.pdf).<br />

Instalação remota 39


40 Referência<br />

1 Vá até o diretório <strong>do</strong> seu repositório de instalação e copie os arquivos linux,<br />

initrd, message e memtest para o diretório /srv/tftpboot digitan<strong>do</strong><br />

o seguinte:<br />

cp -a boot/loader/linux boot/loader/initrd<br />

boot/loader/message boot/loader/memtest /srv/tftpboot<br />

2 Instale o pacote syslinux diretamente <strong>do</strong>s seus CDs ou DVDs de instalação<br />

com YaST.<br />

3 Copie o arquivo /usr/share/syslinux/pxelinux.0 para o diretório<br />

/srv/tftpboot digitan<strong>do</strong> o seguinte:<br />

cp -a /usr/share/syslinux/pxelinux.0 /srv/tftpboot<br />

4 Vá até o diretório <strong>do</strong> seu repositório de instalação e copie o arquivo isolinux<br />

.cfg para /srv/tftpboot/pxelinux.cfg/default digitan<strong>do</strong> o<br />

seguinte:<br />

cp -a boot/loader/isolinux.cfg /srv/tftpboot/pxelinux.cfg/default<br />

5 Edite o arquivo /srv/tftpboot/pxelinux.cfg/default e remova as<br />

linhas que começam com gfxboot, readinfo e framebuffer.<br />

6 Insira as seguintes entradas nas linhas anexas <strong>do</strong>s rótulos padrão failsafe e<br />

apic:<br />

insmod=e100<br />

Por meio desta entrada, o módulo de kernel para uma placa de rede Intel<br />

100MBit/s é carrega<strong>do</strong> nos clientes PXE. Esta entrada depende <strong>do</strong> hardware<br />

<strong>do</strong> cliente e deve ser adaptada de acor<strong>do</strong>. No caso de uma placa de rede<br />

Broadcom GigaBit, esta entrada deve indicar insmod=bcm5700.<br />

netdevice=eth0<br />

Esta entrada define a interface de rede <strong>do</strong> cliente que deve ser usada para a<br />

instalação da rede. Só será necessária se o cliente possuir várias placas de<br />

rede, deven<strong>do</strong> ser adaptada de acor<strong>do</strong>. No caso de uma única placa de rede,<br />

esta entrada pode ser omitida.<br />

install=nfs://ip_servi<strong>do</strong>r_inst/caminho_fonte_inst/CD1<br />

Esta entrada define o servi<strong>do</strong>r NFS e a fonte de instalação para a instalação<br />

<strong>do</strong> cliente. Substitua ip_servi<strong>do</strong>r_inst pelo endereço IP real <strong>do</strong> seu


servi<strong>do</strong>r de instalação. caminho_fonte_inst deve ser substituí<strong>do</strong> pelo<br />

caminho real para as fontes de instalação. As fontes HTTP, FTP ou SMB<br />

são endereçadas de maneira semelhante, exceto pelo prefixo de protocolo,<br />

que deve indicar http, ftp ou smb.<br />

IMPORTANTE<br />

Se precisar passar outras opções de inicialização para as rotinas de<br />

instalação, como parâmetros de inicialização SSH ou VNC, anexe-os<br />

à entrada install. Uma visão geral <strong>do</strong>s parâmetros e alguns<br />

exemplos são apresenta<strong>do</strong>s na Seção 1.4, “Inicializan<strong>do</strong> o sistema de<br />

destino para instalação” (p 46).<br />

A seguir, temos um exemplo de arquivo<br />

/srv/tftpboot/pxelinux.cfg/default. Ajuste o prefixo de protocolo<br />

para a fonte de instalação para corresponder à configuração da sua rede e<br />

especifique o seu méto<strong>do</strong> de conexão preferi<strong>do</strong> para o instala<strong>do</strong>r adicionan<strong>do</strong> as<br />

opções vnc e vncpassword ou ssh e sshpassword à entrada install.<br />

As linhas separadas por \ devem ser digitadas como uma linha contínua sem<br />

quebra de linha e sem \.<br />

default linux<br />

# default<br />

label linux<br />

kernel linux<br />

append initrd=initrd ramdisk_size=65536 insmod=e100 \<br />

install=nfs://ip_servi<strong>do</strong>r_inst/<br />

caminho_fonte_inst/produto<br />

# failsafe<br />

label failsafe<br />

kernel linux<br />

append initrd=initrd ramdisk_size=65536 ide=nodma apm=<strong>of</strong>f acpi=<strong>of</strong>f \<br />

insmod=e100 install=nfs://ip_servi<strong>do</strong>r_inst/caminho_fonte_inst/produto<br />

# apic<br />

label apic<br />

kernel linux<br />

append initrd=initrd ramdisk_size=65536 apic insmod=e100 \<br />

install=nfs://ip_servi<strong>do</strong>r_inst/caminho_fonte_inst/produto<br />

# manual<br />

label manual<br />

kernel linux<br />

Instalação remota 41


42 Referência<br />

append initrd=initrd ramdisk_size=65536 manual=1<br />

# rescue<br />

label rescue<br />

kernel linux<br />

append initrd=initrd ramdisk_size=65536 rescue=1<br />

# memory test<br />

label memtest<br />

kernel memtest<br />

# hard disk<br />

label harddisk<br />

kernel<br />

linux append SLX=0x202<br />

implicit 0<br />

display message<br />

prompt 1<br />

timeout 100<br />

Substitua ip_servi<strong>do</strong>r_inst e caminho_fonte_inst pelos valores<br />

usa<strong>do</strong>s na sua configuração.<br />

A seção a seguir serve como breve referência às opções PXE<strong>LINUX</strong> usadas nesta<br />

configuração. Mais informações sobre as opções disponíveis são encontradas na<br />

<strong>do</strong>cumentação <strong>do</strong> pacote syslinux localizada em /usr/share/<strong>do</strong>c/<br />

packages/syslinux/.<br />

1.3.4 Opções de configuração PXE<strong>LINUX</strong><br />

As opções relacionadas aqui são um subconjunto de todas as opções disponíveis para<br />

o arquivo de configuração PXE<strong>LINUX</strong>.<br />

DEFAULT opções de kernel...<br />

Configura a linha de coman<strong>do</strong> padrão <strong>do</strong> kernel. Se PXE<strong>LINUX</strong> é inicializa<strong>do</strong><br />

automaticamente, atua como se as entradas após DEFAULT tivessem si<strong>do</strong> digitadas<br />

no prompt de inicialização, exceto a opção auto, que é adicionada automaticamente,<br />

indican<strong>do</strong> uma inicialização automática.<br />

Se nenhum arquivo de configuração ou nenhuma entrada DEFAULT estiver presente<br />

no arquivo de configuração, o padrão será o nome de kernel “linux” sem opções.


APPEND opções...<br />

Adicione uma ou mais opções à linha de coman<strong>do</strong> <strong>do</strong> kernel. São adicionadas para<br />

inicializações manuais e automáticas. As opções são adicionadas no início da linha<br />

de coman<strong>do</strong> <strong>do</strong> kernel, normalmente permitin<strong>do</strong> que as opções de kernel digitadas<br />

explicitamente as substituam.<br />

LABEL rótulo KERNEL imagem APPEND opções...<br />

Indica que, se rótulo for digita<strong>do</strong> como kernel de inicialização, PXE<strong>LINUX</strong><br />

deve inicializar imagem, e as opções APPEND especificadas devem ser usadas em<br />

vez das que estão especificadas na seção global <strong>do</strong> arquivo (antes <strong>do</strong> primeiro<br />

coman<strong>do</strong> LABEL). O padrão para imagem é o mesmo de rótulo e, se não for<br />

forneci<strong>do</strong> nenhum APPEND, o padrão será usar a entrada global (se houver). Até<br />

128 entradas LABEL são permitidas.<br />

Observe que GRUB usa a seguinte sintaxe:<br />

title meutítulo<br />

kernel meu_kernel opções_kernel<br />

initrd meuinitrd<br />

enquanto que PXE<strong>LINUX</strong> usa a seguinte sintaxe:<br />

label meurótulo<br />

kernel meukernel<br />

append minhasopções<br />

Os rótulos são desmembra<strong>do</strong>s como se fossem nomes de arquivo e devem ser<br />

exclusivos após o desmembramento. Por exemplo, não seria possível distinguir os<br />

<strong>do</strong>is rótulos “v2.1.30” e “v2.1.31” em PXE<strong>LINUX</strong>, pois ambos são desmembra<strong>do</strong>s<br />

em um mesmo nome de arquivo <strong>do</strong> DOS.<br />

O kernel não tem precisa ser um kernel <strong>do</strong> Linux; pode ser um setor de inicialização<br />

ou um arquivo COMBOOT.<br />

APPEND -<br />

Não anexa nada. APPEND com um único hífen como argumento em uma seção<br />

LABEL pode ser usa<strong>do</strong> para anular um APPEND global.<br />

LOCALBOOT tipo<br />

Em PXE<strong>LINUX</strong>, especificar LOCALBOOT 0 em vez de uma opção KERNEL<br />

significa chamar este rótulo específico e causa uma inicialização de disco local em<br />

vez de uma inicialização de kernel.<br />

Instalação remota 43


44 Referência<br />

Argumento<br />

0<br />

4<br />

5<br />

Descrição<br />

Executa uma inicialização normal<br />

Executa uma inicialização local com o driver<br />

UNDI (Universal Network Driver Interface)<br />

ainda residente na memória<br />

Realiza uma inicialização local com toda a<br />

pilha PXE, incluin<strong>do</strong> o driver UNDI, ainda<br />

residente na memória<br />

To<strong>do</strong>s os outros valores são indefini<strong>do</strong>s. Se você não sabe quais são as pilhas UNDI<br />

ou PXE, especifique 0.<br />

TIMEOUT tempo_de_espera<br />

Indica quanto tempo esperar no prompt de inicialização até inicializar<br />

automaticamente, em unidades de 1/10 de segun<strong>do</strong>. O tempo de espera é cancela<strong>do</strong><br />

tão logo o usuário digite algo no tecla<strong>do</strong>, partin<strong>do</strong> <strong>do</strong> princípio de que o usuário<br />

conclui o coman<strong>do</strong> inicia<strong>do</strong>. O tempo de espera zero desabilita completamente o<br />

tempo de espera (que é também o padrão).<br />

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

PROMPT val_flag<br />

Se val_flag for 0, só exibirá o prompt de inicialização se Shift ou Alt estiver<br />

pressiona<strong>do</strong> ou Caps Lock ou Scroll Lock estiver defini<strong>do</strong> (que é o padrão). Se<br />

val_flag for 1, exibirá sempre o prompt de inicialização.<br />

F2 nome_<strong>do</strong>_arquivo<br />

F1 nome_<strong>do</strong>_arquivo<br />

..etc...<br />

F9 nome_<strong>do</strong>_arquivo<br />

F10nome_<strong>do</strong>_arquivo<br />

Exibe o arquivo indica<strong>do</strong> na tela quan<strong>do</strong> uma tecla de função é pressionada no<br />

prompt de inicialização. Isso pode ser usa<strong>do</strong> para implementar a ajuda online de<br />

pré-inicialização (supostamente para as opções de linha <strong>do</strong> coman<strong>do</strong> <strong>do</strong> kernel).<br />

Para compatibilidade com versões anteriores, F10 também pode ser digita<strong>do</strong> como<br />

F0 . Observe que atualmente não há meio de vincular nomes de arquivo a F11 e<br />

F12 .


1.3.5 Preparan<strong>do</strong> o sistema de destino para<br />

inicialização PXE<br />

Prepare o BIOS <strong>do</strong> sistema para a inicialização PXE incluin<strong>do</strong> a opção PXE na ordem<br />

de inicialização <strong>do</strong> BIOS.<br />

ATENÇÃO<br />

Não coloque a opção PXE na frente da opção de inicialização <strong>do</strong> disco rígi<strong>do</strong><br />

no BIOS. Caso contrário, este sistema tentará reinstalar-se toda vez que você<br />

o inicializar.<br />

1.3.6 Preparan<strong>do</strong> o sistema de destino para<br />

Wake on LAN<br />

Wake on LAN (WOL) requer que a opção de BIOS adequada seja habilitada antes da<br />

instalação. Além disso, anote o endereço MAC <strong>do</strong> sistema de destino. Esses da<strong>do</strong>s são<br />

necessários para iniciar o Wake on LAN.<br />

1.3.7 Wake on LAN<br />

Wake on LAN permite que a máquina seja ligada por um pacote de rede especial que<br />

contém o endereço MAC da máquina. Como toda máquina no mun<strong>do</strong> tem um<br />

identifica<strong>do</strong>r MAC exclusivo, você não precisa se preocupar em ligar acidentalmente<br />

a máquina errada.<br />

IMPORTANTE<br />

Se a máquina controla<strong>do</strong>ra não estiver localizada no mesmo segmento de rede<br />

que o destino de instalação que deve ser desperto, configure as solicitações<br />

WOL para serem enviadas como multicasts ou controle remotamente uma<br />

máquina naquele segmento de rede para atuar como remetente das solicitações.<br />

Instalação remota 45


46 Referência<br />

1.3.8 Wake on LAN manual<br />

1 Efetue login como Root.<br />

2 Inicie YaST → Gerenciamento de S<strong>of</strong>tware e instale o pacote netdiag.<br />

3 Abra um terminal e digite os seguintes coman<strong>do</strong>s como root para despertar o<br />

destino:<br />

ether-wakemac_<strong>do</strong>_destino<br />

Substitua mac_<strong>do</strong>_destino pelo endereço MAC real <strong>do</strong> destino.<br />

1.4 Inicializan<strong>do</strong> o sistema de destino<br />

para instalação<br />

Basicamente, há duas maneiras diferentes de personalizar o processo de inicialização<br />

para instalação, além das mencionadas na Seção 1.3.7, “Wake on LAN” (p 45) e na<br />

Seção 1.3.3, “Inicialização PXE” (p 39). Você pode usar as opções de inicialização<br />

padrão e as teclas F ou usar o prompt de opções da tela de inicialização da instalação<br />

para passar quaisquer opções de inicialização que o kernel de instalação possa precisar<br />

neste hardware específico.<br />

1.4.1 Usan<strong>do</strong> as opções padrão de<br />

inicialização<br />

As opções de inicialização já foram descritas detalhadamente no Capítulo Instalação<br />

com o YaST (↑Inicialização).<br />

Geralmente, basta selecionar Instalação para iniciar o processo de inicialização de<br />

instalação. Se problemas ocorrerem, use Instalação—ACPI Desabilita<strong>do</strong> ou<br />

Instalação—Configurações Seguras.<br />

Para obter mais informações sobre solução de problemas no processo de instalação,<br />

consulte a Seção “Problemas de instalação” (Capítulo 9, Problemas comuns e suas<br />

soluções, ↑Inicialização).


1.4.2 Usan<strong>do</strong> as teclas F<br />

A barra de menus na tela inferior <strong>of</strong>erece algumas funcionalidades avançadas necessárias<br />

em algumas configurações. Usan<strong>do</strong> as teclas F, você pode especificar opções adicionais<br />

para passar as rotinas de instalação sem ter que conhecer a sintaxe detalhada <strong>do</strong>s<br />

parâmetros que você precisaria se os inserisse como opções de inicialização (consulte<br />

a Seção 1.4.3, “Usan<strong>do</strong> opções de inicialização personalizadas” (p 48)).<br />

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

Tabela 1.1 Teclas F durante a instalação<br />

Tecla<br />

F1<br />

F2<br />

Objetivo<br />

Fornecer ajuda<br />

Selecionar o idioma da<br />

instalação<br />

Opções disponíveis<br />

Nenhum<br />

To<strong>do</strong>s os idiomas<br />

suporta<strong>do</strong>s<br />

Valor padrão<br />

Nenhum<br />

Inglês<br />

F3 Mudar a resolução de tela • Mo<strong>do</strong> de texto • O valor padrão<br />

para instalação<br />

depende <strong>do</strong> seu<br />

• VESA hardware de<br />

• resolução 1<br />

vídeo<br />

• resolução 2<br />

• ...<br />

F4 Selecionar a fonte de<br />

instalação<br />

• CD-ROM/DVD<br />

• SLP<br />

• FTP<br />

• HTTP<br />

• NFS<br />

• SMB<br />

CD-ROM/DVD<br />

Instalação remota 47


Tecla<br />

F5<br />

48 Referência<br />

Objetivo<br />

Aplicar disco de<br />

atualização <strong>do</strong> driver<br />

Opções disponíveis<br />

• Disco rígi<strong>do</strong><br />

Driver<br />

Valor padrão<br />

Nenhum<br />

1.4.3 Usan<strong>do</strong> opções de inicialização<br />

personalizadas<br />

Usar o conjunto adequa<strong>do</strong> de opções de inicialização facilita o procedimento de<br />

instalação. Vários parâmetros também podem ser configura<strong>do</strong>s posteriormente usan<strong>do</strong><br />

as rotinas linuxrc, mas usar as opções de inicialização é mais fácil. Em algumas<br />

configurações automatizadas, as opções de inicialização podem ser fornecidas com<br />

initrd ou um arquivo info.<br />

A tabela a seguir relaciona to<strong>do</strong>s os cenários de instalação menciona<strong>do</strong>s neste capítulo<br />

com os parâmetros necessários para inicialização e as opções de inicialização<br />

correspondentes. Basta anexar to<strong>do</strong>s eles na ordem em que aparecem nesta tabela para<br />

obter uma string de opção de inicialização que é passada para as rotinas de instalação.<br />

Por exemplo (to<strong>do</strong>s em uma linha):<br />

install=... netdevice=... hostip=...netmask=... vnc=... vncpassword=...<br />

Substitua to<strong>do</strong>s os valores (...) nesta string pelos valores adequa<strong>do</strong>s para a sua<br />

configuração.<br />

Tabela 1.2 Cenários de instalação (inicialização) usa<strong>do</strong>s neste capítulo<br />

Cenário de instalação<br />

Capítulo Instalação com<br />

o YaST (↑Inicialização)<br />

Parâmetros<br />

necessários para<br />

inicialização<br />

Nenhum: o sistema é<br />

inicializa<strong>do</strong><br />

automaticamente<br />

Opções de inicialização<br />

Nenhuma é necessária


Cenário de instalação<br />

Parâmetros<br />

necessários para<br />

inicialização<br />

Opções de inicialização<br />

Seção 1.1.1, “Instalação • Localização <strong>do</strong> • install=(nfs,http,<br />

remota simples por VNC: servi<strong>do</strong>r de<br />

ftp,smb)://caminho<br />

configuração de rede instalação<br />

_mídia_inst<br />

estática” (p 18) • Dispositivo de rede • netdevice=um_disp<br />

• Endereço IP<br />

_rede (necessário apenas<br />

• Máscara de rede se vários dispositivos de<br />

• Gateway<br />

rede estiverem disponíveis)<br />

• Habilitação VNC • hostip=um_ip<br />

• Senha VNC • netmask=uma<br />

_máscara_rede<br />

• gateway=gateway_ip<br />

• vnc=1<br />

• vncpassword=uma<br />

_senha<br />

Seção 1.1.2, “Instalação<br />

remota simples por VNC:<br />

configuração de rede<br />

dinâmica por DHCP”<br />

(p 19)<br />

• Localização <strong>do</strong><br />

servi<strong>do</strong>r de<br />

instalação<br />

Seção 1.1.3, “Instalação • Localização <strong>do</strong><br />

remota por VNC:<br />

servi<strong>do</strong>r de<br />

inicialização PXE e instalação<br />

Wake on LAN” (p 21) • Localização <strong>do</strong><br />

servi<strong>do</strong>r TFTP<br />

• Habilitação VNC<br />

• Senha VNC<br />

• install=(nfs,http,<br />

ftp,smb)://caminho<br />

_mídia_inst<br />

• Habilitação VNC • vnc=1<br />

• Senha VNC • vncpassword=uma<br />

_senha<br />

Não aplicável; processo<br />

gerencia<strong>do</strong> via PXE e DHCP<br />

Instalação remota 49


50 Referência<br />

Cenário de instalação<br />

Parâmetros<br />

necessários para<br />

inicialização<br />

Opções de inicialização<br />

Seção 1.1.4, “Instalação • Localização <strong>do</strong> • install=(nfs,http,<br />

remota simples por SSH: servi<strong>do</strong>r de<br />

ftp,smb)://caminho<br />

configuração de rede instalação<br />

_mídia_inst<br />

estática” (p 22) • Dispositivo de rede • netdevice=um_disp<br />

• Endereço IP<br />

_rede (necessário apenas<br />

• Máscara de rede se vários dispositivos de<br />

• Gateway<br />

rede estiverem disponíveis)<br />

• Habilitação SSH • hostip=um_ip<br />

• Senha SSH • netmask=uma<br />

_máscara_rede<br />

• gateway=gateway_ip<br />

• usessh=1<br />

• sshpassword=uma<br />

_senha<br />

Seção 1.1.5, “Instalação<br />

remota simples por SSH:<br />

configuração de rede<br />

dinâmica por DHCP”<br />

(p 24)<br />

• Localização <strong>do</strong><br />

servi<strong>do</strong>r de<br />

instalação<br />

Seção 1.1.6, “Instalação • Localização <strong>do</strong><br />

remota por SSH:<br />

servi<strong>do</strong>r de<br />

inicialização PXE e instalação<br />

Wake on LAN” (p 25) • Localização <strong>do</strong><br />

servi<strong>do</strong>r TFTP<br />

• Habilitação SSH<br />

• Senha SSH<br />

• install=(nfs,http,<br />

ftp,smb)://caminho<br />

_mídia_inst<br />

• Habilitação SSH • usessh=1<br />

• Senha SSH • sshpassword=uma<br />

_senha<br />

Não aplicável; processo<br />

gerencia<strong>do</strong> via PXE e DHCP


DICA<br />

Saiba mais sobre as opções de inicialização linuxrc usadas para inicializar um<br />

sistema Linux em /usr/share/<strong>do</strong>c/packages/linuxrc/linuxrc.html.<br />

1.5 Monitoran<strong>do</strong> o processo de<br />

instalação<br />

Há várias opções para monitorar o processo de instalação remotamente. Se as opções<br />

de inicialização adequadas tiverem si<strong>do</strong> especificadas ao inicializar para instalação,<br />

VNC ou SSH podem ser usa<strong>do</strong>s para controlar a instalação e a configuração <strong>do</strong> sistema<br />

a partir de uma estação de trabalho remota.<br />

1.5.1 Instalação VNC<br />

Usan<strong>do</strong> um s<strong>of</strong>tware visualiza<strong>do</strong>r VNC, você pode controlar remotamente a instalação<br />

<strong>do</strong> <strong>SUSE</strong> Linux de virtualmente qualquer sistema operacional. Esta seção apresenta a<br />

configuração usan<strong>do</strong> um visualiza<strong>do</strong>r VNC ou um browser da Web.<br />

Preparan<strong>do</strong> para instalação VNC<br />

Tu<strong>do</strong> o que você precisa fazer no destino da instalação para preparar uma instalação<br />

VNC é fornecer as opções de inicialização adequadas na inicialização inicial para<br />

instalação (consulte a Seção 1.4.3, “Usan<strong>do</strong> opções de inicialização personalizadas”<br />

(p 48)). O sistema de destino inicializa em um ambiente basea<strong>do</strong> em texto e espera que<br />

um cliente VNC conecte-se ao programa de instalação.<br />

O programa de instalação anuncia o endereço IP e exibe o número necessário para<br />

conexão para a instalação. Se você tiver acesso físico ao sistema de destino, essas<br />

informações são fornecidas logo depois <strong>do</strong> sistema ser inicializa<strong>do</strong> para instalação.<br />

Digite esses da<strong>do</strong>s quan<strong>do</strong> eles forem solicita<strong>do</strong>s pelo s<strong>of</strong>tware cliente VNC e forneça<br />

a sua senha VNC.<br />

Como o destino da instalação anuncia a si mesmo por OpenSLP, você pode recuperar<br />

a informação <strong>do</strong> endereço <strong>do</strong> destino da instalação com um browser SLP sem a<br />

Instalação remota 51


52 Referência<br />

necessidade de qualquer contato físico com a instalação em si, desde que a sua<br />

configuração de rede e todas as máquinas tenham suporte a OpenSLP:<br />

1 Inicie o arquivo KDE e o browser da Web Konqueror.<br />

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

O sistema de destino aparece como um ícone na tela <strong>do</strong> Konqueror. Clicar neste<br />

ícone inicia o visualiza<strong>do</strong>r VNC <strong>do</strong> KDE no qual executar a instalação. Outra<br />

alternativa é executar o seu s<strong>of</strong>tware visualiza<strong>do</strong>r VNC com o endereço IP<br />

forneci<strong>do</strong> e adicionar :1 no final <strong>do</strong> endereço IP para exibir a instalação que<br />

está sen<strong>do</strong> executada.<br />

Conectan<strong>do</strong>-se ao programa de instalação<br />

Basicamente, há duas maneiras de se conectar a um servi<strong>do</strong>r VNC (o destino de<br />

instalação, neste caso). Você pode iniciar um visualiza<strong>do</strong>r VNC independente em<br />

qualquer sistema operacional ou conectar-se usan<strong>do</strong> um browser da Web habilita<strong>do</strong><br />

para Java.<br />

Com o VNC, é possível controlar a instalação de um sistema Linux de qualquer outro<br />

sistema operacional, incluin<strong>do</strong> outras variedades <strong>do</strong> Linux, Win<strong>do</strong>ws ou Mac OS.<br />

Em uma máquina Linux, verifique se o pacote tightvnc está instala<strong>do</strong>. Em uma<br />

máquina Win<strong>do</strong>ws, instale a porta Win<strong>do</strong>ws deste aplicativo, que pode ser obtida na<br />

home page <strong>do</strong> TightVNC (http://www.tightvnc.com/<strong>do</strong>wnload.html).<br />

Para conectar-se ao programa de instalação executa<strong>do</strong> na máquina de destino, proceda<br />

da seguinte maneira:<br />

1 Inicie o visualiza<strong>do</strong>r VNC.<br />

2 Digite o endereço IP e o número de exibição <strong>do</strong> destino de instalação como<br />

forneci<strong>do</strong>s pelo browser SLP ou pelo próprio programa de instalação:<br />

endereço_ip:número_exibição<br />

Uma janela é aberta na área de trabalho, mostran<strong>do</strong> as telas <strong>do</strong> YaST como em<br />

uma instalação local normal.


Ao usar um browser da Web para conectar-se ao programa de instalação, você fica<br />

totalmente independente de qualquer s<strong>of</strong>tware VNC ou <strong>do</strong> sistema operacional<br />

subjacente. Visto que o aplicativo browser tenha o suporte Java habilita<strong>do</strong>, você pode<br />

usar qualquer browser (Firefox, Internet Explorer, Konqueror, Opera etc.) para executar<br />

a instalação <strong>do</strong> sistema Linux.<br />

Para executar uma instalação VCN, proceda da seguinte maneira:<br />

1 Inicie o seu browser da Web favorito.<br />

2 Digite o seguinte no prompt de endereço:<br />

http://endereço_ip_de_destino:5801<br />

3 Digite sua senha VNC quan<strong>do</strong> solicita<strong>do</strong>. A janela <strong>do</strong> browser agora exibe as<br />

telas <strong>do</strong> YaST como em uma instalação local normal.<br />

1.5.2 Instalação SSH<br />

Com o SSH, você pode controlar remotamente a instalação da sua máquina Linux<br />

usan<strong>do</strong> qualquer s<strong>of</strong>tware cliente SSH.<br />

Preparan<strong>do</strong> para instalação SSH<br />

Além de instalar o pacote de s<strong>of</strong>tware adequa<strong>do</strong> (OpenSSH para Linux e PuTTY para<br />

Win<strong>do</strong>ws), você só precisa passar as opções de inicialização adequadas para habilitar<br />

o SSH para instalação. Consulte a Seção 1.4.3, “Usan<strong>do</strong> opções de inicialização<br />

personalizadas” (p 48) para obter detalhes. O OpenSSH é instala<strong>do</strong> por padrão em<br />

qualquer sistema operacional basea<strong>do</strong> no <strong>SUSE</strong> Linux.<br />

Conectan<strong>do</strong>-se ao programa de instalação<br />

1 Recupere o endereço IP <strong>do</strong> destino da instalação.<br />

Se você tiver acesso físico à máquina de destino, basta usar o endereço IP<br />

forneci<strong>do</strong> pelas rotinas de instalação no console após a primeira inicialização.<br />

Caso contrário, use o endereço IP que foi atribuí<strong>do</strong> a este host específico na<br />

configuração de servi<strong>do</strong>r DHCP.<br />

Instalação remota 53


54 Referência<br />

2 Em uma linha de coman<strong>do</strong>, digite o seguinte coman<strong>do</strong>:<br />

ssh -X root@endereço_ip_<strong>do</strong>_destino<br />

Substitua endereço_ip_<strong>do</strong>_destino pelo endereço IP real <strong>do</strong> destino de<br />

instalação.<br />

3 Quan<strong>do</strong> for solicita<strong>do</strong> um nome de usuário, digite root.<br />

4 Quan<strong>do</strong> for solicitada uma senha, digite a senha que foi definida pela opção de<br />

inicialização <strong>do</strong> SSH.<br />

Depois que você autenticar com êxito, será exibi<strong>do</strong> um prompt de linha de<br />

coman<strong>do</strong> para o destino da instalação.<br />

5 Digite yast para iniciar o programa de instalação.<br />

Uma janela é aberta mostran<strong>do</strong> as telas normais <strong>do</strong> YaST como descrito no<br />

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


Configuração de disco avançada<br />

As configurações s<strong>of</strong>isticadas <strong>do</strong> sistema requerem configurações de disco especiais.<br />

Para obter uma nomeação persistente em dispositivos SCSI, use um script de<br />

inicialização específico ou udev. O LVM (Logical Volume Management - Gerenciamento<br />

de Volumes Lógicos) é um esquema de particionamento de disco projeta<strong>do</strong> para ser<br />

muito mais flexível que o particionamento físico usa<strong>do</strong> nas configurações padrão. Sua<br />

funcionalidade de instantâneo permite criar facilmente backups de da<strong>do</strong>s. A RAID<br />

(Redundant Array <strong>of</strong> Independent Disks - Matriz Redundante de Discos Independentes)<br />

<strong>of</strong>erece maior integridade de da<strong>do</strong>s, desempenho e tolerância a falhas.<br />

2.1 Configuração da LVM<br />

Esta seção descreve brevemente os princípios por trás <strong>do</strong> LVM e os recursos básicos<br />

que o tornam úteis em várias circunstâncias. Na Seção 2.1.2, “Configuração <strong>do</strong> LVM<br />

com o YaST” (p 58), aprenda como configurar o LVM com o YaST.<br />

ATENÇÃO<br />

A utilização <strong>do</strong> LVM pode se associada a um aumento de risco, como perda<br />

de da<strong>do</strong>s. O risco também inclui falhas de aplicativo, de energia e em coman<strong>do</strong>s.<br />

Grave os da<strong>do</strong>s antes de implementar o LVM ou reconfigurar volumes. Nunca<br />

trabalhe sem backup.<br />

2<br />

Configuração de disco avançada 55


56 Referência<br />

2.1.1 Gerencia<strong>do</strong>r de Volumes Lógicos<br />

O LVM (Logical Volume Manager - Gerencia<strong>do</strong>r de Volumes Lógicos) permite uma<br />

distribuição flexível de espaço em disco rígi<strong>do</strong> em vários sistemas de arquivos. Ele foi<br />

desenvolvi<strong>do</strong> porque algumas vezes a necessidade de mudar a segmentação <strong>do</strong> espaço<br />

no disco rígi<strong>do</strong> surge apenas depois que é feito o particionamento inicial durante a<br />

instalação. Como é difícil modificar partições em um sistema em execução, o LVM<br />

fornece um pool virtual, ou seja, VG (Volume Group - Grupo de Volume) de espaço<br />

em memória com base no qual os LVs (Logical Volumes - Volumes Lógicos) podem<br />

ser cria<strong>do</strong>s conforme o necessário. O sistema operacional acessa esses LVs, em vez de<br />

acessar as partições físicas. Os grupos de volume podem ocupar mais de um disco;<br />

portanto, vários discos ou partes deles podem constituir um único VG. Dessa forma, o<br />

LVM fornece um tipo de abstração a partir <strong>do</strong> espaço <strong>do</strong> disco físico que permite que<br />

sua segmentação seja mudada de uma forma mais fácil e segura <strong>do</strong> que o<br />

reparticionamento físico proporciona. É possível encontrar outras informações sobre o<br />

particionamento físico em “Tipos de partição” (Capítulo 1, Instalação com o YaST,<br />

↑Inicialização) e na Seção “Particiona<strong>do</strong>r” (Capítulo 2, Configuração <strong>do</strong> sistema com<br />

YaST, ↑Inicialização).<br />

Figura 2.1 Particionamento físico versus LVM<br />

DISK<br />

PART PART PART<br />

DISK 1 DISK 2<br />

PART PART PART PART PART<br />

VG 1 VG 2<br />

LV 1 LV 2 LV 3 LV 4<br />

MP MP MP MP MP MP MP<br />

A Figura 2.1, “Particionamento físico versus LVM” (p 56) compara o particionamento<br />

físico (esquerda) com a segmentação <strong>do</strong> LVM (direita). Do la<strong>do</strong> esquer<strong>do</strong>, um único


disco rígi<strong>do</strong> foi dividi<strong>do</strong> em três PART (Physical Partitions - Partições Físicas), cada<br />

uma com um MP (Mount Point - Ponto de Montagem) designa<strong>do</strong>, de forma que o<br />

sistema operacional possa acessá-las. Do la<strong>do</strong> direito, <strong>do</strong>is discos foram dividi<strong>do</strong>s em<br />

duas e três partições físicas cada. Foram defini<strong>do</strong>s <strong>do</strong>is grupos de volume (VG1 e VG2)<br />

<strong>do</strong> LVM. O VG1 contém duas partições <strong>do</strong> DISCO 1 e uma <strong>do</strong> DISCO 2. O VG2<br />

contém as duas partições restantes <strong>do</strong> DISCO 2. No LVM, as partições físicas <strong>do</strong> disco<br />

incorporadas a um grupo de volume são chamadas de PVs (physical volumes - volumes<br />

físicos). Nos grupos de volume, foram defini<strong>do</strong>s quatro volumes lógicos (LV1 a LV4),<br />

que podem ser usa<strong>do</strong>s pelo sistema operacional por meio <strong>do</strong>s pontos de montagem<br />

associa<strong>do</strong>s. A fronteira entre os volumes lógicos diferentes não deve ser alinhada com<br />

as fronteiras das partições. Veja a fronteira entre LV1 e LV2 neste exemplo.<br />

Recursos <strong>do</strong> LVM:<br />

• vários discos rígi<strong>do</strong>s ou partições podem ser combina<strong>do</strong>s em um grande volume<br />

lógico.<br />

• Desde que a configuração seja adequada, um LV (como /usr) pode ser amplia<strong>do</strong><br />

quan<strong>do</strong> o espaço em disco estiver esgota<strong>do</strong>.<br />

• Usan<strong>do</strong> o LVM, adicione discos rígi<strong>do</strong>s ou LVs em um sistema em execução. No<br />

entanto, esse procedimento requer um hardware altamente permutável, capaz de<br />

executar tais ações.<br />

• É possível ativar um "mo<strong>do</strong> de distribuição" que distribui o fluxo de da<strong>do</strong>s de um<br />

volume lógico em vários volumes físicos. Se esses volumes físicos residirem em<br />

discos diferentes, o desempenho de leitura e gravação poderá ser melhora<strong>do</strong> como<br />

ocorre com o RAID 0.<br />

• O recurso instantâneo permite backups consistentes (especialmente para servi<strong>do</strong>res)<br />

no sistema em execução.<br />

Com esses recursos, a utilização <strong>do</strong> LVM é sensata em PCs <strong>do</strong>mésticos muito usa<strong>do</strong>s<br />

ou pequenos servi<strong>do</strong>res. Se você tem um estoque de da<strong>do</strong>s crescente, como no caso de<br />

bancos de da<strong>do</strong>s, arquivos de música ou diretórios de usuário, o LVM é simplesmente<br />

a opção correta. Ele permite o uso de sistemas de arquivos maiores <strong>do</strong> que o disco rígi<strong>do</strong><br />

físico. Outra vantagem <strong>do</strong> LVM é a possibilidade de adicionar até 256 LVs. Entretanto,<br />

lembre-se de que trabalhar com o LVM é diferente de trabalhar com partições<br />

convencionais. Instruções e informações adicionais sobre a configuração <strong>do</strong> LVM estão<br />

disponíveis no HOWTO (Como Fazer) <strong>of</strong>icial <strong>do</strong> LVM, em http://tldp.org/<br />

HOWTO/LVM-HOWTO/.<br />

Configuração de disco avançada 57


58 Referência<br />

Começan<strong>do</strong> na versão 2.6 <strong>do</strong> kernel, a versão 2 <strong>do</strong> LVM está disponível, sen<strong>do</strong><br />

compatível com versões anteriores <strong>do</strong> LVM e permitin<strong>do</strong> o gerenciamento contínuo de<br />

antigos grupos de volume. Ao criar novos grupos de volume, decida se vai usar o novo<br />

formato ou a versão compatível com versões anteriores. O LVM 2 não requer qualquer<br />

patch de kernel. Ele usa o mapea<strong>do</strong>r de dispositivos integra<strong>do</strong> ao kernel 2.6. Esse kernel<br />

suporta somente a versão 2 <strong>do</strong> LVM. Portanto, sempre que o LVM for aborda<strong>do</strong> nesta<br />

seção, será considerada a versão 2.<br />

2.1.2 Configuração <strong>do</strong> LVM com o YaST<br />

A configuração <strong>do</strong> LVM com YaST pode ser feita com o Particiona<strong>do</strong>r Expert <strong>do</strong> YaST<br />

(consulte a Seção “Particiona<strong>do</strong>r” (Capítulo 2, Configuração <strong>do</strong> sistema com YaST,<br />

↑Inicialização)). Essa ferramenta de particionamento permite editar e apagar partições<br />

existentes, e criar novas que devem ser usadas com o LVM. Crie uma partição <strong>do</strong> LVM<br />

clican<strong>do</strong> primeiro em Criar → Não formatar e selecionan<strong>do</strong> 0x8E Linux LVM como<br />

identifica<strong>do</strong>r de partição. Depois de criar todas as partições para usar o LVM, clique<br />

em LVM para iniciar sua configuração.<br />

Crian<strong>do</strong> grupos de volume<br />

Se ainda não houver grupos de volume no sistema, você será solicita<strong>do</strong> a adicionar um<br />

(consulte a Figura 2.2, “Crian<strong>do</strong> um grupo de volume” (p 59)). É possível criar grupos<br />

adicionais com a opção Adicionar, mas normalmente um único grupo de volume é<br />

suficiente. O nome sugeri<strong>do</strong> para o grupo de volume em que os arquivos <strong>do</strong> sistema<br />

<strong>SUSE</strong> Linux se localizarão é system. O tamanho físico de extensão define o tamanho<br />

de um bloco físico no grupo de volume. To<strong>do</strong> o espaço em disco de um grupo de volume<br />

é gerencia<strong>do</strong> em pacotes desse tamanho. Esse valor é normalmente defini<strong>do</strong> como 4<br />

MB e permite um tamanho máximo de 256 GB para volumes físicos e lógicos. O<br />

tamanho físico de extensão só deve ser aumenta<strong>do</strong>, por exemplo, para 8, 16 ou 32 MB,<br />

se você precisar de volumes lógicos maiores que 256 GB.


Figura 2.2 Crian<strong>do</strong> um grupo de volume<br />

Configuran<strong>do</strong> volumes físicos<br />

Depois que um grupo de volume é cria<strong>do</strong>, a caixa de diálogo a seguir lista todas as<br />

partições com os tipos “LVM <strong>do</strong> Linux” ou “nativas <strong>do</strong> Linux”. Não são exibidas<br />

partições <strong>do</strong> DOS ou de troca. Se uma partição já tiver si<strong>do</strong> designada a um grupo de<br />

volume, o nome dele será exibi<strong>do</strong> na lista. As partições não atribuídas são indicadas<br />

com “--”.<br />

Se houver vários grupos de volume, defina o grupo de volume atual na caixa de seleção<br />

<strong>do</strong> canto superior esquer<strong>do</strong>. Os botões <strong>do</strong> canto superior direito permitem criar grupos<br />

de volume adicionais, bem como apagar grupos de volumes existentes. Somente grupos<br />

de volume sem partições designadas podem ser apaga<strong>do</strong>s. Todas as partições designadas<br />

a um grupo de volume também são citadas como um PV (Physical Volume - Volume<br />

Físico).<br />

Configuração de disco avançada 59


60 Referência<br />

Figura 2.3 Configuração <strong>do</strong> volume físico<br />

Para adicionar uma partição previamente não designada ao grupo de volume seleciona<strong>do</strong>,<br />

primeiro clique na partição, depois clique em Adicionar Volume. Nesse momento, o<br />

nome <strong>do</strong> grupo de volume é inseri<strong>do</strong> ao la<strong>do</strong> da partição selecionada. Designe todas as<br />

partições reservadas para o LVM a um grupo de volume. Caso contrário, o espaço na<br />

partição permanecerá sem uso. Antes de sair da caixa de diálogo, é necessário designar<br />

pelo menos um volume físico a cada grupo de volume. Depois de designar to<strong>do</strong>s os<br />

volumes físicos, clique em Próximo para continuar a configuração de volumes lógicos.<br />

Configuran<strong>do</strong> volumes lógicos<br />

Depois de o grupo de volume ser preenchi<strong>do</strong> com volumes físicos, defina os volumes<br />

lógicos que o sistema operacional deverá usar na próxima caixa de diálogo. Defina o<br />

grupo de volume atual em uma caixa de seleção no canto superior esquer<strong>do</strong>. Ao la<strong>do</strong><br />

dela, é exibi<strong>do</strong> o espaço livre no grupo de volumes atual. A lista a seguir contém to<strong>do</strong>s<br />

os volumes lógicos <strong>do</strong> grupo de volume. Todas as partições normais <strong>do</strong> Linux às quais<br />

um ponto de montagem é designa<strong>do</strong>, todas as partições de troca e to<strong>do</strong>s os volumes<br />

lógicos já existentes são lista<strong>do</strong>s aqui. Adicione, edite e remova volumes lógicos<br />

conforme o necessário, até esgotar to<strong>do</strong> o espaço <strong>do</strong> grupo de volume. Designe pelo<br />

menos um volume lógico a cada grupo de volume.


Figura 2.4 Gerenciamento de volume lógico<br />

Para criar um novo volume lógico, clique em Adicionar e preencha a janela que é aberta.<br />

No que diz respeito ao particionamento, digite o tamanho, o sistema de arquivos e o<br />

ponto de montagem. Normalmente, um sistema de arquivos, como reiserfs ou ext2, é<br />

cria<strong>do</strong> em um volume lógico e então um ponto de montagem é designa<strong>do</strong> a ele. Os<br />

arquivos armazena<strong>do</strong>s nesse volume lógico podem ser encontra<strong>do</strong>s nesse ponto de<br />

montagem <strong>do</strong> sistema instala<strong>do</strong>. Além disso, é possível distribuir o fluxo de da<strong>do</strong>s no<br />

volume lógico entre vários volumes físicos. Se esses volumes físicos residirem em<br />

discos rígi<strong>do</strong>s diferentes, os desempenhos de leitura e gravação podem ser melhora<strong>do</strong>s<br />

(como ocorre com RAID 0). No entanto, um LV de distribuição com n distribuições<br />

só poderá ser cria<strong>do</strong> corretamente se o espaço em disco rígi<strong>do</strong> necessário para o LV<br />

puder ser distribuí<strong>do</strong> uniformemente em n volumes físicos. Se, por exemplo, houver<br />

apenas <strong>do</strong>is volumes físicos disponíveis, será impossível haver um volume lógico com<br />

três distribuições.<br />

ATENÇÃO: Distribuin<strong>do</strong><br />

A essa altura, o YaST não tem como verificar se suas entradas estão corretas<br />

no que diz respeito à distribuição. Qualquer erro realiza<strong>do</strong> aqui será mostra<strong>do</strong><br />

somente mais tarde, quan<strong>do</strong> o LVM for implementa<strong>do</strong> em disco.<br />

Configuração de disco avançada 61


62 Referência<br />

Figura 2.5 Crian<strong>do</strong> volumes lógicos<br />

Se você já configurou o LVM no sistema, os volumes lógicos existentes poderão ser<br />

inseri<strong>do</strong>s agora. Antes de continuar, designe pontos de montagem apropria<strong>do</strong>s a esses<br />

volumes lógicos também. Usan<strong>do</strong> a opção Próximo, volte para o Particiona<strong>do</strong>r Expert<br />

<strong>do</strong> YaST e conclua seu trabalho.<br />

Gerenciamento direto <strong>do</strong> LVM<br />

Se você já configurou o LVM e só quer mudar alguma coisa, há uma forma alternativa<br />

de fazê-lo. No Centro de Controle <strong>do</strong> YaST, selecione Sistema → LVM. Essa caixa de<br />

diálogo basicamente permite as mesmas ações descritas anteriormente, com a exceção<br />

<strong>do</strong> particionamento físico. Ela mostra os volumes físicos e os volumes lógicos existentes<br />

em duas listas, e você pode gerenciar seu sistema LVM usan<strong>do</strong> os méto<strong>do</strong>s já descritos.


2.2 Configuração de RAID de s<strong>of</strong>tware<br />

A finalidade <strong>do</strong> RAID (redundant array <strong>of</strong> independent disks) é combinar várias partições<br />

de disco rígi<strong>do</strong> em um grande disco rígi<strong>do</strong> virtual para otimizar o desempenho, a<br />

segurança <strong>do</strong>s da<strong>do</strong>s ou ambos. A maioria das controla<strong>do</strong>ras RAID usa o protocolo<br />

SCSI porque ele é capaz de lidar com um grande número de discos rígi<strong>do</strong>s com mais<br />

eficiência que o protocolo IDE, além de ser mais apropria<strong>do</strong> para o processamento de<br />

coman<strong>do</strong>s em paralelo. Algumas controla<strong>do</strong>ras RAID suportam discos rígi<strong>do</strong>s IDE ou<br />

SATA. O RAID de s<strong>of</strong>tware fornece as vantagens de sistemas RAID sem o custo<br />

adicional de controla<strong>do</strong>ras RAID de hardware. Porém, isso exige algum tempo de CPU<br />

e tem requisitos de memória que o tornam inadequa<strong>do</strong> para computa<strong>do</strong>res de alto<br />

desempenho.<br />

2.2.1 Níveis de RAID<br />

O <strong>SUSE</strong> Linux <strong>of</strong>erece a opção de combinar vários discos rígi<strong>do</strong>s em um sistema RAID<br />

de s<strong>of</strong>tware com a ajuda <strong>do</strong> YaST, uma alternativa bastante razoável ao RAID de<br />

hardware. O RAID requer diversas estratégias para a combinação de vários discos<br />

rígi<strong>do</strong>s em um sistema RAID, cada uma delas com diferentes objetivos, vantagens e<br />

características. Essas variações geralmente são conhecidas como níveis de RAID.<br />

Os níveis de RAID comuns são:<br />

RAID 0<br />

Esse nível melhora o desempenho <strong>do</strong> acesso aos da<strong>do</strong>s dividin<strong>do</strong> blocos de cada<br />

arquivo entre várias unidades de disco. Na verdade, isso não é realmente um RAID,<br />

porque não <strong>of</strong>erece backup <strong>do</strong>s da<strong>do</strong>s, mas o nome RAID 0 para esse tipo de sistema<br />

tornou-se uma norma. Com o RAID 0, <strong>do</strong>is ou mais discos rígi<strong>do</strong>s são uni<strong>do</strong>s em<br />

um pool. O desempenho é muito bom, mas, em caso de falha até mesmo de um<br />

disco rígi<strong>do</strong>, o sistema RAID é destruí<strong>do</strong> e seus da<strong>do</strong>s são perdi<strong>do</strong>s.<br />

RAID 1<br />

Esse nível fornece a segurança adequada para seus da<strong>do</strong>s, porque eles são copia<strong>do</strong>s<br />

para outro disco rígi<strong>do</strong> 1:1. Isso é conheci<strong>do</strong> como espelhamento de disco rígi<strong>do</strong>.<br />

Se um disco for destruí<strong>do</strong>, uma cópia de seu conteú<strong>do</strong> estará disponível em outro<br />

disco. Mesmo que to<strong>do</strong>s os discos, com exceção de um, sejam danifica<strong>do</strong>s, você<br />

não corre o risco de perder seus da<strong>do</strong>s. Porém, se não forem detecta<strong>do</strong>s danos, os<br />

da<strong>do</strong>s danifica<strong>do</strong>s poderão ser espelha<strong>do</strong>s no disco correto e assim ocorrerá a<br />

Configuração de disco avançada 63


64 Referência<br />

corrupção de da<strong>do</strong>s. O desempenho de gravação fica um pouco prejudica<strong>do</strong> no<br />

processo de cópia, em comparação ao uso <strong>do</strong> acesso a um único disco (dez a vinte<br />

por cento mais lento), mas o acesso de leitura é significativamente mais rápi<strong>do</strong> se<br />

compara<strong>do</strong> com o de qualquer um <strong>do</strong>s discos rígi<strong>do</strong>s físicos normais, uma vez que<br />

os da<strong>do</strong>s são duplica<strong>do</strong>s e, conseqüentemente, podem ser explora<strong>do</strong>s em paralelo.<br />

Em geral, pode-se dizer que o Nível 1 fornece praticamente o <strong>do</strong>bro da velocidade<br />

de transação de leitura <strong>do</strong>s discos individuais e quase a mesma velocidade de<br />

transação de gravação que eles.<br />

RAID 2 e RAID 3<br />

Essas são implementações de RAID não muito comuns. O Nível 2 divide os da<strong>do</strong>s<br />

no nível de bits, em vez de no nível de blocos. O Nível 3 fornece a divisão no nível<br />

de bytes com um disco de paridade dedicada, e não pode atender várias solicitações<br />

ao mesmo tempo. Ambos os níveis raramente são usa<strong>do</strong>s.<br />

RAID 4<br />

O Nível 4 fornece a divisão no nível de blocos, exatamente como o Nível 0<br />

combina<strong>do</strong> com um disco de paridade dedicada. No caso de uma falha de disco de<br />

da<strong>do</strong>s, os da<strong>do</strong>s de paridade são usa<strong>do</strong>s para criar um disco de substituição. No<br />

entanto, o disco de paridade pode criar um gargalo para o acesso de gravação.<br />

Mesmo assim, o Nível 4 às vezes é usa<strong>do</strong>.<br />

RAID 5<br />

O RAID 5 é um compromisso otimiza<strong>do</strong> entre o Nível 0 e o Nível 1 em termos de<br />

desempenho e redundância. O espaço em disco rígi<strong>do</strong> é igual ao número de discos<br />

usa<strong>do</strong>s menos um. Os da<strong>do</strong>s são distribuí<strong>do</strong>s pelos discos rígi<strong>do</strong>s, assim como no<br />

RAID 0. Os blocos de paridade, cria<strong>do</strong>s em uma das partições, estão lá por motivos<br />

de segurança. Eles são vincula<strong>do</strong>s uns aos outros com XOR, o que permite que o<br />

conteú<strong>do</strong> seja reconstruí<strong>do</strong> pelo bloco de paridade correspondente no caso de uma<br />

falha <strong>do</strong> sistema. Com o RAID 5, apenas um disco rígi<strong>do</strong> pode falhar por vez. Se<br />

um disco rígi<strong>do</strong> falhar, ele deverá ser substituí<strong>do</strong> assim que possível, para evitar o<br />

risco da perda de da<strong>do</strong>s.<br />

Outros níveis de RAID<br />

Vários outros níveis de RAID foram desenvolvi<strong>do</strong>s (RAIDn, RAID 10, RAID 0+1,<br />

RAID 30, RAID 50, etc.), sen<strong>do</strong> alguns deles implementações proprietárias criadas<br />

por fornece<strong>do</strong>res de hardware. Esses níveis não estão muitos difundi<strong>do</strong>s, portanto,<br />

não serão explica<strong>do</strong>s aqui.


2.2.2 Configuração de RAID de s<strong>of</strong>tware<br />

com o YaST<br />

A configuração de RAID de s<strong>of</strong>tware <strong>do</strong> YaST pode ser obtida a partir <strong>do</strong> Particiona<strong>do</strong>r<br />

Expert <strong>do</strong> YaST, descrito na Seção “Particiona<strong>do</strong>r” (Capítulo 2, Configuração <strong>do</strong><br />

sistema com YaST, ↑Inicialização). Essa ferramenta de particionamento permite editar<br />

e excluir partições existentes e criar novas partições que devem ser usadas com o RAID<br />

de s<strong>of</strong>tware. Nela, você cria partições RAID clican<strong>do</strong> em Criar → Não formatar e, em<br />

seguida, selecionan<strong>do</strong> 0xFD Linux RAID como identifica<strong>do</strong>r de partição. Para o RAID 0<br />

e o RAID 1, pelo menos duas partições são necessárias; para o RAID 1, geralmente são<br />

necessárias exatamente duas partições, não mais. Se o RAID 5 for usa<strong>do</strong>, pelo menos<br />

três partições serão necessárias. É recomendável usar apenas partições com o mesmo<br />

tamanho. As partições RAID devem ser armazenadas em diferentes discos rígi<strong>do</strong>s para<br />

diminuir o risco da perda de da<strong>do</strong>s caso um deles esteja danifica<strong>do</strong> (RAID 1 e 5) e para<br />

otimizar o desempenho <strong>do</strong> RAID 0. Após criar todas as partições para uso com o RAID,<br />

clique em RAID → Criar RAID para iniciar a configuração <strong>do</strong> RAID.<br />

Na caixa de diálogo seguinte, escolha entre os níveis de RAID 0, 1 e 5 (consulte a<br />

Seção 2.2.1, “Níveis de RAID” (p 63) para obter detalhes). Após clicar em Próximo,<br />

a caixa de diálogo a seguir lista todas as partições com o tipo “RAID Linux” ou “nativo<br />

<strong>do</strong> Linux” (consulte a Figura 2.6, “Partições RAID” (p 66)). Não são exibidas partições<br />

<strong>do</strong> DOS ou de troca. Se uma partição já estiver atribuída a um volume RAID, o nome<br />

<strong>do</strong> dispositivo de RAID (por exemplo, /dev/md0) será exibi<strong>do</strong> na lista. As partições<br />

não atribuídas são indicadas com “--”.<br />

Configuração de disco avançada 65


66 Referência<br />

Figura 2.6 Partições RAID<br />

Para adicionar uma partição anteriormente não atribuída ao volume RAID seleciona<strong>do</strong>,<br />

primeiro clique na partição e, em seguida, em Adicionar. Nesse ponto, o nome <strong>do</strong><br />

dispositivo de RAID é inseri<strong>do</strong> ao la<strong>do</strong> da partição selecionada. Atribua todas as<br />

partições reservadas para o RAID. Caso contrário, o espaço na partição permanecerá<br />

sem uso. Após atribuir todas as partições, clique em Próximo para continuar na caixa<br />

de diálogo de configurações, onde você pode ajustar o desempenho (consulte a<br />

Figura 2.7, “Configurações <strong>do</strong> sistema de arquivos” (p 67)).


Figura 2.7 Configurações <strong>do</strong> sistema de arquivos<br />

Assim como no particionamento convencional, defina o sistema de arquivos a ser usa<strong>do</strong>,<br />

assim como a criptografia e o ponto de montagem <strong>do</strong> volume RAID. Marcar Superbloco<br />

Persistente garante que as partições RAID sejam reconhecidas como tais na inicialização.<br />

Após concluir a configuração com Concluir, verifique o dispositivo /dev/md0 e<br />

outros dispositivos indica<strong>do</strong>s com RAID no particiona<strong>do</strong>r expert.<br />

2.2.3 Solução de problemas<br />

Verifique o arquivo /proc/mdstats para saber se uma partição RAID foi destruída.<br />

No caso de uma falha <strong>do</strong> sistema, encerre o sistema Linux e substitua o disco rígi<strong>do</strong><br />

danifica<strong>do</strong> por um novo, particiona<strong>do</strong> da mesma maneira. Depois, reinicie o sistema e<br />

digite o coman<strong>do</strong> mdadm /dev/mdX --add /dev/sdX. Substitua 'X' por seus<br />

próprios identifica<strong>do</strong>res de dispositivo. Isso integra o disco rígi<strong>do</strong> automaticamente ao<br />

sistema RAID e o reconstrói totalmente.<br />

Configuração de disco avançada 67


68 Referência<br />

2.2.4 Mais informações<br />

Instruções de configuração e mais detalhes sobre o RAID de s<strong>of</strong>tware podem ser<br />

encontra<strong>do</strong>s nos HOWTOs, em:<br />

• /usr/share/<strong>do</strong>c/packages/raidtools/S<strong>of</strong>tware-RAID.HOWTO<br />

.html<br />

• http://en.tldp.org/HOWTO/S<strong>of</strong>tware-RAID-HOWTO.html<br />

Também estão disponíveis listas de discussão relacionadas ao RAID <strong>do</strong> Linux, como<br />

em http://marc.theaimsgroup.com/?l=linux-raid&r=1&w=2.


Atualizan<strong>do</strong> o gerenciamento de<br />

sistemas e pacotes<br />

O <strong>SUSE</strong> Linux fornece a opção de atualizar um sistema existente sem ter que reinstalálo<br />

novamente por inteiro. Há <strong>do</strong>is tipos de atualização: atualização de pacotes de<br />

s<strong>of</strong>tware individuais e atualização <strong>do</strong> sistema inteiro. Os pacotes também podem ser<br />

instala<strong>do</strong>s manualmente com o gerencia<strong>do</strong>r de pacotes RPM.<br />

3.1 Atualizan<strong>do</strong> o <strong>SUSE</strong> Linux<br />

O s<strong>of</strong>tware tende a “crescer” a cada versão. Portanto, verifique o espaço de partição<br />

disponível com df antes de atualizar. Se você suspeitar de que tem pouco espaço em<br />

disco, proteja os seus da<strong>do</strong>s antes de atualizar e reparticionar o sistema. Não há nenhuma<br />

regra geral sobre quanto espaço deve haver em cada partição. Os requisitos de espaço<br />

dependem <strong>do</strong> seu perfil de particionamento específico, <strong>do</strong> s<strong>of</strong>tware seleciona<strong>do</strong> e da<br />

versão <strong>do</strong> <strong>SUSE</strong> Linux.<br />

3.1.1 Preparações<br />

Antes de atualizar, copie os arquivos de configuração antigos em uma mídia separada,<br />

como streamer, disco rígi<strong>do</strong> removível, chaveiro USB ou unidade ZIP para proteger os<br />

da<strong>do</strong>s. Isso se aplica basicamente aos arquivos armazena<strong>do</strong>s em /etc, assim como a<br />

alguns <strong>do</strong>s diretórios e arquivos em /var e /opt. Você também pode gravar os da<strong>do</strong>s<br />

<strong>do</strong> usuário em /home (os diretórios HOME) em uma mídia de backup. Faça o backup<br />

desses da<strong>do</strong>s como root. Apenas roottem permissão de leitura para to<strong>do</strong>s os arquivos<br />

locais.<br />

3<br />

Atualizan<strong>do</strong> o gerenciamento de sistemas e pacotes 69


70 Referência<br />

Antes de iniciar a atualização, anote a partição raiz. O coman<strong>do</strong> df / relaciona o nome<br />

<strong>do</strong> dispositivo da partição raiz. Em Exemplo 3.1, “Listar com df -h” (p 70), a partição<br />

raiz a ser anotada é a /dev/hda3 (montada como /).<br />

Exemplo 3.1 Listar com df -h<br />

Filesystem Size Used Avail Use% Mounted on<br />

/dev/hda3 74G 22G 53G 29% /<br />

tmpfs 506M 0 506M 0% /dev/shm<br />

/dev/hda5 116G 5.8G 111G 5% /home<br />

/dev/hda1 39G 1.6G 37G 4% /win<strong>do</strong>ws/C<br />

/dev/hda2 4.6G 2.6G 2.1G 57% /win<strong>do</strong>ws/D<br />

3.1.2 Problemas possíveis<br />

Se você atualizar um sistema padrão da versão anterior para esta, o YaST fará e executará<br />

as mudanças necessárias. Dependen<strong>do</strong> das suas personalizações, algumas etapas ou<br />

to<strong>do</strong> o procedimento de atualização poderá falhar e você terá que copiar os da<strong>do</strong>s de<br />

backup. Aqui, assinalamos mais questões a verificar antes de iniciar a atualização <strong>do</strong><br />

sistema<br />

Verifican<strong>do</strong> passwd e group em /etc<br />

Antes de atualizar o sistema, verifique se /etc/passwd e /etc/group não contêm<br />

erros de sintaxe. Para isso, inicie os utilitários de verificação pwck e grpck como<br />

raiz e elimine quaisquer erros reporta<strong>do</strong>s.<br />

PostgreSQL<br />

Antes de atualizar PostgreSQL (postgres), descarte os bancos de da<strong>do</strong>s. Consulte<br />

a página de manual de pg_dump. Isso só será necessário se você realmente usou<br />

PostgreSQL antes da sua atualização.<br />

3.1.3 Atualizan<strong>do</strong> com o YaST<br />

Após os procedimentos de preparação apresenta<strong>do</strong>s na Seção 3.1.1, “Preparações”<br />

(p 69), você já pode atualizar o sistema:


1 Inicialize o sistema como para a instalação, descrita na Seção “Inicialização <strong>do</strong><br />

sistema para instalação” (Capítulo 1, Instalação com o YaST, ↑Inicialização). No<br />

YaST, escolha um idioma e selecione Atualizar na caixa de diálogo Mo<strong>do</strong> de<br />

Instalação. Não selecione Nova Instalação.<br />

2 O YaST determina se há diversas partições raiz. Se houver apenas uma, continue<br />

com a próxima etapa. Se houver várias, selecione a partição correta e confirme<br />

com Próximo (/dev/hda3 foi seleciona<strong>do</strong> no exemplo da Seção 3.1.1,<br />

“Preparações” (p 69)). O YaST lê o antigo fstab nessa partição para analisar<br />

e montar os sistemas de arquivos lista<strong>do</strong>s.<br />

3 Na caixa de diálogo Configurações de Instalação, ajuste as configurações de<br />

acor<strong>do</strong> com suas necessidades. Normalmente, você pode deixar as configurações<br />

padrão intactas, mas se pretende aprimorar o sistema, verifique os pacotes<br />

<strong>of</strong>ereci<strong>do</strong>s nos submenus Seleção de S<strong>of</strong>tware ou adicione suporte para idiomas<br />

extras.<br />

Você também tem a possibilidade de fazer backups de vários componentes <strong>do</strong><br />

sistema. Selecionar backups torna lento o processo de atualização. Use essa opção<br />

se não tiver um backup de sistema recente.<br />

4 Na caixa de diálogo a seguir, escolha atualizar apenas o s<strong>of</strong>tware que já está<br />

instala<strong>do</strong> ou adicionar novos componentes de s<strong>of</strong>tware ao sistema (mo<strong>do</strong> de<br />

upgrade) É recomendável aceitar a composição sugerida, por exemplo,<br />

Atualização baseada na seleção "Sistema Padrão com KDE" ou "Sistema Padrão<br />

com GNOME". Os ajustes podem ser feitos posteriormente com o YaST.<br />

3.1.4 Atualizan<strong>do</strong> pacotes individuais<br />

Independentemente <strong>do</strong> seu ambiente atualiza<strong>do</strong> em geral, sempre é possível atualizar<br />

pacotes individuais. A partir desse ponto, porém, é sua responsabilidade garantir que<br />

o seu sistema permaneça consistente. Dicas sobre atualização podem ser encontradas<br />

em http://www.novell.com/linux/<strong>do</strong>wnload/updates/.<br />

Selecione os componentes da lista de seleção <strong>do</strong> pacote <strong>do</strong> YaST segun<strong>do</strong> as suas<br />

necessidades. Se você selecionar um pacote essencial para a operação geral <strong>do</strong> sistema,<br />

o YaST emitirá um aviso. Os pacotes só devem ser atualiza<strong>do</strong>s no mo<strong>do</strong> de atualização.<br />

Vários pacotes, por exemplo, contêm bibliotecas compartilhadas. Se você atualizar<br />

Atualizan<strong>do</strong> o gerenciamento de sistemas e pacotes 71


72 Referência<br />

esses programas e aplicativos no sistema em execução, poderão ocorrer problemas de<br />

funcionamento.<br />

3.2 Mudanças no s<strong>of</strong>tware de versão<br />

para versão<br />

Os aspectos individuais muda<strong>do</strong>s de versão para versão são resumi<strong>do</strong>s detalhadamente<br />

a seguir. O resumo indica, por exemplo, se as configurações básicas foram<br />

completamente reconfiguradas, se arquivos de configuração foram movi<strong>do</strong>s para outros<br />

locais ou se os aplicativos comuns s<strong>of</strong>reram mudanças consideráveis. As modificações<br />

significativas que afetam o uso diário <strong>do</strong> sistema no nível <strong>do</strong> usuário ou no nível <strong>do</strong><br />

administra<strong>do</strong>r são mencionadas aqui.<br />

Os problemas e as questões especiais das respectivas versões são publica<strong>do</strong>s online à<br />

medida que são identifica<strong>do</strong>s. Consulte os links relaciona<strong>do</strong>s abaixo. As atualizações<br />

importantes de pacotes individuais podem ser acessadas em http://www.novell<br />

.com/products/linuxpr<strong>of</strong>essional/<strong>do</strong>wnloads/ usan<strong>do</strong> o YOU (YaST<br />

Online Update) — consulte a Seção “Atualizan<strong>do</strong> s<strong>of</strong>tware online” (Capítulo 2,<br />

Configuração <strong>do</strong> sistema com YaST, ↑Inicialização).<br />

3.2.1 Do 9.0 ao 9.1<br />

Consulte o artigo “Known Problems and Special Features in <strong>SUSE</strong> Linux 9,1” no banco<br />

de da<strong>do</strong>s de suporte <strong>do</strong> <strong>SUSE</strong> em http://portal.suse.com na palavra-chave<br />

special features. Os artigos são publica<strong>do</strong>s em todas as versões <strong>do</strong> <strong>SUSE</strong> Linux.<br />

Atualizan<strong>do</strong> para o Kernel 2.6<br />

O <strong>SUSE</strong> Linux baseia-se agora inteiramente no kernel 2.6. A versão anterior 2.4 não<br />

pode mais ser usada, porque os aplicativos forneci<strong>do</strong>s não funcionam com o kernel 2.4.<br />

Observe os seguintes detalhes:<br />

• O carregamento de módulos é configura<strong>do</strong> por meio <strong>do</strong> arquivo /etc/modprobe<br />

.conf. O arquivo /etc/modules.conf está obsoleto. O YaST tenta converter<br />

o arquivo (consulte também o script /sbin/generate-modprobe.conf).


• Os módulos têm o sufixo .ko.<br />

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

• O prefixo snd_ foi removi<strong>do</strong> das opções <strong>do</strong> módulo de som ALSA .<br />

• sysfs agora complementa o sistema de arquivos /proc.<br />

• O gerenciamento de energia (especialmente ACPI) foi aperfeiçoa<strong>do</strong> e pode ser<br />

configura<strong>do</strong> por meio de um módulo <strong>do</strong> YaST.<br />

Montan<strong>do</strong> partições VFAT<br />

Na montagem de partições VFAT, o parâmetro code deve ser muda<strong>do</strong> para codepage.<br />

Se você tiver dificuldades de montar uma partição VFAT, verifique se o arquivo /etc/<br />

fstab contém o antigo nome de parâmetro.<br />

Standby e suspender com ACPI<br />

O kernel 2.6 suporta standby e suspender com ACPI. Esta função ainda está no estágio<br />

experimental e pode não ser suportada por alguns componentes <strong>do</strong> hardware. Para usála,<br />

será necessário o pacote powersave. Informações sobre esse pacote também estão<br />

disponíveis em /usr/share/<strong>do</strong>c/packages/powersave. Um front end gráfico<br />

pode ser encontra<strong>do</strong> no pacote kpowersave.<br />

Dispositivos de entrada<br />

Com relação às mudanças em conexão com os dispositivos de entrada, consulte o artigo<br />

<strong>do</strong> portal já menciona<strong>do</strong> “Known Problems and Special Features in <strong>SUSE</strong> <strong>LINUX</strong> 9.1”<br />

no ban<strong>do</strong> de da<strong>do</strong>s de suporte http://portal.suse.com com a palavra-chave<br />

special features.<br />

Biblioteca nativa de threads POSIX e glibc 2.3.x<br />

Os aplicativos associa<strong>do</strong>s ao NGPT (Next Generation POSIX Threading) não funcionam<br />

com glibc 2.3.x. To<strong>do</strong>s os aplicativos afeta<strong>do</strong>s que não acompanham o <strong>SUSE</strong> Linux<br />

devem ser compila<strong>do</strong>s com linuxthreads ou com NPTL (Native POSIX Thread Library<br />

Atualizan<strong>do</strong> o gerenciamento de sistemas e pacotes 73


74 Referência<br />

- Biblioteca Nativa de Threads POSIX). O NPTL é preferível, porque é o padrão <strong>do</strong><br />

futuro.<br />

Se o NPTL causar dificuldades, poderá ser usada a antiga implementação <strong>do</strong>s<br />

linuxthreads, configuran<strong>do</strong> a seguinte variável de ambiente (substituir<br />

versão_<strong>do</strong>_kernel pelo número de versão <strong>do</strong> respectivo kernel):<br />

LD_ASSUME_KERNEL=versão-<strong>do</strong>-kernel<br />

Os seguintes números de versão são possíveis:<br />

2.2.5 (i386, i586):<br />

linuxthreads sem pilhas flutuantes<br />

2.4.1 (AMD64, IPF, s390x, i586, i686):, 2.4.1 (AMD64, i586, i686):<br />

linuxthreads com pilhas flutuantes<br />

Notas referentes ao kernel e linuxthreads com pilhas flutuantes: Aplicativos que usam<br />

errno, h_errno e _res devem incluir os arquivos de cabeçalho (errno.h, netdb<br />

.h e resolv.h) com #include. Para programas C++ com suporte multithread que<br />

usam cancelamento de thread, a variável de ambiente LD_ASSUME_KERNEL=2.4.1<br />

deve ser usada para solicitar o uso da biblioteca linuxthreads.<br />

Adaptações para Native POSIX Thread Library<br />

O NPTL está incluí<strong>do</strong> no <strong>SUSE</strong> Linux 9.1 como o pacote de thread. O NPTL é<br />

compatível binariamente com a biblioteca <strong>do</strong>s antigos linuxthreads. Porém, as áreas<br />

em que os linuxthreads violam o padrão POSIX exigem adaptações NPTL. Isso inclui<br />

o seguinte: o tratamento de sinais, getpid retornan<strong>do</strong> o mesmo valor em to<strong>do</strong>s os<br />

threads e handlers de threads registra<strong>do</strong>s com pthread_atfork que não funcionam se<br />

vfork for usa<strong>do</strong>.<br />

Configuração da interface de rede<br />

A configuração da interface de rede mu<strong>do</strong>u. Anteriormente, o hardware era inicializa<strong>do</strong><br />

de acor<strong>do</strong> com a configuração de uma interface inexistente. Agora, o sistema procura<br />

o novo hardware e o inicializa imediatamente, habilitan<strong>do</strong> a configuração da nova<br />

interface de rede.


Novos nomes foram apresenta<strong>do</strong>s para os arquivos de configuração. Como o nome de<br />

uma interface de rede é gera<strong>do</strong> dinamicamente e o uso <strong>do</strong>s dispositivos hotplug está<br />

aumentan<strong>do</strong> consideravelmente, um nome como eth0 ou eth1 não é mais adequa<strong>do</strong><br />

para fins de configuração. Por essa razão, designações exclusivas, como endereço MAC<br />

ou slot PCI, são usadas para nomear configurações de interface. Você pode usar nomes<br />

de interface assim que aparecerem. Coman<strong>do</strong>s como ifup eth0 ou if<strong>do</strong>wn eth0<br />

ainda são possíveis.<br />

As configurações de dispositivo estão localizadas em /etc/sysconfig/hardware.<br />

As interfaces fornecidas por esses dispositivos geralmente estão localizadas em /etc/<br />

sysconfig/network (com nomes diferentes). Consulte a descrição detalhada em<br />

/usr/share/<strong>do</strong>c/packages/sysconfig/README.<br />

Configuração de Som<br />

Após uma atualização, as placas de som devem ser reconfiguradas. Isso pode ser feito<br />

com o módulo de som <strong>do</strong> YaST. Como root, digite /sbin/yast2 sound.<br />

Domínio superior .local como <strong>do</strong>mínio “link-local”<br />

A biblioteca resolver trata o <strong>do</strong>mínio superior .local como <strong>do</strong>mínio “link-local” e<br />

envia solicitações <strong>do</strong> DNS multicast para a porta 5353 <strong>do</strong> endereço multicast<br />

224.0.0.251, em vez de consultas de DNS normais. É uma mudança incompatível.<br />

Se o <strong>do</strong>mínio .local já é usa<strong>do</strong> na configuração de nome de servi<strong>do</strong>r, use um nome<br />

de <strong>do</strong>mínio diferente. Para obter mais informações sobre multicast DNS, consulte<br />

http://www.multicastdns.org.<br />

Codificação UTF-8 em to<strong>do</strong> o sistema<br />

A codificação padrão <strong>do</strong> sistema é UTF-8. Assim, quan<strong>do</strong> você fizer uma instalação<br />

padrão, um local será configura<strong>do</strong> com a codificação UTF-8, como en_US.UTF-8.<br />

Para obter mais informações, consulte http://www.suse.de/~mfabian/<br />

suse-cjk/locales.html.<br />

Converten<strong>do</strong> nomes de arquivo em UTF-8<br />

Os arquivos em sistemas de arquivos cria<strong>do</strong>s anteriormente não usam codificação UTF-<br />

8 para os nomes de arquivo (a menos que especifica<strong>do</strong> de outra forma). Se houver<br />

Atualizan<strong>do</strong> o gerenciamento de sistemas e pacotes 75


caracteres não-ASCII nesses nomes de arquivo, eles não serão exibi<strong>do</strong>s corretamente.<br />

Para corrigir, use o script convmv, que converte a codificação de nomes de arquivo<br />

em UTF-8.<br />

Ferramentas shell compatíveis com padrão POSIX <strong>do</strong><br />

2001<br />

Na configuração padrão, as ferramentas shell <strong>do</strong> pacote <strong>do</strong> coreutils (tail, chown,<br />

head, sort, etc.) não são mais compatíveis com o padrão POSIX de 1992 mas com<br />

o padrão POSIX de 2001 (Single UNIX Specification, versão 3== IEEE Std 1003.1-<br />

2001 == ISO/IEC 9945:2002). O comportamento antigo pode ser força<strong>do</strong> com uma<br />

variável de ambiente:<br />

_POSIX2_VERSION=199209<br />

O novo valor é 200112 e é usa<strong>do</strong> como padrão em _POSIX2_VERSION. O padrão<br />

SUS pode ser analisa<strong>do</strong> (gratuitamente, mas é necessário registro) em http://www<br />

.unix.org.<br />

DICA<br />

76 Referência<br />

S<strong>of</strong>tware de terceiros podem ainda não ser compatíveis com o novo padrão.<br />

Nesse caso, configure a variável de ambiente como descrito acima.<br />

/etc/gsha<strong>do</strong>w Obsoleto<br />

/etc/gsha<strong>do</strong>w foi aban<strong>do</strong>na<strong>do</strong> e removi<strong>do</strong>, porque esse arquivo é supérfluo pelas<br />

seguintes razões:<br />

• Não é suporta<strong>do</strong> por glibc.<br />

• Não há interface <strong>of</strong>icial para esse arquivo. Nem mesmo a suíte transitória contém<br />

essa interface.<br />

• A maioria das ferramentas que verifica a senha <strong>do</strong> grupo não <strong>of</strong>erece suporte ao<br />

arquivo e o ignora pelas referidas razões.


OpenLDAP<br />

Como o formato <strong>do</strong> banco de da<strong>do</strong>s mu<strong>do</strong>u, os bancos de da<strong>do</strong>s devem ser gera<strong>do</strong>s<br />

novamente. Durante a atualização, o sistema tenta efetuar essa conversão<br />

automaticamente. Porém, haverá casos em que a conversão falha.<br />

A verificação <strong>do</strong> esquema s<strong>of</strong>reu aprimoramentos substanciais. Assim, diversas<br />

operações padrão não compatíveis que eram permitidas com o antigo servi<strong>do</strong>r LDAP<br />

não são mais possíveis.<br />

A sintaxe <strong>do</strong> arquivo de configuração mu<strong>do</strong>u parcialmente com uma visão para ACLs.<br />

Após a instalação, há informações com relação à atualização no arquivo /usr/share/<br />

<strong>do</strong>c/packages/powersave/README.thermal.<br />

Apache 1.3 substituí<strong>do</strong> por Apache 2<br />

O servi<strong>do</strong>r Web <strong>do</strong> Apache (versão 1.3) foi substituí<strong>do</strong> pelo Apache 2. A <strong>do</strong>cumentação<br />

detalhada da versão 2.0 está disponível na página da Web http://httpd.apache<br />

.org/<strong>do</strong>cs-2.0/en/. Em um sistema com uma instalação de servi<strong>do</strong>r HTTP, uma<br />

atualização remove o pacote Apache e instala o Apache 2. Posteriormente, o sistema<br />

deve ser adapta<strong>do</strong> com o YaST ou manualmente. Os arquivos de configuração em<br />

/etc/httpd agora estão localiza<strong>do</strong>s em /etc/apache2.<br />

Threads ou processos podem ser seleciona<strong>do</strong>s para tratar várias consultas simultâneas.<br />

O gerenciamento <strong>do</strong> processo mu<strong>do</strong>u para um módulo independente, o módulo<br />

multiprocessamento (MPM). Da mesma maneira, o Apache 2 precisa <strong>do</strong> pacote<br />

apache2-prefork (recomenda<strong>do</strong> para fins de estabilidade) ou <strong>do</strong> pacote<br />

apache2-worker. Dependen<strong>do</strong> <strong>do</strong> MPM, o Apache 2 reage de forma diferente às<br />

consultas. Isso afeta o desempenho, assim como o uso <strong>do</strong>s módulos. Essas características<br />

são discutidas detalhadamente na Seção 26.4.4, “Módulos de multiprocessamento”<br />

(p 486).<br />

O Apache 2 agora <strong>of</strong>erece suporte para o IPv6 (protocolo da Internet avança<strong>do</strong>).<br />

Foi implementa<strong>do</strong> um mecanismo para que os programa<strong>do</strong>res de módulo possam<br />

especificar a seqüência de carregamento desejada <strong>do</strong>s módulos, liberan<strong>do</strong> os usuários<br />

dessa tarefa. Em geral, é importante a seqüência em que os módulos são executa<strong>do</strong>s.<br />

Nas versões anteriores, isso era determina<strong>do</strong> através da seqüência de carregamento.<br />

Por exemplo, um módulo que só dá acesso a determina<strong>do</strong>s recursos para usuários<br />

Atualizan<strong>do</strong> o gerenciamento de sistemas e pacotes 77


78 Referência<br />

autentica<strong>do</strong>s deve ser carrega<strong>do</strong> primeiro, para impedir que usuários sem permissão de<br />

acesso vejam as páginas.<br />

As consultas e respostas <strong>do</strong> Apache podem ser processadas com filtros.<br />

Do Samba 2.x ao Samba 3.x<br />

Após a atualização <strong>do</strong> Samba 2.x para o Samba 3.x, a autenticação winbind não está<br />

mais disponível. Os outros méto<strong>do</strong>s de autenticação ainda podem ser usa<strong>do</strong>s. Por isso,<br />

os seguintes programas foram removi<strong>do</strong>s:<br />

/usr/sbin/wb_auth<br />

/usr/sbin/wb_ntlmauth<br />

/usr/sbin/wb_info_group.pl<br />

Consulte também http://www.squid-cache.org/Doc/FAQ/FAQ-23.html<br />

#ss23.5.<br />

Atualização <strong>do</strong> OpenSSH (versão 3.8p1)<br />

O suporte gssapi foi substituí<strong>do</strong> pelo gssapi-with-mic para impedir possíveis<br />

ataques <strong>do</strong> tipo MITM. Essas duas versões não são compatíveis. Isso significa que não<br />

é possível autenticar com tickets Kerberos a partir de distribuições mais antigas, visto<br />

que outros méto<strong>do</strong>s de autenticação são usa<strong>do</strong>s.<br />

Aplicativos SSH e de terminal<br />

Ao se estabelecer uma conexão de um host remoto (especialmente via SSH, telnet e<br />

RSH) entre a versão 9 (configuração padrão com UTF-8 ativa<strong>do</strong>) e sistemas mais antigos<br />

(<strong>SUSE</strong> Linux 9.0 e versões anteriores em que UTF-8 não está ativa<strong>do</strong> por padrão ou<br />

não é suporta<strong>do</strong>), aplicativos de terminal podem exibir caracteres com erro.<br />

Isso ocorre porque o OpenSSH não encaminha as configurações locais. Portanto, são<br />

usa<strong>do</strong>s os padrões <strong>do</strong> sistema que podem não corresponder às configurações <strong>do</strong> terminal<br />

remoto. Isso afeta o YaST no mo<strong>do</strong> de texto e os aplicativos executa<strong>do</strong>s de um host<br />

remoto como usuário normal (não root). Os aplicativos inicia<strong>do</strong>s por root são<br />

afeta<strong>do</strong>s somente quan<strong>do</strong> os usuários mudam os locais padrão de root (apenas<br />

LC_CTYPE é defini<strong>do</strong> por padrão).


libiodbc descarta<strong>do</strong><br />

Os usuários <strong>do</strong> FreeRADIUS devem se conectar ao unixODBC, pois o libiodbc foi<br />

descarta<strong>do</strong>.<br />

Recursos XML em /usr/share/xml<br />

Os recursos XML (DTDs, folhas de estilo, etc.) são instala<strong>do</strong>s em /usr/share/xml.<br />

Portanto, alguns diretórios não estão mais disponíveis em /usr/share/sgml. Se<br />

você tiver problemas, modifique os scripts e makefiles ou use os catálogos <strong>of</strong>iciais<br />

(principalmente /etc/xml/catalog ou /etc/sgml/catalog).<br />

Mídia removível com subfs<br />

A mídia removível está agora integrada ao uso de subfs. Não é mais necessário montar<br />

a mídia manualmente com mount. Para montar a mídia, basta mudar o respectivo<br />

diretório de dispositivo em /media. A mídia não pode ser ejetada enquanto for acessada<br />

por um programa.<br />

3.2.2 Do 9,1 ao 9,2<br />

Consulte o artigo “Known Problems and Special Features in <strong>SUSE</strong> <strong>LINUX</strong> 9.2” no<br />

banco de da<strong>do</strong>s de suporte <strong>do</strong> <strong>SUSE</strong> em http://portal.suse.com com a palavrachave<br />

special features.<br />

Ativação <strong>do</strong> firewall na caixa de diálogo de proposta<br />

durante a instalação<br />

Para aumentar a segurança, a solução de firewall SuSEFirewall2 fornecida é ativada<br />

no fim da instalação na caixa de diálogo de proposta. Isso significa que todas as portas<br />

estão fechadas inicialmente e podem ser abertas na caixa de diálogo de proposta, se<br />

necessário. Por padrão, não é possível efetuar login de sistemas remotos. Também<br />

interfere na navegação na rede e aplicativos multicast, como SLP, Samba ("Ambiente<br />

de rede") e alguns jogos. Você pode fazer o ajuste fino das configurações firewall com<br />

o YaST.<br />

Atualizan<strong>do</strong> o gerenciamento de sistemas e pacotes 79


80 Referência<br />

Se for necessário acesso à rede durante a instalação ou configuração de um serviço, o<br />

módulo respectivo <strong>do</strong> YaST abre as portas TCP e UDP exigidas de todas as interfaces<br />

internas e externas. Se não desejar, o usuário poderá fechar as portas no módulo <strong>do</strong><br />

YaST ou especificar outras configurações de firewall detalhadas.<br />

KDE e suporte IPv6<br />

Por padrão, o suporte IPv6 não está habilita<strong>do</strong> para KDE. É possível habilitá-lo usan<strong>do</strong><br />

o editor <strong>do</strong> YaST /etc/sysconfig. A razão de desabilitar esse recurso é que os<br />

endereços IPv6 não recebem o suporte adequa<strong>do</strong> de to<strong>do</strong>s os prove<strong>do</strong>res de serviços<br />

de Internet e, em conseqüência, leva a mensagens de erro ao navegar na Web e atrasos<br />

na exibição de páginas da Web<br />

YaST Online Update e pacotes Delta<br />

O YaST Online Update agora suporta um tipo especial de pacotes RPM que armazena<br />

apenas a diferença binária de determina<strong>do</strong> pacote básico. Essa técnica reduz<br />

consideravelmente o tamanho <strong>do</strong> pacote e o tempo de <strong>do</strong>wnload em detrimento de uma<br />

maior carga da CPU para reorganizar o pacote final. Em /etc/sysconfig/<br />

onlineupdate, configure se VOCÊ deve usar esses pacotes delta. Consulte /usr/<br />

share/<strong>do</strong>c/packages/deltarpm/README para obter detalhes técnicos.<br />

Configuração <strong>do</strong> sistema de impressão<br />

Ao término da instalação (caixa de diálogo de proposta), as portas necessárias para o<br />

sistema de impressão devem ser abertas na configuração <strong>do</strong> firewall. A porta 631/TCP<br />

e a porta 631/UDP são necessárias para o CUPS e não devem ser fechadas para operação<br />

normal. A porta 515/TCP (para o antigo protocolo LPD) e as portas usadas pelo Samba<br />

também devem ser abertas para impressão via LPD ou SMB.<br />

Mudar para X.Org<br />

A mudança de XFree86 para X.Org é facilitada pelos links de compatibilidade que<br />

habilitam acesso a arquivos e coman<strong>do</strong>s importantes com os nomes antigos.


Tabela 3.1 Coman<strong>do</strong>s<br />

XFree86<br />

XFree86<br />

xf86config<br />

xf86cfg<br />

Tabela 3.2 Arquivos de registro em /var/log<br />

XFree86<br />

XFree86.0.log<br />

XFree86.0.log.old<br />

X.Org<br />

Xorg<br />

xorgconfig<br />

xorgcfg<br />

X.Org<br />

Xorg.0.log<br />

Xorg.0.log.old<br />

No processo de mudança para X.Org, os pacotes foram renomea<strong>do</strong>s de XFree86*<br />

para xorg-x11*.<br />

Emula<strong>do</strong>res de terminal para X11<br />

Removemos diversos emula<strong>do</strong>res de terminal porque não eram mais manti<strong>do</strong>s ou não<br />

funcionavam no ambiente padrão, especialmente por não <strong>of</strong>erecerem suporte para UTF-<br />

8. O <strong>SUSE</strong> Linux <strong>of</strong>erece terminais padrão, como xterm, os terminais KDE e GNOME<br />

e mlterm (emula<strong>do</strong>r de terminal multilingüe para X), que podem ser substitutos <strong>do</strong><br />

aterm e <strong>do</strong> term.<br />

Mudanças no pacote powersave<br />

Os arquivos de configuração em /etc/sysconfig/powersave mudaram:<br />

Atualizan<strong>do</strong> o gerenciamento de sistemas e pacotes 81


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

Antigos<br />

/etc/sysconfig/powersave/<br />

common<br />

Agora divida em<br />

common<br />

cpufreq<br />

events<br />

battery<br />

sleep<br />

thermal<br />

/etc/powersave.conf tornou-se obsoleto. As variáveis existentes mudaram para<br />

os arquivos relaciona<strong>do</strong>s na Tabela 3.3, “Divida os arquivos de configuração em<br />

/etc/sysconfig/powersave” (p 82). Se você modificou as variáveis “event” em /etc/<br />

powersave.conf, essas agora devem ser adaptadas em /etc/sysconfig/<br />

powersave/events.<br />

Os nomes <strong>do</strong>s esta<strong>do</strong>s de espera mudaram de:<br />

• suspender (ACPI S4, suspender APM)<br />

• suspender (ACPI S4, standby APM)<br />

Para:<br />

82 Referência<br />

• suspender para disco (ACPI S4, suspender APM)<br />

• suspender para ram (ACPI S3, suspender APM)<br />

• standby (ACPI S1, standby APM)


OpenOffice.org (OOo)<br />

Diretórios:<br />

OOo agora está instala<strong>do</strong> em /usr/lib/ooo-1.1 em vez de em /opt/<br />

OpenOffice.org. O diretório padrão para configurações de usuário agora é<br />

/usr/lib/ooo-1.1 em vez de /opt/OpenOffice.org.<br />

Agrupa<strong>do</strong>r:<br />

Há alguns agrupa<strong>do</strong>res novos para inicializar os componentes OOo. Os novos<br />

nomes são mostra<strong>do</strong>s na Tabela 3.4, “Agrupa<strong>do</strong>r” (p 83).<br />

Tabela 3.4 Agrupa<strong>do</strong>r<br />

Antigos<br />

/usr/X11R6/bin/OOo-calc<br />

/usr/X11R6/bin/OOo-draw<br />

/usr/X11R6/bin/OOo-impress<br />

/usr/X11R6/bin/OOo-math<br />

/usr/X11R6/bin/OOo-padmin<br />

/usr/X11R6/bin/OOo-setup<br />

/usr/X11R6/bin/OOo-template<br />

/usr/X11R6/bin/OOo-web<br />

/usr/X11R6/bin/OOo-writer<br />

/usr/X11R6/bin/OOo<br />

/usr/X11R6/bin/OOo-wrapper<br />

Nova<br />

/usr/bin/oocalc<br />

/usr/bin/oodraw<br />

/usr/bin/ooimpress<br />

/usr/bin/oomath<br />

/usr/sbin/oopadmin<br />

–<br />

/usr/bin/o<strong>of</strong>romtemplate<br />

/usr/bin/ooweb<br />

/usr/bin/oowriter<br />

/usr/bin/o<strong>of</strong>fice<br />

/usr/bin/ooo-wrapper<br />

O agrupa<strong>do</strong>r agora tem suporte para a opção --icons-set para alternar entre<br />

os ícones KDE e GNOME. As opções a seguir não são mais suportadas:<br />

--default-configuration, --gui, --java-path, --skip-check,<br />

Atualizan<strong>do</strong> o gerenciamento de sistemas e pacotes 83


84 Referência<br />

--lang (o idioma agora é determina<strong>do</strong> por meio de locais),<br />

--messages-in-win<strong>do</strong>w e --quiet.<br />

Suporte a KDE e GNOME:<br />

As extensões KDE e GNOME estão disponíveis nos pacotes<br />

OpenOffice_org-kde e OpenOffice_org-gnome.<br />

Mixer de som kmix<br />

O mixer de som kmix é predefini<strong>do</strong> como o padrão. No caso de hardware high-end, há<br />

outros mixers, como QAMix. KAMix, envy24control (apenas ICE1712) ou hdspmixer<br />

(apenas RME Hammerfall).<br />

Gravação de DVDs<br />

No passa<strong>do</strong>, era aplica<strong>do</strong> um patch ao arquivo binário cdrecord <strong>do</strong> pacote cdrecord<br />

para garantir o suporte à gravação de DVDs. Agora, está instala<strong>do</strong> um novo arquivo<br />

binário cdrecord-dvd que tem esse patch.<br />

O programa growis<strong>of</strong>s <strong>do</strong> pacote dvd+rw-tools agora pode gravar todas as<br />

mídias de DVD (DVD+R, DVD-R, DVD+RW, DVD-RW, DVD+RL). Tente usar esta,<br />

em vez de cdrecord-dvd com patch.<br />

Vários kernels<br />

É possível instalar diversos kernels la<strong>do</strong> a la<strong>do</strong>. Esse recurso visa possibilitar os<br />

administra<strong>do</strong>res de fazer o upgrade de um kernel para outro, instalan<strong>do</strong> o novo kernel,<br />

verifican<strong>do</strong> se o novo kernel funciona como espera<strong>do</strong> e desinstalan<strong>do</strong> o antigo kernel.<br />

Embora o YaST ainda não tenha suporte para esse recurso, kernels podem ser instala<strong>do</strong>s<br />

e desinstala<strong>do</strong>s facilmente <strong>do</strong> shell usan<strong>do</strong> rpm -i package.rpm.<br />

Os menus padrão de carrega<strong>do</strong>r de boot contêm uma entrada de kernel. Antes de instalar<br />

diversos kernels, é útil adicionar uma entrada para os kernels extras, de maneira que<br />

possam ser facilmente seleciona<strong>do</strong>s. O kernel que estava ativo antes da instalação de<br />

um novo kernel pode ser acessa<strong>do</strong> como vmlinuz.previous e initrd<br />

.previous. Ao se criar uma entrada de carrega<strong>do</strong>r de boot similar à entrada padrão<br />

e ten<strong>do</strong> em vista que essa entrada faz referência a vmlinuz.previous e initrd<br />

.previous em vez de a vmlinuz e initrd, é possível acessar o kernel<br />

anteriormente ativo. Como opção, GRUB e LILO tem suporte para entradas de


carrega<strong>do</strong>r de boot de curingas. Consulte as páginas de informações sobre GRUB<br />

(info grub) e a página de manual sobre o lilo.conf (5) para obter mais detalhes.<br />

3.2.3 Do 9.2 ao 9.3<br />

Consulte o artigo “Known Problems and Special Features in <strong>SUSE</strong> Linux 9,3” no banco<br />

de da<strong>do</strong>s de suporte <strong>do</strong> <strong>SUSE</strong> em http://portal.suse.com na palavra-chave<br />

special features.<br />

Inician<strong>do</strong> a instalação manual no prompt <strong>do</strong> kernel<br />

O mo<strong>do</strong> Instalação Manual não aparece mais na tela <strong>do</strong> carrega<strong>do</strong>r de boot. Você ainda<br />

pode obter linuxrc no mo<strong>do</strong> manual usan<strong>do</strong> manual=1 no prompt <strong>do</strong> boot.<br />

Normalmente isso não é necessário porque você pode configurar as opções de instalação<br />

diretamente no prompt <strong>do</strong> kernel, como textmode=1 ou um URL como a fonte de<br />

instalação.<br />

Kerberos para autenticação de rede<br />

Kerberos é o padrão para autenticação de rede em vez de heimdal. Não é possível<br />

converter automaticamente uma configuração heimdal existente. Durante uma atualização<br />

<strong>do</strong> sistema, são criadas cópias de backup <strong>do</strong>s arquivos de configuração como mostra<strong>do</strong><br />

na Tabela 3.5, “Arquivos de backup” (p 85).<br />

Tabela 3.5 Arquivos de backup<br />

Arquivo antigo<br />

/etc/krb5.conf<br />

/etc/krb5.keytab<br />

Arquivo de backup<br />

/etc/krb5.conf.heimdal<br />

/etc/krb5.keytab.heimdal<br />

A configuração de cliente (/etc/krb5.conf) é muito similar à heimdal. Se não foi<br />

configura<strong>do</strong> nada especial, basta substituir o parâmetro kpasswd_server por<br />

admin_server.<br />

Não é possível copiar os da<strong>do</strong>s relaciona<strong>do</strong>s ao servi<strong>do</strong>r (kdc e kadmind). Após a<br />

atualização <strong>do</strong> sistema, o antigo banco de da<strong>do</strong>s heimdal ainda está disponível em<br />

Atualizan<strong>do</strong> o gerenciamento de sistemas e pacotes 85


86 Referência<br />

/var/heimdal. O MIT kerberos mantém o banco de da<strong>do</strong>s em /var/lib/<br />

kerberos/krb5kdc.<br />

JFS: não é mais suporta<strong>do</strong><br />

Devi<strong>do</strong> a problemas técnicos com JFS, ele não é mais suporta<strong>do</strong>. O driver <strong>do</strong> sistema<br />

de arquivo kernel ainda existe, mas o YaST não <strong>of</strong>erece particionamento com JFS.<br />

AIDE como substituto <strong>do</strong> Tripwire<br />

Como sistema de detecção de intrusos, use AIDE (nome <strong>do</strong> pacote aide), que é lança<strong>do</strong><br />

sob o GPL. O Tripwire não está mais disponível no <strong>SUSE</strong> Linux.<br />

Arquivo de configuração X.Org<br />

A ferramenta de configuração SaX2 grava as definições da configuração X.Org em<br />

/etc/X11/xorg.conf. Durante uma instalação <strong>do</strong> zero, nenhum link de<br />

compatibilidade é cria<strong>do</strong> de XF86Config para xorg.conf.<br />

Suporte XView e OpenLook suspenso<br />

Os pacotes xview, xview-devel, xview-devel-examples, olvwm e xtoolpl<br />

foram suspensos. No passa<strong>do</strong>, fornecíamos apenas o sistema base XView (OpenLook).<br />

As bibliotecas XView não são mais fornecidas após a atualização <strong>do</strong> sistema. Mais<br />

importante ainda, o OLVWM (OpenLook Virtual Win<strong>do</strong>w Manager) não está mais<br />

disponível.<br />

Configuração PAM<br />

Novos arquivos de configuração (que contém comentários para obter mais<br />

informações)<br />

common-auth<br />

Configuração PAM padrão da seção auth<br />

common-account<br />

Configuração PAM padrão da seção account


common-password<br />

Configuração PAM padrão para mudança de senha<br />

common-session<br />

Configuração PAM padrão para gerenciamento de sessão<br />

É preciso incluir esses arquivos de configuração padrão <strong>do</strong> seu arquivo de configuração<br />

específico <strong>do</strong> aplicativo, porque é mais fácil modificar e manter um arquivo em vez<br />

<strong>do</strong>s cerca de 40 arquivos que existiam no sistema. Se você instalar um aplicativo<br />

posteriormente, ele herdará as mudanças já aplicadas e o administra<strong>do</strong>r não será obriga<strong>do</strong><br />

a se lembrar de ajustar a configuração.<br />

As mudanças são simples. Se você tiver o arquivo de configuração a seguir (que deve<br />

ser o padrão na maioria <strong>do</strong>s aplicativos):<br />

#%PAM-1.0<br />

auth required pam_unix2.so<br />

account required pam_unix2.so<br />

password required pam_pwcheck.so<br />

password required pam_unix2.so use_first_pass use_authtok<br />

#password required pam_make.so /var/yp<br />

session required pam_unix2.so<br />

poderá mudá-lo para:<br />

#%PAM-1.0<br />

auth include common-auth<br />

account include common-account<br />

password include common-password<br />

session include common-session<br />

Sintaxe tar mais restrita<br />

O uso da sintaxe tar está mais restrito agora. As opções <strong>do</strong> tar devem vir antes das<br />

especificações de arquivo ou diretório. Opções de adição, como --atime-preserve<br />

ou --numeric-owner, provocam a falha de tar se colocadas depois das<br />

especificações de arquivo ou diretório. Verifique os seus scripts de backup. Coman<strong>do</strong>s<br />

como os seguintes não funcionam mais:<br />

tar czf etc.tar.gz /etc --atime-preserve<br />

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

Atualizan<strong>do</strong> o gerenciamento de sistemas e pacotes 87


88 Referência<br />

3.2.4 Do 9.3 ao 10.0<br />

Consulte o artigo “Known Problems and Special Features in <strong>SUSE</strong> Linux 10” no banco<br />

de da<strong>do</strong>s de suporte <strong>do</strong> <strong>SUSE</strong> em http://portal.suse.com na palavra-chave<br />

special features.<br />

Tornan<strong>do</strong>-se um superusuário usan<strong>do</strong> o su<br />

Por padrão, chamar su para tornar-se root não define PATH para raiz. Chame su<br />

- para iniciar um login de shell com o ambiente completo para raiz ou defina<br />

ALWAYS_SET_PATH como sim em /etc/default/su, caso deseje mudar o<br />

comportamento padrão de su.<br />

Variáveis da configuração powersave<br />

Os nomes das variáveis da configuração powersave mudaram para fins de consistência,<br />

mas os arquivos sysconfig ainda são os mesmos. Mais informações podem ser<br />

encontradas na Seção 33.5.1, “Configuran<strong>do</strong> o Pacote powersave” (p 610).<br />

PCMCIA<br />

cardmgr não gerencia mais as placas PC. Em vez disso, como nas placas Cardbus e<br />

outros subsistemas, elas são gerenciadas pelo módulo kernel. Todas as ações necessárias<br />

são executadas por hotplug. O script de inicialização <strong>do</strong> pcmcia fo removi<strong>do</strong> e<br />

cardctl foi substituí<strong>do</strong> por pccardctl. Para obter mais informações, consulte<br />

/usr/share/<strong>do</strong>c/packages/pcmciautils/README.<strong>SUSE</strong>.<br />

Configuran<strong>do</strong> o D-BUS para a comunicação entre<br />

processos em .xinitrc<br />

Muitos aplicativos agora usam o D-BUS para a comunicação entre processos (IPC).<br />

Chamar dbus-launch inicia dbus-daemon. O /etc/X11/xinit/xinitrc<br />

em to<strong>do</strong> o sistema usa dbus-launch para iniciar o gerencia<strong>do</strong>r de janelas.<br />

Se você tem um arquivo ~/.xinitrc local, deve mudá-lo de acor<strong>do</strong>. Caso contrário,<br />

aplicativos como f-spot, banshee, tomboy ou Network Manager banshee podem falhar.


Salve o seu ~/.xinitrc antigo. Em seguida, copie o novo arquivo de modelo no<br />

seu diretório pessoal com:<br />

cp /etc/skel/.xinitrc.template ~/.xinitrc<br />

Finalmente, adicione suas personalizações <strong>do</strong> .xinitrc salvo.<br />

Arquivos relaciona<strong>do</strong>s a NTP renomea<strong>do</strong>s<br />

Por motivos de compatibilidade com o LSB (Linux Standard Base - Base de padrões<br />

Linux), a maioria <strong>do</strong>s arquivos de configuração e o script init foram renomea<strong>do</strong>s de<br />

xntp para ntp. Os novos nomes de arquivo são:<br />

/etc/slp.reg.d/ntp.reg<br />

/etc/init.d/ntp<br />

/etc/logrotate.d/ntp<br />

/usr/sbin/rcntp<br />

/etc/sysconfig/ntp<br />

Eventos de hotplug trata<strong>do</strong>s pelo daemon udev<br />

Eventos de hotplug agora são totalmente trata<strong>do</strong>s pelo daemon udev (udevd). Não<br />

usamos mais o sistema de multiplexa<strong>do</strong>r de eventos em /etc/hotplug.d e /etc/<br />

dev.d. Em vez disso, o udevd chama todas as ferramentas auxiliares de hotplug<br />

diretamente, de acor<strong>do</strong> com suas regras. Regras de udev e ferramentas auxiliares são<br />

fornecidas por udev e diversos outros pacotes.<br />

Folhas de estilo TEI XSL<br />

Localize as folhas de estilo TEI XSL (tei-xsl-stylesheets) com um novo<br />

layout de diretório em /usr/share/xml/tei/stylesheet/rahtz/current.<br />

A partir daí, por exemplo, use base/p4/html/tei.xsl para produzir saídas para<br />

HTML. Para obter mais informações, consulte http://www.tei-c.org/<br />

Stylesheets/teic/<br />

Atualizan<strong>do</strong> o gerenciamento de sistemas e pacotes 89


90 Referência<br />

Notificação de mudança de sistema de arquivos para<br />

aplicativos GNOME<br />

Para a funcionalidade adequada, os aplicativos GNOME dependem <strong>do</strong> suporte da<br />

notificação de mudança de sistema de arquivos. Para sistemas de arquivos somente<br />

locais, instale o pacote (preferi<strong>do</strong>) ou execute o daemon FAM. Para sistemas de arquivo<br />

remotos, execute o FAM no servi<strong>do</strong>r e no cliente e abra o firewall para chamadas <strong>do</strong><br />

RPC pelo FAM.<br />

O GNOME (gnome-vfs2 e libgda) contém um agrupa<strong>do</strong>r que seleciona gamin ou fam<br />

para fornecer a notificação de mudança de sistema de arquivos:<br />

• Se o daemon FAM não estiver em execução, o gamin será preferível. (Motivo:<br />

Inotify é suporta<strong>do</strong> somente por gamin e é mais eficiente para sistemas de arquivos<br />

locais).<br />

• Se o daemon FAM estiver em execução, o FAM será preferível (Motivo: Se o FAM<br />

estiver em execução, você provavelmente desejará notificação remota, que é<br />

suportada somente pelo FAM).<br />

3.2.5 Do 10.0 ao 10.1<br />

Consulte o artigo “Known Problems and Special Features in <strong>SUSE</strong> Linux 10” no banco<br />

de da<strong>do</strong>s de suporte <strong>do</strong> <strong>SUSE</strong> em http://portal.suse.com na palavra-chave<br />

special features.<br />

Apache 2.2<br />

Para o Apache versão 2.2, o Capítulo 26, Servi<strong>do</strong>r HTTP Apache (p 463) foi<br />

completamente reformula<strong>do</strong>. Além disso, encontre informações de atualização genéricas<br />

em http://httpd.apache.org/<strong>do</strong>cs/2.2/upgrading.html e a descrição<br />

de novos recursos em http://httpd.apache.org/<strong>do</strong>cs/2.2/new_features<br />

_2_2.html.


Inician<strong>do</strong> um servi<strong>do</strong>r FTP (vsftpd)<br />

Por padrão, xinetd não inicia mais o servi<strong>do</strong>r FTP vsftpd. Agora é um daemon<br />

independente e você deve configurá-lo com o editor de tempo de execução <strong>do</strong> YaST.<br />

Firefox 1.5: O coman<strong>do</strong> aberto de URL<br />

Com o Firefox 1.5, o méto<strong>do</strong> para aplicativos abrirem uma janela ou instância <strong>do</strong> Firefox<br />

foi modifica<strong>do</strong>. O novo méto<strong>do</strong> já estava parcialmente disponível em versões anteriores<br />

onde o comportamento foi implementa<strong>do</strong> no script <strong>do</strong> agrupa<strong>do</strong>r.<br />

Se o seu aplicativo não usa mozilla-xremote-client ou firefox -remote,<br />

não é necessário efetuar mudanças. Caso contrário, o novo coman<strong>do</strong> para abrir um URL<br />

é firefox url e não importa se o Firefox já está em execução ou não. Se ele já<br />

estiver em execução, seguirá a preferência configurada em Abrir links de outros<br />

aplicativos em.<br />

A partir da linha de coman<strong>do</strong>, você pode influenciar o comportamento usan<strong>do</strong> firefox<br />

-new-win<strong>do</strong>w url ou firefox -new-tab url.<br />

3.3 RPM— o Gerencia<strong>do</strong>r de pacotes<br />

No <strong>SUSE</strong> Linux, o RPM (Gerencia<strong>do</strong>r de pacotes RPM) é usa<strong>do</strong> para gerenciar os<br />

pacotes de s<strong>of</strong>tware. Seus principais programas são o rpm e o rpmbuild. O banco<br />

de da<strong>do</strong>s avança<strong>do</strong> RPM pode ser consulta<strong>do</strong> pelos usuários, administra<strong>do</strong>res de sistema<br />

e construtores de pacotes para obtenção de informações detalhadas sobre o s<strong>of</strong>tware<br />

instala<strong>do</strong>.<br />

Essencialmente, o rpm tem cinco mo<strong>do</strong>s: instalação, desinstalação ou atualização de<br />

pacotes de s<strong>of</strong>tware; reconstrução <strong>do</strong> banco de da<strong>do</strong>s RPM; consulta de bases RPM ou<br />

arquivos RPM individuais; verificação de integridade de pacotes; e assinatura de pacotes.<br />

O rpmbuild pode ser usa<strong>do</strong> para construir pacotes instaláveis de fontes antigas.<br />

Os arquivos RPM instaláveis são compacta<strong>do</strong>s em um formato binário especial. Esses<br />

são arquivos de programa para instalação e determinadas metainformações usadas<br />

durante a instalação pelo coman<strong>do</strong> rpm para configurar o pacote de s<strong>of</strong>twares. Também<br />

são armazena<strong>do</strong>s no banco de da<strong>do</strong>s RPM com o objetivo de <strong>do</strong>cumentação. Os arquivos<br />

RPM normalmente têm a extensão .rpm.<br />

Atualizan<strong>do</strong> o gerenciamento de sistemas e pacotes 91


92 Referência<br />

DICA: Pacotes de desenvolvimento de s<strong>of</strong>tware<br />

Para vários pacotes, os componentes necessários para o desenvolvimento de<br />

s<strong>of</strong>tware (bibliotecas, cabeçalhos, arquivos de inclusão, etc.) foram coloca<strong>do</strong>s<br />

em pacotes separa<strong>do</strong>s. Os pacotes de desenvolvimento são necessários somente<br />

se você desejar compilar seu próprio s<strong>of</strong>tware, por exemplo, os pacotes GNOME<br />

mais recentes. Eles podem ser identifica<strong>do</strong>s pela extensão de nome -devel,<br />

como os pacotes alsa-devel, gimp-devel e kdelibs3-devel.<br />

3.3.1 Verifican<strong>do</strong> a autenticidade <strong>do</strong> pacote<br />

Os pacotes RPM <strong>do</strong> <strong>SUSE</strong> Linux têm a assinatura GnuPG. A chave que inclui a<br />

impressão digital é:<br />

Chave de assinatura de pacote <strong>do</strong> <strong>SUSE</strong>: 1024D/9C800ACA 2000-10-19<br />

Impressão digital da chave = 79C1 79B2 E1C8 20C1 890F 9994<br />

A84E DAE8 9C80 0ACA<br />

O coman<strong>do</strong> rpm --checksig pacote-1.2.3.rpm pode ser usa<strong>do</strong> para verificar<br />

a assinatura de um pacote RPM e determinar se ele realmente se origina <strong>do</strong> <strong>SUSE</strong> Linux<br />

ou de outra instalação confiável. Isso é especialmente recomenda<strong>do</strong> para pacotes de<br />

atualização da Internet. A chave pública de assinatura de pacote <strong>do</strong> <strong>SUSE</strong> Linux<br />

normalmente se localiza em /root/.gnupg/. A chave também está localizada no<br />

diretório /usr/lib/rpm/gnupg/ para permitir que usuários comuns verifiquem a<br />

assinatura de pacotes RPM.<br />

3.3.2 Gerencian<strong>do</strong> pacotes: instalação,<br />

atualização e desinstalação<br />

Normalmente, a instalação <strong>do</strong> arquivo RPM é bastante simples: rpm -i<br />

pacote.rpm. Com esse coman<strong>do</strong>, o pacote será instala<strong>do</strong>, mas somente se as<br />

dependências forem preenchidas e não houver conflitos com outros pacotes. Com uma<br />

mensagem de erro, o rpm solicita os pacotes que devem ser instala<strong>do</strong>s para atender a<br />

requisitos de dependência. No segun<strong>do</strong> plano, o banco de da<strong>do</strong>s RPM garante que não<br />

surjam conflitos: um arquivo específico só pode pertencer a um pacote. Ao escolher<br />

opções diferentes, você pode forçar o rpm a ignorar esses padrões, mas isso é somente<br />

para especialistas. Caso contrário, há o risco de comprometer a integridade <strong>do</strong> sistema<br />

e possivelmente colocar em risco a capacidade de atualização <strong>do</strong> sistema.


As opções -U ou --upgrade e -F ou --freshen podem ser usadas para atualizar<br />

um pacote, por exemplo, rpm -F pacote.rpm. Esse coman<strong>do</strong> remove os arquivos<br />

da versão antiga e instala os novos arquivos imediatamente. A diferença entre as duas<br />

versões é que o -U instala pacotes que não existiam no sistema anteriormente, mas -F<br />

atualiza somente pacotes previamente instala<strong>do</strong>s. Durante a atualização, o rpm atualiza<br />

arquivos de configuração cuida<strong>do</strong>samente com a seguinte estratégia:<br />

• Se um arquivo de configuração não tiver si<strong>do</strong> modifica<strong>do</strong> pelo administra<strong>do</strong>r de<br />

sistema, o rpm instalará a nova versão <strong>do</strong> arquivo apropria<strong>do</strong>. O administra<strong>do</strong>r de<br />

sistema não precisa a<strong>do</strong>tar nenhuma ação.<br />

• Se um arquivo de configuração tiver si<strong>do</strong> modifica<strong>do</strong> pelo administra<strong>do</strong>r de sistema<br />

antes da atualização, o rpm salvará o arquivo modifica<strong>do</strong> com a extensão<br />

.rpmorig ou .rpmsave (arquivo de backup) e instalará a versão <strong>do</strong> novo pacote,<br />

mas somente se o arquivo instala<strong>do</strong> originalmente e a versão mais nova forem<br />

diferentes. Nesse caso, compare o arquivo de backup (.rpmorig ou .rpmsave)<br />

com o arquivo recém-instala<strong>do</strong> e faça novamente as modificações no novo arquivo.<br />

Depois, verifique se apagou to<strong>do</strong>s os arquivos .rpmorig e .rpmsave para evitar<br />

problemas em atualizações futuras.<br />

• Arquivos .rpmnew são exibi<strong>do</strong>s se o arquivo de configuração já existir e se o<br />

rótulo noreplace tiver si<strong>do</strong> especifica<strong>do</strong> no arquivo .spec.<br />

Após uma atualização, os arquivos .rpmsave e .rpmnew devem ser removi<strong>do</strong>s<br />

depois de compara<strong>do</strong>s para que não impeçam atualizações futuras. A extensão<br />

.rpmorig será atribuída se o arquivo não tiver si<strong>do</strong> previamente reconheci<strong>do</strong> pelo<br />

banco de da<strong>do</strong>s RPM.<br />

Caso contrário, o .rpmsave será usa<strong>do</strong>. Em outras palavras, o .rpmorig resulta da<br />

atualização de um formato estranho ao RPM. O .rpmsave resulta da atualização de<br />

um RPM mais antigo para um RPM mais novo. O .rpmnew não revela nenhuma<br />

informação sobre se o administra<strong>do</strong>r de sistema fez modificações no arquivo de<br />

configuração. Uma lista destes arquivos está disponível em /var/adm/<br />

rpmconfigcheck. Alguns arquivos de configuração (como /etc/httpd/httpd<br />

.conf) não são sobregrava<strong>do</strong>s para permitir operação continuada.<br />

O switch -U não é somente um equivalente para a desinstalação com a opção -e e a<br />

instalação com a opção -i. Use -U sempre que possível.<br />

Para remover um pacote, digite rpm -e package. O rpm apaga o pacote somente<br />

se todas as dependências tiverem si<strong>do</strong> resolvidas. É teoricamente impossível apagar<br />

Atualizan<strong>do</strong> o gerenciamento de sistemas e pacotes 93


94 Referência<br />

Tcl/Tk, por exemplo, enquanto outro aplicativo exigir sua existência. Mesmo nesse<br />

caso, o RPM pede ajuda <strong>do</strong> banco de da<strong>do</strong>s. Se tal exclusão for, por qualquer motivo<br />

e sob circunstâncias não comuns, impossível, mesmo se não houver dependências<br />

adicionais, talvez seja útil reconstruir o banco de da<strong>do</strong>s RPM com a opção<br />

--rebuilddb.<br />

3.3.3 RPM e patches<br />

Para garantir a segurança operacional de um sistema, pacotes de atualização devem ser<br />

instala<strong>do</strong>s no sistema periodicamente. Anteriormente, um erro em um pacote só poderia<br />

ser elimina<strong>do</strong> com a substituição de to<strong>do</strong> o pacote. Pacotes grandes com erros em<br />

arquivos pequenos podiam facilmente resultar em grande quantidade de da<strong>do</strong>s. Porém,<br />

o RPM <strong>do</strong> <strong>SUSE</strong> <strong>of</strong>erece um recurso que permite a instalação de patches em pacotes.<br />

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

O RPM com patch é adequa<strong>do</strong> para meu sistema?<br />

Para verificar isso, consulte primeiro a versão instalada <strong>do</strong> pacote. No caso <strong>do</strong> pine,<br />

isso pode ser feito com<br />

rpm -q pine<br />

pine-4.44-188<br />

Em seguida, verifique se o RPM com patch é adequa<strong>do</strong> para essa versão <strong>do</strong> pine:<br />

rpm -qp --base<strong>do</strong>n pine-4.44-224.i586.patch.rpm<br />

pine = 4.44-188<br />

pine = 4.44-195<br />

pine = 4.44-207<br />

Esse patch é adequa<strong>do</strong> para três versões diferentes <strong>do</strong> pine. A versão instalada no<br />

exemplo também está listada para que o patch possa ser instala<strong>do</strong>.<br />

Quais arquivos serão substituí<strong>do</strong>s pelo patch?<br />

Os arquivos afeta<strong>do</strong>s por um patch podem ser facilmente vistos no RPM com patch.<br />

O parâmetro rpm -P permite a seleção de recursos de patch especiais. Exiba a lista<br />

de arquivos com o seguinte coman<strong>do</strong>:<br />

rpm -qpPl pine-4.44-224.i586.patch.rpm<br />

/etc/pine.conf<br />

/etc/pine.conf.fixed<br />

/usr/bin/pine<br />

ou, se o patch já estiver instala<strong>do</strong>, com o seguinte coman<strong>do</strong>:


pm -qPl pine<br />

/etc/pine.conf<br />

/etc/pine.conf.fixed<br />

/usr/bin/pine<br />

Como instalar um RPM com patch no sistema?<br />

RPMs com patch são usa<strong>do</strong>s como RPMs comuns. A única diferença é que um<br />

RPM adequa<strong>do</strong> já deve estar instala<strong>do</strong>.<br />

Quais patches já estão instala<strong>do</strong>s no sistema e para quais versões <strong>do</strong> pacote?<br />

É possível exibir uma lista de to<strong>do</strong>s os patches instala<strong>do</strong>s no sistema com o coman<strong>do</strong><br />

rpm -qPa. Se somente um patch for instala<strong>do</strong> em um novo sistema (como no<br />

exemplo), a lista será exibida como a seguir:<br />

rpm -qPa<br />

pine-4.44-224<br />

Se posteriormente você desejar saber qual versão de pacote foi originalmente<br />

instalada, essas informações também estarão disponíveis no banco de da<strong>do</strong>s RPM.<br />

No caso <strong>do</strong> pine, é possível exibir essas informações com o seguinte coman<strong>do</strong>:<br />

rpm -q --base<strong>do</strong>n pine<br />

pine = 4.44-188<br />

Mais informações, incluin<strong>do</strong> informações sobre o recurso de patch <strong>do</strong> RPM, estão<br />

disponíveis nas páginas de manual de rpm e rpmbuild.<br />

3.3.4 Pacotes RPM Delta<br />

Os pacotes RPM Delta possuem uma diferença entre uma versão nova e antiga de um<br />

pacote RPM. Aplicar um RPM delta em um RPM antigo resulta em um RPM<br />

completamente novo. Não é necessário ter uma cópia <strong>do</strong> RPM antigo, pois um RPM<br />

delta também pode funcionar com um RPM instala<strong>do</strong>. Os pacotes RPM delta têm<br />

tamanho ainda menor que os RPMs com patch, o que é uma vantagem durante a<br />

transferência de pacotes de atualização na Internet. A desvantagem é que operações de<br />

atualização que envolvem RPMs delta consomem consideravelmente mais ciclos de<br />

CPU <strong>do</strong> que as operações com RPMs com patch ou simples. Para que o YaST use<br />

pacotes RPM delta durante sessões <strong>do</strong> YOU, defina YOU_USE_DELTAS como yes<br />

em /etc/sysconfig/onlineupdate. Neste caso, esteja prepara<strong>do</strong> para ter a<br />

mídia de instalação disponível. Se YOU_USE_DELTAS estiver vazio ou defini<strong>do</strong> para<br />

filesystem, o YOU tentará fazer o <strong>do</strong>wnload de pacotes delta que se apliquem a<br />

arquivos instala<strong>do</strong>s. Você não precisa da mídia de instalação nesse caso, mas o tempo<br />

Atualizan<strong>do</strong> o gerenciamento de sistemas e pacotes 95


de <strong>do</strong>wnload poderia ser maior. Se estiver defini<strong>do</strong> para no, o YOU usará somente<br />

RPMs com patch e RPMs comuns.<br />

Os binários prepdeltarpm, writedeltarpm e applydeltarpm são parte de<br />

uma suíte de RPM delta (pacote deltarpm) e ajudam na criação e aplicação de pacotes<br />

RPM delta. Com os seguintes coman<strong>do</strong>s, crie um RPM delta chama<strong>do</strong> new.delta<br />

.rpm. O coman<strong>do</strong> a seguir pressupõe que old.rpm e new.rpm estão presentes:<br />

prepdeltarpm -s seq -i info old.rpm > old.cpio<br />

prepdeltarpm -f new.rpm > new.cpio<br />

xdelta delta -0 old.cpio new.cpio delta<br />

writedeltarpm new.rpm delta info new.delta.rpm<br />

rm old.cpio new.cpio delta<br />

Usan<strong>do</strong> applydeltarpm, você pode reconstruir o novo RPM <strong>do</strong> arquivo de sistema<br />

se o pacote antigo já estiver instala<strong>do</strong>:<br />

applydeltarpm new.delta.rpm new.rpm<br />

Para derivá-lo <strong>do</strong> RPM antigo sem acessar o sistema de arquivos, use a opção -r:<br />

applydeltarpm -r old.rpm new.delta.rpm new.rpm<br />

Consulte /usr/share/<strong>do</strong>c/packages/deltarpm/README" para obter detalhes<br />

técnicos.<br />

3.3.5 Consultas de RPM<br />

Com a opção -q, o rpm inicia consultas, o que permite inspecionar um arquivo RPM<br />

(adicionan<strong>do</strong>-se a opção -p) e também consultar o banco de da<strong>do</strong>s RPM de pacotes<br />

instala<strong>do</strong>s. Vários switches estão disponíveis para especificar o tipo de informação<br />

necessária. Consulte a Tabela 3.6, “Opções mais importantes de consulta de RPM”<br />

(p 96).<br />

Tabela 3.6 Opções mais importantes de consulta de RPM<br />

-i<br />

-l<br />

96 Referência<br />

Informações de pacote<br />

Lista de arquivos


-f ARQUIVO<br />

-s<br />

-d<br />

-c<br />

--dump<br />

--provides<br />

--requires, -R<br />

--scripts<br />

Consulte o pacote que contém o arquivo ARQUIVO (o<br />

caminho completo deve ser especifica<strong>do</strong> com ARQUIVO)<br />

Lista de arquivos com informações de status (requer -l)<br />

Lista somente arquivos de <strong>do</strong>cumentação (requer -l)<br />

Lista somente arquivos de configuração (requer -l)<br />

Lista de arquivos com detalhes completos (a ser usada com<br />

-l, -c ou -d)<br />

Lista recursos <strong>do</strong> pacote que outro pacote pode solicitar<br />

com --requires<br />

Recursos exigi<strong>do</strong>s pelo pacote<br />

Scripts de instalação (pré-instalação, pós-instalação,<br />

desinstalação)<br />

Por exemplo, o coman<strong>do</strong> rpm -q -i wget exibe as informações exibidas no<br />

Exemplo 3.2, “rpm -q -i wget” (p 97).<br />

Exemplo 3.2 rpm -q -i wget<br />

Name : wget Relocations: (not relocatable)<br />

Version : 1.9.1 Ven<strong>do</strong>r: <strong>SUSE</strong> <strong>LINUX</strong> AG,<br />

Nuernberg, Germany<br />

Release : 50 Build Date: Sat 02 Oct 2004<br />

03:49:13 AM CEST<br />

Install date: Mon 11 Oct 2004 10:24:56 AM CEST Build Host: f53.suse.de<br />

Group : Productivity/Networking/Web/Utilities Source RPM:<br />

wget-1.9.1-50.src.rpm<br />

Size : 1637514 License: GPL<br />

Signature : DSA/SHA1, Sat 02 Oct 2004 03:59:56 AM CEST, Key ID<br />

a84edae89c800aca<br />

Packager : http://www.suse.de/feedback<br />

URL : http://wget.sunsite.dk/<br />

Summary : A tool for mirroring FTP and HTTP servers<br />

Description :<br />

Wget enables you to retrieve WWW <strong>do</strong>cuments or FTP files from a server.<br />

This can be <strong>do</strong>ne in script files or via the command line.<br />

[...]<br />

Atualizan<strong>do</strong> o gerenciamento de sistemas e pacotes 97


A opção -f funciona somente se você especificar o nome de arquivo e seu caminho<br />

completos. Forneça quantos nomes de arquivo desejar. Por exemplo, o seguinte coman<strong>do</strong><br />

rpm -q -f /bin/rpm /usr/bin/wget<br />

resulta em:<br />

rpm-4.1.1-191<br />

wget-1.9.1-50<br />

Se somente parte <strong>do</strong> nome de arquivo for conheci<strong>do</strong>, use um script de shell conforme<br />

mostra<strong>do</strong> no Exemplo 3.3, “Script para pesquisar pacotes” (p 98). Passe o nome de<br />

arquivo parcial para o script mostra<strong>do</strong> como um parâmetro ao executá-lo.<br />

Exemplo 3.3 Script para pesquisar pacotes<br />

#! /bin/sh<br />

for i in $(rpm -q -a -l | grep $1); <strong>do</strong><br />

echo "\"$i\" is in package:"<br />

rpm -q -f $i<br />

echo ""<br />

<strong>do</strong>ne<br />

O coman<strong>do</strong> rpm -q --changelog rpm exibe uma lista detalhada de informações<br />

de mudança sobre um pacote específico, classificada por data. Este exemplo mostra<br />

informações sobre o pacote rpm.<br />

Com a ajuda <strong>do</strong> banco de da<strong>do</strong>s RPM instala<strong>do</strong>, é possível realizar verificações. Inicie<br />

as verificações com -V, -y ou --verify. Com essa opção, o rpm mostra to<strong>do</strong>s os<br />

arquivos em um pacote que foram modifica<strong>do</strong>s desde a instalação. O rpm usa oito<br />

símbolos de caracteres para fornecer algumas dicas sobre as seguintes mudanças:<br />

Tabela 3.7 Opções de verificação <strong>do</strong> RPM<br />

5<br />

S<br />

L<br />

T<br />

D<br />

98 Referência<br />

Resumo de verificação MD5<br />

Tamanho <strong>do</strong> arquivo<br />

Link simbólico<br />

Tempo de modificação<br />

Números de dispositivo principais e auxiliares


U<br />

G<br />

S<br />

Proprietário<br />

Grupo<br />

Mo<strong>do</strong> (tipo de arquivo e permissões)<br />

No caso de arquivos de configuração, a letra c é impressa. Por exemplo, para mudanças<br />

para /etc/wgetrc (wget):<br />

rpm -V wget<br />

S.5....T c /etc/wgetrc<br />

Os arquivos <strong>do</strong> banco de da<strong>do</strong>s RPM são coloca<strong>do</strong>s em /var/lib/rpm. Se a partição<br />

/usr tiver o tamanho de 1 GB, esse banco de da<strong>do</strong>s poderá ocupar praticamente 30 MB,<br />

especialmente após uma atualização completa. Se o banco de da<strong>do</strong>s for maior <strong>do</strong> que<br />

o espera<strong>do</strong>, será útil reconstruir o banco de da<strong>do</strong>s com a opção --rebuilddb. Antes<br />

disso, faça um backup <strong>do</strong> banco de da<strong>do</strong>s antigo. O script cron cron.daily faz<br />

cópias diárias <strong>do</strong> banco de da<strong>do</strong>s (compacta<strong>do</strong> com gzip) e armazena essas cópias em<br />

/var/adm/backup/rpmdb. O número de cópias é controla<strong>do</strong> pela variável<br />

MAX_RPMDB_BACKUPS (padrão: 5) em /etc/sysconfig/backup. O tamanho<br />

de um único backup é de aproximadamente 1 MB para 1 GB em /usr.<br />

3.3.6 Instalan<strong>do</strong> e compilan<strong>do</strong> pacotes de<br />

fonte<br />

To<strong>do</strong>s os pacotes de fontes <strong>do</strong> <strong>SUSE</strong> Linux carregam uma extensão .src.rpm (RPM<br />

de fonte).<br />

DICA<br />

Pacotes de fonte podem ser copia<strong>do</strong>s da mídia de instalação para o disco rígi<strong>do</strong><br />

e descompacta<strong>do</strong>s com o YaST. Porém, eles não são marca<strong>do</strong>s como instala<strong>do</strong>s<br />

([i]) no gerencia<strong>do</strong>r de pacotes. Isso porque os pacotes de fontes não são<br />

inseri<strong>do</strong>s no banco de da<strong>do</strong>s RPM. Somente o s<strong>of</strong>tware <strong>do</strong> sistema operacional<br />

instala<strong>do</strong> está lista<strong>do</strong> no banco de da<strong>do</strong>s RPM. Quan<strong>do</strong> você “instalar” um<br />

pacote de fontes, somente o código-fonte será adiciona<strong>do</strong> ao sistema.<br />

Atualizan<strong>do</strong> o gerenciamento de sistemas e pacotes 99


100 Referência<br />

Os diretórios a seguir devem estar disponíveis para rpm e rpmbuild em /usr/src/<br />

packages (a menos que você tenha especifica<strong>do</strong> configurações personalizadas em<br />

um arquivo como /etc/rpmrc):<br />

SOURCES<br />

para as fontes originais (arquivos .tar.bz2 ou .tar.gz, etc.) e para ajustes<br />

específicos de distribuição (geralmente arquivos .diff ou .patch)<br />

SPECS<br />

para os arquivos .spec, similares a um metaMakefile, que controla o processo de<br />

construção<br />

BUILD<br />

diretório em que todas as fontes são descompactadas, modificadas e compiladas<br />

RPMS<br />

local em que os pacotes binários concluí<strong>do</strong>s são armazena<strong>do</strong>s<br />

SRPMS<br />

local em que estão os RPMs de fonte<br />

Quan<strong>do</strong> você instala um pacote de fontes com o YaST, to<strong>do</strong>s os componentes necessários<br />

são instala<strong>do</strong>s em /usr/src/packages: as fontes e os ajustes em SOURCES e o<br />

arquivo .spec relevante em SPECS.<br />

ATENÇÃO<br />

Não experimente com componentes de sistema (glibc, rpm, sysvinit,<br />

etc.), pois isso coloca em risco a operabilidade <strong>do</strong> sistema.<br />

O exemplo a seguir usa o pacote wget.src.rpm. Após instalar o pacote com o YaST,<br />

você deverá ter arquivos similares à seguinte lista:<br />

/usr/src/packages/SOURCES/nops_<strong>do</strong>c.diff<br />

/usr/src/packages/SOURCES/toplev_destdir.diff<br />

/usr/src/packages/SOURCES/wget-1.9.1+ipvmisc.patch<br />

/usr/src/packages/SOURCES/wget-1.9.1-brokentime.patch<br />

/usr/src/packages/SOURCES/wget-1.9.1-passive_ftp.diff<br />

/usr/src/packages/SOURCES/wget-LFS-20040909.tar.bz2<br />

/usr/src/packages/SOURCES/wget-wrong_charset.patch<br />

/usr/src/packages/SPECS/wget.spec


pmbuild -b X /usr/src/packages/SPECS/wget.spec inicia a<br />

compilação. X é um curinga para vários estágios <strong>do</strong> processo de construção (consulte<br />

a saída de --help ou a <strong>do</strong>cumentação <strong>do</strong> RPM para obter detalhes). Veja a seguir<br />

uma breve explicação:<br />

-bp<br />

Prepara fontes em /usr/src/packages/BUILD: decompacta e modifica.<br />

-bc<br />

Faz o mesmo que -bp, mas com compilação adicional.<br />

-bi<br />

Faz o mesmo que -bp, mas com a instalação adicional <strong>do</strong> s<strong>of</strong>tware cria<strong>do</strong>. Cuida<strong>do</strong>:<br />

se o pacote não aceitar o recurso BuildRoot, talvez você sobregrave os arquivos<br />

de configuração.<br />

-bb<br />

Faz o mesmo que -bi, mas com a criação adicional <strong>do</strong> pacote binário. Se a<br />

compilação tiver si<strong>do</strong> bem-sucedida, o binário deverá estar em /usr/src/<br />

packages/RPMS.<br />

-ba<br />

Faz o mesmo que -bb, mas com a criação adicional <strong>do</strong> RPM de fonte. Se a<br />

compilação tiver si<strong>do</strong> bem-sucedida, o binário deverá estar em /usr/src/<br />

packages/SRPMS.<br />

--short-circuit<br />

Ignora algumas etapas.<br />

O RPM binário cria<strong>do</strong> agora pode ser instala<strong>do</strong> com rpm -i ou, de preferência, com<br />

rpm -U. A instalação com rpm faz com que ele apareça no banco de da<strong>do</strong>s RPM.<br />

3.3.7 Compilan<strong>do</strong> pacotes RPM com build<br />

O perigo de vários pacotes é que arquivos indeseja<strong>do</strong>s são adiciona<strong>do</strong>s ao sistema em<br />

execução durante o processo de construção. Para evitar isso, use build, o que cria um<br />

ambiente defini<strong>do</strong> para construção <strong>do</strong> pacote. Para estabelecer esse ambiente chroot, o<br />

script build deve ser forneci<strong>do</strong> com uma árvore de pacote completa. Essa árvore pode<br />

ser disponibilizada no disco rígi<strong>do</strong>, através <strong>do</strong> NFS ou DVD. Defina a posição com<br />

build --rpms diretório. Ao contrário <strong>do</strong> coman<strong>do</strong> rpm, o coman<strong>do</strong> build<br />

Atualizan<strong>do</strong> o gerenciamento de sistemas e pacotes 101


102 Referência<br />

procura o arquivo SPEC no diretório de origem. Para construir wget (como no exemplo<br />

acima) com o DVD monta<strong>do</strong> no sistema em /media/dvd, use os coman<strong>do</strong>s seguintes<br />

como root:<br />

cd /usr/src/packages/SOURCES/<br />

mv ../SPECS/wget.spec .<br />

build --rpms /media/dvd/suse/ wget.spec<br />

Depois disso, um ambiente mínimo é estabeleci<strong>do</strong> em /var/tmp/build-root. O<br />

pacote é cria<strong>do</strong> nesse ambiente. Após a conclusão, os pacotes resultantes estarão<br />

localiza<strong>do</strong>s em /var/tmp/build-root/usr/src/packages/RPMS.<br />

O script build <strong>of</strong>erece várias opções adicionais. Por exemplo, faz com que o script<br />

prefira seus próprios RPMs, omite a inicialização <strong>do</strong> ambiente de construção ou limita<br />

o coman<strong>do</strong> rpm a um <strong>do</strong>s estágios menciona<strong>do</strong>s acima. Acesse informações adicionais<br />

com build --help e a leitura da página de manual build.<br />

3.3.8 Ferramentas para arquivos RPM e<br />

banco de da<strong>do</strong>s RPM<br />

O Midnight Commander (mc) pode exibir o conteú<strong>do</strong> de arquivos RPM e copiar partes<br />

deles. Ele representa arquivos como sistemas de arquivos virtuais, <strong>of</strong>erecen<strong>do</strong> todas as<br />

opções de menu usuais <strong>do</strong> Midnight Commander. Exiba o HEADER com F3 . Exiba a<br />

estrutura de arquivos com as teclas de cursor e Enter . Copie componentes de arquivos<br />

com F5 .<br />

O KDE <strong>of</strong>erece a ferramenta kpackage como front-end para rpm. Um gerencia<strong>do</strong>r de<br />

pacotes com recursos completos está disponível como um módulo <strong>do</strong> YaST (consulte<br />

a Seção “Instalan<strong>do</strong> e removen<strong>do</strong> s<strong>of</strong>tware” (Capítulo 2, Configuração <strong>do</strong> sistema com<br />

YaST, ↑Inicialização)).


Parte 2. Administração


Segurança no Linux<br />

O mascaramento e um firewall garantem um fluxo de da<strong>do</strong>s e um intercâmbio de da<strong>do</strong>s<br />

controla<strong>do</strong>s. O SSH (secure shell) permite que você efetue login em hosts remotos por<br />

uma conexão criptografada. A criptografia de arquivos ou partições inteiras protege<br />

seus da<strong>do</strong>s no caso de terceiros obterem acesso ao seu sistema. Encontre instruções<br />

técnicas e informações sobre aspectos de segurança das redes Linux.<br />

4.1 Mascaramento e firewalls<br />

Sempre que o Linux é usa<strong>do</strong> em um ambiente de rede, você pode usar as funções de<br />

kernel que permitem a manipulação de pacotes de rede, para manter uma separação<br />

entre as áreas de rede interna e externa. O framework <strong>do</strong> filtro de rede <strong>do</strong> Linux <strong>of</strong>erece<br />

meios de estabelecer um firewall eficiente que mantém redes diferentes distanciadas.<br />

Com a ajuda de iptables, uma estrutura de tabela genérica para a definição de conjuntos<br />

de regras, controle precisamente os pacotes com permissão de passagem por uma<br />

interface de rede. Um filtro de pacote como esse pode ser configura<strong>do</strong> facilmente com<br />

a ajuda <strong>do</strong> SuSEfirewall2 e o módulo YaST correspondente.<br />

4.1.1 Filtragem de pacotes com iptables<br />

Os componentes netfilter e iptables são responsáveis pela filtragem e manipulação de<br />

pacotes de rede, assim como pela NAT (Network Address Translation - Conversão de<br />

Endereços de Rede). Os critérios de filtragem e quaisquer ações associadas a eles são<br />

armazena<strong>do</strong>s em cadeias, que precisam estar relacionadas uma após a outra, por pacotes<br />

de rede individuais, à medida que forem chegan<strong>do</strong>. As cadeias a serem relacionadas<br />

4<br />

Segurança no Linux 105


são armazenadas em tabelas. O coman<strong>do</strong> iptables permite alterar esses conjuntos<br />

regras e tabelas.<br />

O kernel <strong>do</strong> Linux mantém três tabelas, cada qual para uma categoria de funções<br />

específicas <strong>do</strong> filtro <strong>do</strong> pacote:<br />

filter<br />

Essa tabela contém o volume das regras <strong>do</strong> filtro, pois ele implementa o mecanismo<br />

de filtragem de pacotes em senti<strong>do</strong> restrito, que determina se os pacotes passam<br />

por (ACCEPT) ou se são descarta<strong>do</strong>s (DROP), por exemplo.<br />

nat<br />

106 Referência<br />

Essa tabela define quaisquer mudanças feitas nos endereços de origem e de destino<br />

<strong>do</strong>s pacotes. O uso dessas funções permite implementar um mascaramento, que é<br />

um caso especial da NAT, usa<strong>do</strong> para vincular uma rede privada à Internet.<br />

mangle<br />

As regras determinadas nessa tabela possibilitam manipular valores armazena<strong>do</strong>s<br />

em cabeçalhos IP (como o tipo <strong>do</strong> serviço).<br />

Figura 4.1 iptables: Caminhos possíveis de um pacote<br />

Processes<br />

in the local<br />

system<br />

Routing<br />

INPUT<br />

mangle<br />

filter<br />

OUTPUT<br />

mangle<br />

nat<br />

filter<br />

incoming packet<br />

PREROUTING<br />

mangle<br />

nat<br />

Routing<br />

FORWARD<br />

mangle<br />

filter<br />

POSTROUTING<br />

mangle<br />

nat<br />

outgoing packet<br />

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


PREROUTING<br />

Esta cadeia é aplicada a pacotes recebi<strong>do</strong>s.<br />

INPUT<br />

Esta cadeia é aplicada a pacotes destina<strong>do</strong>s aos processos internos <strong>do</strong> sistema.<br />

FORWARD<br />

Esta cadeia é aplicada a pacotes rotea<strong>do</strong>s somente pelo sistema.<br />

OUTPUT<br />

Esta cadeia é aplicada a pacotes origina<strong>do</strong>s <strong>do</strong> próprio sistema.<br />

POSTROUTING<br />

Esta cadeia é aplicada a to<strong>do</strong>s os pacotes envia<strong>do</strong>s.<br />

A Figura 4.1, “iptables: Caminhos possíveis de um pacote” (p 106) ilustra os caminhos<br />

pelos quais um pacote de rede pode viajar em um determina<strong>do</strong> sistema. Para manter a<br />

simplicidade, a figura lista tabelas como partes de cadeias. Contu<strong>do</strong>, na realidade, essas<br />

cadeias estão contidas nas próprias tabelas.<br />

Em um <strong>do</strong>s casos mais simples possível, um pacote recebi<strong>do</strong> destina<strong>do</strong> ao próprio<br />

sistema chega na interface eth0. Primeiro, o pacote é reconheci<strong>do</strong> pela cadeia<br />

PREROUTING da tabela mangle e, depois, na cadeia PREROUTING da tabela nat.<br />

A etapa a seguir, referente ao roteamento <strong>do</strong> pacote, determina que o destino real <strong>do</strong><br />

pacote é um processo <strong>do</strong> próprio sistema. Depois de passar pelas cadeias INPUT das<br />

tabelas mangle e filter, o pacote por fim chega ao seu destino, desde que as regras<br />

da tabela filter tenham si<strong>do</strong> realmente relacionadas.<br />

4.1.2 Informações básicas sobre<br />

mascaramento<br />

Mascaramento é a forma específica <strong>do</strong> Linux para a NAT. Pode ser usa<strong>do</strong> para conectar<br />

uma LAN pequena (em que hosts usam endereços IP da faixa privada — consulte a<br />

Seção 18.1.2, “Máscaras de rede e roteamento” (p 335)) à Internet (em que endereços<br />

IP <strong>of</strong>iciais são usa<strong>do</strong>s). Para que os hosts da LAN sejam capazes de se conectar à<br />

Internet, seus endereços priva<strong>do</strong>s são converti<strong>do</strong>s em um <strong>of</strong>icial. Isso é feito no rotea<strong>do</strong>r,<br />

que atua como gateway entre a LAN e a Internet. O princípio subjacente é bastante<br />

simples: o rotea<strong>do</strong>r possui mais de uma interface de rede, normalmente uma placa de<br />

rede e uma interface separada conectadas à Internet. Enquanto a última vincula o rotea<strong>do</strong>r<br />

Segurança no Linux 107


108 Referência<br />

ao mun<strong>do</strong> externo, uma ou várias outras o vinculam-no aos hosts da LAN. Com esses<br />

hosts na rede local conecta<strong>do</strong>s à placa de rede (como o eth0) <strong>do</strong> rotea<strong>do</strong>r, eles podem<br />

enviar qualquer pacote não destina<strong>do</strong> à rede local para seus rotea<strong>do</strong>res ou gateways<br />

padrão.<br />

IMPORTANTE: Usan<strong>do</strong> a máscara de rede correta<br />

Ao configurar a rede, verifique se o endereço de broadcast e a máscara de<br />

rede são os mesmos para to<strong>do</strong>s os hosts locais. Sem essa verificação, os pacotes<br />

poderão não ser rotea<strong>do</strong>s corretamente.<br />

Conforme menciona<strong>do</strong>, sempre que um <strong>do</strong>s hosts da LAN enviar um pacote destina<strong>do</strong><br />

a um endereço da Internet, ele irá para o rotea<strong>do</strong>r padrão. Entretanto, o rotea<strong>do</strong>r precisará<br />

estar configura<strong>do</strong> antes de encaminhar esse pacote. Por razões de segurança, o <strong>SUSE</strong><br />

Linux não habilita essa função em sua instalação padrão. Para habilitá-la, configure a<br />

variável IP_FORWARD no arquivo /etc/sysconfig/sysctl para<br />

IP_FORWARD=yes.<br />

O host de destino da conexão poderá ver o rotea<strong>do</strong>r, mas não saberá sobre o host da<br />

rede interna, <strong>do</strong> qual os pacotes são provenientes. Essa é a razão de a técnica ser chamada<br />

de mascaramento. Devi<strong>do</strong> à conversão <strong>do</strong> endereço, o rotea<strong>do</strong>r é o primeiro destino de<br />

qualquer pacote de resposta. O rotea<strong>do</strong>r precisa identificar esses pacotes recebi<strong>do</strong>s e<br />

converter seus endereços de destino, para que os pacotes possam ser encaminha<strong>do</strong>s ao<br />

host correto na rede local.<br />

Com o roteamento <strong>do</strong> tráfego de entrada, dependen<strong>do</strong> da tabela de mascaramento, não<br />

há como abrir uma conexão para um host interno pela parte externa. Para uma conexão<br />

como essa, não haveria entrada na tabela. Além disso, qualquer conexão já estabelecida<br />

possui uma entrada de status que lhe foi designada na tabela; portanto, a entrada não<br />

pode ser usada por outra conexão.<br />

Como conseqüência de tu<strong>do</strong> isso, talvez você tenha alguns problemas com um número<br />

de protocolos de aplicativos, como ICQ, cucme, IRC (DCC, CTCP) e FTP (no mo<strong>do</strong><br />

PORTA). Netscape, o programa padrão de FTP, e muitos outros usam o mo<strong>do</strong> PASV.<br />

Esse mo<strong>do</strong> passivo é bem menos problemático, contanto que o mascaramento e a<br />

filtragem de pacotes estejam envolvi<strong>do</strong>s.


4.1.3 Informações básicas sobre firewall<br />

Firewall é, provavelmente, o termo mais amplamente usa<strong>do</strong> para descrever um<br />

mecanismo que fornece e gerencia um link entre redes e, ao mesmo tempo, controla o<br />

fluxo de da<strong>do</strong>s entre eles. Falan<strong>do</strong> estritamente, o mecanismo descrito nesta seção é<br />

chama<strong>do</strong> de filtro de pacote. Um filtro de pacote regula o fluxo de da<strong>do</strong>s de acor<strong>do</strong><br />

com certos critérios, como protocolos, portas e endereços IP. Isso permite bloquear<br />

pacotes que, de acor<strong>do</strong> com seus respectivos endereços, não deveriam entrar em sua<br />

rede. Para permitir acesso público ao seu servi<strong>do</strong>r Web, por exemplo, abra explicitamente<br />

a porta correspondente. Entretanto, um filtro de pacote não explora o conteú<strong>do</strong> de<br />

pacotes com endereços legítimos, como aqueles direciona<strong>do</strong>s para o servi<strong>do</strong>r Web. Por<br />

exemplo, se pacotes recebi<strong>do</strong>s tivessem a finalidade de comprometer um programa CGI<br />

no servi<strong>do</strong>r Web, o filtro de pacote os deixaria entrar mesmo assim.<br />

Um mecanismo mais eficiente, porém mais complexo, é a combinação de vários tipos<br />

de sistemas, como um filtro de pacote interagin<strong>do</strong> com um proxy ou gateway de<br />

aplicativo. Nesse caso, o filtro de pacote rejeita qualquer pacote destina<strong>do</strong> a portas<br />

desabilitadas. Somente pacotes direciona<strong>do</strong>s ao gateway <strong>do</strong> aplicativo são aceitos. Esse<br />

gateway ou proxy finge ser o cliente real <strong>do</strong> servi<strong>do</strong>r. De certo mo<strong>do</strong>, tal proxy poderia<br />

ser considera<strong>do</strong> um host de mascaramento no nível de protocolo usa<strong>do</strong> pelo aplicativo.<br />

Um exemplo desse proxy é o Squid, um servi<strong>do</strong>r de proxy HTTP. Para usar o Squid,<br />

o browser precisa estar configura<strong>do</strong> para se comunicar através <strong>do</strong> proxy. Quaisquer<br />

páginas HTTP solicitadas são atendidas pelo cache <strong>do</strong> proxy e as não encontradas no<br />

cache são obtidas na Internet pelo proxy. Como exemplo adicional, o <strong>SUSE</strong> proxy-suite<br />

(proxy-suite) <strong>of</strong>erece um proxy para o protocolo FTP.<br />

A seção a seguir enfoca o filtro de pacote que vem com o <strong>SUSE</strong> Linux. Para obter mais<br />

informações sobre firewall e filtragem de pacotes, leia o HOWTO <strong>do</strong> Firewall, incluí<strong>do</strong><br />

no pacote howto. Se esse pacote estiver instala<strong>do</strong>, leia o HOWTO com o<br />

less /usr/share/<strong>do</strong>c/howto/en/txt/Firewall-HOWTO.gz.<br />

4.1.4 SuSEfirewall2<br />

O SuSEfirewall2 é um script que lê as variáveis configuradas em /etc/sysconfig/<br />

SuSEfirewall2 para gerar um conjunto de regras iptables. Ele define três zonas de<br />

segurança, apesar de somente a primeira e a segunda serem consideradas na configuração<br />

de amostra a seguir:<br />

Segurança no Linux 109


110 Referência<br />

Zona externa<br />

Consideran<strong>do</strong> que não há como controlar o que ocorre na rede externa, os hosts<br />

precisam ser protegi<strong>do</strong>s contra ela. Na maioria <strong>do</strong>s casos, a rede externa é a Internet,<br />

mas poderia ser outra rede sem segurança, como uma WLAN.<br />

Zona interna<br />

Ela se refere à rede privada, normalmente, a LAN. Se os hosts dessa rede usam<br />

endereços IP <strong>do</strong> intervalo priva<strong>do</strong> (consulte a Seção 18.1.2, “Máscaras de rede e<br />

roteamento” (p 335)), habilite a NAT, para que os hosts da rede interna possam<br />

acessar a externa.<br />

DMZ (Demilitarized Zone - Zona Desmilitarizada)<br />

Apesar de os hosts localiza<strong>do</strong>s nessa zona poderem ser localiza<strong>do</strong>s tanto da rede<br />

externa quanto da interna, eles não conseguem acessar sozinhos a rede interna.<br />

Essa configuração pode ser usada para incluir uma linha adicional de defesa na<br />

frente da rede interna, pois os sistemas DMZ ficam isola<strong>do</strong>s da rede interna.<br />

Qualquer tipo de tráfego de rede não explicitamente permiti<strong>do</strong> pelo conjunto de regras<br />

de filtragem é suprimi<strong>do</strong> por iptables. Portanto, cada uma das interfaces com tráfego<br />

recebi<strong>do</strong> precisa ser posicionada em uma das três zonas. Para cada uma das zonas,<br />

defina os serviços ou protocolos permiti<strong>do</strong>s. O conjunto de regras é aplica<strong>do</strong> somente<br />

em pacotes origina<strong>do</strong>s de hosts remotos. Pacotes gera<strong>do</strong>s localmente não são captura<strong>do</strong>s<br />

pelo firewall.<br />

A configuração pode ser executada com o YaST (consulte “Configuran<strong>do</strong> com o YaST”<br />

(p 110)). Também pode ser feita manualmente no arquivo /etc/sysconfig/<br />

SuSEfirewall2, que contém vários comentários. Além disso, vários cenários de<br />

exemplo estão disponíveis em /usr/share/<strong>do</strong>c/packages/SuSEfirewall2/<br />

EXAMPLES.<br />

Configuran<strong>do</strong> com o YaST<br />

IMPORTANTE: Configuração automática de firewall<br />

Depois da instalação, o YaST inicia um firewall automaticamente em todas as<br />

interfaces configuradas. Se um servi<strong>do</strong>r for configura<strong>do</strong> e ativa<strong>do</strong> no sistema,<br />

o YaST poderá modificar a configuração de firewall gerada automaticamente<br />

com as opções Abrir Portas da Interface Selecionada no Firewall ou Abrir Portas<br />

no Firewall nos módulos de configuração <strong>do</strong> servi<strong>do</strong>r. Algumas caixas de diálogo


<strong>do</strong> módulo <strong>do</strong> servi<strong>do</strong>r incluem o botão Detalhes <strong>do</strong> Firewall para ativar serviços<br />

e portas adicionais. O módulo de configuração de firewall <strong>do</strong> YaST pode ser<br />

usa<strong>do</strong> para ativar, desativar ou reconfigurar o firewall.<br />

As caixas de diálogo <strong>do</strong> YaST para a configuração gráfica podem ser acessadas no<br />

Centro de Controle <strong>do</strong> YaST. Selecione Segurança e Usuários → Firewall. A<br />

configuração é dividida em sete seções que podem ser acessadas diretamente da estrutura<br />

em árvore no la<strong>do</strong> esquer<strong>do</strong>.<br />

Inicialização<br />

Configure o comportamento de inicialização nesta caixa de diálogo. Em uma<br />

instalação padrão, o <strong>SUSE</strong>firewall2 é inicia<strong>do</strong> automaticamente. Você também<br />

pode iniciar e parar o firewall aqui. Para implementar suas novas configurações<br />

em um firewall em execução, use Salvar Configurações e Reiniciar Firewall Agora.<br />

Figura 4.2 A configuração de firewall <strong>do</strong> YaST<br />

Interfaces<br />

Todas as interfaces de rede conhecidas estão listadas aqui. Para remover uma<br />

interface de uma zona, selecione-a, pressione Modificar e escolha Nenhuma Zona<br />

Designada. Para adicionar uma interface a uma zona, selecione-a, pressione<br />

Modificar e escolha qualquer das zonas disponíveis. Você também pode criar uma<br />

interface especial com suas próprias configurações usan<strong>do</strong> Personalizar.<br />

Segurança no Linux 111


112 Referência<br />

Serviços permiti<strong>do</strong>s<br />

Essa opção é necessária para <strong>of</strong>erecer serviços <strong>do</strong> seu sistema para uma zona da<br />

qual ele é protegi<strong>do</strong>. Por padrão, o sistema é protegi<strong>do</strong> somente de zonas externas.<br />

Permita, de forma explícita, os serviços que devem estar disponíveis para hosts<br />

externos. Ative os serviços após selecionar a zona desejada em Serviços permiti<strong>do</strong>s<br />

para zona selecionada.<br />

Mascaramento<br />

O mascaramento oculta sua rede interna das redes externas, como a Internet, e<br />

habilita hosts na rede interna para acessarem a rede externa de forma transparente.<br />

As solicitações da rede externa para a interna são bloqueadas e as solicitações da<br />

rede interna parecem ser emitidas pelo servi<strong>do</strong>r de mascaramento quan<strong>do</strong> vistas<br />

externamente. Se serviços especiais de uma máquina interna precisarem estar<br />

disponíveis para a rede externa, adicione regras especiais de redirecionamento ao<br />

serviço.<br />

Broadcast<br />

Nessa caixa de diálogo, configure as portas UDP que permitem broadcasts. Adicione<br />

os serviços ou números de porta solicita<strong>do</strong>s à zona apropriada, separa<strong>do</strong>s por<br />

espaços. Consulte também o arquivo /etc/services.<br />

O registro de broadcasts não aceitos pode ser habilita<strong>do</strong> aqui. Isso pode ser<br />

problemático, pois os hosts <strong>do</strong> Win<strong>do</strong>ws usam broadcasts para sua identificação<br />

e, assim, geram muitos pacotes que não são aceitos.<br />

Suporte a IPsec<br />

Configure nesta caixa de diálogo se o serviço IPsec deve estar disponível para a<br />

rede externa. Configure quais pacotes são confiáveis em Detalhes.<br />

Nível de registro<br />

Há duas regras para o registro: pacotes aceitos e não aceitos. Pacotes não aceitos<br />

são DESCARTADOS ou REJEITADOS. Selecione Registrar Tu<strong>do</strong>, Registrar<br />

Apenas Críticos ou Não Registrar Nenhum para as duas opções.<br />

Ao concluir a configuração <strong>do</strong> firewall, saia dessa caixa de diálogo com Próximo. Será<br />

aberto um resumo orienta<strong>do</strong> por zona da configuração <strong>do</strong> firewall. Nele, verifique todas<br />

as configurações. To<strong>do</strong>s os serviços, portas e protocolos permiti<strong>do</strong>s estão lista<strong>do</strong>s nesse<br />

resumo. Para modificar a configuração, use Voltar. Pressione Aceitar para gravar as<br />

configurações.


Configuran<strong>do</strong> manualmente<br />

Os parágrafos a seguir fornecem instruções passo a passo para executar uma configuração<br />

bem-sucedida. Cada item de configuração é marca<strong>do</strong> se é relevante para firewall ou<br />

para mascaramento. Os aspectos relaciona<strong>do</strong>s à DMZ, conforme menciona<strong>do</strong> no arquivo<br />

de configuração, não serão aborda<strong>do</strong>s aqui. Eles são aplicáveis somente a uma infraestrutura<br />

de rede mais complexa, encontrada em organizações maiores (redes<br />

corporativas), que exigem uma configuração extensa e conhecimento pr<strong>of</strong>un<strong>do</strong> sobre<br />

o assunto.<br />

Primeiro, use o módulo <strong>do</strong> YaST Serviços <strong>do</strong> Sistema (Nível de Execução) para habilitar<br />

o SuSEfirewall2 no seu nível de execução (provavelmente, 3 ou 5). Ele configura os<br />

symlinks para o SuSEfirewall2_* scripts nos diretórios /etc/init.d/rc?.d/.<br />

FW_DEV_EXT (firewall, mascaramento)<br />

O dispositivo vincula<strong>do</strong> à Internet. Para obter uma conexão via modem, digite<br />

ppp0. Para obter um link ISDN, use o ippp0. As conexões DSL usam o dsl0.<br />

Especifique auto para usar a interface que corresponde à rota padrão.<br />

FW_DEV_INT (firewall, mascaramento)<br />

O dispositivo vincula<strong>do</strong> à rede privada, interna (como a eth0). Deixe esse espaço<br />

vazio se não houver rede interna e o firewall protegerá somente o host em que<br />

estiver sen<strong>do</strong> executa<strong>do</strong>.<br />

FW_ROUTE (firewall, mascaramento)<br />

Se você precisar da função mascaramento, configure como yes. Os hosts internos<br />

não ficarão visíveis de fora, pois seus endereços de rede privada (por exemplo,<br />

192.168.x.x) serão ignora<strong>do</strong>s pelos rotea<strong>do</strong>res da Internet.<br />

Para um firewall sem mascaramento, configure como yes somente se desejar<br />

permitir acesso à rede interna. Os hosts internos precisam usar IPs registra<strong>do</strong>s<br />

<strong>of</strong>icialmente nesse caso. No entanto, normalmente você não deveria permitir o<br />

acesso externo à sua rede interna.<br />

FW_MASQUERADE (mascaramento)<br />

Configure como yes, se você precisar da função mascaramento. Com isso, você<br />

terá uma conexão praticamente direta com a Internet para os hosts internos. É mais<br />

seguro haver um servi<strong>do</strong>r proxy entre os hosts da rede interna e a Internet. O<br />

mascaramento não é necessário para serviços forneci<strong>do</strong>s por um servi<strong>do</strong>r proxy.<br />

Segurança no Linux 113


114 Referência<br />

FW_MASQ_NETS (mascaramento)<br />

Especifique as redes ou os hosts que devem ser mascara<strong>do</strong>s, deixan<strong>do</strong> um espaço<br />

entre as entradas individuais. Por exemplo:<br />

FW_MASQ_NETS="192.168.0.0/24 192.168.10.1"<br />

FW_PROTECT_FROM_INT (firewall)<br />

Configure como yes e o host <strong>do</strong> firewall ficará protegi<strong>do</strong> contra ataques que<br />

surgirem em sua rede interna. Os serviços só estarão disponíveis para a rede interna<br />

se estiverem explicitamente habilita<strong>do</strong>s. Consulte também os serviços<br />

FW_SERVICES_INT_TCP e FW_SERVICES_INT_UDP.<br />

FW_SERVICES_EXT_TCP (firewall)<br />

Digite as portas TCP que devem ficar disponíveis. Deixe esse espaço vazio para<br />

uma estação de trabalho residencial normal, que não deve <strong>of</strong>erecer serviços.<br />

FW_SERVICES_EXT_UDP (firewall)<br />

Deixe esse espaço vazio, a menos que você execute um serviço UDP e deseje<br />

disponibilizá-lo externamente. Os serviços que usam o UDP incluem os servi<strong>do</strong>res<br />

DNS, IPSec, TFTP, DHCP e outros. Nesse caso, digite as portas UDP a serem<br />

usadas.<br />

FW_SERVICES_INT_TCP (firewall)<br />

Com essa variável, defina os serviços disponíveis para a rede interna. A notação é<br />

a mesma <strong>do</strong> FW_SERVICES_EXT_TCP, mas as configurações são aplicadas à<br />

rede interna. A variável só precisará ser configurada se o<br />

FW_PROTECT_FROM_INT estiver configura<strong>do</strong> como yes.<br />

FW_SERVICES_INT_UDP (firewall)<br />

Consulte o FW_SERVICES_INT_TCP.<br />

Depois de configurar o firewall, teste sua configuração. Os conjuntos de regras de<br />

firewall são cria<strong>do</strong>s digitan<strong>do</strong> SuSEfirewall2 start como root. Depois, use<br />

telnet, por exemplo, de um host externo para ver se a conexão foi realmente negada.<br />

Depois disso, reveja /var/log/messages, em que deverá aparecer algo semelhante<br />

a:<br />

Mar 15 13:21:38 linux kernel: SFW2-INext-DROP-DEFLT IN=eth0<br />

OUT= MAC=00:80:c8:94:c3:e7:00:a0:c9:4d:27:56:08:00 SRC=192.168.10.0<br />

DST=192.168.10.1 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=15330 DF PROTO=TCP<br />

SPT=48091 DPT=23 WINDOW=5840 RES=0x00 SYN URGP=0<br />

OPT (020405B40402080A061AFEBC0000000001030300)


Outros pacotes que testam a configuração de um firewall são o nmap ou o nessus. A<br />

<strong>do</strong>cumentação <strong>do</strong> nmap pode ser encontrada em /usr/share/<strong>do</strong>c/packages/<br />

nmap e a <strong>do</strong> nessus no diretório /usr/share/<strong>do</strong>c/packages/nessus-core<br />

depois que o respectivo pacote estiver instala<strong>do</strong>.<br />

4.1.5 Mais informações<br />

As informações mais recentes e outras <strong>do</strong>cumentações sobre o pacote SuSEfirewall2<br />

podem ser encontradas em /usr/share/<strong>do</strong>c/packages/SuSEfirewall2. A<br />

home page <strong>do</strong> projeto iptables e netfilter, http://www.netfilter.org, <strong>of</strong>erece<br />

uma grande coleção de <strong>do</strong>cumentos em vários idiomas.<br />

4.2 SSH: operações seguras de rede<br />

Com cada vez mais computa<strong>do</strong>res instala<strong>do</strong>s em ambientes de rede, sempre torna-se<br />

necessário acessar hosts de um local remoto. Isso normalmente significa que um usuário<br />

envia strings de login e senha para fins de autenticação. Como essas strings são<br />

transmitidas como texto simples, elas podem ser interceptadas e usadas de forma<br />

incorreta para obter acesso à conta <strong>do</strong> usuário sem que o usuário autoriza<strong>do</strong> sequer<br />

saiba disso. Além da possibilidade de to<strong>do</strong>s os arquivos <strong>do</strong> usuário serem abertos por<br />

um invasor, a conta ilegal pode ser usada para obter acesso de administra<strong>do</strong>r ou root,<br />

ou para penetrar em outros sistemas. Anteriormente, as conexões remotas eram<br />

estabelecidas com telnet, que não <strong>of</strong>erece proteção contra espionagem na forma de<br />

criptografia nem de outros mecanismos de segurança. Há outros canais de comunicação<br />

sem proteção, como o tradicional protocolo FTP e alguns programas de cópia remotos.<br />

A suíte <strong>do</strong> SSH fornece a proteção necessária, criptografan<strong>do</strong> as strings de autenticação<br />

(normalmente um nome de login e uma senha) e to<strong>do</strong>s os outros da<strong>do</strong>s que s<strong>of</strong>rem<br />

intercâmbio nos hosts. Com o SSH, o fluxo de da<strong>do</strong>s ainda pode ser registra<strong>do</strong> por<br />

terceiros, mas o conteú<strong>do</strong> é criptografa<strong>do</strong> e não pode ser reverti<strong>do</strong> em texto simples, a<br />

menos que a chave de criptografia seja conhecida. Dessa forma, o SSF permite a<br />

comunicação segura em redes desprotegidas, como a Internet. O padrão de SSH que<br />

vem com o <strong>SUSE</strong> Linux é o OpenSSH.<br />

Segurança no Linux 115


116 Referência<br />

4.2.1 Pacote OpenSSH<br />

O <strong>SUSE</strong> Linux instala o pacote OpenSSH por padrão. Os programas ssh, scp e sftp são<br />

alternativas disponíveis ao telnet, rlogin, rsh, rcp e ftp. Na configuração padrão, o acesso<br />

a um sistema <strong>SUSE</strong> Linux só é possível com os utilitários <strong>do</strong> OpenSSH e somente se<br />

o firewall permitir acesso.<br />

4.2.2 Programa ssh<br />

Usan<strong>do</strong> o programa ssh, é possível fazer login em sistemas remotos e trabalhar de forma<br />

interativa. Ele substitui o telnet e o rlogin. O programa slogin é apenas um link simbólico<br />

para o ssh. Por exemplo, efetue login no host sun com o coman<strong>do</strong> ssh sun. O host<br />

solicita a senha para o sun.<br />

Depois da autenticação bem-sucedida, você pode trabalhar na linha de coman<strong>do</strong> remota<br />

ou usar aplicativos interativos, como o YaST. Se o nome de usuário local for diferente<br />

<strong>do</strong> nome de usuário remoto, você poderá efetuar login usan<strong>do</strong> um nome de login<br />

diferente, com ssh -l augustine sun ou ssh augustine@sun.<br />

Além disso, o ssh <strong>of</strong>erece a possibilidade de executar coman<strong>do</strong>s em sistemas remotos,<br />

como conheci<strong>do</strong> no rsh. No exemplo a seguir, execute o coman<strong>do</strong> uptime no host sun<br />

e crie um diretório com o nome tmp. A saída <strong>do</strong> programa será exibida no terminal<br />

local <strong>do</strong> host earth.<br />

ssh otherplanet "uptime; mkdir tmp"<br />

tux@otherplanet's password:<br />

1:21pm up 2:17, 9 users, load average: 0.15, 0.04, 0.02<br />

As aspas são necessárias aqui para enviar as duas instruções com um coman<strong>do</strong>. Somente<br />

com esse procedimento o segun<strong>do</strong> coman<strong>do</strong> é executa<strong>do</strong> no sun.<br />

4.2.3 scp (Secure Copy - Cópia Segura)<br />

O scp copia arquivos em uma máquina remota. Ele é um substituto seguro e criptografa<strong>do</strong><br />

para o rcp. Por exemplo, scp MyLetter.tex sun: copia o arquivo MyLetter<br />

.tex <strong>do</strong> host earth para o host sun. Se o nome de usuário <strong>do</strong> earth for diferente <strong>do</strong><br />

nome de usuário <strong>do</strong> sun, especifique o <strong>do</strong> sun usan<strong>do</strong> o formato username@host.<br />

Não há opção -l para esse coman<strong>do</strong>.


Depois que a senha correta é digitada, o scp inicia a transferência de da<strong>do</strong>s e mostra<br />

uma linha crescente de asteriscos para simular uma barra de progresso. Além disso, o<br />

programa exibe o tempo estima<strong>do</strong> de chegada à direita da barra de progresso. Suprima<br />

toda a saída fornecen<strong>do</strong> a opção -q.<br />

O scp também fornece um recurso de cópia recursiva para diretórios inteiros. O coman<strong>do</strong><br />

scp -r src/ sun:backup/ copia to<strong>do</strong> o conteú<strong>do</strong> <strong>do</strong> diretório src, incluin<strong>do</strong><br />

to<strong>do</strong>s os subdiretórios, no diretório backup <strong>do</strong> host sun. Se esse subdiretório ainda<br />

não existir, ele será cria<strong>do</strong> automaticamente.<br />

A opção -p avisa ao scp para não mudar a marcação de horário <strong>do</strong>s arquivos. A opção<br />

-C compacta a transferência de da<strong>do</strong>s. Assim o volume de da<strong>do</strong>s a ser transferi<strong>do</strong> é<br />

minimiza<strong>do</strong>, embora seja criada uma carga mais pesada para o processa<strong>do</strong>r.<br />

4.2.4 sftp (Secure File Transfer -<br />

Transferência Segura de Arquivos)<br />

O programa sftp pode ser usa<strong>do</strong> como alternativa ao scp para a transferência segura de<br />

arquivos. Durante uma sessão <strong>do</strong> sftp, você pode usar muitos coman<strong>do</strong>s conheci<strong>do</strong>s <strong>do</strong><br />

ftp. O programa sftp pode ser uma alternativa melhor ao scp, especialmente na<br />

transferência de da<strong>do</strong>s em que os nomes de arquivos são desconheci<strong>do</strong>s.<br />

4.2.5 Daemon SSH (sshd) - executa<strong>do</strong> no<br />

servi<strong>do</strong>r<br />

Para trabalhar com os programas clientes <strong>do</strong> SSH ssh e scp, o servi<strong>do</strong>r daemon SSH<br />

deve estar em execução em segun<strong>do</strong> plano, escutan<strong>do</strong> conexões na porta TCP/IP<br />

22. O daemon garante três pares de chaves quan<strong>do</strong> é inicia<strong>do</strong> pela primeira vez. Cada<br />

par de chaves consiste em uma chave privada e uma pública. Portanto, esse procedimento<br />

é conheci<strong>do</strong> como basea<strong>do</strong> em chave pública. Para garantir a segurança da comunicação<br />

via SSH, o acesso a arquivos de chave privada deve ser restrito ao administra<strong>do</strong>r <strong>do</strong><br />

sistema. As permissões de arquivos são definidas adequadamente pela instalação padrão.<br />

As chaves privadas só são exigidas localmente pelo daemon SSH e não devem ser<br />

fornecidas a ninguém mais. Os componentes da chave pública (reconheci<strong>do</strong>s pela<br />

extensão de nome .pub) são envia<strong>do</strong>s para o cliente que solicita a conexão. To<strong>do</strong>s os<br />

usuários podem lê-los.<br />

Segurança no Linux 117


118 Referência<br />

O cliente SSH inicia uma conexão. O daemon SSH e o cliente SSH que solicitou a<br />

conexão fazem um intercâmbio de da<strong>do</strong>s de identificação para comparar as versões de<br />

s<strong>of</strong>tware e o protocolo, e para evitar conexões pela porta errada. Como um processo<br />

filho <strong>do</strong> daemon SSH original responde à solicitação, várias conexões de SSH podem<br />

ser feitas ao mesmo tempo.<br />

Para a comunicação entre o servi<strong>do</strong>r SSH e o cliente SSH, o OpenSSH suporta as<br />

versões 1 e 2 <strong>do</strong> protocolo SSH. Os sistemas <strong>SUSE</strong> Linux recentes têm a versão 2 como<br />

padrão. Para continuar usan<strong>do</strong> a versão 1 depois de uma atualização, siga as instruções<br />

de /usr/share/<strong>do</strong>c/packages/openssh/README.SuSE. Este <strong>do</strong>cumento<br />

também descreve como um ambiente SSH 1 pode ser transforma<strong>do</strong> em um ambiente<br />

de trabalho SSH 2 em apenas algumas etapas.<br />

Ao usar a versão 1 <strong>do</strong> SSH, o servi<strong>do</strong>r envia sua chave pública de host e uma chave de<br />

servi<strong>do</strong>r, que é gerada novamente pelo daemon SSH a cada hora. Ambas permitem que<br />

o cliente SSH criptografe uma chave de sessão escolhida livremente, que é enviada ao<br />

servi<strong>do</strong>r SSH. O cliente SSH também comunica ao servi<strong>do</strong>r qual méto<strong>do</strong> de criptografia<br />

(cifra) deve ser usa<strong>do</strong>.<br />

A versão 2 <strong>do</strong> protocolo de SSH não requer uma chave de servi<strong>do</strong>r. Os <strong>do</strong>is la<strong>do</strong>s usam<br />

um algoritmo de acor<strong>do</strong> com Diffie-Helman para fazer o intercâmbio de suas chaves.<br />

O host priva<strong>do</strong> e as chaves <strong>do</strong> servi<strong>do</strong>r são absolutamente necessários para<br />

descriptografar a chave da sessão e não podem ser deriva<strong>do</strong>s de partes públicas. Somente<br />

o daemon SSH contata<strong>do</strong> pode descriptografar a chave da sessão usan<strong>do</strong> suas chaves<br />

privadas (consulte man /usr/share/<strong>do</strong>c/packages/openssh/RFC.nr<strong>of</strong>f).<br />

Essa fase inicial de conexão pode ser observada de perto, se você ativar a opção de<br />

depuração verbosa -v <strong>do</strong> cliente SSH.<br />

A versão 2 <strong>do</strong> protocolo SSH é usada por padrão. Substitua-a pela versão 1 <strong>do</strong> protocolo<br />

com o switch -1. O cliente armazena todas as chaves públicas <strong>do</strong> host no arquivo ~/<br />

.ssh/known_hosts depois de seu primeiro contato com um host remoto. Esse<br />

procedimento evita ataques man-in-the-middle (MITM) - tentativas de servi<strong>do</strong>res SSH<br />

estrangeiros usarem nomes e endereços IP falsos. Esses ataques são detecta<strong>do</strong>s por uma<br />

chave de host não incluída em ~/.ssh/known_hosts ou pela incapacidade <strong>do</strong><br />

servi<strong>do</strong>r de descriptografar a chave da sessão na ausência de um correlativo priva<strong>do</strong><br />

apropria<strong>do</strong>.<br />

É recomendável fazer backup das chaves públicas e privadas armazenadas em /etc/<br />

ssh/ em um local externo seguro. Desta forma, as modificações das chaves podem


ser detectadas e as chaves antigas podem ser usadas novamente depois de uma<br />

reinstalação. Esse procedimento poupa os usuários de avisos de desproteção. Verificouse<br />

que, apesar <strong>do</strong> aviso - na realidade trata-se <strong>do</strong> servi<strong>do</strong>r SSH correto -, a entrada para<br />

o sistema existente deve ser removida de ~/.ssh/known_hosts.<br />

4.2.6 Mecanismos de autenticação <strong>do</strong> SSH<br />

Agora é hora da verdadeira autenticação, que, em sua forma mais simples, consiste na<br />

digitação de uma senha, conforme menciona<strong>do</strong> anteriormente. A meta <strong>do</strong> SSH é<br />

apresentar um s<strong>of</strong>tware seguro que também seja fácil de usar. Como ele deve substituir<br />

o rsh e o rlogin, o SSH também deve ser capaz de fornecer um méto<strong>do</strong> de autenticação<br />

apropria<strong>do</strong> para uso diário. O SSH consegue isso por meio de outro par de chaves,<br />

gera<strong>do</strong> pelo usuário. O pacote <strong>do</strong> SSH fornece um programa de auxílio para isso: sshkeygen.<br />

Depois da digitação de ssh-keygen -t rsa ou ssh-keygen -t dsa,<br />

o par de chaves é gera<strong>do</strong> e você deverá informar o nome <strong>do</strong> arquivo base em que as<br />

chaves serão armazenadas.<br />

Confirme a configuração padrão e responda à solicitação de uma frase secreta. Mesmo<br />

se o s<strong>of</strong>tware sugerir que a frase secreta fique em branco, é recomendável inserir um<br />

texto de 10 a 30 caracteres para o procedimento descrito aqui. Não use palavras e frases<br />

curtas e simples. Confirme a frase secreta repetin<strong>do</strong>-a. Depois, você verá o local de<br />

armazenamento das chaves pública e privada, neste exemplo os arquivos id_rsa e<br />

id_rsa.pub.<br />

Use ssh-keygen -p -t rsa ou ssh-keygen -p -t dsa para mudar sua frase<br />

secreta antiga. Copie o componente da chave pública (id_rsa.pub, no exemplo) na<br />

máquina remota e salve-o como ~/.ssh/authorized_keys. Você será solicita<strong>do</strong><br />

a autenticar-se com sua frase secreta na próxima vez em que estabelecer uma conexão.<br />

Se isso não ocorrer, verifique o local e o conteú<strong>do</strong> desses arquivos.<br />

A longo prazo, esse procedimento será mais importuno <strong>do</strong> que fornecer sempre a senha.<br />

Portanto, o pacote <strong>do</strong> SSH fornece outra ferramenta, o ssh-agent, que mantém as chaves<br />

privadas durante uma sessão X. Toda a sessão X é iniciada como um processo-filho <strong>do</strong><br />

ssh-agent. A forma mais fácil de fazer isso é definir a variável usessh no começo <strong>do</strong><br />

arquivo .xsession como yes e efetuar login por meio de um gerencia<strong>do</strong>r de vídeo,<br />

como o KDM ou o XDM. Como alternativa, digite ssh-agent startx.<br />

Agora você pode usar o ssh ou o scp como de costume. Se tiver distribuí<strong>do</strong> sua chave<br />

pública como descrito acima, não será mais solicita<strong>do</strong> a informar sua senha. Fique<br />

Segurança no Linux 119


120 Referência<br />

atento para concluir a sessão X ou bloqueá-la com um aplicativo de proteção de senha,<br />

como o xlock.<br />

Todas as mudanças relevantes resultantes <strong>do</strong> lançamento da versão 2 <strong>do</strong> protocolo SSH<br />

também estão <strong>do</strong>cumentadas no arquivo /usr/share/<strong>do</strong>c/packages/openssh/<br />

README.SuSE.<br />

4.2.7 X, autenticação e mecanismos de<br />

encaminhamento<br />

Além das melhorias relativas a segurança descritas anteriormente, o SSH também<br />

simplifica o uso <strong>do</strong>s aplicativos X remotos. Se você executar ssh com a opção -X, a<br />

variável DISPLAY será automaticamente definida na máquina remota, e todas as saídas<br />

X serão exportadas para a máquina remota pela conexão SSH existente. Ao mesmo<br />

tempo, os aplicativos X inicia<strong>do</strong>s remotamente e visualiza<strong>do</strong>s localmente com esse<br />

méto<strong>do</strong> não poderão ser intercepta<strong>do</strong>s por pessoas sem autorização.<br />

Com a adição da opção -A, o mecanismo de autenticação ssh-agent passa para a próxima<br />

máquina. Dessa forma, você poderá trabalhar em máquinas diferentes sem precisar<br />

digitar a senha, mas somente se tiver distribuí<strong>do</strong> sua chave pública nos hosts de destino<br />

e a grava<strong>do</strong> adequadamente neles.<br />

Os <strong>do</strong>is mecanismos são desativa<strong>do</strong>s nas configurações padrão, mas podem ser ativa<strong>do</strong>s<br />

de forma permanente a qualquer momento no arquivo de configuração de to<strong>do</strong> o sistema<br />

/etc/ssh/sshd_config ou pelo ~/.ssh/config <strong>do</strong> usuário.<br />

O ssh também pode ser usa<strong>do</strong> para redirecionar conexões TCP/IP. Nos exemplos abaixo,<br />

o SSH foi configura<strong>do</strong> para redirecionar as portas SMTP e POP3, respectivamente.<br />

ssh -L 25:sun:25 earth<br />

Com esse coman<strong>do</strong>, qualquer conexão direcionada para a porta 25 (SMTP) <strong>do</strong> earth é<br />

redirecionada para a porta SMTP <strong>do</strong> sun por meio de um canal criptografa<strong>do</strong>. Esse<br />

recurso é especialmente útil para os que usam servi<strong>do</strong>res SMTP sem os recursos SMTP-<br />

AUTH ou POP-before-SMTP. De qualquer local arbitrário conecta<strong>do</strong> a uma rede, é<br />

possível transferir e-mails para o servi<strong>do</strong>r de correio eletrônico “<strong>do</strong>méstico” para entrega.<br />

Da mesma forma, todas as solicitações de POP3 (porta 110) <strong>do</strong> earth podem ser<br />

encaminhadas para a porta POP3 <strong>do</strong> sun com esse coman<strong>do</strong>.<br />

ssh -L 110:sun:110 earth


Os <strong>do</strong>is coman<strong>do</strong>s devem ser executa<strong>do</strong>s como root, pois a conexão é feita para portas<br />

locais privilegiadas. Os e-mails são envia<strong>do</strong>s e recupera<strong>do</strong>s por usuários normais em<br />

uma conexão SSH existente. Os hosts SMTP e POP3 devem ser defini<strong>do</strong>s como<br />

localhost para que isso funcione. Outras informações podem ser encontradas nas<br />

páginas de manual referentes a cada programa descrito acima, bem como nos arquivos<br />

em /usr/share/<strong>do</strong>c/packages/openssh.<br />

4.3 Criptografan<strong>do</strong> partições e<br />

arquivos<br />

To<strong>do</strong> usuário tem alguns da<strong>do</strong>s confidenciais que não devem ser acessa<strong>do</strong>s por terceiros.<br />

Quanto mais abrangentes forem sua conexão e mobilidade, mais cuida<strong>do</strong> você deve ter<br />

para tratar seus da<strong>do</strong>s. A criptografia de arquivos ou de partições inteiras será<br />

recomendável se outras pessoas tiverem acesso por uma conexão de rede ou acesso<br />

físico direto.<br />

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

Lembre-se de que, com os méto<strong>do</strong>s descritos nesta seção, você não pode<br />

impedir que seu sistema em execução seja comprometi<strong>do</strong>. Após a montagem<br />

da mídia criptografada, todas as pessoas com permissões adequadas terão<br />

acesso a ela. A mídia criptografada será útil se você perder seu computa<strong>do</strong>r<br />

ou se ele for rouba<strong>do</strong> e pessoas não autorizadas quiserem ler seus da<strong>do</strong>s<br />

confidenciais.<br />

A lista a seguir apresenta diversos cenários de uso imagináveis.<br />

Laptops<br />

Se você levar seu laptop em uma viagem, é uma boa idéia criptografar as partições<br />

<strong>do</strong> disco rígi<strong>do</strong> que contenham da<strong>do</strong>s confidenciais. Se você perder o laptop ou se<br />

ele for rouba<strong>do</strong>, seus da<strong>do</strong>s ficarão fora de alcance se residirem em um sistema de<br />

arquivos criptografa<strong>do</strong> ou em um único arquivo criptografa<strong>do</strong>.<br />

Mídia removível<br />

Unidades flash USB ou discos rígi<strong>do</strong>s externos são tão suscetíveis a roubo quanto<br />

laptops. Um sistema de arquivos criptografa<strong>do</strong> fornece proteção contra o acesso<br />

de terceiros.<br />

Segurança no Linux 121


122 Referência<br />

Estações de trabalho<br />

Em empresas nas quais quase todas as pessoas têm acesso ao seu computa<strong>do</strong>r, pode<br />

ser útil criptografar a partição ou arquivos individuais.<br />

4.3.1 Configuran<strong>do</strong> um sistema de arquivos<br />

criptografa<strong>do</strong> com o YaST<br />

O YaST permite a criptografia de arquivos ou partições durante a instalação, bem como<br />

em um sistema já instala<strong>do</strong>. É possível criar um arquivo criptografa<strong>do</strong> a qualquer<br />

momento, pois ele se ajusta perfeitamente ao layout de uma partição existente. Para<br />

criptografar uma partição inteira, separe uma no layout de partições. A proposta padrão<br />

de particionamento, como sugerida pelo YaST, não inclui por padrão uma partição<br />

criptografada. Adicione-a manualmente na caixa de diálogo de particionamento.<br />

Crian<strong>do</strong> uma partição criptografada durante a<br />

instalação<br />

ATENÇÃO: Entrada de senha<br />

Observe os avisos sobre segurança de senhas ao definir a senha de partições<br />

criptografadas e memorize-a também. Sem a senha, os da<strong>do</strong>s criptografa<strong>do</strong>s<br />

não podem ser acessa<strong>do</strong>s nem restaura<strong>do</strong>s.<br />

A caixa de diálogo <strong>do</strong> especialista <strong>do</strong> YaST em particionamento, descrita na<br />

Seção “Particiona<strong>do</strong>r” (Capítulo 2, Configuração <strong>do</strong> sistema com YaST, ↑Inicialização),<br />

<strong>of</strong>erece as opções necessárias para criar uma partição criptografada. Clique em Criar<br />

como se estivesse crian<strong>do</strong> uma partição normal. Na caixa de diálogo exibida, digite os<br />

parâmetros de particionamento para a nova partição, como a formatação desejada e o<br />

ponto de montagem. Para concluir o processo, clique em Sistema de Arquivo<br />

Criptografa<strong>do</strong>. Na caixa de diálogo seguinte, digite a senha duas vezes. A nova partição<br />

criptografada é criada depois que você clica em OK para fechar a caixa de diálogo de<br />

particionamento. Durante a inicialização, o sistema operacional solicita a senha antes<br />

da montagem da partição.<br />

Se você não quiser montar a partição criptografada durante a inicialização, clique em<br />

Enter quan<strong>do</strong> a senha for solicitada. Em seguida, não digite a senha novamente. Nesse<br />

caso, o sistema de arquivos criptografa<strong>do</strong> não será monta<strong>do</strong>, e o sistema operacional


continuará a inicialização bloquean<strong>do</strong> o acesso aos seus da<strong>do</strong>s. Uma vez montada, a<br />

partição estará disponível a to<strong>do</strong>s os usuários.<br />

Se o sistema de arquivos criptografa<strong>do</strong> somente for monta<strong>do</strong> quan<strong>do</strong> necessário, habilite<br />

a opção Não Montar na Inicialização <strong>do</strong> Sistema na caixa de diálogo Opções de fstab.<br />

A respectiva partição não será montada durante a inicialização <strong>do</strong> sistema. Para tornála<br />

disponível no futuro, monte-a manualmente com<br />

mount nome_da_partição ponto_de_montagem. Digite a senha quan<strong>do</strong><br />

solicitada. Após terminar o trabalho na partição, desmonte-a com<br />

umount nome_da_partição para protegê-la contra o acesso de outros usuários.<br />

Crian<strong>do</strong> uma partição criptografada em um sistema<br />

em execução<br />

ATENÇÃO: Ativan<strong>do</strong> a criptografia em um sistema em execução<br />

Também é possível criar partições criptografadas em um sistema em execução<br />

como ocorre na instalação. Contu<strong>do</strong>, a criptografia de uma partição existente<br />

destrói to<strong>do</strong>s os respectivos da<strong>do</strong>s.<br />

Em um sistema em execução, selecione Sistema → Particionamento no centro de<br />

controle <strong>do</strong> YaST. Clique em Sim para continuar. Em vez de selecionar Criar como<br />

menciona<strong>do</strong> acima, clique em Editar. O restante <strong>do</strong> procedimento é igual.<br />

Instalan<strong>do</strong> arquivos criptografa<strong>do</strong>s<br />

Em vez de usar uma partição, é possível criar sistemas de arquivos criptografa<strong>do</strong>s dentro<br />

de arquivos individuais para armazenar da<strong>do</strong>s confidenciais. Esses sistemas são cria<strong>do</strong>s<br />

na mesma caixa de diálogo <strong>do</strong> YaST. Selecione Arquivo Crypt e digite o caminho <strong>do</strong><br />

arquivo a ser cria<strong>do</strong>, bem como seu tamanho pretendi<strong>do</strong>. Aceite as configurações de<br />

formatação propostas e o tipo <strong>do</strong> sistema de arquivos. Em seguida, especifique o ponto<br />

de montagem e decida se o sistema de arquivos criptografa<strong>do</strong> deve ser monta<strong>do</strong> quan<strong>do</strong><br />

o sistema for inicializa<strong>do</strong>.<br />

A vantagem <strong>do</strong>s arquivos criptografa<strong>do</strong>s é que eles podem ser adiciona<strong>do</strong>s sem o<br />

reparticionamento <strong>do</strong> disco rígi<strong>do</strong>. Eles são monta<strong>do</strong>s com a ajuda de um dispositivo<br />

de loop e se comportam como partições normais.<br />

Segurança no Linux 123


124 Referência<br />

Usan<strong>do</strong> o vi para criptografar arquivos<br />

A desvantagem de usar partições criptografadas é que, enquanto elas são montadas,<br />

pelo menos root pode acessar os da<strong>do</strong>s. Para evitar isso, o vi pode ser usa<strong>do</strong> no mo<strong>do</strong><br />

criptografa<strong>do</strong>.<br />

Use vi -x nome<strong>do</strong>arquivo para editar um novo arquivo. O vi solicita que você<br />

defina uma senha e, em seguida, criptografa o conteú<strong>do</strong> <strong>do</strong> arquivo. Sempre que você<br />

acessar esse arquivo, o vi solicitará a senha correta.<br />

Para obter mais segurança, você pode incluir o arquivo de texto criptografa<strong>do</strong> em uma<br />

partição criptografada. Isso é recomendável porque a criptografia usada no vi não é<br />

muito eficiente.<br />

4.3.2 Criptografan<strong>do</strong> o conteú<strong>do</strong> da mídia<br />

removível<br />

O YaST trata a mídia removível, ou seja, discos rígi<strong>do</strong>s externos ou unidades flash<br />

USB, como qualquer outro disco rígi<strong>do</strong>. É possível criptografar arquivos ou partições<br />

nesse tipo de mídia, como descrito acima. Contu<strong>do</strong>, não faça a montagem dessas mídias<br />

durante a inicialização <strong>do</strong> sistema, pois normalmente elas só ficam conectadas enquanto<br />

o sistema está em execução.<br />

4.4 Delimitan<strong>do</strong> privilégios com o<br />

AppArmor<br />

Muitas vulnerabilidades de segurança resultam de erros em programas confiáveis. Um<br />

programa confiável é executa<strong>do</strong> com privilégios que algum invasor gostaria de ter e o<br />

programa deixa de manter aquela confiança se houver um erro no programa permitin<strong>do</strong><br />

que o ataque adquira esses privilégios.<br />

O Novell® AppArmor é uma solução de segurança de aplicativos projetada<br />

especificamente para fornecer menos delimitação de privilégios para programas<br />

suspeitos. O AppArmor permite que o administra<strong>do</strong>r especifique o <strong>do</strong>mínio de atividades<br />

que o programa pode realizar, desenvolven<strong>do</strong> um perfil de segurança para aquele


aplicativo (uma lista de arquivos que o programa pode acessar e as operações que o<br />

programa pode realizar).<br />

A proteção avançada e efetiva de um sistema de computa<strong>do</strong>r requer a minimização <strong>do</strong><br />

número de programas que media privilégios, dessa forma protegen<strong>do</strong> os programas<br />

tanto quanto possível. Com o Novell AppArmor, você só precisa criar perfil para os<br />

programas que são expostos a ataques em seu ambiente, o que reduz drasticamente o<br />

trabalho necessário para proteger melhor o seu computa<strong>do</strong>r. Os perfis <strong>do</strong> AppArmor<br />

obrigam as políticas a verificar que os programas cumpram sua função e nada mais.<br />

Os administra<strong>do</strong>res só precisam cuidar <strong>do</strong>s aplicativos que são vulneráveis a ataques e<br />

gerar perfis para eles. A proteção avançada de sistema equivale, pois, a construir e<br />

manter o conjunto de perfis <strong>do</strong> AppArmor e a monitorar quaisquer violações de política<br />

ou exceções registradas pelo gera<strong>do</strong>r de relatórios <strong>do</strong> AppArmor.<br />

A construção de perfis <strong>do</strong> AppArmor para delimitar um aplicativo é muito fácil e<br />

intuitiva. O AppArmor fornece várias ferramentas que auxiliam na criação de perfis.<br />

O AppArmor não requer que você faça nenhuma programação nem manipulação de<br />

scripts. A única tarefa exigida <strong>do</strong> administra<strong>do</strong>r é determinar uma política de acesso<br />

mais rígida e executar permissões para cada aplicativo que necessite de uma proteção<br />

avançada.<br />

Atualizações ou modificações aos perfis <strong>do</strong> aplicativo só são necessárias se a<br />

configuração <strong>do</strong> s<strong>of</strong>tware ou a faixa de atividades desejada mudar. O AppArmor <strong>of</strong>erece<br />

ferramentas intuitivas para manipular atualizações ou modificações de perfil.<br />

Os usuários nem perceberão o AppArmor. Ele é executa<strong>do</strong> “por trás <strong>do</strong>s basti<strong>do</strong>res” e<br />

não requer nenhuma interação com o usuário. O desempenho não será afeta<strong>do</strong> de maneira<br />

a ser percebida pelo AppArmor. Se alguma atividade <strong>do</strong> aplicativo não for protegida<br />

por um perfil <strong>do</strong> AppArmor ou se alguma atividade <strong>do</strong> aplicativo for impedida pelo<br />

AppArmor, o administra<strong>do</strong>r deve ajustar o perfil deste aplicativo para cobrir este tipo<br />

de comportamento.<br />

Este guia resume as tarefas básicas que devem ser realizadas com o AppArmor para<br />

implementar uma proteção avançada e efetiva a um sistema. Para obter mais informações,<br />

consulte o Guia de Administração <strong>do</strong> Novell AppArmor 2.0.<br />

Segurança no Linux 125


126 Referência<br />

4.4.1 Instalan<strong>do</strong> o Novell AppArmor<br />

Os usuários que instalam um GNOME ou a seleção de área de trabalho KDE podem<br />

ignorar esta seção, porque o Novell AppArmor é instala<strong>do</strong>, por padrão, como parte<br />

destas seleções.<br />

Se não instalar nenhuma destas áreas de trabalho nem for para um ambiente inteiramente<br />

basea<strong>do</strong> em texto, faça o seguinte para instalar os pacotes necessários usan<strong>do</strong> o<br />

gerencia<strong>do</strong>r de pacotes <strong>do</strong> YaST.<br />

1 Efetue login como root e inicie o YaST.<br />

2 No Centro de Controle <strong>do</strong> YaST selecione S<strong>of</strong>tware → Gerenciamento de<br />

S<strong>of</strong>tware.<br />

3 Use a funcionalidade de pesquisa <strong>do</strong> YaST (palavra-chave “AppArmor”) para<br />

instalar os seguintes pacotes:<br />

• apparmor-parser<br />

• libapparmor<br />

• apparmor-<strong>do</strong>cs<br />

• yast2-apparmor<br />

• apparmor-pr<strong>of</strong>iles<br />

• apparmor-utils<br />

4 Selecione to<strong>do</strong>s estes pacotes para instalação e selecione Aceitar. O YaST resolve<br />

quaisquer dependências e instala to<strong>do</strong>s os pacotes para você.<br />

5 Quan<strong>do</strong> o YaST terminar de atualizar a configuração <strong>do</strong> sistema, selecione<br />

Concluir para sair <strong>do</strong> gerencia<strong>do</strong>r de pacote.<br />

4.4.2 Habilitan<strong>do</strong> o Novell AppArmor<br />

Quan<strong>do</strong> o Novell AppArmor estiver instala<strong>do</strong>, habilite-o explicitamente para que ele<br />

seja inicia<strong>do</strong> sempre que o sistema inicializar. Use o módulo <strong>do</strong> YaST Serviços <strong>do</strong><br />

Sistema (Nível de Execução) para esta tarefa:<br />

1 Efetue login como root e inicie o YaST.


2 Inicie Sistema → Serviços <strong>do</strong> Sistema (Runlevel).<br />

3 Na lista de serviços exibi<strong>do</strong>s, selecione apparmor. Consulte a Figura 4.3,<br />

“Habilitan<strong>do</strong> o Novell AppArmor através <strong>do</strong> YaST” (p 127).<br />

4 Clique em Habilitar para habilitar o AppArmor permanentemente.<br />

5 Clique em Concluir para aceitar suas configurações.<br />

Figura 4.3 Habilitan<strong>do</strong> o Novell AppArmor através <strong>do</strong> YaST<br />

Usan<strong>do</strong> a ferramenta Runlevel <strong>do</strong> YaST, é possível habilitar os serviços<br />

permanentemente. Estas configurações sobrevivem à reinicialização <strong>do</strong> seu sistema.<br />

Para habilitar o AppArmor temporariamente, pela duração de uma sessão apenas, faça<br />

o seguinte:<br />

1 Efetue login como root e inicie o YaST.<br />

2 Inicie o Novell AppArmor → Painel de Controle <strong>do</strong> AppArmor.<br />

3 Defina o Status <strong>do</strong> AppArmor em AppArmor está habilita<strong>do</strong> clican<strong>do</strong> em<br />

Configurar → Habilitar → OK.<br />

Segurança no Linux 127


128 Referência<br />

4 Aplique suas configurações com Concluí<strong>do</strong>.<br />

4.4.3 Noções básicas de aplicativos de perfis<br />

Prepare uma distribuição bem-sucedida <strong>do</strong> Novell AppArmor no seu sistema<br />

consideran<strong>do</strong> cuida<strong>do</strong>samente os seguintes itens:<br />

1 Determine os aplicativos para os quais criar perfil. Leia mais sobre isto em<br />

“Escolhen<strong>do</strong> os aplicativos para os quais criar perfil” (p 128).<br />

2 Construa os perfis necessários como resumi<strong>do</strong> em “Construin<strong>do</strong> e modifican<strong>do</strong><br />

perfis” (p 129). Verifique os resulta<strong>do</strong>s e ajuste os perfis quan<strong>do</strong> necessário.<br />

3 Para controlar o que está acontecen<strong>do</strong> no sistema, execute os relatórios <strong>do</strong><br />

AppArmor e trabalhe com eventos de segurança. Consulte “Configuran<strong>do</strong><br />

notificação de evento e relatórios <strong>do</strong> Novell AppArmor” (p 131).<br />

4 Atualize seus perfis sempre que seu ambiente mudar ou você precisar reagir a<br />

eventos de segurança registra<strong>do</strong>s pela ferramenta de relatório <strong>do</strong> AppArmor.<br />

Consulte “Atualizan<strong>do</strong> seus perfis” (p 133).<br />

Escolhen<strong>do</strong> os aplicativos para os quais criar perfil<br />

É necessário proteger apenas os programas expostos a ataques na sua configuração<br />

particular, assim, só use perfis para os aplicativos que você realmente executa. Use a<br />

seguinte lista para determinar os candidatos mais prováveis:<br />

Agentes de rede<br />

Programas (servi<strong>do</strong>res e clientes) têm portas de rede abertas e agentes de rede são<br />

programas de servi<strong>do</strong>r que respondem a estas portas de rede. Clientes de usuário<br />

(como clientes de correio e browsers da Web) também têm portas de rede abertas<br />

e mediam privilégios.<br />

Aplicativos da Web<br />

Scripts Perl CGI, páginas PHP e aplicativos mais complexos da Web podem ser<br />

chama<strong>do</strong>s através de um browser da Web.


Tarefas cron<br />

Programas que o daemon cron executa periodicamente lêem entradas de diversas<br />

fontes.<br />

Para saber que processos estão sen<strong>do</strong> executa<strong>do</strong>s atualmente com portas de rede abertas<br />

e podem precisar de um perfil para delimitá-los, execute unconfined como root.<br />

Exemplo 4.1 Saída de unconfined<br />

19848 /usr/sbin/cupsd not confined<br />

19887 /usr/sbin/sshd not confined<br />

19947 /usr/lib/postfix/master not confined<br />

29205 /usr/sbin/sshd confined by '/usr/sbin/sshd (enforce)'<br />

Cada um <strong>do</strong>s processos no exemplo acima rotula<strong>do</strong> de não delimita<strong>do</strong> pode<br />

precisar de um perfil personaliza<strong>do</strong> para delimitá-lo. Os processos rotula<strong>do</strong>s<br />

delimita<strong>do</strong> por já são protegi<strong>do</strong>s pelo AppArmor.<br />

DICA: Mais informações<br />

Para obter mais informações sobre a escolha <strong>do</strong>s aplicativos corretos para os<br />

quais criar perfil, consulte o Capítulo Selecionan<strong>do</strong> programas a imunizar (Guia<br />

de Administração <strong>do</strong> Novell AppArmor 2.0).<br />

Construin<strong>do</strong> e modifican<strong>do</strong> perfis<br />

O Novell AppArmor no <strong>SUSE</strong> Linux é forneci<strong>do</strong> com um conjunto de perfis préconfigura<strong>do</strong><br />

para os aplicativos mais importantes. Além disso, você pode usar o<br />

AppArmor para criar seus próprios perfis para um conjunto de aplicativos defini<strong>do</strong>s<br />

em /etc/apparmor/README.pr<strong>of</strong>iles.<br />

Há duas maneiras de gerenciar perfis. Uma é usar o gráfico front end forneci<strong>do</strong> pelos<br />

módulos Novell AppArmor <strong>do</strong> YaST e a outra é usar as ferramentas de linha de coman<strong>do</strong><br />

fornecidas pela própria suíte <strong>do</strong> AppArmor. Ambos os méto<strong>do</strong>s funcionam basicamente<br />

da mesma maneira.<br />

Executar não delimita<strong>do</strong> como descrito em “Escolhen<strong>do</strong> os aplicativos para os quais<br />

criar perfil” (p 128) identifica uma lista de aplicativos que podem precisar de um perfil<br />

para serem executa<strong>do</strong>s de mo<strong>do</strong> seguro.<br />

Para cada aplicativo, realize as seguintes etapas para criar um perfil:<br />

Segurança no Linux 129


130 Referência<br />

1 Como root, deixe o AppArmor criar um resumo <strong>do</strong> perfil <strong>do</strong> aplicativo,<br />

executan<strong>do</strong> genpr<strong>of</strong> programname<br />

ou<br />

executan<strong>do</strong> YaST → Novell AppArmor → Assistente para Adicionar Perfil e<br />

especifican<strong>do</strong> o caminho completo <strong>do</strong> aplicativo para o qual criar perfil.<br />

Um perfil básico é traça<strong>do</strong> e o AppArmor é coloca<strong>do</strong> no mo<strong>do</strong> de aprendiza<strong>do</strong>,<br />

o que significa que ele registra qualquer atividade <strong>do</strong> programa que você esteja<br />

executan<strong>do</strong> mas não o restringe.<br />

2 Execute a gama completa de ações <strong>do</strong> aplicativo para que o AppArmor obtenha<br />

um quadro bastante específico de suas atividades.<br />

3 Deixe o AppArmor analisar os arquivos de registro gera<strong>do</strong>s na Passo 2 (p 130).<br />

Faça-o digitan<strong>do</strong> S em genpr<strong>of</strong><br />

ou<br />

clican<strong>do</strong> em Explorar eventos <strong>do</strong> AppArmor no registro <strong>do</strong> sistema no Assistente<br />

para Adicionar Perfil e siga as instruções fornecidas no assistente até concluir<br />

o perfil.<br />

O AppArmor explora os registros feitos durante a execução <strong>do</strong> aplicativo e pede<br />

para você configurar os direitos de acesso para cada evento para o qual foi<br />

efetua<strong>do</strong> login. Configure-os para cada arquivo ou use globbing.<br />

4 Uma vez que todas as permissões de acesso estejam configuradas, o seu perfil é<br />

defini<strong>do</strong> para o mo<strong>do</strong> força<strong>do</strong>. O perfil é aplica<strong>do</strong> e o AppArmor restringe o<br />

aplicativo de acor<strong>do</strong> com o perfil que acabou de ser cria<strong>do</strong>.<br />

Se iniciou genpr<strong>of</strong> para um aplicativo que tinha um perfil existente que estava<br />

no mo<strong>do</strong> de reclamação, este perfil permanecerá no mo<strong>do</strong> de aprendiza<strong>do</strong> até<br />

sair deste ciclo de aprendiza<strong>do</strong>. Para obter mais informações sobre como mudar<br />

o mo<strong>do</strong> de um perfil, consulte a Seção Mo<strong>do</strong> de reclamação ou aprendiza<strong>do</strong><br />

(Capítulo 3, Construin<strong>do</strong> perfis <strong>do</strong> Novell AppArmor, Guia de Administração <strong>do</strong><br />

Novell AppArmor 2.0) e a Seção Mo<strong>do</strong> Força<strong>do</strong> (Capítulo 3, Construin<strong>do</strong> perfis<br />

<strong>do</strong> Novell AppArmor, Guia de Administração <strong>do</strong> Novell AppArmor 2.0).


Teste as suas configurações de perfil realizan<strong>do</strong> todas as tarefas com o aplicativo que<br />

acabou de delimitar. Normalmente, o programa delimita<strong>do</strong> tem uma execução uniforme<br />

e você não percebe as atividades <strong>do</strong> AppArmor. No entanto, se observar um certo<br />

comportamento inadequa<strong>do</strong> no seu aplicativo, verifique os registros <strong>do</strong> sistema e veja<br />

se o AppArmor está delimitan<strong>do</strong> demais o seu aplicativo. Localize os registros adequa<strong>do</strong>s<br />

em /var/log/messages ou execute dmesg.<br />

Qualquer saída semelhante ao exemplo a seguir sugere que o AppArmor está delimitan<strong>do</strong><br />

demais o seu aplicativo:<br />

AppArmor: REJECTING w access to /var/run/nscd/socket (traceroute(2050) pr<strong>of</strong>ile<br />

/usr/sbin/traceroute active /usr/sbin/traceroute)<br />

Para ajustar o perfil, execute o Assistente para Adicionar Perfil novamente como descrito<br />

acima e deixe que ele analise as mensagens de registro relativas ao aplicativo específico.<br />

Determine os direitos ou restrições de acesso quan<strong>do</strong> solicita<strong>do</strong> pelo YaST.<br />

DICA: Mais informações<br />

Para obter mais informações sobre construção e modificação de perfil, consulte<br />

o Capítulo Construin<strong>do</strong> perfis <strong>do</strong> Novell AppArmor (Guia de Administração <strong>do</strong><br />

Novell AppArmor 2.0).<br />

Configuran<strong>do</strong> notificação de evento e relatórios <strong>do</strong><br />

Novell AppArmor<br />

Configure a notificação de evento no Novell AppArmor para que você possa analisar<br />

os eventos de segurança. A notificação de evento é um recurso <strong>do</strong> Novell AppArmor<br />

que informa um destinatário específico de e-mail sobre a ocorrência de uma atividade<br />

sistêmica no Novell AppArmor no nível de gravidade escolhi<strong>do</strong>. Esse recurso está<br />

disponível atualmente na interface <strong>do</strong> YaST.<br />

Para configurar a notificação de evento no YaST, proceda da seguinte maneira:<br />

1 Verifique se o servi<strong>do</strong>r de correio está sen<strong>do</strong> executa<strong>do</strong> no seu sistema para<br />

fornecer as notificações de evento.<br />

2 Efetue login como root e inicie o YaST. Em seguida, selecione Novell AppArmor<br />

→ Painel de Controle <strong>do</strong> AppArmor.<br />

Segurança no Linux 131


132 Referência<br />

3 Na seção Habilitar Notificação de Evento de Segurança, selecione Configurar.<br />

4 Para cada tipo registra<strong>do</strong> (Conciso, Resumo e Verboso) configure uma freqüência<br />

de relatório, digite um endereço de e-mail para receber os relatórios e determine<br />

a gravidade <strong>do</strong>s eventos a registrar. Se quiser incluir eventos desconheci<strong>do</strong>s nos<br />

relatórios de evento, marque Incluir Eventos de Gravidade Desconheci<strong>do</strong>s.<br />

NOTA<br />

A menos que você esteja familiariza<strong>do</strong> com categorização de evento <strong>do</strong><br />

AppArmor, escolha ser notifica<strong>do</strong> sobre eventos de to<strong>do</strong>s os níveis de<br />

segurança.<br />

5 Deixe esta caixa de diálogo com OK → Concluir para aplicar suas configurações.<br />

Configure relatórios <strong>do</strong> Novell AppArmor. Usan<strong>do</strong> relatórios, é possível ler eventos<br />

de segurança importantes <strong>do</strong> Novell AppArmor relata<strong>do</strong>s nos arquivos de registro sem<br />

precisar peneirar manualmente as mensagens pesadas, úteis apenas para a ferramenta<br />

logpr<strong>of</strong>. É possível restringir o tamanho <strong>do</strong> relatório, filtran<strong>do</strong> por faixa de data ou<br />

nome de programa.<br />

Para configurar os relatórios <strong>do</strong> AppArmor proceda da seguinte maneira:<br />

1 Efetue login como root e inicie o YaST. Selecione Novell AppArmor →<br />

Relatórios <strong>do</strong> AppArmor.<br />

2 Selecione o tipo de relatório que você quer examinar ou configurar de Resumo<br />

de Segurança Executivo, Auditoria de Aplicativos e Relatório de Incidente de<br />

Segurança.<br />

3 Edite a freqüência de geração de relatório, endereço de e-mail, formato de<br />

exportação e a localização <strong>do</strong>s relatórios selecionan<strong>do</strong> Editar e fornecen<strong>do</strong> os<br />

da<strong>do</strong>s solicita<strong>do</strong>s.<br />

4 Para executar um relatório <strong>do</strong> tipo seleciona<strong>do</strong>, clique em Executar Agora.<br />

5 Pesquise nos relatórios arquiva<strong>do</strong>s de um determina<strong>do</strong> tipo, selecionan<strong>do</strong><br />

Visualizar Arquivo e especifican<strong>do</strong> o tipo de relatório.<br />

ou


Apague os relatórios desnecessários ou adicione novos.<br />

DICA: Mais informações<br />

Para obter mais informações sobre configuração de notificação de evento no<br />

Novell AppArmor, consulte a Seção “Configuran<strong>do</strong> notificações de evento”<br />

(Capítulo 4, Gerencian<strong>do</strong> aplicativos em perfil, Guia de Administração <strong>do</strong> Novell<br />

AppArmor 2.0). Mais informações sobre configuração de relatório são<br />

encontradas na Seção “Relatórios” (Capítulo 4, Gerencian<strong>do</strong> aplicativos em<br />

perfil, no Guia de Administração <strong>do</strong> Novell AppArmor 2.0).<br />

Atualizan<strong>do</strong> seus perfis<br />

Configurações de s<strong>of</strong>tware e sistema mudam com o tempo. Por isso a sua configuração<br />

de perfil para o AppArmor pode precisar de um ajuste manual periodicamente. O<br />

AppArmor verifica o seu registro de sistema em busca de violações de política ou outros<br />

eventos <strong>do</strong> AppArmor e deixa você ajustar a sua configuração de perfil adequadamente.<br />

Qualquer comportamento de aplicativo que esteja fora de qualquer definição de perfil<br />

também pode ser trata<strong>do</strong> usan<strong>do</strong> o Assistente para Atualizar Perfil.<br />

Para atualizar o seu conjunto de perfis, proceda da seguinte maneira:<br />

1 Efetue login como root e inicie o YaST.<br />

2 Inicie o Novell AppArmor → Assistente para Atualizar Perfil.<br />

3 Ajuste o acesso ou execute direitos para qualquer recurso ou para qualquer<br />

executável ao qual tenha si<strong>do</strong> efetua<strong>do</strong> login quan<strong>do</strong> solicita<strong>do</strong>.<br />

4 Saia <strong>do</strong> YaST após ter respondi<strong>do</strong> a todas as perguntas. Suas mudanças são<br />

aplicadas aos respectivos perfis.<br />

DICA: Mais informações<br />

Para obter mais informações sobre atualização <strong>do</strong>s seus perfis <strong>do</strong>s registros <strong>do</strong><br />

sistema, consulte a Seção “Atualizan<strong>do</strong> perfis a partir de entradas de registros<br />

<strong>do</strong> sistema” (Capítulo 3, Construin<strong>do</strong> perfis <strong>do</strong> Novell AppArmor, Guia de<br />

Administração <strong>do</strong> Novell AppArmor 2.0).<br />

Segurança no Linux 133


134 Referência<br />

4.5 Segurança e confidencialidade<br />

Uma das principais características de um sistema Linux ou UNIX é sua capacidade de<br />

manter vários usuários ao mesmo tempo (multiusuário) e permitir que esses usuários<br />

executem inúmeras tarefas (multitarefas) no mesmo computa<strong>do</strong>r simultaneamente.<br />

Além disso, o sistema operacional é transparente à rede. Os usuários normalmente não<br />

sabem se os da<strong>do</strong>s e aplicativos que usam são forneci<strong>do</strong>s localmente por suas máquinas<br />

ou disponibiliza<strong>do</strong>s pela rede.<br />

Com o recurso multiusuário, os da<strong>do</strong>s de usuários diferentes precisam ser armazena<strong>do</strong>s<br />

separadamente. A segurança e privacidade precisam ser garantidas. A segurança <strong>do</strong>s<br />

da<strong>do</strong>s já era considerada uma questão importante, mesmo antes de os computa<strong>do</strong>res<br />

poderem se vincular através de redes. Como nos dias de hoje, a maior preocupação era<br />

a capacidade de manter os da<strong>do</strong>s disponíveis, apesar da perda ou danificação <strong>do</strong> meio<br />

<strong>do</strong>s da<strong>do</strong>s, na maioria das vezes, um disco rígi<strong>do</strong>.<br />

Esta seção enfoca, principalmente, problemas de confidencialidade e formas de proteger<br />

a privacidade de usuários. Porém, ela não se estende o suficiente para abordar o conceito<br />

abrangente de segurança, que deve sempre incluir procedimentos para ter um backup<br />

regularmente atualiza<strong>do</strong>, utilizável e testa<strong>do</strong> à disposição. Sem isso, você pode ter muita<br />

dificuldade na recuperação de seus da<strong>do</strong>s — não só no caso de algum defeito de<br />

hardware, mas também se suspeitar de alguém ter adquiri<strong>do</strong> acesso não autoriza<strong>do</strong> e<br />

falsifica<strong>do</strong> arquivos.<br />

4.5.1 Segurança local e de rede<br />

Há várias formas de acessar da<strong>do</strong>s:<br />

• comunicação pessoal com quem possui as informações desejadas ou acesso aos<br />

da<strong>do</strong>s através de um computa<strong>do</strong>r<br />

• diretamente <strong>do</strong> console de um computa<strong>do</strong>r (acesso físico)<br />

• através de uma linha serial<br />

• usan<strong>do</strong> um link de rede<br />

Em to<strong>do</strong>s esses casos, o usuário deve ser autentica<strong>do</strong> antes de acessar os recursos ou<br />

da<strong>do</strong>s em questão. Um servi<strong>do</strong>r da Web talvez seja menos restritivo a esse respeito,


ainda assim, você não gostaria que ele divulgasse to<strong>do</strong>s os seus da<strong>do</strong>s pessoais para<br />

qualquer pessoa na rede.<br />

Na lista acima, o primeiro caso é onde a maior quantidade de interação humana está<br />

envolvida, por exemplo, quan<strong>do</strong> você contacta um funcionário de um banco e ele solicita<br />

que você prove que é a pessoa proprietária daquela conta de banco. Então, solicitam<br />

sua assinatura, um PIN ou uma senha para provar que você é aquela pessoa. Em alguns<br />

casos, pode ser possível extrair informações de uma pessoa esclarecida apenas<br />

mencionan<strong>do</strong> poucos detalhes conheci<strong>do</strong>s, suficientes para ganhar a confiança dessa<br />

pessoa, usan<strong>do</strong> uma retórica inteligente. A vítima pode ser levada a revelar,<br />

gradativamente, mais informações, talvez sem nem mesmo se dar conta disso. Entre os<br />

hackers, isso é chama<strong>do</strong> de engenharia social. A única forma de se proteger contra isso<br />

é educar as pessoas e saber lidar com linguagem e informações de uma forma consciente.<br />

Antes de invadirem sistemas de computa<strong>do</strong>r, os invasores geralmente tentam atingir<br />

recepcionistas, auxiliares que trabalham na empresa ou até mesmo membros de uma<br />

família. Em muitos casos, como um ataque basea<strong>do</strong> em engenharia social, ele só é<br />

descoberto muito tempo depois.<br />

Uma pessoa que deseja obter acesso não autoriza<strong>do</strong> aos seus da<strong>do</strong>s poderia também<br />

tentar obtê-lo da forma tradicional, diretamente através <strong>do</strong> seu hardware. Portanto, a<br />

máquina deve ser protegida contra qualquer falsificação, para que ninguém possa<br />

remover, substituir ou danificar seus componentes. Isso também se aplica a backups e,<br />

até mesmo, a qualquer cabo de rede ou de energia. Proteja também o procedimento de<br />

inicialização, pois há algumas combinações de tecla bastante conhecidas que podem<br />

provocar um comportamento anormal. Proteja-se contra isso, configuran<strong>do</strong> senhas para<br />

o BIOS e para o carrega<strong>do</strong>r de boot.<br />

Os terminais seriais conecta<strong>do</strong>s a portas seriais ainda são usa<strong>do</strong>s em muitos locais.<br />

Diferente das interfaces de rede, eles não usam um protocolo de rede para se comunicar<br />

com o host. Um cabo simples ou porta infravermelha envia e retorna caracteres simples<br />

entre os dispositivos. O próprio cabo é o ponto mais fraco de um sistema desses: com<br />

uma impressora mais antiga conectada a ele, é fácil registrar qualquer coisa que seja<br />

transmitida pelos cabos. O que se consegue com uma impressora também pode ser feito<br />

de outras formas, dependen<strong>do</strong> <strong>do</strong> esforço envolvi<strong>do</strong> no ataque.<br />

Ler um arquivo localmente em um host exige outras regras de acesso, diferentes de<br />

abrir uma conexão de rede com um servi<strong>do</strong>r em um host diferente. Não há distinção<br />

entre segurança local e segurança de rede. A linha é desenhada onde os da<strong>do</strong>s devem<br />

ser coloca<strong>do</strong>s em pacotes para serem envia<strong>do</strong>s para outro local.<br />

Segurança no Linux 135


Segurança local<br />

A segurança local começa com o ambiente físico, no local onde o computa<strong>do</strong>r é<br />

executa<strong>do</strong>. Configure sua máquina em um local onde a segurança esteja de acor<strong>do</strong> com<br />

suas expectativas e necessidades. O principal objetivo da segurança local é manter<br />

usuários separa<strong>do</strong>s entre si, para que nenhum assuma a permissão ou a identidade <strong>do</strong><br />

outro. Essa é uma regra geral a ser observada, mas é extremamente verdadeira para o<br />

root <strong>do</strong> usuário, que contém a força suprema <strong>do</strong> sistema. root pode assumir a<br />

identidade de qualquer usuário local sem que lhe seja solicitada uma senha e pode ler<br />

qualquer arquivo armazena<strong>do</strong> localmente.<br />

Senhas<br />

136 Referência<br />

Em um sistema Linux, as senhas não são armazenadas como texto simples e a string<br />

de texto digitada não corresponde diretamente com o padrão salvo. Se fosse assim,<br />

todas as contas <strong>do</strong> seu sistema estariam comprometidas assim que alguém tivesse acesso<br />

ao arquivo correspondente. Em vez disso, a senha armazenada é criptografada e, toda<br />

vez que é digitada, é novamente criptografada para que as duas strings criptografadas<br />

sejam comparadas. Isso <strong>of</strong>erece mais segurança somente se a senha criptografada não<br />

puder ser computada de forma inversa na string de texto original.<br />

Isso pode ser feito através de um tipo especial de algoritmo, também chama<strong>do</strong> de<br />

algoritmo trap<strong>do</strong>or, pois ele só funciona em uma direção. Um invasor que obteve a<br />

string criptografada não é capaz de obter sua senha simplesmente aplican<strong>do</strong> o mesmo<br />

algoritmo novamente. Em vez disso, seria preciso testar todas as combinações de<br />

caracteres possíveis, até encontrar uma que se parecesse com sua senha quan<strong>do</strong><br />

criptografada. Em senhas com oito caracteres, há um número considerável de<br />

combinações possíveis de serem calculadas.<br />

Nos anos setenta, dizia-se que esse méto<strong>do</strong> seria mais seguro <strong>do</strong> que outros, devi<strong>do</strong> à<br />

relativa lentidão <strong>do</strong> algoritmo usa<strong>do</strong>, que levava alguns segun<strong>do</strong>s para criptografar<br />

apenas uma senha. Entretanto, enquanto isso, os PCs foram se tornan<strong>do</strong> mais potentes<br />

o suficiente para executar centenas de milhares ou até milhões de criptografias por<br />

segun<strong>do</strong>. Por causa disso, as senhas criptografadas não devem ficar visíveis para usuários<br />

regulares (/etc/sha<strong>do</strong>w não pode ser lida por usuários normais). É até mais<br />

importante que senhas não sejam fáceis de adivinhar, no caso de um arquivo de senha<br />

ficar visível por algum erro. Conseqüentemente, não é de muita utilidade “traduzir”<br />

uma senha como “tantalize” para “t@nt@1lz3”.


Substituir algumas letras da palavra por números pareci<strong>do</strong>s não é seguro o suficiente.<br />

Programas para fraudar senhas, que usam dicionários para adivinhar palavras, também<br />

testam substituições como essa. Uma forma melhor é criar uma palavra sem um<br />

significa<strong>do</strong> comum, mas que só faça senti<strong>do</strong> para você, como as primeiras letras das<br />

palavras de uma frase ou <strong>do</strong> título de um livro, como “The Name <strong>of</strong> the Rose” by<br />

Umberto Eco (O Nome da Rosa, de Umberto Eco). A senha segura criada ficaria assim:<br />

“TNotRbUE9”. Diferentemente, senhas como “beerbuddy” ou “jasmine76” são de fácil<br />

adivinhação, mesmo por alguém que tenha pouco conhecimento a seu respeito.<br />

O procedimento de inicialização<br />

Configure o sistema de forma que não possa ser inicializa<strong>do</strong> de um disquete ou CD,<br />

removen<strong>do</strong> totalmente as unidades ou configuran<strong>do</strong> uma senha para o BIOS e<br />

configuran<strong>do</strong>-o para que inicialize somente a partir de um disco rígi<strong>do</strong>. Normalmente,<br />

um sistema Linux é inicia<strong>do</strong> por um carrega<strong>do</strong>r de boot, permitin<strong>do</strong> que você passe<br />

opções adicionais para o kernel inicializa<strong>do</strong>. Para evitar que outros usem esses<br />

parâmetros durante a inicialização, configure uma senha adicional em /boot/grub/<br />

menu.lst (consulte o Capítulo 9, O Carrega<strong>do</strong>r de Boot (p 201)). Isso é imprescindível<br />

para a segurança <strong>do</strong> sistema. O kernel não só é executa<strong>do</strong> com permissões de root,<br />

como também é a primeira autoridade a conceder permissões de root na inicialização<br />

<strong>do</strong> sistema.<br />

Permissões de arquivo<br />

Como regra geral, sempre trabalhe com os privilégios mais restritivos possíveis para<br />

uma determinada tarefa. Por exemplo, definitivamente, não é necessário ser root para<br />

ler ou gravar e-mails. Se o programa de correio possuir um bug, esse bug pode ser<br />

explora<strong>do</strong> para um ataque que atue com as permissões exatas <strong>do</strong> programa quan<strong>do</strong> foi<br />

inicializa<strong>do</strong>. Ao seguir a regra acima, os possíveis danos serão minimiza<strong>do</strong>s.<br />

As permissões de mais de 200.000 arquivos incluí<strong>do</strong>s em uma distribuição <strong>SUSE</strong> são<br />

escolhi<strong>do</strong>s cuida<strong>do</strong>samente. Um administra<strong>do</strong>r de sistemas que instale s<strong>of</strong>twares<br />

adicionais ou outros arquivos deve ser cuida<strong>do</strong>so ao fazê-lo, especialmente quan<strong>do</strong><br />

configurar os bits de permissão. Administra<strong>do</strong>res de sistemas experientes e atentos à<br />

segurança sempre usam a opção -l com o coman<strong>do</strong> ls, para obter uma lista de arquivos<br />

extensa, que ajuda na detecção imediata de qualquer permissão de arquivo incorreta.<br />

Um atributo de arquivo incorreto não significa somente que os arquivos podem ser<br />

muda<strong>do</strong>s ou apaga<strong>do</strong>s. Esses arquivos modifica<strong>do</strong>s podem ser executa<strong>do</strong>s pelo root<br />

ou, no caso de arquivos de configuração, programas poderiam usar tais arquivos com<br />

Segurança no Linux 137


138 Referência<br />

as permissões <strong>do</strong> root. Isso aumenta significativamente as possibilidades de um ataque.<br />

Ataques como esse são chama<strong>do</strong>s de cuckoo eggs (ovos de cuco), pois o programa (o<br />

ovo) é executa<strong>do</strong> (quebra<strong>do</strong>) por um usuário diferente (pássaro), exatamente como um<br />

cuco engana outros pássaros para quebrar seus ovos.<br />

Um sistema <strong>SUSE</strong> Linux inclui os arquivos permissions, permissions.easy,<br />

permissions.secure e permissions.paranoid, to<strong>do</strong>s no diretório /etc.<br />

A função desses arquivos é definir permissões especiais, como diretórios graváveis<br />

mundialmente ou, para arquivos, o bit <strong>do</strong> setuser ID (programas com o conjunto de bits<br />

setuser ID não são executa<strong>do</strong>s com as permissões <strong>do</strong> usuário que os inicializou e sim<br />

com as <strong>do</strong> proprietário <strong>do</strong> arquivo, na maioria <strong>do</strong>s casos, o root). Um administra<strong>do</strong>r<br />

pode usar o arquivo /etc/permissions.local para adicionar suas próprias<br />

configurações.<br />

Para definir qual <strong>do</strong>s arquivos acima é usa<strong>do</strong> pelos programas de configuração <strong>do</strong> <strong>SUSE</strong><br />

para definir permissões compatíveis, selecione Segurança no YaST. Para saber mais<br />

sobre esse tópico, leia os comentários em /etc/permissions ou consulte a página<br />

<strong>do</strong> manual <strong>do</strong> chmod (man chmod).<br />

Bugs de string de formato e overflows de buffer<br />

Deve-se ter extremo cuida<strong>do</strong> sempre que um programa cuja função é processar da<strong>do</strong>s<br />

possa ser modifica<strong>do</strong> por um usuário. Porém, esse é um problema mais para o<br />

programa<strong>do</strong>r de um aplicativo <strong>do</strong> que para usuários regulares. O programa<strong>do</strong>r deve<br />

verificar se o aplicativo interpreta os da<strong>do</strong>s de forma correta, sem gravá-lo em áreas da<br />

memória muito pequenas para mantê-lo. Da mesma forma, o programa deve manter os<br />

da<strong>do</strong>s de forma consistente, usan<strong>do</strong> as interfaces definidas para esse fim.<br />

Um overflow de buffer pode ocorrer se o tamanho real <strong>do</strong> buffer da memória não for<br />

leva<strong>do</strong> em conta quan<strong>do</strong> uma gravação for feita nesse buffer. Há casos em que esses<br />

da<strong>do</strong>s (como os gera<strong>do</strong>s pelo usuário) usam mais espaço <strong>do</strong> que o disponibiliza<strong>do</strong> no<br />

buffer. Como conseqüência, os da<strong>do</strong>s são grava<strong>do</strong>s além da área final <strong>do</strong> buffer, o que,<br />

em certas circunstâncias, possibilita que um programa execute seqüências de programa<br />

influencia<strong>do</strong> pelo usuário (e não pelo programa<strong>do</strong>r), em vez de apenas processar os<br />

da<strong>do</strong>s <strong>do</strong> usuário. Um bug desse tipo pode trazer sérias conseqüências, especialmente<br />

se o programa estiver sen<strong>do</strong> executa<strong>do</strong> com privilégios especiais (consulte “Permissões<br />

de arquivo” (p 137)).<br />

Bugs de string de formato funciona um pouco diferente, porém novamente é a entrada<br />

<strong>do</strong> usuário que pode controlar a bandeja <strong>do</strong> programa. Na maioria <strong>do</strong>s casos, esses erros


de programação são explora<strong>do</strong>s com programas executa<strong>do</strong>s com permissões especiais<br />

— programas setuid e setgid — o que também significa que você pode proteger os<br />

da<strong>do</strong>s e o sistema desses bugs, removen<strong>do</strong> <strong>do</strong>s programas os privilégios de execução<br />

correspondentes. Novamente, a melhor forma é aplicar uma política de uso de privilégios<br />

mais baixos possíveis (consulte “Permissões de arquivo” (p 137)).<br />

Como os overflows de buffer e bugs de string de formato são bugs relaciona<strong>do</strong>s ao<br />

manuseio de da<strong>do</strong>s <strong>do</strong> usuário, eles não são só exploráveis se o acesso tiver si<strong>do</strong><br />

concedi<strong>do</strong> a uma conta local. Muitos <strong>do</strong>s bugs relata<strong>do</strong>s também podem ser explora<strong>do</strong>s<br />

por um link de rede. Da mesma forma, bugs de string de formato e overflows de buffer<br />

devem ser classifica<strong>do</strong>s como relevantes tanto para a segurança de rede quanto a local.<br />

Vírus<br />

Contrário ao que dizem algumas pessoas, há vírus que são executa<strong>do</strong>s no Linux.<br />

Entretanto, os vírus conheci<strong>do</strong>s foram cria<strong>do</strong>s por seus autores como um protótipo,<br />

para provar que a técnica funciona como determina<strong>do</strong>. Nenhum desses vírus foi aponta<strong>do</strong><br />

em lugar algum até agora.<br />

Os vírus não conseguem sobreviver e se espalharem sem que haja um host onde possam<br />

permanecer. Nesse caso, o host seria um programa ou uma área de armazenamento<br />

importante <strong>do</strong> sistema, como o MBR (Master Boot Record), que precisa ser gravável<br />

para o código de programa <strong>do</strong> vírus. Devi<strong>do</strong> aos seus recursos de multiusuário, o Linux<br />

pode restringir o acesso de gravação a certos arquivos especialmente importantes para<br />

arquivos <strong>do</strong> sistema. Portanto, se você trabalhou normalmente com as permissões de<br />

root, as chances de o sistema ser infecta<strong>do</strong> por vírus aumentarão. Por outro la<strong>do</strong>, se<br />

você seguiu os princípios <strong>do</strong> uso de privilégios mais baixos possíveis, conforme<br />

menciona<strong>do</strong> anteriormente, há poucas chances de um vírus entrar no computa<strong>do</strong>r.<br />

Independente disso, nunca execute um programa às pressas a partir de algum site da<br />

Internet que você não conheça bem. Os pacotes RPM <strong>do</strong> <strong>SUSE</strong> possuem uma assinatura<br />

criptográfica como rótulo digital indican<strong>do</strong> o extremo cuida<strong>do</strong> utiliza<strong>do</strong> durante sua<br />

criação. Os vírus são um sinal típico de que o administra<strong>do</strong>r ou o usuário não possuem<br />

uma precaução de segurança necessária, colocan<strong>do</strong> em risco um sistema que deveria<br />

estar altamente protegi<strong>do</strong>.<br />

Vírus não devem ser confundi<strong>do</strong>s com worms, que pertencem inteiramente ao mun<strong>do</strong><br />

das redes. Worms não precisam de um host para se espalharem.<br />

Segurança no Linux 139


140 Referência<br />

Segurança de rede<br />

A segurança da rede é importante para a proteção contra um ataque inicia<strong>do</strong><br />

externamente. O procedimento de login típico, que exige um nome de usuário e senha<br />

para a autenticação <strong>do</strong> usuário ainda é uma questão de segurança local. No caso<br />

específico de efetuar login em uma rede, existe uma diferença entre os <strong>do</strong>is aspectos<br />

de segurança. O que acontece até a autenticação real é a segurança da rede e tu<strong>do</strong> o que<br />

acontece depois disso é a segurança local.<br />

Sistema x win<strong>do</strong>w e autenticação x<br />

Conforme menciona<strong>do</strong> no início, a transparência da rede é uma das características<br />

principais de um sistema UNIX. X, o sistema de janelas <strong>do</strong>s sistemas operacionais <strong>do</strong><br />

UNIX, usa esse recurso de uma forma impressionante. Com X, basicamente não há<br />

problemas para efetuar login em um host remoto e iniciar um programa gráfico que<br />

será, depois, envia<strong>do</strong> para a rede para ser exibi<strong>do</strong> no computa<strong>do</strong>r.<br />

Quan<strong>do</strong> um cliente X deve ser exibi<strong>do</strong> remotamente usan<strong>do</strong> um servi<strong>do</strong>r X, o último<br />

deve proteger o recurso gerencia<strong>do</strong> por ele (a tela) de acessos não autoriza<strong>do</strong>s. Em<br />

termos mais concretos, certas permissões precisam ser fornecidas ao programa cliente.<br />

Com o sistema X Win<strong>do</strong>w, há duas formas de fazer isso, chamadas controle de acesso<br />

basea<strong>do</strong> em host e controle de acesso basea<strong>do</strong> em cookie. O anterior se baseia no<br />

endereço IP <strong>do</strong> host onde o cliente deve ser executa<strong>do</strong>. O programa que controla isso<br />

é o xhost. O xhost. insere o endereço IP de um cliente legítimo em um banco de da<strong>do</strong>s<br />

mínimo pertencente ao servi<strong>do</strong>r X. Entretanto, basear-se em endereços IP para<br />

autenticação não é muito seguro. Por exemplo, se houvesse um segun<strong>do</strong> usuário<br />

trabalhan<strong>do</strong> no host que envia o programa cliente, esse usuário também teria acesso ao<br />

servi<strong>do</strong>r X — o mesmo acesso de alguém que desejasse roubar o endereço IP. Devi<strong>do</strong><br />

a essas faltas, esse méto<strong>do</strong> de autenticação não é descrito mais detalhadamente aqui,<br />

mas você pode obter mais informações sobre ele com o man xhost.<br />

No caso <strong>do</strong> controle de acesso basea<strong>do</strong> em cookie, uma string de caracteres gerada é<br />

conhecida somente pelo servi<strong>do</strong>r X e pelo usuário legítimo, da mesma forma que uma<br />

placa ID de algum tipo. Esse cookie (a palavra é originada não de cookies (biscoitos)<br />

comuns, mas <strong>do</strong>s fortune cookies chineses (biscoitos da sorte chineses) que contêm um<br />

epigrama) é armazena<strong>do</strong> durante o login no arquivo .Xauthority no diretório<br />

principal <strong>do</strong> usuário e fica disponível para qualquer cliente X que deseje usar o servi<strong>do</strong>r<br />

X para exibir uma janela. O arquivo .Xauthority pode ser examina<strong>do</strong> pelo usuário<br />

com a ferramenta xauth. Se você renomeasse o .Xauthority ou se apagasse


acidentalmente o arquivo <strong>do</strong> seu diretório principal, não conseguiria abrir nenhuma<br />

janela ou cliente X novos. Leia mais sobre os mecanismos de segurança <strong>do</strong> sistema X<br />

Win<strong>do</strong>w na página <strong>do</strong> manual <strong>do</strong> Xsecurity (man Xsecurity).<br />

O SSH (secure shell) pode ser usa<strong>do</strong> para criptografar uma conexão de rede<br />

completamente e encaminhá-la para um servi<strong>do</strong>r X de forma transparente, sem que o<br />

mecanismo de criptografia seja percebi<strong>do</strong> pelo usuário. Também é chama<strong>do</strong> de<br />

encaminhamento de X. O encaminhamento de X é feito simulan<strong>do</strong> um servi<strong>do</strong>r X no<br />

la<strong>do</strong> <strong>do</strong> servi<strong>do</strong>r e configuran<strong>do</strong> uma variável DISPLAY para o shell no host remoto.<br />

Informações detalhadas sobre o SSH podem ser encontradas na Seção 4.2, “SSH:<br />

operações seguras de rede” (p 115).<br />

ATENÇÃO<br />

Se você não considera seguro o host onde efetua login, não use o<br />

encaminhamento de X. Com o encaminhamento de X habilita<strong>do</strong>, um invasor<br />

pode se autenticar através da conexão SSH e invadir o servi<strong>do</strong>r X para farejar<br />

sua entrada de tecla<strong>do</strong>, por exemplo.<br />

Bugs de string de formato e overflows de buffer<br />

Conforme discuti<strong>do</strong> na “Bugs de string de formato e overflows de buffer” (p 138), os<br />

bugs de overflows de buffer e de strings de formato devem ser classifica<strong>do</strong>s como<br />

relevantes tanto para a segurança de rede quanto a local. Como as variantes locais desses<br />

bugs, os overflows de buffer em programas de rede, quan<strong>do</strong> são explora<strong>do</strong>s com sucesso,<br />

quase sempre são usa<strong>do</strong>s para obter permissões de root. Mesmo que não seja o caso,<br />

um invasor poderia usar o bug para ter acesso a uma conta local não privilegiada para<br />

explorar quaisquer outras vulnerabilidades que pudessem existir no sistema.<br />

Bugs de overflows de buffer e de strings de formato exploráveis em um link de rede<br />

são, certamente, a forma mais freqüente de ataques remotos em geral. As explorações<br />

desses programas — que exploram furos de segurança recentemente encontra<strong>do</strong>s —<br />

geralmente são enviadas para listas de discussão de segurança. Elas podem ser usadas<br />

para identificar a vulnerabilidade, sem saber os detalhes <strong>do</strong> código. Através <strong>do</strong>s anos,<br />

a experiência mostrou que a disponibilidade de códigos de exploração contribuiu para<br />

a criação de sistemas operacionais mais seguros, obviamente devi<strong>do</strong> ao fato de os<br />

cria<strong>do</strong>res de sistemas operacionais terem si<strong>do</strong> força<strong>do</strong>s a consertar os problemas em<br />

seus s<strong>of</strong>twares. Com s<strong>of</strong>tware livre, qualquer pessoa tem acesso ao código fonte (o<br />

<strong>SUSE</strong> Linux vem com to<strong>do</strong>s os códigos fonte disponíveis) e qualquer um que encontre<br />

Segurança no Linux 141


142 Referência<br />

uma vulnerabilidade e seu código de exploração poderá submeter um patch para consertar<br />

o bug correspondente.<br />

DoS (Denial <strong>of</strong> Service)<br />

A finalidade de um ataque DoS (denial <strong>of</strong> service) é bloquear um programa de servi<strong>do</strong>r<br />

ou mesmo to<strong>do</strong> o sistema, algo que pode ser realiza<strong>do</strong> de várias formas: sobrecarregar<br />

o servi<strong>do</strong>r, manten<strong>do</strong>-o ocupa<strong>do</strong> com pacotes de lixo ou explorar um overflow de buffer<br />

remoto. Geralmente, a única finalidade de um ataque DoS é fazer o serviço desaparecer.<br />

Entretanto, quan<strong>do</strong> um determina<strong>do</strong> serviço não está mais disponível, as comunicações<br />

podem ficar vulneráveis a ataques man-in-the-middle (farejamento, roubo de conexão<br />

de TCP, falsificação) e envenenamento <strong>do</strong> DNS.<br />

Man in the middle: farejamento, roubo, falsificação<br />

Em geral, qualquer ataque remoto executa<strong>do</strong> por um invasor que se coloca entre os<br />

hosts de comunicação é chama<strong>do</strong> de ataque man-in-the-middle. O que a maioria <strong>do</strong>s<br />

tipos de ataques man-in-the-middle tem em comum é que a vítima, geralmente, não<br />

percebe o que está acontecen<strong>do</strong>. Há muitas variantes possíveis, por exemplo, o invasor<br />

pode escolher uma solicitação de conexão e encaminhá-la para a máquina de destino.<br />

Agora, a vítima estabeleceu, involuntariamente, uma conexão com o host erra<strong>do</strong>, porque<br />

a outra extremidade está posan<strong>do</strong> como a máquina de destino legítima.<br />

A forma mais simples de um ataque man-in-the-middle é o farejamento — o invasor<br />

“apenas” escuta a passagem <strong>do</strong> tráfego de rede. Em um ataque mais complexo, o “man<br />

in the middle” pode tentar controlar uma conexão já estabelecida (roubar). Para fazer<br />

isso, o invasor precisa analisar os pacotes durante algum tempo, para ser capaz de prever<br />

os números da seqüência <strong>do</strong> TCP pertencentes à conexão. Quan<strong>do</strong> o invasor finalmente<br />

identifica a função <strong>do</strong> host de destino, as vítimas percebem isso, pois elas recebem uma<br />

mensagem de erro informan<strong>do</strong> que a conexão foi encerrada devi<strong>do</strong> a uma falha. O que<br />

facilita os invasores é o fato de haver protocolos pouco seguros contra roubos através<br />

de criptografia, que apenas executam um procedimento de autenticação simples quan<strong>do</strong><br />

estabelecem a conexão.<br />

Falsificação é um ataque onde os pacotes são modifica<strong>do</strong>s para conter da<strong>do</strong>s de origem<br />

falsificada, normalmente, o endereço IP. A maioria <strong>do</strong>s ataques ativos consiste em<br />

enviar esses pacotes falsos — algo que, em uma máquina Linux, só pode ser feito pelo<br />

superusuário (root).


Muitos <strong>do</strong>s ataques menciona<strong>do</strong>s são executa<strong>do</strong>s junto com um DoS. Se um invasor<br />

vir uma oportunidade de desativar abruptamente um host, mesmo que por um curto<br />

perío<strong>do</strong>, será mais fácil para ele usar o ataque ativo, pois o host não será capaz de<br />

interferir contra o ataque por algum tempo.<br />

Envenenamento de DNS<br />

O envenenamento de DNS significa que o invasor corrompe o cache de um servi<strong>do</strong>r<br />

DNS responden<strong>do</strong> a ele com pacotes de respostas de DNS falsifica<strong>do</strong>s, para tentar fazer<br />

com que o servi<strong>do</strong>r envie certos da<strong>do</strong>s a uma vítima que esteja solicitan<strong>do</strong> informações<br />

a esse servi<strong>do</strong>r. Muitos servi<strong>do</strong>res mantêm uma relação de confiança com outros hosts,<br />

baseada nos endereços IP ou nos nomes de host. O invasor precisa ter um bom<br />

conhecimento da estrutura real das relações de confiança entre os hosts, para ser<br />

distingui<strong>do</strong> como um <strong>do</strong>s hosts confiáveis. Normalmente, o invasor analisa alguns<br />

pacotes recebi<strong>do</strong>s <strong>do</strong> servi<strong>do</strong>r para obter as informações necessárias. O invasor<br />

geralmente também precisa planejar um ataque DoS bem programa<strong>do</strong> ao servi<strong>do</strong>r de<br />

nomes. Proteja-se, usan<strong>do</strong> conexões criptografadas que possam verificar a identidade<br />

<strong>do</strong>s hosts aos quais deve se conectar.<br />

Worms<br />

Worms geralmente são confundidas com vírus, mas há uma clara diferença entre os<br />

<strong>do</strong>is. Diferente <strong>do</strong>s vírus, worms não precisam infectar um programa de host para<br />

viverem. Em vez disso, suas especialidades são se espalharem o mais rápi<strong>do</strong> possível<br />

por estruturas de rede. Os worms que apareciam antigamente, como Ramen, Lion ou<br />

A<strong>do</strong>re, faziam uso de falhas conhecidas na segurança <strong>do</strong>s programas de servi<strong>do</strong>r, como<br />

bind8 ou lprNG. A proteção contra worms é relativamente fácil. Consideran<strong>do</strong> que um<br />

certo tempo decorre entre a descoberta de uma falha na segurança e o momento em que<br />

o worm entra no servi<strong>do</strong>r, há uma boa chance de uma versão atualizada <strong>do</strong> programa<br />

afeta<strong>do</strong> estar disponível a tempo. Isso só tem utilidade se o administra<strong>do</strong>r realmente<br />

instalar as atualizações de segurança nos sistemas em questão.<br />

4.5.2 Algumas dicas e truques gerais de<br />

segurança<br />

Para usar a segurança de forma competente, é importante estar atualiza<strong>do</strong> com os novos<br />

produtos desenvolvi<strong>do</strong>s e manter-se informa<strong>do</strong> sobre as questões de segurança mais<br />

Segurança no Linux 143


144 Referência<br />

recentes. Uma boa forma de proteger o sistema contra problemas de to<strong>do</strong>s os tipos é<br />

obter e instalar os pacotes atualiza<strong>do</strong>s recomenda<strong>do</strong>s pelos anúncios de segurança o<br />

mais rápi<strong>do</strong> possível. Os anúncios de segurança <strong>do</strong> <strong>SUSE</strong> são publica<strong>do</strong>s em uma lista<br />

de discussão na qual você pode se inscrever através <strong>do</strong> link http://www.novell<br />

.com/linux/security/securitysupport.html. A lista<br />

suse-security-announce@suse.de é a fonte principal de informações referente<br />

a pacotes atualiza<strong>do</strong>s e inclui membros da equipe de segurança <strong>do</strong> <strong>SUSE</strong> entre seus<br />

contribuintes ativos.<br />

A lista de discussão suse-security@suse.de é um bom local para discutir<br />

quaisquer problemas de segurança de seu interesse. Inscreva-se nela na mesma página<br />

da Web.<br />

bugtraq@securityfocus.com é uma das listas de discussão sobre segurança<br />

mais conhecidas no mun<strong>do</strong>. A leitura dessa lista, que recebe entre 15 a 20 publicações<br />

por dia, é recomendada. Mais informações podem ser encontradas em http://www<br />

.securityfocus.com.<br />

A seguir, uma lista de regras que podem ser úteis para lidar com questões de segurança<br />

básica:<br />

• De acor<strong>do</strong> com a regra de uso <strong>do</strong> conjunto de permissões mais restritivo para cada<br />

trabalho, evite fazer seus trabalho regulares no root. Isso reduzirá o risco de obter<br />

um cuckoo egg (ovo <strong>do</strong> cuco) ou um vírus e protegerá seu computa<strong>do</strong>r <strong>do</strong>s seus<br />

próprios erros.<br />

• Se possível, tente sempre usar conexões criptografadas para trabalhar em uma<br />

máquina remota. O uso de ssh (shell seguro) para substituir telnet, ftp, rsh<br />

e rlogin deve ser uma prática padrão.<br />

• Evite usar méto<strong>do</strong>s de autenticação basea<strong>do</strong>s em endereços IP isola<strong>do</strong>s.<br />

• Tente manter os pacotes relaciona<strong>do</strong>s à rede mais importantes atualiza<strong>do</strong>s e inscrevase<br />

nas listas de discussão correspondentes, para receber anúncios sobre novas<br />

versões desses programas (bind, sendmail, ssh, etc.). O mesmo deve se aplicar aos<br />

s<strong>of</strong>twares relevantes à segurança local.<br />

• Mude o arquivo /etc/permissions, para otimizar as permissões <strong>do</strong>s arquivos<br />

cruciais para a segurança <strong>do</strong> seu sistema. Se você remover o setuid bit de um<br />

programa, haverá grandes chances de ele não ser mais capaz de executar suas<br />

respectivas funções da forma devida. Por outro la<strong>do</strong>, considere que, na maioria <strong>do</strong>s


casos, o programa não será mais um risco potencial à segurança. Você pode usar<br />

um méto<strong>do</strong> semelhante, com arquivos e diretórios internacionalmente graváveis.<br />

• Desabilite quaisquer serviços de rede que não sejam absolutamente necessários<br />

para o servi<strong>do</strong>r funcionar adequadamente. Isso torna o sistema mais seguro. Portas<br />

abertas, com o esta<strong>do</strong> <strong>do</strong> socket LISTEN, podem ser encontradas no programa<br />

netstat. Quanto às opções, é recomendável usar netstat -ap ou netstat -anp.<br />

A opção -p permite que você veja que processo está ocupan<strong>do</strong> uma porta com qual<br />

nome.<br />

Compare os resulta<strong>do</strong>s <strong>do</strong> netstat com os de uma exploração de porta mais completa<br />

feita fora <strong>do</strong> host. Um programa excelente para esse trabalho é o nmap, que não só<br />

verifica as portas da máquina, como também conclui quais serviços estão aguardan<strong>do</strong><br />

atrás delas. Entretanto, a exploração da porta pode ser interpretada como um ato<br />

agressivo, portanto, não a faça em um host sem a aprovação explícita <strong>do</strong><br />

administra<strong>do</strong>r. Por fim, lembre-se de que é importante não só explorar as portas<br />

TCP, mas também as portas UDP (opções -sS e -sU).<br />

• Para monitorar a integridade <strong>do</strong>s arquivos <strong>do</strong> seu sistema de forma confiável, use<br />

o programa AIDE (Advanced Intrusion Detection Environment), disponível no<br />

<strong>SUSE</strong> Linux. Criptografe o banco de da<strong>do</strong>s cria<strong>do</strong> pelo AIDE, para evitar que<br />

alguém o falsifique. Além disso, mantenha um backup desse banco de da<strong>do</strong>s<br />

disponível fora da máquina, armazena<strong>do</strong> em um meio de da<strong>do</strong>s externo não<br />

conecta<strong>do</strong> à rede.<br />

• Instale cuida<strong>do</strong>samente qualquer s<strong>of</strong>tware de terceiros. Houve casos de um hacker<br />

ter cria<strong>do</strong> um Cavalo de Tróia no arquivo tar de um pacote de s<strong>of</strong>twares de<br />

segurança, mas, felizmente, o ataque foi descoberto rapidamente. Se você instalar<br />

um pacote binário, não tenha dúvidas quanto ao site de onde foi feito o seu<br />

<strong>do</strong>wnload.<br />

Os pacotes RPM <strong>do</strong> <strong>SUSE</strong> são gpg-signed (assina<strong>do</strong>s pelo gpg). A chave usada<br />

pelo <strong>SUSE</strong> para a assinatura é:<br />

Chave de assinatura de pacote <strong>do</strong> <strong>SUSE</strong>: ID:9C800ACA 2000-10-19<br />

<br />

Impressão digital da chave = 79C1 79B2 E1C8 20C1 890F 9994 A84E DAE8 9C80<br />

0ACA<br />

Segurança no Linux 145


146 Referência<br />

O coman<strong>do</strong> rpm --checksig package.rpm mostra se o checksum e a<br />

assinatura de um pacote desinstala<strong>do</strong> estão corretos. Encontre a chave no primeiro<br />

CD de distribuição e na maioria <strong>do</strong>s servi<strong>do</strong>res de chaves em to<strong>do</strong> o mun<strong>do</strong>.<br />

• Verifique os backups de arquivos <strong>do</strong> sistema e usuário regularmente. Considere<br />

que, se você não testar os backups para ver se funcionam, eles serão, na verdade,<br />

inúteis.<br />

• Verifique seus arquivos de registro. Sempre que possível, grave um pequeno script<br />

para pesquisar entradas suspeitas. Com certeza, essa não é exatamente uma tarefa<br />

trivial. No final, somente você saberá quais entradas não são comuns e quais são.<br />

• Use o tcp_wrapper para restringir o acesso a serviços individuais executa<strong>do</strong>s<br />

na sua máquina, para que você tenha controle total sobre quais endereços IP podem<br />

se conectar a um serviço. Para obter informações adicionais referentes ao<br />

tcp_wrapper, consulte as páginas <strong>do</strong> manual <strong>do</strong> tcpd e <strong>do</strong> hosts_access (man 8<br />

tcpd, man hosts_access).<br />

• Use o SuSEfirewall para aprimorar a segurança fornecida pelo tcpd (tcp_wrapper).<br />

• Defina suas medidas de segurança para serem redundantes: uma mensagem vista<br />

duas vezes é melhor <strong>do</strong> que não ver mensagem alguma.<br />

4.5.3 Usan<strong>do</strong> o Central Security Reporting<br />

Address (Endereço de Relatórios de<br />

Segurança Central)<br />

Se encontrar um problema relaciona<strong>do</strong> à segurança (verifique, primeiro, os pacotes de<br />

atualização disponíveis), escreva um e-mail para security@suse.de. Inclua uma<br />

descrição detalhada <strong>do</strong> problema e o número de versão <strong>do</strong> pacote em questão. O <strong>SUSE</strong><br />

tentará enviar uma resposta o mais rápi<strong>do</strong> possível. Você é incentiva<strong>do</strong> a criptografar<br />

por pgp suas mensagens de e-mail. A chave pgp <strong>do</strong> <strong>SUSE</strong> é:<br />

ID:3D25D3D9 1999-03-06 <strong>SUSE</strong> Security Team <br />

Impressão digital da chave = 73 5F 2E 99 DF DB 94 C4 8F 5A A3 AE AF 22 F2 D5<br />

Essa chave também está disponível para <strong>do</strong>wnload em http://www.novell.com/<br />

linux/security/securitysupport.html.


Listas de controle de acesso no<br />

Linux<br />

As ACLs (listas de controle de acesso) POSIX podem ser usadas como expansão <strong>do</strong><br />

conceito tradicional de permissão para objetos <strong>do</strong> sistema de arquivos. Com as ACLs,<br />

as permissões podem ser definidas com mais flexibilidade <strong>do</strong> que permite o conceito<br />

de permissão tradicional.<br />

O termo ACL POSIX sugere que este é um verdadeiro padrão POSIX (portable operating<br />

system interface). Os respectivos padrões de rascunho POSIX 1003.1e e POSIX 1003.2c<br />

foram removi<strong>do</strong>s por vários motivos. Contu<strong>do</strong>, as ACLs, como encontradas em vários<br />

sistemas pertencentes à família UNIX, são baseadas nesses rascunhos, e a implementação<br />

das ACLs <strong>do</strong> sistema de arquivos, como descrita neste capítulo, também segue esses<br />

padrões. Elas podem ser vistas em http://wt.xpilot.org/publications/<br />

posix.1e/.<br />

5.1 Permissões de arquivo tradicionais<br />

Os fundamentos básicos das permissões de arquivo tradicionais <strong>do</strong> Linux são explicadas<br />

na Seção “Usuários e permissões de acesso” (Capítulo 3, Trabalhan<strong>do</strong> com o Shell,<br />

↑Inicialização). Mais recursos avança<strong>do</strong>s são setuid, setgid e sticky bit.<br />

5.1.1 setuid Bit<br />

Em determinadas situações, as permissões de acesso podem ser muito restritivas. No<br />

entanto, o Linux possui configurações adicionais para permitir a mudança temporária<br />

<strong>do</strong> usuário atual e da identidade <strong>do</strong> grupo para uma ação específica. Por exemplo, o<br />

5<br />

Listas de controle de acesso no Linux 147


148 Referência<br />

programa passwd normalmente requer permissões de root para acessar /etc/passwd.<br />

Este arquivo contém algumas informações importantes, como os diretórios pessoais de<br />

usuários e IDs de usuário e grupo. Sen<strong>do</strong> assim, um usuário normal não poderia mudar<br />

passwd, já que seria muito arrisca<strong>do</strong> conceder a to<strong>do</strong>s os usuários acesso direto a este<br />

arquivo. Uma possível solução para esse problema é o mecanismo setuid. O setuid<br />

(definir ID <strong>do</strong> usuário) é um atributo de arquivo especial que instrui o sistema a executar<br />

programas marca<strong>do</strong>s adequadamente com um ID de usuário específico. Considere o<br />

coman<strong>do</strong> passwd:<br />

-rwsr-xr-x 1 root sha<strong>do</strong>w 80036 2004-10-02 11:08 /usr/bin/passwd<br />

Você pode ver o s que denota que setuid bit está defini<strong>do</strong> para a permissão <strong>do</strong> usuário.<br />

Por meio <strong>do</strong> setuid bit, to<strong>do</strong>s os usuários inician<strong>do</strong> o coman<strong>do</strong> passwd o executam<br />

como root.<br />

5.1.2 setgid Bit<br />

O setuid bit se aplica a usuários. Entretanto, existe também uma propriedade equivalente<br />

para grupos: o setgid bit. Um programa para o qual esse bit foi defini<strong>do</strong> é executa<strong>do</strong><br />

com o ID <strong>do</strong> grupo no qual ele foi grava<strong>do</strong>, independentemente <strong>do</strong> usuário que iniciou<br />

o programa. No entanto, em um diretório com o setgid bit, to<strong>do</strong>s os arquivos e diretórios<br />

cria<strong>do</strong>s recentemente são atribuí<strong>do</strong>s ao grupo ao qual o diretório pertence. Considere<br />

o seguinte diretório de exemplo:<br />

drwxrws--- 2 tux archive 48 Nov 19 17:12 backup<br />

Você pode ver o s que denota que o setuid bit está defini<strong>do</strong> para a permissão <strong>do</strong> usuário.<br />

O proprietário <strong>do</strong> diretório e membros <strong>do</strong> grupo archive poderão acessar este diretório.<br />

Os usuários que não são membros deste grupo são “mapea<strong>do</strong>s” para o grupo respectivo.<br />

O ID de grupo efetivo de to<strong>do</strong>s os arquivos grava<strong>do</strong>s será archive. Por exemplo, um<br />

programa de backup que é executa<strong>do</strong> com o ID de grupo archive é capaz de acessar<br />

este diretório mesmo sem privilégios de root.<br />

5.1.3 Sticky Bit<br />

Também existe o sticky bit. Existe uma diferença caso ele pertença a um programa<br />

executável ou a um diretório. Se ele pertencer a um programa, qualquer arquivo marca<strong>do</strong><br />

dessa forma será carrega<strong>do</strong> na memória RAM a fim de evitar a necessidade de obtê-lo<br />

no disco rígi<strong>do</strong> toda vez que for usa<strong>do</strong>. Esse atributo é usa<strong>do</strong> raramente, pois os discos


ígi<strong>do</strong>s modernos são muito rápi<strong>do</strong>s. Se este bit estiver designa<strong>do</strong> a um diretório, ele<br />

impedirá que usuários apaguem arquivos de outros usuários. Exemplos típicos incluem<br />

os diretórios /tmp e /var/tmp:<br />

drwxrwxrwt 2 root root 1160 2002-11-19 17:15 /tmp<br />

5.2 Vantagens das ACLs<br />

Tradicionalmente, três conjuntos de permissões são defini<strong>do</strong>s para cada objeto de<br />

arquivo em um sistema Linux. Esses conjuntos incluem as permissões de leitura (r),<br />

gravação (w) e execução (x) para cada um <strong>do</strong>s três tipos de usuários: o proprietário <strong>do</strong><br />

arquivo, o grupo e os outros usuários. Além disso, é possível definir o set user id, o set<br />

group id e o sticky bit. Este conceito simples é completamente adequa<strong>do</strong> para a maioria<br />

<strong>do</strong>s casos práticos. Porém, para os cenários mais complexos ou aplicativos avança<strong>do</strong>s,<br />

os administra<strong>do</strong>res de sistema tiveram que usar anteriormente várias estratégias para<br />

se esquivar das limitações <strong>do</strong> conceito tradicional de permissão.<br />

As ACLs podem ser usadas como extensão <strong>do</strong> conceito tradicional de permissão para<br />

arquivos. Elas admitem a atribuição de permissões a usuários individuais ou a grupos,<br />

mesmo que eles não correspondam ao proprietário original ou ao grupo proprietário.<br />

As listas de controle de acesso são um recurso <strong>do</strong> kernel <strong>do</strong> Linux e são atualmente<br />

suportadas por ReiserFS, Ext2, Ext3, JFS e XFS. Com as ACLs, cenários complexos<br />

podem ser realiza<strong>do</strong>s sem a implementação de modelos de permissão complexos no<br />

nível <strong>do</strong> aplicativo.<br />

As vantagens das ACLs ficam evidentes quan<strong>do</strong> você substitui um servi<strong>do</strong>r Win<strong>do</strong>ws<br />

por um servi<strong>do</strong>r Linux. Algumas das estações de trabalho conectadas podem continuar<br />

em execução no Win<strong>do</strong>ws, mesmo após a migração. O sistema Linux <strong>of</strong>erece serviços<br />

de arquivo e impressão para os clientes Win<strong>do</strong>ws com Samba. Com o suporte <strong>do</strong> Samba<br />

às listas de controle de acesso, as permissões de usuário podem ser configuradas em<br />

servi<strong>do</strong>res Linux e Win<strong>do</strong>ws com uma interface gráfica <strong>do</strong> usuário (somente Win<strong>do</strong>ws<br />

NT e posterior). Com o winbindd, parte da suíte <strong>do</strong> samba, é possível até mesmo<br />

atribuir permissões a usuários que existem somente no <strong>do</strong>mínio <strong>do</strong> Win<strong>do</strong>ws sem<br />

nenhuma conta no servi<strong>do</strong>r Linux.<br />

Listas de controle de acesso no Linux 149


150 Referência<br />

5.3 Definições<br />

classe de usuário<br />

O conceito convencional de permissão POSIX utiliza três classes de usuários para<br />

atribuir permissões no sistema de arquivos: o proprietário, o grupo proprietário e<br />

os outros usuários. Três bits de permissões podem ser defini<strong>do</strong>s para cada classe<br />

de usuário, conceden<strong>do</strong> permissão de leitura (r), gravação (w) e execução (x).<br />

ACL de acesso<br />

As permissões de acesso de usuário e grupo para to<strong>do</strong>s os tipos de objetos Sistema<br />

de arquivos (arquivos e diretórios) são determinadas através das ACLs de acesso.<br />

ACL padrão<br />

As ACLs padrão podem ser aplicadas somente a diretórios. Elas determinam as<br />

permissões que um objeto Sistema de arquivos herda de seu diretório pai quan<strong>do</strong><br />

é cria<strong>do</strong>.<br />

entrada de ACL<br />

Cada ACL consiste em um conjunto de entradas de ACL. Uma entrada de ACL<br />

contém um tipo, um qualifica<strong>do</strong>r para o usuário ou grupo ao qual a entrada se refere<br />

e um conjunto de permissões. Para alguns tipos de entrada, o qualifica<strong>do</strong>r para o<br />

grupo ou usuários é indefini<strong>do</strong>.<br />

5.4 Gerencian<strong>do</strong> ACLs<br />

A Tabela 5.1, “Tipos de entrada de ACL” (p 151) resume os seis tipos possíveis de<br />

entradas de ACL, cada um definin<strong>do</strong> permissões para um usuário ou um grupo de<br />

usuários. A entrada proprietário define as permissões <strong>do</strong> usuário proprietário <strong>do</strong> arquivo<br />

ou diretório. A entrada grupo proprietário define as permissões <strong>do</strong> grupo proprietário<br />

<strong>do</strong> arquivo. O superusuário pode mudar o proprietário ou o grupo proprietário com<br />

chown ou chgrp. Neste caso, as entradas de proprietário e grupo proprietário referemse<br />

ao novo usuário e grupo proprietário. Cada entrada usuário nomea<strong>do</strong> define as<br />

permissões <strong>do</strong> usuário especifica<strong>do</strong> no campo qualifica<strong>do</strong>r da entrada. Cada entrada<br />

grupo nomea<strong>do</strong> define as permissões <strong>do</strong> grupo especifica<strong>do</strong> no campo qualifica<strong>do</strong>r da<br />

entrada. Somente as entradas usuário nomea<strong>do</strong> e grupo nomea<strong>do</strong> possuem um campo<br />

qualifica<strong>do</strong>r que não está vazio. A entrada outros define as permissões de to<strong>do</strong>s os<br />

outros usuários.


A entrada máscara limita ainda mais as permissões concedidas pelas entradas usuário<br />

nomea<strong>do</strong>, grupo nomea<strong>do</strong> e grupo proprietário, pois define quais das permissões nessas<br />

entradas são efetivas e quais estão mascaradas. Se existirem permissões em uma das<br />

entradas mencionadas, assim como na máscara, elas serão efetivas. As permissões<br />

contidas somente na máscara ou somente na entrada real não são efetivas, significan<strong>do</strong><br />

que as permissões não são concedidas. Todas as permissões definidas nas entradas<br />

proprietário e grupo proprietário são sempre efetivas. O exemplo na Tabela 5.2,<br />

“Mascaran<strong>do</strong> permissões de acesso” (p 151) demonstra este mecanismo.<br />

Existem duas classes básicas de ACLs. Uma ACL mínima contém somente as entradas<br />

<strong>do</strong>s tipos proprietário, grupo proprietário e outros, que correspondem aos bits de<br />

permissão convencionais para arquivos e diretórios. Uma ACL estendida vai além disso.<br />

Ela deve conter uma entrada máscara e pode conter várias entradas <strong>do</strong>s tipos usuário<br />

nomea<strong>do</strong> e grupo nomea<strong>do</strong>.<br />

Tabela 5.1 Tipos de entrada de ACL<br />

Tipo<br />

proprietário<br />

usuário nomea<strong>do</strong><br />

grupo proprietário<br />

grupo nomea<strong>do</strong><br />

máscara<br />

outros<br />

Formato <strong>do</strong> texto<br />

user::rwx<br />

user:name:rwx<br />

group::rwx<br />

group:name:rwx<br />

mask::rwx<br />

other::rwx<br />

Tabela 5.2 Mascaran<strong>do</strong> permissões de acesso<br />

Tipo de entrada<br />

usuário nomea<strong>do</strong><br />

máscara<br />

Formato <strong>do</strong> texto<br />

user:geeko:r-x<br />

mask::rw<br />

Permissões<br />

r-x<br />

rw-<br />

Listas de controle de acesso no Linux 151


152 Referência<br />

Tipo de entrada<br />

Formato <strong>do</strong> texto<br />

permissões efetivas:<br />

Permissões<br />

r--<br />

5.4.1 Entradas de ACL e bits de permissão<br />

<strong>do</strong> mo<strong>do</strong> <strong>do</strong> arquivo<br />

A Figura 5.1, “ACL mínima: entradas de ACL comparadas a bits de permissão” (p 152)<br />

e a Figura 5.2, “ACL estendida: entradas de ACL comparadas a bits de permissão”<br />

(p 153) ilustram os <strong>do</strong>is casos de uma ACL mínima e de uma ACL estendida. As figuras<br />

são estruturadas em três blocos: o bloco esquer<strong>do</strong> mostra as especificações de tipo das<br />

entradas de ACL, o bloco central mostra um exemplo de ACL e o bloco direito mostra<br />

os respectivos bits de permissão, de acor<strong>do</strong> com o conceito convencional de permissão;<br />

por exemplo, como mostra<strong>do</strong> pelo coman<strong>do</strong> ls -l. Em ambos os casos, as permissões<br />

classe proprietária são mapeadas para a entrada de ACL proprietário. As permissões<br />

outra classe são mapeadas para a respectiva entrada de ACL. Porém, o mapeamento<br />

das permissões classe de grupo é diferente nos <strong>do</strong>is casos.<br />

Figura 5.1 ACL mínima: entradas de ACL comparadas a bits de permissão<br />

No caso de uma ACL mínima (sem máscara), as permissões classe de grupo são<br />

mapeadas para a entrada de ACL grupo proprietário. Você pode ver isso na Figura 5.1,<br />

“ACL mínima: entradas de ACL comparadas a bits de permissão” (p 152). No caso de<br />

uma ACL estendida (com máscara), as permissões classe de grupo são mapeadas para<br />

a entrada máscara. Você pode ver isso na Figura 5.2, “ACL estendida: entradas de ACL<br />

comparadas a bits de permissão” (p 153).


Figura 5.2 ACL estendida: entradas de ACL comparadas a bits de permissão<br />

Este méto<strong>do</strong> de mapeamento assegura uma interação uniforme de aplicativos, tenham<br />

eles suporte a ACL ou não. As permissões de acesso que foram atribuídas através de<br />

bits de permissão representam o limite superior para to<strong>do</strong>s os outros “ajustes finos”<br />

feitos com uma ACL. As mudanças feitas nos bits de permissão são refletidas pela ACL<br />

e vice-versa.<br />

5.4.2 Diretório com uma ACL de acesso<br />

Com getfacl e setfacl na linha de coman<strong>do</strong>, você pode acessar ACLs. O uso<br />

desses coman<strong>do</strong>s é demonstra<strong>do</strong> no exemplo a seguir.<br />

Antes de criar o diretório, use o coman<strong>do</strong> umask para definir quais permissões de<br />

acesso devem ser mascaradas toda vez que um objeto de arquivo for cria<strong>do</strong>. O coman<strong>do</strong><br />

umask 027 define as permissões ao conceder ao proprietário todas as permissões (0),<br />

ao negar o acesso de gravação de grupo (2) e ao não conceder nenhuma permissão aos<br />

outros usuários (7). O coman<strong>do</strong> umask, na verdade, mascara os bits de permissão<br />

correspondentes ou os desativa. Para obter detalhes, consulte a página de manual<br />

correspondente a umask.<br />

O coman<strong>do</strong> mkdir meudir cria o diretório meudir com as permissões padrão,<br />

como defini<strong>do</strong> por umask. Use ls -dl meudir para verificar se todas as permissões<br />

foram atribuídas corretamente. A saída para este exemplo é:<br />

drwxr-x--- ... tux project3 ... meudir<br />

Com o coman<strong>do</strong> getfacl meudir, verifique o esta<strong>do</strong> inicial da ACL. Ele fornece<br />

informações como:<br />

# file: meudir<br />

# owner: tux<br />

# group: project3<br />

Listas de controle de acesso no Linux 153


154 Referência<br />

user::rwx group::r-x<br />

other::---<br />

As primeiras três linhas de saída mostram o nome, o proprietário e o grupo proprietário<br />

<strong>do</strong> diretório. As próximas três linhas contêm as três entradas de ACL proprietário, grupo<br />

proprietário e outros. Na verdade, no caso desta ACL mínima, o coman<strong>do</strong> getfacl<br />

não produz nenhuma informação que você não pudesse obter com o coman<strong>do</strong> ls.<br />

Modifique a ACL para atribuir permissões de leitura, gravação e execução para um<br />

usuário geeko adicional e um grupo mascotes com:<br />

setfacl -m user:geeko:rwx,group:mascotes:rwx meudir<br />

A opção -m solicita que setfacl modifique a ACL existente. O argumento a seguir<br />

indica as entradas de ACL a serem modificadas (várias entradas são separadas por<br />

vírgulas). A parte final especifica o nome <strong>do</strong> diretório no qual essas modificações devem<br />

ser aplicadas. Use o coman<strong>do</strong> getfacl para dar uma olhada na ACL resultante.<br />

# file: meudir<br />

# owner: tux<br />

# group: project3<br />

user::rwx<br />

user:geeko:rwx<br />

group::r-x<br />

group:mascotes:rwx<br />

mask::rwx<br />

other::---<br />

Além das entradas iniciadas para o usuário geeko e o grupo mascotes, uma entrada<br />

máscara foi gerada. A entrada máscara é definida automaticamente para que todas as<br />

permissões sejam efetivas. O coman<strong>do</strong> setfacl adapta automaticamente as entradas<br />

máscara existentes às configurações modificadas, a não ser que você desative este<br />

recurso com -n. máscara define as permissões máximas de acesso efetivas para todas<br />

as entradas na classe de grupo. Isso inclui usuário nomea<strong>do</strong>, grupo nomea<strong>do</strong> e grupo<br />

proprietário. Os bits de permissão de classe de grupo exibi<strong>do</strong>s pelo coman<strong>do</strong> ls -dl<br />

meudir agora correspondem à entrada máscara.<br />

drwxrwx---+ ... tux project3 ... meudir<br />

A primeira coluna da saída agora contém um sinal de + extra para indicar que existe<br />

uma ACL estendida para esse item.<br />

De acor<strong>do</strong> com a saída <strong>do</strong> coman<strong>do</strong> ls, as permissões para a entrada máscara incluem<br />

acesso de gravação. Tradicionalmente, esses bits de permissão significariam que o<br />

grupo proprietário (aqui, project3) também teria acesso de gravação no diretório


meudir. Porém, as permissões de acesso efetivas para o grupo proprietário<br />

correspondem à parte sobreposta das permissões definidas para o grupo proprietário e<br />

para a máscara, que é r-x em nosso exemplo (consulte a Tabela 5.2, “Mascaran<strong>do</strong><br />

permissões de acesso” (p 151)). Em relação às permissões efetivas <strong>do</strong> grupo proprietário<br />

<strong>do</strong> exemplo, nada mu<strong>do</strong>u mesmo após a adição das entradas de ACL.<br />

Edite a entrada máscara com setfacl ou chmod. Por exemplo, use chmod g-w<br />

meudir. O coman<strong>do</strong> ls -dl meudir mostrará:<br />

drwxr-x---+ ... tux project3 ... meudir<br />

getfacl meudir fornece a seguinte saída:<br />

# file: meudir<br />

# owner: tux<br />

# group: project3<br />

user::rwx user:geeko:rwx # effective: r-x<br />

group::r-x<br />

group:mascotes:rwx # effective: r-x<br />

mask::r-x<br />

other::---<br />

Após executar o coman<strong>do</strong> chmod para remover a permissão de gravação <strong>do</strong>s bits classe<br />

de grupo, a saída <strong>do</strong> coman<strong>do</strong> ls será suficiente para indicar que os bits máscara devem<br />

ter muda<strong>do</strong> de acor<strong>do</strong>: a permissão de gravação é novamente limitada ao proprietário<br />

de meudir. A saída de getfacl confirma isso. Esta saída inclui um comentário para<br />

todas as entradas nas quais os bits de permissão efetiva não correspondem às permissões<br />

originais, porque eles são filtra<strong>do</strong>s de acor<strong>do</strong> com a entrada máscara. As permissões<br />

originais podem ser restauradas a qualquer momento com chmod g+w meudir.<br />

5.4.3 Diretório com uma ACL padrão<br />

Os diretórios podem ter uma ACL padrão, que é um tipo especial de ACL que define<br />

permissões de acesso herdadas pelos objetos no diretório quan<strong>do</strong> são cria<strong>do</strong>s. Uma<br />

ACL padrão afeta subdiretórios e arquivos.<br />

Efeitos em uma ACL padrão<br />

Existem <strong>do</strong>is mo<strong>do</strong>s de passar as permissões de uma ACL padrão <strong>do</strong> diretório para os<br />

seus arquivos e subdiretórios:<br />

Listas de controle de acesso no Linux 155


156 Referência<br />

• Um subdiretório herda a ACL padrão <strong>do</strong> diretório pai como sua ACL padrão e<br />

como uma ACL de acesso.<br />

• Um arquivo herda a ACL padrão como a sua ACL de acesso.<br />

Todas as chamadas de sistema que criam objetos Sistema de arquivos utilizam um<br />

parâmetro mode que define as permissões de acesso para o objeto Sistema de arquivos<br />

recém-cria<strong>do</strong>. Se o diretório pai não tiver uma ACL padrão, os bits de permissão, como<br />

defini<strong>do</strong>s por umask, serão subtraí<strong>do</strong>s das permissões quan<strong>do</strong> passa<strong>do</strong>s pelo parâmetro<br />

mode, e o resulta<strong>do</strong> será atribuí<strong>do</strong> ao novo objeto. Se existir uma ACL padrão para o<br />

diretório pai, os bits de permissão atribuí<strong>do</strong>s ao novo objeto corresponderão à parte<br />

sobreposta das permissões <strong>do</strong> parâmetro mode e daqueles defini<strong>do</strong>s na ACL padrão.<br />

O coman<strong>do</strong> umask é desconsidera<strong>do</strong> neste caso.<br />

Aplicação das ACLs padrão<br />

Os três exemplos a seguir mostram as operações principais de diretórios e ACLs padrão:<br />

1. Adicione uma ACL padrão ao diretório meudir existente com:<br />

setfacl -d -m group:mascotes:r-x meudir<br />

A opção -d <strong>do</strong> coman<strong>do</strong> setfacl solicita que setfacl realize as seguintes<br />

modificações (opção -m) na ACL padrão.<br />

Preste bem atenção no resulta<strong>do</strong> deste coman<strong>do</strong>:<br />

getfacl meudir<br />

# file: meudir<br />

# owner: tux<br />

# group: project3<br />

user::rwx<br />

user:geeko:rwx<br />

group::r-x<br />

group:mascotes:rwx<br />

mask::rwx<br />

other::---<br />

default:user::rwx<br />

default:group::r-x<br />

default:group:mascotes:r-x<br />

default:mask::r-x<br />

default:other::---


getfacl retorna a ACL de acesso e a ACL padrão. A ACL padrão é formada<br />

por todas as linhas que começam com default. Embora você tenha<br />

simplesmente executa<strong>do</strong> o coman<strong>do</strong> setfacl com uma entrada para o grupo<br />

mascotes na ACL padrão, setfacl copiou automaticamente todas as outras<br />

entradas da ACL de acesso para criar uma ACL padrão válida. As ACLs padrão<br />

não têm efeito imediato nas permissões de acesso. Elas apenas surgem quan<strong>do</strong><br />

os objetos Sistema de arquivos são cria<strong>do</strong>s. Esses novos objetos herdam<br />

permissões somente da ACL padrão de seu diretório pai.<br />

2. No próximo exemplo, use mkdir para criar um subdiretório em meudir, que<br />

herda a ACL padrão.<br />

mkdir meudir/meusubdir<br />

getfacl meudir/meusubdir<br />

# file: meudir/meusubdir<br />

# owner: tux<br />

# group: project3<br />

user::rwx<br />

group::r-x<br />

group:mascotes:r-x<br />

mask::r-x<br />

other::---<br />

default:user::rwx<br />

default:group::r-x<br />

default:group:mascotes:r-x<br />

default:mask::r-x<br />

default:other::---<br />

Como espera<strong>do</strong>, o subdiretório meusubdir recém-cria<strong>do</strong> tem permissões da<br />

ACL padrão <strong>do</strong> diretório pai. A ACL de acesso de meusubdir é um reflexo<br />

exato da ACL padrão de meudir. A ACL padrão que este diretório transmitirá<br />

para os seus objetos subordina<strong>do</strong>s também é a mesma.<br />

3. Use o coman<strong>do</strong> touch para criar um arquivo no diretório meudir, por exemplo,<br />

touch meudir/meuarq. O coman<strong>do</strong> ls -l meudir/meuarq mostrará:<br />

-rw-r-----+ ... tux project3 ... meudir/meuarq<br />

O resulta<strong>do</strong> de getfacl meudir/meuarq será:<br />

# file: meudir/meuarq<br />

# owner: tux<br />

# group: project3<br />

user::rw-<br />

group::r-x # effective:r--<br />

group:mascotes:r-x # effective:r--<br />

Listas de controle de acesso no Linux 157


158 Referência<br />

mask::r--<br />

other::---<br />

touch usa um mode com o valor 0666 quan<strong>do</strong> cria novos arquivos, o que<br />

significa que os arquivos são cria<strong>do</strong>s com permissões de leitura e gravação para<br />

todas as classes de usuários, desde que não existam outras restrições em umask<br />

ou na ACL padrão (consulte “Efeitos em uma ACL padrão” (p 155)). Na verdade,<br />

isto significa que todas as permissões de acesso não contidas no valor mode são<br />

removidas de suas respectivas entradas de ACL. Embora nenhuma permissão<br />

tenha si<strong>do</strong> removida da entrada de ACL da classe de grupo, a entrada máscara<br />

foi modificada para mascarar permissões não definidas em mode.<br />

Este méto<strong>do</strong> assegura uma interação uniforme de aplicativos, como compila<strong>do</strong>res,<br />

com as ACLs. Você pode criar arquivos com permissões de acesso restritas e<br />

marcá-los como executáveis. O mecanismo mask garante que os usuários e<br />

grupos corretos poderão executá-los como deseja<strong>do</strong>.<br />

5.4.4 Algoritmo de verificação da ACL<br />

Um algoritmo de verificação é aplica<strong>do</strong> antes que qualquer processo ou aplicativo<br />

receba acesso a um objeto Sistema de arquivos protegi<strong>do</strong> por ACL. Como regra básica,<br />

as entradas de ACL são examinadas na seguinte seqüência: proprietário, usuário<br />

nomea<strong>do</strong>, grupo proprietário ou grupo nomea<strong>do</strong> e outros. O acesso é gerencia<strong>do</strong> de<br />

acor<strong>do</strong> com a entrada que melhor se adequar ao processo. Permissões não são<br />

cumulativas.<br />

A situação será mais complicada se um processo pertencer a mais de um grupo e precisar<br />

se adaptar a várias entradas de grupo. Uma entrada é selecionada aleatoriamente das<br />

entradas adequadas com as permissões necessárias. Não importa qual das entradas<br />

aciona o resulta<strong>do</strong> final “acesso concedi<strong>do</strong>”. Do mesmo mo<strong>do</strong>, se nenhuma das entradas<br />

adequadas de grupo contiver as permissões necessárias, uma entrada selecionada<br />

aleatoriamente acionará o resulta<strong>do</strong> final “acesso nega<strong>do</strong>”.<br />

5.5 Suporte a ACL em aplicativos<br />

As ACLs podem ser usadas para implementar cenários de permissão complexos que<br />

satisfaçam os requisitos <strong>do</strong>s aplicativos modernos. O conceito tradicional de permissão


e as ACLs podem ser combina<strong>do</strong>s de maneira inteligente. Os coman<strong>do</strong>s de arquivo<br />

básicos (cp, mv, ls etc.) suportam ACLs, assim como o Samba e o Konqueror.<br />

Infelizmente, muitos editores e gerencia<strong>do</strong>res de arquivos ainda não possuem suporte<br />

a ACL. Quan<strong>do</strong> se copia arquivos com o Emacs, por exemplo, as ACLs desses arquivos<br />

são perdidas. Quan<strong>do</strong> se modifica arquivos com um editor, as ACLs <strong>do</strong>s arquivos às<br />

vezes são mantidas, outras vezes não, dependen<strong>do</strong> <strong>do</strong> mo<strong>do</strong> de backup <strong>do</strong> editor usa<strong>do</strong>.<br />

Se o editor gravar as mudanças no arquivo original, a ACL de acesso será mantida. Se<br />

o editor gravar o conteú<strong>do</strong> atualiza<strong>do</strong> em um novo arquivo renomea<strong>do</strong> posteriormente<br />

com o antigo nome de arquivo, as ACLs poderão ser perdidas, a não ser que o editor<br />

suporte as ACLs. Não existe atualmente nenhum aplicativo de backup que mantenha<br />

ACLs, exceto o star archiver.<br />

5.6 Mais informações<br />

Informações detalhadas sobre as ACLs estão disponíveis em http://acl.bestbits<br />

.at/. Consulte também as páginas de manual de getfacl(1), acl(5) e<br />

setfacl(1).<br />

Listas de controle de acesso no Linux 159


Utilitários de monitoramento <strong>do</strong><br />

sistema<br />

Vários programas e mecanismos, alguns <strong>do</strong>s quais apresentamos aqui, podem ser usa<strong>do</strong>s<br />

para examinar o status <strong>do</strong> sistema. Também são descritos alguns utilitários para o<br />

trabalho de rotina, bem como seus parâmetros mais importantes.<br />

Para cada coman<strong>do</strong> apresenta<strong>do</strong>, são forneci<strong>do</strong>s exemplos das saídas relevantes. Nesses<br />

exemplos, a primeira linha é o coman<strong>do</strong> propriamente dito (após o sinal de > ou #). As<br />

omissões são indicadas entre colchetes ([...]) e linhas extensas são reduzidas quan<strong>do</strong><br />

necessário. Quebras de linhas extensas são indicadas por uma barra invertida (\).<br />

# coman<strong>do</strong> -x -y<br />

linha de saída 1<br />

linha de saída 2<br />

linha de saída 3 é muito longa, por isso \<br />

quebramos para a<br />

linha de saída 3<br />

[...]<br />

linha de saída 98<br />

linha de saída 99<br />

Procuramos <strong>of</strong>erecer descrições curtas para podermos mencionar o maior número<br />

possível de utilitários. Para obter mais informações sobre os coman<strong>do</strong>s, consulte as<br />

páginas de manual. A maior parte <strong>do</strong>s coman<strong>do</strong>s também compreende o parâmetro<br />

--help, que gera uma breve lista de parâmetros possíveis.<br />

6.1 Lista de arquivos abertos: ls<strong>of</strong><br />

Para ver uma lista de to<strong>do</strong>s os arquivos abertos para o processo com ID PID, use -p.<br />

Por exemplo, para ver to<strong>do</strong>s os arquivos usa<strong>do</strong>s pelo shell atual, digite:<br />

6<br />

Utilitários de monitoramento <strong>do</strong> sistema 161


162 Referência<br />

tester@linux:~> ls<strong>of</strong> -p $$<br />

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME<br />

bash 5552 tester cwd DIR 3,3 1512 117619 /home/tester<br />

bash 5552 tester rtd DIR 3,3 584 2 /<br />

bash 5552 tester txt REG 3,3 498816 13047 /bin/bash<br />

bash 5552 tester mem REG 0,0 0 [heap] (stat: No such<br />

\<br />

file or directory)<br />

bash 5552 tester mem REG 3,3 217016 115687 /var/run/nscd/passwd<br />

bash 5552 tester mem REG 3,3 208464 11867 \<br />

/usr/lib/locale/en_GB.utf8/LC_CTYPE<br />

bash 5552 tester mem REG 3,3 882134 11868 \<br />

/usr/lib/locale/en_GB.utf8/LC_COLLATE<br />

bash 5552 tester mem REG 3,3 1386997 8837 /lib/libc-2.3.6.so<br />

bash 5552 tester mem REG 3,3 13836 8843 /lib/libdl-2.3.6.so<br />

bash 5552 tester mem REG 3,3 290856 12204 /lib/libncurses.so.5.5<br />

bash 5552 tester mem REG 3,3 26936 13004 /lib/libhistory.so.5.1<br />

bash 5552 tester mem REG 3,3 190200 13006 /lib/libreadline.so.5.1<br />

bash 5552 tester mem REG 3,3 54 11842 \<br />

/usr/lib/locale/en_GB.utf8/LC_NUMERIC<br />

bash 5552 tester mem REG 3,3 2375 11663 \<br />

/usr/lib/locale/en_GB.utf8/LC_TIME<br />

bash 5552 tester mem REG 3,3 290 11736 \<br />

/usr/lib/locale/en_GB.utf8/LC_MONETARY<br />

bash 5552 tester mem REG 3,3 52 11831 \<br />

/usr/lib/locale/en_GB.utf8/LC_MESSAGES/SYS_LC_MESSAGES<br />

bash 5552 tester mem REG 3,3 34 11862 \<br />

/usr/lib/locale/en_GB.utf8/LC_PAPER<br />

bash 5552 tester mem REG 3,3 62 11839 \<br />

/usr/lib/locale/en_GB.utf8/LC_NAME<br />

bash 5552 tester mem REG 3,3 127 11664 \<br />

/usr/lib/locale/en_GB.utf8/LC_ADDRESS<br />

bash 5552 tester mem REG 3,3 56 11735 \<br />

/usr/lib/locale/en_GB.utf8/LC_TELEPHONE<br />

bash 5552 tester mem REG 3,3 23 11866 \<br />

/usr/lib/locale/en_GB.utf8/LC_MEASUREMENT<br />

bash 5552 tester mem REG 3,3 21544 9109 \<br />

/usr/lib/gconv/gconv-modules.cache<br />

bash 5552 tester mem REG 3,3 366 9720 \<br />

/usr/lib/locale/en_GB.utf8/LC_IDENTIFICATION<br />

bash 5552 tester mem REG 3,3 97165 8828 /lib/ld-2.3.6.so<br />

bash 5552 tester 0u CHR 136,5 7 /dev/pts/5<br />

bash 5552 tester 1u CHR 136,5 7 /dev/pts/5<br />

bash 5552 tester 2u CHR 136,5 7 /dev/pts/5<br />

bash 5552 tester 255u CHR 136,5 7 /dev/pts/5<br />

Foi usada a variável de shell especial $$, cujo valor é o ID <strong>do</strong> processo <strong>do</strong> shell.<br />

O coman<strong>do</strong> ls<strong>of</strong> lista to<strong>do</strong>s os arquivos atualmente abertos quan<strong>do</strong> usa<strong>do</strong> com<br />

quaisquer outros parâmetros. Como há milhares de arquivos abertos, raramente é útil<br />

listá-los. No entanto, a lista de to<strong>do</strong>s os arquivos pode ser combinada com funções de


pesquisa para gerar listas úteis. Por exemplo, listar to<strong>do</strong>s os dispositivos de caracteres<br />

usa<strong>do</strong>s:<br />

tester@linux:~> ls<strong>of</strong> | grep CHR<br />

bash 3838 tester 0u CHR 136,0 2 /dev/pts/0<br />

bash 3838 tester 1u CHR 136,0 2 /dev/pts/0<br />

bash 3838 tester 2u CHR 136,0 2 /dev/pts/0<br />

bash 3838 tester 255u CHR 136,0 2 /dev/pts/0<br />

bash 5552 tester 0u CHR 136,5 7 /dev/pts/5<br />

bash 5552 tester 1u CHR 136,5 7 /dev/pts/5<br />

bash 5552 tester 2u CHR 136,5 7 /dev/pts/5<br />

bash 5552 tester 255u CHR 136,5 7 /dev/pts/5<br />

X 5646 root mem CHR 1,1 1006 /dev/mem<br />

ls<strong>of</strong> 5673 tester 0u CHR 136,5 7 /dev/pts/5<br />

ls<strong>of</strong> 5673 tester 2u CHR 136,5 7 /dev/pts/5<br />

grep 5674 tester 1u CHR 136,5 7 /dev/pts/5<br />

grep 5674 tester 2u CHR 136,5 7 /dev/pts/5<br />

6.2 Arquivos de acesso <strong>do</strong> usuário:<br />

fuser<br />

Pode ser útil determinar os processos ou usuários que estão acessan<strong>do</strong> atualmente<br />

determina<strong>do</strong>s arquivos. Suponha, por exemplo, que você queira desmontar um sistema<br />

de arquivos monta<strong>do</strong> em /mnt. unmount retorna "device is busy" (dispositivo<br />

ocupa<strong>do</strong>). O coman<strong>do</strong> fuser pode ser usa<strong>do</strong> para determinar os processos que estão<br />

acessan<strong>do</strong> o dispositivo:<br />

tester@linux:~> fuser -v /mnt/*<br />

USER PID ACCESS COMMAND<br />

/mnt/notes.txt tester 26597 f.... less<br />

Ao fim <strong>do</strong> processo less, que estava sen<strong>do</strong> executa<strong>do</strong> em outro terminal, o sistema<br />

de arquivos poderá ser desmonta<strong>do</strong> com êxito.<br />

6.3 Propriedades de arquivo: stat<br />

O coman<strong>do</strong> stat exibe propriedades de arquivo:<br />

tester@linux:~> stat /etc/pr<strong>of</strong>ile<br />

File: `/etc/pr<strong>of</strong>ile'<br />

Size: 7930 Blocks: 16 IO Block: 4096 regular file<br />

Device: 303h/771d Inode: 40657 Links: 1<br />

Utilitários de monitoramento <strong>do</strong> sistema 163


164 Referência<br />

Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)<br />

Access: 2006-01-06 16:45:43.000000000 +0100<br />

Modify: 2005-11-21 14:54:35.000000000 +0100<br />

Change: 2005-12-19 09:51:04.000000000 +0100<br />

O parâmetro --filesystem produz detalhes das propriedades <strong>do</strong> sistema de arquivos<br />

no qual o arquivo específico está localiza<strong>do</strong>:<br />

tester@linux:~> stat /etc/pr<strong>of</strong>ile --filesystem<br />

File: "/etc/pr<strong>of</strong>ile"<br />

ID: 0 Namelen: 255 Type: reiserfs<br />

Block size: 4096 Fundamental block size: 4096<br />

Blocks: Total: 2622526 Free: 1809771 Available: 1809771<br />

Inodes: Total: 0 Free: 0<br />

6.4 Dispositivos USB: lsusb<br />

O coman<strong>do</strong> lsusb lista to<strong>do</strong>s os dispositivos USB. Com a opção -v, imprima uma<br />

lista mais detalhada. As informações detalhadas são lidas <strong>do</strong> diretório /proc/bus/<br />

usb/. A seguir está a saída de lsusb com os seguintes dispositivos USB anexa<strong>do</strong>s:<br />

hub, dispositivo de memória, disco rígi<strong>do</strong> e um mouse.<br />

linux:/ # lsusb<br />

Bus 004 Device 007: ID 0ea0:2168 Ours Technology, Inc. Transcend JetFlash \<br />

2.0 / Astone USB Drive<br />

Bus 004 Device 006: ID 04b4:6830 Cypress Semiconductor Corp. USB-2.0 IDE \<br />

Adapter<br />

Bus 004 Device 005: ID 05e3:0605 Genesys Logic, Inc.<br />

Bus 004 Device 001: ID 0000:0000<br />

Bus 003 Device 001: ID 0000:0000<br />

Bus 002 Device 001: ID 0000:0000<br />

Bus 001 Device 005: ID 046d:c012 Logitech, Inc. Optical Mouse<br />

Bus 001 Device 001: ID 0000:0000<br />

6.5 Informações sobre um dispositivo<br />

SCSI: scsiinfo<br />

O coman<strong>do</strong> scsiinfo lista informações sobre um dispositivo SCSI. Com a opção<br />

-l, liste to<strong>do</strong>s os dispositivos SCSI conheci<strong>do</strong>s pelo sistema (informações semelhantes<br />

são obtidas com o coman<strong>do</strong> lsscsi). Veja abaixo a saída de scsiinfo -i<br />

/dev/sda, que fornece informações sobre o disco rígi<strong>do</strong>. A opção -a fornece ainda<br />

mais informações.


linux:/ # scsiinfo -i /dev/sda<br />

Inquiry command<br />

---------------<br />

Relative Address 0<br />

Wide bus 32 0<br />

Wide bus 16 1<br />

Synchronous neg. 1<br />

Linked Commands 1<br />

Command Queueing 1<br />

SftRe 0<br />

Device Type 0<br />

Peripheral Qualifier 0<br />

Removable? 0<br />

Device Type Modifier 0<br />

ISO Version 0<br />

ECMA Version 0<br />

ANSI Version 3<br />

AENC 0<br />

TrmIOP 0<br />

Response Data Format 2<br />

Ven<strong>do</strong>r: FUJITSU<br />

Product: MAS3367NP<br />

Revision level: 0104A0K7P43002BE<br />

A opção -d exibe uma lista de defeitos com duas tabelas de blocos defeituosos de um<br />

disco rígi<strong>do</strong>: primeiro, o <strong>of</strong>ereci<strong>do</strong> pelo fornece<strong>do</strong>r (tabela <strong>do</strong> fabricante) e, depois, a<br />

lista de blocos deficientes que apareceu na operação (tabela de crescimento). Se o<br />

número de entradas da tabela de crescimento aumentar, convém substituir o disco rígi<strong>do</strong>.<br />

6.6 Processos: top<br />

O coman<strong>do</strong> top, que é o acrônimo de "tabela de processos" em inglês, exibe uma lista<br />

de processos que são atualiza<strong>do</strong>s a cada <strong>do</strong>is segun<strong>do</strong>s. Para finalizar o programa,<br />

pressione Q . O parâmetro -n 1 finaliza o programa após uma única exibição da lista<br />

de processos. Veja abaixo um exemplo da saída <strong>do</strong> coman<strong>do</strong> top -n 1:<br />

tester@linux:~> top -n 1<br />

top - 17:06:28 up 2:10, 5 users, load average: 0.00, 0.00, 0.00<br />

Tasks: 85 total, 1 running, 83 sleeping, 1 stopped, 0 zombie<br />

Cpu(s): 5.5% us, 0.8% sy, 0.8% ni, 91.9% id, 1.0% wa, 0.0% hi, 0.0% si<br />

Mem: 515584k total, 506468k used, 9116k free, 66324k buffers<br />

Swap: 658656k total, 0k used, 658656k free, 353328k cached<br />

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND<br />

1 root 16 0 700 272 236 S 0.0 0.1 0:01.33 init<br />

2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ks<strong>of</strong>tirqd/0<br />

3 root 10 -5 0 0 0 S 0.0 0.0 0:00.27 events/0<br />

Utilitários de monitoramento <strong>do</strong> sistema 165


166 Referência<br />

4 root 10 -5 0 0 0 S 0.0 0.0 0:00.01 khelper<br />

5 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread<br />

11 root 10 -5 0 0 0 S 0.0 0.0 0:00.05 kblockd/0<br />

12 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid<br />

472 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pdflush<br />

473 root 15 0 0 0 0 S 0.0 0.0 0:00.06 pdflush<br />

475 root 11 -5 0 0 0 S 0.0 0.0 0:00.00 aio/0<br />

474 root 15 0 0 0 0 S 0.0 0.0 0:00.07 kswapd0<br />

681 root 10 -5 0 0 0 S 0.0 0.0 0:00.01 kseriod<br />

839 root 10 -5 0 0 0 S 0.0 0.0 0:00.02 reiserfs/0<br />

923 root 13 -4 1712 552 344 S 0.0 0.1 0:00.67 udevd<br />

1343 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khubd<br />

1587 root 20 0 0 0 0 S 0.0 0.0 0:00.00 shpchpd_event<br />

1746 root 15 0 0 0 0 S 0.0 0.0 0:00.00 w1_control<br />

1752 root 15 0 0 0 0 S 0.0 0.0 0:00.00 w1_bus_master1<br />

2151 root 16 0 1464 496 416 S 0.0 0.1 0:00.00 acpid<br />

2165 messageb 16 0 3340 1048 792 S 0.0 0.2 0:00.64 dbus-daemon<br />

2166 root 15 0 1840 752 556 S 0.0 0.1 0:00.01 syslog-ng<br />

2171 root 16 0 1600 516 320 S 0.0 0.1 0:00.00 klogd<br />

2235 root 15 0 1736 800 652 S 0.0 0.2 0:00.10 resmgrd<br />

2289 root 16 0 4192 2852 1444 S 0.0 0.6 0:02.05 hald<br />

2403 root 23 0 1756 600 524 S 0.0 0.1 0:00.00 hald-ad<strong>do</strong>n-acpi<br />

2709 root 19 0 2668 1076 944 S 0.0 0.2 0:00.00 NetworkManagerD<br />

2714 root 16 0 1756 648 564 S 0.0 0.1 0:00.56 hald-ad<strong>do</strong>n-stor<br />

Se você pressionar F enquanto o coman<strong>do</strong> top estiver em execução, aparecerá um<br />

menu no qual será possível mudar o formato da saída.<br />

O parâmetro -U UID monitora apenas os processos associa<strong>do</strong>s a um usuário específico.<br />

Substitua UID pelo ID <strong>do</strong> usuário. O coman<strong>do</strong> top -U `id -u` retorna o UID <strong>do</strong><br />

usuário na base <strong>do</strong> nome <strong>do</strong> usuário e exibe seus processos.<br />

6.7 Lista de processos: ps<br />

O coman<strong>do</strong> ps gera uma lista de processos. A maioria <strong>do</strong>s parâmetros deve ser escrita<br />

sem o sinal de subtração. Consulte ps --help para obter uma ajuda breve ou a página<br />

de manual para ajuda ampla.<br />

Para listar to<strong>do</strong>s os processos com informações de linha de coman<strong>do</strong> e usuário, use ps<br />

axu:<br />

tester@linux:~> ps axu<br />

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND<br />

root 1 0.0 0.0 696 272 ? S 12:59 0:01 init [5]<br />

root 2 0.0 0.0 0 0 ? SN 12:59 0:00 [ks<strong>of</strong>tirqd/0]<br />

root 3 0.0 0.0 0 0 ? S< 12:59 0:00 [events/0]


[...]<br />

tester 4047 0.0 6.0 158548 31400 ? Ssl 13:02 0:06 mono-best \<br />

--debug /usr/lib/beagle/Best.exe --autostarted<br />

tester 4057 0.0 0.7 9036 3684 ? Sl 13:02 0:00 \<br />

/opt/gnome/sbin/gnome-vfs-daemon<br />

--oaf-activate-iid=OAFIID:GNOME_VFS_Daemon_Factory --oa<br />

tester 4067 0.0 0.1 2204 636 ? S 13:02 0:00 \<br />

/opt/gnome/lib/nautilus/mapping-daemon<br />

tester 4072 0.0 1.0 15996 5160 ? Ss 13:02 0:00 \<br />

gnome-screensaver<br />

tester 4114 0.0 3.7 130988 19172 ? SLl 13:06 0:04 sound-juicer<br />

tester 4818 0.0 0.3 4192 1812 pts/0 Ss 15:59 0:00 -bash<br />

tester 4959 0.0 0.1 2324 816 pts/0 R+ 16:17 0:00 ps axu<br />

Para verificar quantos processos sshd estão sen<strong>do</strong> executa<strong>do</strong>s, use a opção -p junto<br />

com o coman<strong>do</strong> pi<strong>do</strong>f, que lista os IDs de processo <strong>do</strong>s processos determina<strong>do</strong>s.<br />

tester@linux:~> ps -p `pi<strong>do</strong>f sshd`<br />

PID TTY STAT TIME COMMAND<br />

3524 ? Ss 0:00 /usr/sbin/sshd -o PidFile=/var/run/sshd.init.pid<br />

4813 ? Ss 0:00 sshd: tester [priv]<br />

4817 ? R 0:00 sshd: tester@pts/0<br />

A lista de processos pode ser formatada de acor<strong>do</strong> com suas necessidades. A opção -L<br />

retorna uma lista com todas as palavras-chave. Digite o coman<strong>do</strong> a seguir para gerar<br />

uma lista de to<strong>do</strong>s os processos classifica<strong>do</strong>s conforme o uso de memória:<br />

tester@linux:~> ps ax --format pid,rss,cmd --sort rss<br />

PID RSS CMD<br />

2 0 [ks<strong>of</strong>tirqd/0]<br />

3 0 [events/0]<br />

4 0 [khelper]<br />

5 0 [kthread]<br />

11 0 [kblockd/0]<br />

12 0 [kacpid]<br />

472 0 [pdflush]<br />

473 0 [pdflush]<br />

[...]<br />

4028 17556 nautilus --no-default-win<strong>do</strong>w --sm-client-id default2<br />

4118 17800 ksnapshot<br />

4114 19172 sound-juicer<br />

4023 25144 gnome-panel --sm-client-id default1<br />

4047 31400 mono-best --debug /usr/lib/beagle/Best.exe --autostarted<br />

3973 31520 mono-beagled --debug /usr/lib/beagle/BeagleDaemon.exe \<br />

--bg --autostarted<br />

Utilitários de monitoramento <strong>do</strong> sistema 167


168 Referência<br />

6.8 Árvore de processos: pstree<br />

O coman<strong>do</strong> pstree gera uma lista de processos na forma de árvore:<br />

tester@linux:~> pstree<br />

init-+-NetworkManagerD<br />

|-acpid<br />

|-3*[automount]<br />

|-cron<br />

|-cupsd<br />

|-2*[dbus-daemon]<br />

|-dbus-launch<br />

|-dcopserver<br />

|-dhcpcd<br />

|-events/0<br />

|-gpg-agent<br />

|-hald-+-hald-ad<strong>do</strong>n-acpi<br />

| `-hald-ad<strong>do</strong>n-stor<br />

|-kded<br />

|-kdeinit-+-kdesu---su---kdesu_stub---yast2---y2controlcenter<br />

| |-kio_file<br />

| |-klauncher<br />

| |-konqueror<br />

| |-konsole-+-bash---su---bash<br />

| | `-bash<br />

| `-kwin<br />

|-kdesktop---kdesktop_lock---xmatrix<br />

|-kdesud<br />

|-kdm-+-X<br />

| `-kdm---startkde---kwrapper<br />

[...]<br />

O parâmetro -p adiciona o ID <strong>do</strong> processo a um nome determina<strong>do</strong>. Para que as linhas<br />

de coman<strong>do</strong> também sejam exibidas, use o parâmetro -a:<br />

6.9 Quem está fazen<strong>do</strong> o quê: w<br />

Com o coman<strong>do</strong> w, você pode saber quem efetuou login no sistema e o que cada usuário<br />

está fazen<strong>do</strong>. Por exemplo:<br />

tester@linux:~> w<br />

16:33:03 up 3:33, 2 users, load average: 0.14, 0.06, 0.02<br />

USER TTY LOGIN@ IDLE JCPU PCPU WHAT<br />

tester :0 16:33 ?xdm? 9.42s 0.15s /bin/sh /opt/kde3/bin/startkde<br />

tester pts/0 15:59 0.00s 0.19s 0.00s w


Se algum usuário <strong>do</strong> sistema tiver efetua<strong>do</strong> login remotamente, o parâmetro -f mostrará<br />

os computa<strong>do</strong>res <strong>do</strong>s quais ele estabeleceu a conexão.<br />

6.10 Uso da memória: free<br />

O utilitário free examina o uso da RAM. São mostra<strong>do</strong>s detalhes da memória livre e<br />

da memória utilizada (em áreas de troca):<br />

ester@linux:~> free<br />

total used free shared buffers cached<br />

Mem: 515584 501704 13880 0 73040 334592<br />

-/+ buffers/cache: 94072 421512<br />

Swap: 658656 0 658656<br />

As opções -b,-k,-m,-g mostram a saída em bytes, KB, MB ou GB, respectivamente.<br />

O parâmetro -d delay assegura que a exibição seja atualizada a cada atraso<br />

segun<strong>do</strong>s. Por exemplo, free -d 1.5 produz uma atualização a cada 1,5 segun<strong>do</strong>.<br />

6.11 Buffer <strong>do</strong> anel de kernel: dmesg<br />

O kernel Linux mantém certas mensagens em um buffer em anel. Para ver essas<br />

mensagens, digite o coman<strong>do</strong> dmesg:<br />

$ dmesg<br />

[...]<br />

end_request: I/O error, dev fd0, sector 0<br />

subfs: unsuccessful attempt to mount media (256)<br />

e100: eth0: e100_watch<strong>do</strong>g: link up, 100Mbps, half-duplex<br />

NET: Registered protocol family 17<br />

IA-32 Microcode Update Driver: v1.14 <br />

microcode: CPU0 updated from revision 0xe to 0x2e, date = 08112004<br />

IA-32 Microcode Update Driver v1.14 unregistered<br />

bootsplash: status on console 0 changed to on<br />

NET: Registered protocol family 10<br />

Disabled Privacy Extensions on device c0326ea0(lo)<br />

IPv6 over IPv4 tunneling driver<br />

powernow: This module only works with AMD K7 CPUs<br />

bootsplash: status on console 0 changed to on<br />

Eventos mais antigos são registra<strong>do</strong>s nos arquivos /var/log/messages e /var/<br />

log/warn.<br />

Utilitários de monitoramento <strong>do</strong> sistema 169


170 Referência<br />

6.12 Sistemas de arquivos e sua<br />

utilização: mount, df e du<br />

O coman<strong>do</strong> mount mostra o sistema de arquivos (dispositivo e tipo) que está monta<strong>do</strong><br />

e seu ponto de montagem:<br />

tester@linux:~> mount<br />

/dev/hda3 on / type reiserfs (rw,acl,user_xattr)<br />

proc on /proc type proc (rw)<br />

sysfs on /sys type sysfs (rw)<br />

udev on /dev type tmpfs (rw)<br />

devpts on /dev/pts type devpts (rw,mode=0620,gid=5)<br />

/dev/hda1 on /boot type ext2 (rw,acl,user_xattr)<br />

/dev/hda4 on /local type reiserfs (rw,acl,user_xattr)<br />

/dev/fd0 on /media/floppy type subfs<br />

(rw,nosuid,nodev,noatime,fs=floppyfss,procuid)<br />

Obtenha informações sobre a utilização total <strong>do</strong>s sistemas de arquivos com o coman<strong>do</strong><br />

df. O parâmetro -h (ou --human-readable) transforma a saída em um formato<br />

inteligível para o usuário comum.<br />

tester@linux:~> df -h<br />

Filesystem Size Used Avail Use% Mounted on<br />

/dev/hda3 11G 3.2G 6.9G 32% /<br />

udev 252M 104K 252M 1% /dev<br />

/dev/hda1 16M 6.6M 7.8M 46% /boot<br />

/dev/hda4 27G 34M 27G 1% /local<br />

Exiba o tamanho total de to<strong>do</strong>s os arquivos de um determina<strong>do</strong> diretório e seus<br />

subdiretórios com o coman<strong>do</strong> du. O parâmetro -s suprime a saída de informações<br />

detalhadas. -h novamente transforma os da<strong>do</strong>s em forma legível:<br />

tester@linux:~> du -sh /local<br />

1.7M /local<br />

6.13 O sistema de arquivos /proc<br />

O sistema de arquivos /proc é um pseu<strong>do</strong>ssistema de arquivos no qual o kernel reserva<br />

informações importantes na forma de arquivos virtuais. Por exemplo, exiba o tipo de<br />

CPU com este coman<strong>do</strong>:<br />

ester@linux:~> cat /proc/cpuinfo<br />

processor : 0<br />

ven<strong>do</strong>r_id : AuthenticAMD


cpu family : 6<br />

model : 8<br />

model name : AMD Athlon(tm) XP 2400+<br />

stepping : 1<br />

cpu MHz : 2009.343<br />

cache size : 256 KB<br />

fdiv_bug : no<br />

[...]<br />

A alocação e o uso de interrupções podem ser consulta<strong>do</strong>s com o seguinte coman<strong>do</strong>:<br />

tester@linux:~> cat /proc/interrupts<br />

CPU0<br />

0: 3577519 XT-PIC timer<br />

1: 130 XT-PIC i8042<br />

2: 0 XT-PIC cascade<br />

5: 564535 XT-PIC Intel 82801DB-ICH4<br />

7: 1 XT-PIC parport0<br />

8: 2 XT-PIC rtc<br />

9: 1 XT-PIC acpi, uhci_hcd:usb1, ehci_hcd:usb4<br />

10: 0 XT-PIC uhci_hcd:usb3<br />

11: 71772 XT-PIC uhci_hcd:usb2, eth0<br />

12: 101150 XT-PIC i8042<br />

14: 33146 XT-PIC ide0<br />

15: 149202 XT-PIC ide1<br />

NMI: 0<br />

LOC: 0<br />

ERR: 0<br />

MIS: 0<br />

Alguns arquivos importantes e seu conteú<strong>do</strong>:<br />

/proc/devices<br />

dispositivos disponíveis<br />

/proc/modules<br />

módulos kernel carrega<strong>do</strong>s<br />

/proc/cmdline<br />

linha de coman<strong>do</strong> <strong>do</strong> kernel<br />

/proc/meminfo<br />

detalhes sobre a utilização da memória<br />

/proc/config.gz<br />

arquivo de configuração gzip compacta<strong>do</strong> <strong>do</strong> kernel executa<strong>do</strong> atualmente<br />

Utilitários de monitoramento <strong>do</strong> sistema 171


172 Referência<br />

Mais informações estão disponíveis no arquivo de texto /usr/src/linux/<br />

Documentation/filesystems/proc.txt. Você pode encontrar informações<br />

sobre os processos em execução nos diretórios /proc/NNN, onde NNN é o ID <strong>do</strong><br />

processo (PID) relevante. Cada processo pode encontrar suas próprias características<br />

em /proc/self/:<br />

tester@linux:~> ls -l /proc/self<br />

lrwxrwxrwx 1 root root 64 2006-01-09 13:03 /proc/self -> 5356<br />

tester@linux:~> ls -l /proc/self/<br />

total 0<br />

dr-xr-xr-x 2 tester users 0 2006-01-09 17:04 attr<br />

-r-------- 1 tester users 0 2006-01-09 17:04 auxv<br />

-r--r--r-- 1 tester users 0 2006-01-09 17:04 cmdline<br />

lrwxrwxrwx 1 tester users 0 2006-01-09 17:04 cwd -> /home/tester<br />

-r-------- 1 tester users 0 2006-01-09 17:04 environ<br />

lrwxrwxrwx 1 tester users 0 2006-01-09 17:04 exe -> /bin/ls<br />

dr-x------ 2 tester users 0 2006-01-09 17:04 fd<br />

-rw-r--r-- 1 tester users 0 2006-01-09 17:04 loginuid<br />

-r--r--r-- 1 tester users 0 2006-01-09 17:04 maps<br />

-rw------- 1 tester users 0 2006-01-09 17:04 mem<br />

-r--r--r-- 1 tester users 0 2006-01-09 17:04 mounts<br />

-rw-r--r-- 1 tester users 0 2006-01-09 17:04 oom_adj<br />

-r--r--r-- 1 tester users 0 2006-01-09 17:04 oom_score<br />

lrwxrwxrwx 1 tester users 0 2006-01-09 17:04 root -> /<br />

-rw------- 1 tester users 0 2006-01-09 17:04 seccomp<br />

-r--r--r-- 1 tester users 0 2006-01-09 17:04 smaps<br />

-r--r--r-- 1 tester users 0 2006-01-09 17:04 stat<br />

-r--r--r-- 1 tester users 0 2006-01-09 17:04 statm<br />

-r--r--r-- 1 tester users 0 2006-01-09 17:04 status<br />

dr-xr-xr-x 3 tester users 0 2006-01-09 17:04 task<br />

-r--r--r-- 1 tester users 0 2006-01-09 17:04 wchan<br />

A atribuição de endereço de executáveis e bibliotecas pode ser encontrada no arquivo<br />

maps:<br />

tester@linux:~> cat /proc/self/maps<br />

08048000-0804c000 r-xp 00000000 03:03 17753 /bin/cat<br />

0804c000-0804d000 rw-p 00004000 03:03 17753 /bin/cat<br />

0804d000-0806e000 rw-p 0804d000 00:00 0 [heap]<br />

b7d27000-b7d5a000 r--p 00000000 03:03 11867 \<br />

/usr/lib/locale/en_GB.utf8/LC_CTYPE<br />

b7d5a000-b7e32000 r--p 00000000 03:03 11868 \<br />

/usr/lib/locale/en_GB.utf8/LC_COLLATE<br />

b7e32000-b7e33000 rw-p b7e32000 00:00 0<br />

b7e33000-b7f45000 r-xp 00000000 03:03 8837 /lib/libc-2.3.6.so<br />

b7f45000-b7f46000 r--p 00112000 03:03 8837 /lib/libc-2.3.6.so<br />

b7f46000-b7f48000 rw-p 00113000 03:03 8837 /lib/libc-2.3.6.so<br />

b7f48000-b7f4c000 rw-p b7f48000 00:00 0<br />

b7f52000-b7f53000 r--p 00000000 03:03 11842 \<br />

/usr/lib/locale/en_GB.utf8/LC_NUMERIC<br />

[...]


7f5b000-b7f61000 r--s 00000000 03:03 9109 \<br />

/usr/lib/gconv/gconv-modules.cache<br />

b7f61000-b7f62000 r--p 00000000 03:03 9720 \<br />

/usr/lib/locale/en_GB.utf8/LC_IDENTIFICATION<br />

b7f62000-b7f76000 r-xp 00000000 03:03 8828 /lib/ld-2.3.6.so<br />

b7f76000-b7f78000 rw-p 00013000 03:03 8828 /lib/ld-2.3.6.so<br />

bfd61000-bfd76000 rw-p bfd61000 00:00 0 [stack]<br />

ffffe000-fffff000 ---p 00000000 00:00 0 [vdso]<br />

6.13.1 procinfo<br />

Informações importantes <strong>do</strong> sistema de arquivos /proc são resumidas pelo coman<strong>do</strong><br />

procinfo:<br />

tester@linux:~> procinfo<br />

Linux 2.6.15-rc5-git3-2-default (geeko@buildhost) (gcc 4.1.0 20051129) #1 Wed<br />

Dec 14 13:10:38 UTC 2005 1CPU [linux.suse.de]<br />

Memory: Total Used Free Shared Buffers<br />

Mem: 515584 509472 6112 0 73024<br />

Swap: 658656 0 658656<br />

Bootup: Mon Jan 9 12:59:08 2006 Load average: 0.10 0.04 0.05 1/86 5406<br />

user : 00:02:070,98 0,8% page in : 442638 disk 1: 20125r<br />

13476w<br />

nice : 00:02:200,91 0,9% page out: 134950<br />

system: 0:00:42.93 0.3% page act: 70577<br />

IOwait: 0:01:25.40 0.6% page dea: 11696<br />

hw irq: 0:00:08.94 0.1% page flt: 1423622<br />

sw irq: 00:00:010,29 0.0% swap in : 0<br />

idle : 04:06:300,54 97,3% swap out: 0<br />

uptime: 4:13:20.72 context : 3813145<br />

irq 0: 3799268 timer irq 8: 2 rtc<br />

irq 1: 130 i8042 irq 9: 1 acpi, uhci_hcd:usb1,<br />

irq 2: 0 cascade [4] irq 10: 0 uhci_hcd:usb3<br />

irq 3: 8 irq 11: 75905 uhci_hcd:usb2, eth0<br />

irq 4: 8 irq 12: 101150 i8042<br />

irq 5: 564535 Intel 82801DB-ICH4 irq 14: 33733 ide0<br />

irq 6: 9 irq 15: 157045 ide1<br />

irq 7: 1 parport0 [3]<br />

Para ver todas as informações, use o parâmetro -a. O parâmetro -nN produz atualizações<br />

das informações a cada N segun<strong>do</strong>s. Nesse caso, termine o programa pressionan<strong>do</strong> Q .<br />

Utilitários de monitoramento <strong>do</strong> sistema 173


174 Referência<br />

Por padrão, são exibi<strong>do</strong>s valores cumulativos. O parâmetro -d produz valores<br />

diferenciais. procinfo -dn5 exibe os valores modifica<strong>do</strong>s nos últimos cinco<br />

segun<strong>do</strong>s:<br />

6.14 Recursos PCI: lspci<br />

O coman<strong>do</strong> lspci lista os recursos PCI:<br />

linux:~ # lspci<br />

00:00.0 Host bridge: Intel Corporation 82845G/GL[Brookdale-G]/GE/PE \<br />

DRAM Controller/Host-Hub Interface (rev 01)<br />

00:01.0 PCI bridge: Intel Corporation 82845G/GL[Brookdale-G]/GE/PE \<br />

Host-to-AGP Bridge (rev 01)<br />

00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM \<br />

(ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)<br />

00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM \<br />

(ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)<br />

00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM \<br />

(ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)<br />

00:1d.7 USB Controller: Intel Corporation 82801DB/DBM \<br />

(ICH4/ICH4-M) USB2 EHCI Controller (rev 01)<br />

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 81)<br />

00:1f.0 ISA bridge: Intel Corporation 82801DB/DBL (ICH4/ICH4-L) \<br />

LPC Interface Bridge (rev 01)<br />

00:1f.1 IDE interface: Intel Corporation 82801DB (ICH4) IDE \<br />

Controller (rev 01)<br />

00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) \<br />

SMBus Controller (rev 01)<br />

00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM \<br />

(ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)<br />

01:00.0 VGA compatible controller: Matrox Graphics, Inc. G400/G450 (rev 85)<br />

02:08.0 Ethernet controller: Intel Corporation 82801DB PRO/100 VE (LOM) \<br />

Ethernet Controller (rev 81)<br />

Usar -v resulta em uma lista mais detalhada:<br />

linux:~ # lspci<br />

[...]<br />

02:08.0 Ethernet controller: Intel Corporation 82801DB PRO/100 VE (LOM)\<br />

Ethernet Controller (rev 81)<br />

Subsystem: Fujitsu Siemens Computer GmbH: Unknown device 1001<br />

Flags: bus master, medium devsel, latency 66, IRQ 11<br />

Memory at d1000000 (32-bit, non-prefetchable) [size=4K]<br />

I/O ports at 3000 [size=64]<br />

Capabilities: [dc] Power Management version 2


Informações sobre a resolução de nomes <strong>do</strong> dispositivo podem ser obtidas <strong>do</strong> arquivo<br />

/usr/share/pci.ids. Os IDs <strong>do</strong> PCI não lista<strong>do</strong>s nesse arquivo são marca<strong>do</strong>s<br />

como “Unknown device” (arquivo desconheci<strong>do</strong>).<br />

O parâmetro -w produz todas as informações que poderiam ser consultadas pelo<br />

programa. Para ver valores puramente numéricos, use o parâmetro -n.<br />

6.15 Chamadas <strong>do</strong> sistema de uma<br />

execução de programa: strace<br />

O utilitário strace permite rastrear todas as chamadas <strong>do</strong> sistema de um processo em<br />

execução. Digite o coman<strong>do</strong> normalmente, adicionan<strong>do</strong> strace ao início da linha:<br />

tester@linux:~> strace ls<br />

execve("/bin/ls", ["ls"], [/* 61 vars */]) = 0<br />

uname({sys="Linux", node="linux", ...}) = 0<br />

brk(0) = 0x805c000<br />

access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)<br />

open("/etc/ld.so.cache", O_RDONLY) = 3<br />

fstat64(3, {st_mode=S_IFREG|0644, st_size=89696, ...}) = 0<br />

mmap2(NULL, 89696, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7ef2000<br />

close(3) = 0<br />

open("/lib/librt.so.1", O_RDONLY) = 3<br />

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\36\0"..., 512) \<br />

= 512<br />

fstat64(3, {st_mode=S_IFREG|0755, st_size=36659, ...}) = 0<br />

[...]<br />

stat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0<br />

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) \<br />

= 0xb7ca7000<br />

write(1, "bin Desktop Documents music\tM"..., 55bin Desktop Documents \<br />

\ music Music public_html tmp<br />

) = 55<br />

close(1) = 0<br />

munmap(0xb7ca7000, 4096) = 0<br />

exit_group(0) = ?<br />

Por exemplo, para rastrear todas as tentativas de abertura de um arquivo específico,<br />

use:<br />

tester@linux:~> strace -e open ls .bashrc<br />

open("/etc/ld.so.cache", O_RDONLY) = 3<br />

open("/lib/librt.so.1", O_RDONLY) = 3<br />

open("/lib/libacl.so.1", O_RDONLY) = 3<br />

open("/lib/libc.so.6", O_RDONLY) = 3<br />

open("/lib/libpthread.so.0", O_RDONLY) = 3<br />

Utilitários de monitoramento <strong>do</strong> sistema 175


176 Referência<br />

open("/lib/libattr.so.1", O_RDONLY) = 3<br />

[...]<br />

Para rastrear to<strong>do</strong>s os processos-filho, use o parâmetro -f. O comportamento e o formato<br />

da saída de strace podem ser amplamente controla<strong>do</strong>s. Para obter informações, consulte<br />

man strace.<br />

6.16 Chamadas da biblioteca de uma<br />

execução de programa: ltrace<br />

O coman<strong>do</strong> ltrace permite rastrear as chamadas de biblioteca de um processo. Esse<br />

coman<strong>do</strong> é usa<strong>do</strong> de forma semelhante a strace. O parâmetro -c gera o número e a<br />

duração das chamadas de biblioteca ocorridas:<br />

tester@linux:~> ltrace -c find ~<br />

% time seconds usecs/call calls function<br />

------ ----------- ----------- --------- --------------------<br />

34.37 6.758937 245 27554 __errno_location<br />

33.53 6.593562 788 8358 __fprintf_chk<br />

12.67 2.490392 144 17212 strlen<br />

11.97 2.353302 239 9845 readdir64<br />

2.37 0.466754 27 16716 __ctype_get_mb_cur_max<br />

1.18 0.231189 27 8531 strcpy<br />

1.17 0.230765 27 8358 memcpy<br />

[...]<br />

0.00 0.000036 36 1 text<strong>do</strong>main<br />

------ ----------- ----------- --------- --------------------<br />

100.00 19.662715 105717 total<br />

6.17 Especificação da biblioteca<br />

necessária: ldd<br />

O coman<strong>do</strong> ldd pode ser usa<strong>do</strong> para descobrir as bibliotecas que carregariam o<br />

executável dinâmico especifica<strong>do</strong> como argumento:<br />

tester@linux:~> ldd /bin/ls<br />

linux-gate.so.1 => (0xffffe000)<br />

librt.so.1 => /lib/librt.so.1 (0xb7f97000)<br />

libacl.so.1 => /lib/libacl.so.1 (0xb7f91000)<br />

libc.so.6 => /lib/libc.so.6 (0xb7e79000)<br />

libpthread.so.0 => /lib/libpthread.so.0 (0xb7e67000)


lib/ld-linux.so.2 (0xb7fb6000)<br />

libattr.so.1 => /lib/libattr.so.1 (0xb7e63000)<br />

Binários estáticos não precisam de bibliotecas dinâmicas:<br />

tester@linux:~> ldd /bin/sash<br />

not a dynamic executable<br />

tester@linux:~> file /bin/sash<br />

/bin/sash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for<br />

GNU/Linux 2.6.4, statically linked, for GNU/Linux 2.6.4, stripped<br />

6.18 Informações adicionais sobre<br />

binários ELF<br />

O conteú<strong>do</strong> <strong>do</strong>s binários pode ser li<strong>do</strong> com o utilitário readelf. Isso também funciona<br />

com arquivos ELF cria<strong>do</strong>s para outras arquiteturas de hardware:<br />

tester@linux:~> readelf --file-header /bin/ls<br />

ELF Header:<br />

Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00<br />

Class: ELF32<br />

Data: 2's complement, little endian<br />

Version: 1 (current)<br />

OS/ABI: UNIX - System V<br />

ABI Version: 0<br />

Type: EXEC (Executable file)<br />

Machine: Intel 80386<br />

Version: 0x1<br />

Entry point address: 0x8049b60<br />

Start <strong>of</strong> program headers: 52 (bytes into file)<br />

Start <strong>of</strong> section headers: 81112 (bytes into file)<br />

Flags: 0x0<br />

Size <strong>of</strong> this header: 52 (bytes)<br />

Size <strong>of</strong> program headers: 32 (bytes)<br />

Number <strong>of</strong> program headers: 9<br />

Size <strong>of</strong> section headers: 40 (bytes)<br />

Number <strong>of</strong> section headers: 30<br />

Section header string table index: 29<br />

6.19 Comunicação entre processos:<br />

ipcs<br />

O coman<strong>do</strong> ipcs produz uma lista <strong>do</strong>s recursos IPC em uso:<br />

Utilitários de monitoramento <strong>do</strong> sistema 177


178 Referência<br />

------ Shared Memory Segments -------key<br />

shmid owner perms bytes nattch status<br />

0x00000000 58261504 tester 600 393216 2 dest<br />

0x00000000 58294273 tester 600 196608 2 dest<br />

0x00000000 83886083 tester 666 43264 2<br />

0x00000000 83951622 tester 666 192000 2<br />

0x00000000 83984391 tester 666 282464 2<br />

0x00000000 84738056 root 644 151552 2 dest<br />

------ Semaphore Arrays -------key<br />

semid owner perms nsems<br />

0x4d038abf 0 tester 600 8<br />

------ Message Queues -------key<br />

msqid owner perms used-bytes messages<br />

6.20 Medição <strong>do</strong> tempo com time<br />

O tempo usa<strong>do</strong> pelos coman<strong>do</strong>s pode ser determina<strong>do</strong> com o utilitário time. Esse<br />

utilitário está disponível em duas versões: como shell interno e como programa<br />

(/usr/bin/time).<br />

tester@linux:~> time find . > /dev/null<br />

real 0m4.051s<br />

user 0m0.042s<br />

sys 0m0.205s


Parte 3. Sistema


Aplicativos de 32 bits e 64 bits em<br />

um ambiente de sistema de 64 bits<br />

O <strong>SUSE</strong> Linux está disponível para várias plataformas de 64 bits. Isso não significa<br />

necessariamente que to<strong>do</strong>s os aplicativos incluí<strong>do</strong>s tenham si<strong>do</strong> transpostos para<br />

plataformas de 64 bits. O <strong>SUSE</strong> Linux suporta o uso de aplicativos de 32 bits em um<br />

ambiente de sistema de 64 bits. Este capítulo <strong>of</strong>erece uma breve visão geral de como<br />

este suporte é implementa<strong>do</strong> em plataformas Linux de 64 bits. Ele explica como<br />

aplicativos de 32 bits são executa<strong>do</strong>s (suporte <strong>do</strong> tempo de execução) e como aplicativos<br />

de 32 bits devem ser compila<strong>do</strong>s para que possam ser executa<strong>do</strong>s em ambientes de<br />

sistema de 32 bits e 64 bits. Além disso, você vai encontrar informações sobre API <strong>do</strong><br />

Kernel e uma explicação sobre como aplicativos de 32 bits podem ser executa<strong>do</strong>s com<br />

um kernel de 64 bits.<br />

O <strong>SUSE</strong> Linux para as plataformas de 64 bits AMD64 e EM64T foi cria<strong>do</strong> para que<br />

os aplicativos de 32 bits existentes sejam executa<strong>do</strong>s no ambiente de 64 bits “sem<br />

necessidade de mudanças”. Este suporte significa que você pode continuar a usar os<br />

aplicativos de 32 bits de sua preferência sem esperar que uma porta de 64 bits<br />

correspondente se torne disponível.<br />

7.1 Suporte ao tempo de execução<br />

IMPORTANTE: Conflitos entre versões de aplicativos<br />

Se um aplicativo estiver disponível para ambientes de 32 bits e de 64 bits, a<br />

instalação paralela das duas versões provavelmente resultará em problemas.<br />

Em tais casos, opte pela instalação e pelo uso de uma das duas versões.<br />

7<br />

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


182 Referência<br />

Para que os aplicativos sejam executa<strong>do</strong>s corretamente, cada um deles requer uma<br />

variedade de bibliotecas. Infelizmente, os nomes das versões de 32 bits e 64 bits das<br />

bibliotecas são idênticos. Eles devem ser diferencia<strong>do</strong>s uns <strong>do</strong>s outros de outra forma.<br />

Para obter compatibilidade com a versão de 32 bits, as bibliotecas são armazenadas no<br />

mesmo local no sistema e no ambiente de 32 bits. A versão de 32 bits de libc.so.6<br />

está localizada em /lib/libc.so.6 nos ambientes de 32 bits e 64 bits.<br />

To<strong>do</strong>s os arquivos de objetos e todas as bibliotecas de 64 bits estão localiza<strong>do</strong>s em<br />

diretórios denomina<strong>do</strong>s lib64. Os arquivos de objetos de 64 bits que normalmente<br />

são encontra<strong>do</strong>s em /lib, /usr/lib e usr/X11R6/lib agora estão em /lib64,<br />

/usr/lib64 e /usr/X11R6/lib64. Isso significa que há espaço para bibliotecas<br />

de 32 bits em /lib /usr/lib e /usr/X11R6/lib, de forma que os nomes de<br />

arquivo das duas versões possam permanecer inaltera<strong>do</strong>s.<br />

Nenhum subdiretório <strong>do</strong>s diretórios de objetos cujo conteú<strong>do</strong> de da<strong>do</strong>s não dependa <strong>do</strong><br />

tamanho da palavra será movi<strong>do</strong>. Por exemplo, as fontes X11 ainda se encontram no<br />

local habitual, em /usr/X11R6/lib/X11/fonts. Este esquema está em<br />

conformidade com a LSB (Linux Standards Base - Base de padrões Linux) e com o<br />

FHS (File System Hierarchy Standard - Padrão de hierarquia de sistema de arquivos).<br />

7.2 Desenvolvimento de s<strong>of</strong>tware<br />

Uma cadeia de ferramentas de desenvolvimento biarch permite a geração de objetos<br />

de 32 bits e 64 bits. O padrão é compilar objetos de 64 bits. É possível gerar objetos de<br />

32 bits usan<strong>do</strong> sinaliza<strong>do</strong>res especiais. Para GCC, o sinaliza<strong>do</strong>r especial é -m32.<br />

To<strong>do</strong>s os arquivos de cabeçalho devem ser escritos em um formato independente de<br />

arquitetura. As bibliotecas de 32 bits e 64 bits instaladas devem ter uma API (application<br />

programming interface - interface de programação de aplicativo) que corresponda aos<br />

arquivos de cabeçalho instala<strong>do</strong>s. O ambiente <strong>SUSE</strong> normal é projeta<strong>do</strong> de acor<strong>do</strong> com<br />

esse princípio. No caso de bibliotecas atualizadas manualmente, solucione esses<br />

problemas por conta própria.


7.3 Compilação de s<strong>of</strong>tware em<br />

plataformas biarch<br />

Para desenvolver binários para outra arquitetura em uma arquitetura biarch, as respectivas<br />

bibliotecas da segunda arquitetura devem ser instaladas adicionalmente. Esses pacotes<br />

são chama<strong>do</strong>s de rpmname-32bit. Você também precisará <strong>do</strong>s respectivos cabeçalhos<br />

e bibliotecas <strong>do</strong>s pacotes rpmname-devel e das bibliotecas de desenvolvimento para<br />

a segunda arquitetura de rpmname-devel-32bit.<br />

A maioria <strong>do</strong>s programas de código-fonte aberto usa uma configuração de programa<br />

baseada em autoconf. Para usar o autoconf com o objetivo de configurar um<br />

programa para a segunda arquitetura, sobregrave as configurações <strong>do</strong> compila<strong>do</strong>r normal<br />

e <strong>do</strong> linker de autocong executan<strong>do</strong> o script configure com variáveis de ambiente<br />

adicionais.<br />

Os exemplos a seguir se referem a um sistema AMD64 ou EM64T com x86 como<br />

segunda arquitetura:<br />

1. Defina autoconf para usar o compila<strong>do</strong>r de 32 bits:<br />

CC="gcc -m32"<br />

2. Instrua o linker a processar objetos de 32 bits:<br />

LD="ld -m elf64_i386"<br />

3. Defina o assembler para gerar objetos de 32 bits:<br />

AS="gcc -c -m32"<br />

4. Determine que as bibliotecas para libtool e as demais venham de /usr/<br />

lib:<br />

LDFLAGS="-L/usr/lib"<br />

5. Determine que as bibliotecas sejam armazenadas no subdiretório lib:<br />

--libdir=/usr/lib<br />

6. Determine que as bibliotecas X de 32 bits sejam usadas:<br />

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


--x-libraries=/usr/X11R6/lib/<br />

Nem todas essas variáveis são necessárias para to<strong>do</strong>s os programas. Adapte-as para o<br />

respectivo programa.<br />

CC="gcc -m64" \<br />

LDFLAGS="-L/usr/lib64;" \<br />

.configure \<br />

--prefix=/usr \<br />

--libdir=/usr/lib64<br />

make<br />

make install<br />

7.4 Especificações <strong>do</strong> kernel<br />

Os kernels de 64 bits para AMD64 e EM64T <strong>of</strong>erecem uma ABI (application binary<br />

interface - interface binária de aplicativo) de kernel de 32 bits e de 64 bits. A de 64 bits<br />

é idêntica à ABI <strong>do</strong> kernel de 32 bits correspondente. Isso significa que o aplicativo de<br />

32 bits pode se comunicar com o kernel de 64 bits da mesma forma que com o kernel<br />

de 32 bits.<br />

A emulação de 32 bits de chamadas <strong>do</strong> sistema para um kernel de 64 bits não suporta<br />

várias APIs usadas pelos programas <strong>do</strong> sistema. Isso depende da plataforma. Por esta<br />

razão, alguns aplicativos, como lspci ou os programas de administração LVM, devem<br />

ser compila<strong>do</strong>s como programas de 64 bits para funcionar adequadamente.<br />

Um kernel de 64 bits só pode carregar módulos de kernel de 64 bits especificamente<br />

compila<strong>do</strong>s para esse kernel. Não é possível usar módulos de kernel de 32 bits.<br />

DICA<br />

184 Referência<br />

Alguns aplicativos requerem módulos separa<strong>do</strong>s carregáveis pelo kernel. Se<br />

você pretende usar um aplicativo de 32 bits desse tipo em um ambiente de<br />

sistema de 64 bits, entre em contato com o prove<strong>do</strong>r <strong>do</strong> aplicativo e <strong>do</strong> <strong>SUSE</strong><br />

para verificar se a versão de 64 bits <strong>do</strong> módulo carregável pelo kernel e a versão<br />

compilada de 32 bits da API <strong>do</strong> kernel estão disponíveis para esse módulo.


Inicializan<strong>do</strong> e configuran<strong>do</strong> um<br />

sistema Linux<br />

A inicialização de um sistema Linux envolve vários componentes. Este capítulo descreve<br />

os princípios subjacentes e realça os componentes envolvi<strong>do</strong>s, além de abordar o conceito<br />

de runlevels e a configuração <strong>do</strong> sistema <strong>SUSE</strong> com osysconfig.<br />

8.1 Processo de inicialização <strong>do</strong> Linux<br />

O processo de inicialização <strong>do</strong> Linux consiste em vários estágios, e cada um deles é<br />

representa<strong>do</strong> por outro componente. A lista a seguir resume o processo de inicialização<br />

e apresenta to<strong>do</strong>s os principais componentes envolvi<strong>do</strong>s.<br />

1. BIOS Depois que o computa<strong>do</strong>r é desliga<strong>do</strong>, o BIOS inicializa a tela e o<br />

tecla<strong>do</strong> e testa a memória principal. Até esse estágio, a máquina não acessa<br />

nenhuma mídia de armazenamento em massa. Em seguida, as informações sobre<br />

a data e o horário atuais e sobre os periféricos mais importantes são carregadas<br />

<strong>do</strong>s valores <strong>do</strong> CMOS. Quan<strong>do</strong> o primeiro disco rígi<strong>do</strong> e sua geometria são<br />

reconheci<strong>do</strong>s, o controle <strong>do</strong> sistema passa <strong>do</strong> BIOS para o carrega<strong>do</strong>r de boot.<br />

2. Carrega<strong>do</strong>r de boot O primeiro setor de da<strong>do</strong>s físico de 512 bytes <strong>do</strong> primeiro<br />

disco rígi<strong>do</strong> é carrega<strong>do</strong> na memória principal e o carrega<strong>do</strong>r de boot existente<br />

no início desse setor assume o controle. Os coman<strong>do</strong>s executa<strong>do</strong>s pelo carrega<strong>do</strong>r<br />

de boot determinam a parte restante <strong>do</strong> processo de boot. Desse mo<strong>do</strong>, os<br />

primeiros 512 bytes <strong>do</strong> primeiro disco rígi<strong>do</strong> são chama<strong>do</strong>s de MBR (Master<br />

Boot Record - Registro Mestre de Inicialização). O carrega<strong>do</strong>r de boot passa o<br />

controle para o sistema operacional real, nesse caso, o kernel Linux. Mais<br />

8<br />

Inicializan<strong>do</strong> e configuran<strong>do</strong> um sistema Linux 185


186 Referência<br />

informações sobre o GRUB, o carrega<strong>do</strong>r de boot <strong>do</strong> Linux, podem ser<br />

encontradas no Capítulo 9, O Carrega<strong>do</strong>r de Boot (p 201).<br />

3. Kernel e initramfs Para passar o controle <strong>do</strong> sistema, o carrega<strong>do</strong>r de boot<br />

carrega na memória o kernel e um sistema de arquivos inicial basea<strong>do</strong> em RAM<br />

(initramfs). O conteú<strong>do</strong> <strong>do</strong> ramfs inicial pode ser usa<strong>do</strong> diretamente pelo kernel.<br />

O init ramfs contém um pequeno executável chama<strong>do</strong> init que realiza a montagem<br />

<strong>do</strong> sistema de arquivos raiz. Em versões anteriores <strong>do</strong> <strong>SUSE</strong> Linux, essas tarefas<br />

eram realizadas pelo initrd e linuxrc, respectivamente. Para obter mais<br />

informações sobre o initramfs, consulte a Seção 8.1.1, “initramfs” (p 186).<br />

4. init no initramfs Este programa executa todas as ações necessárias para<br />

montar o sistema de arquivos raiz adequa<strong>do</strong>, por exemplo, fornecer a<br />

funcionalidade de kernel para o sistema de arquivos e os drivers de dispositivo<br />

necessários aos controla<strong>do</strong>res de armazenamento em massa com udev. Uma vez<br />

encontra<strong>do</strong> o sistema de arquivos raiz, ele é verifica<strong>do</strong> quanto a erros e monta<strong>do</strong>.<br />

Se esse procedimento for bem-sucedi<strong>do</strong>, o initramfs será limpo e o programa<br />

init no sistema de arquivos raiz será executa<strong>do</strong>. Para obter mais informações<br />

sobre o init, consulte a Seção 8.1.2, “init no initramfs” (p 187). Há mais<br />

informações a respeito <strong>do</strong> udev no Capítulo 12, Gerenciamento de dispositivo<br />

de kernel dinâmico com udev (p 261).<br />

5. init O init realiza a inicialização <strong>do</strong> sistema através de diversos níveis,<br />

<strong>of</strong>erecen<strong>do</strong> funcionalidades diferentes. Ele é descrito na Seção 8.2, “O processo<br />

init” (p 189).<br />

8.1.1 initramfs<br />

initramfs é um pequeno arquivo cpio que pode ser carrega<strong>do</strong> pelo kernel em um disco<br />

RAM. Ele fornece um ambiente Linux mínimo que permite a execução de programas<br />

antes da montagem <strong>do</strong> sistema de arquivos raiz. Esse ambiente é carrega<strong>do</strong> na memória<br />

pelas rotinas de BIOS e não têm requisitos de hardware específicos, além de memória<br />

suficiente. O initramfs deve sempre fornecer um executável chama<strong>do</strong> init que deve<br />

executar o programa init no sistema de arquivos raiz para a continuação <strong>do</strong> processo<br />

de boot.<br />

Antes da montagem <strong>do</strong> sistema de arquivos raiz e a inicialização <strong>do</strong> sistema operacional,<br />

o kernel precisa <strong>do</strong>s drivers correspondentes para acessar o dispositivo em que o sistema<br />

de arquivos raiz está localiza<strong>do</strong>. Esses drivers podem incluir drivers especiais para


determina<strong>do</strong>s tipos de unidades de disco rígi<strong>do</strong> ou até drivers de rede para acesso a um<br />

sistema de arquivos de rede. Os módulos necessários para o sistema de arquivos raiz<br />

podem ser carrega<strong>do</strong>s pelo init no initramfs. Após os módulos serem carrega<strong>do</strong>s, o udev<br />

fornece ao initramfs os dispositivos necessários. O initramfs está disponível durante<br />

to<strong>do</strong> o processo de boot. Assim, é possível manipular to<strong>do</strong>s os eventos de dispositivo<br />

gera<strong>do</strong>s durante o boot.<br />

Se você precisar mudar o hardware (discos rígi<strong>do</strong>s) em um sistema instala<strong>do</strong> e esse<br />

hardware necessitar da existência de diversos drivers no kernel durante o boot, será<br />

necessário atualizar o initramfs. Para isso, basta chamar o mkinitrd, o que também<br />

era feito no initrd, predecessor <strong>do</strong> initramfs. A chamada de mkinitrd sem argumentos<br />

cria um initramfs. A chamada de mkinitrd -R cria um initrd. No <strong>SUSE</strong> Linux, os<br />

módulos a serem carrega<strong>do</strong>s são especifica<strong>do</strong>s pela variável INITRD_MODULES em<br />

/etc/sysconfig/kernel. Após a instalação, essa variável é definida<br />

automaticamente com o valor correto. Os módulos são carrega<strong>do</strong>s na mesma ordem<br />

em que são exibi<strong>do</strong>s em INITRD_MODULES. Isso será especialmente importante se<br />

vários drivers SCSI forem usa<strong>do</strong>s, pois, caso contrário, os nomes <strong>do</strong>s discos rígi<strong>do</strong>s<br />

seriam muda<strong>do</strong>s. Em suma, seria suficiente apenas carregar os drivers necessários para<br />

acessar o sistema de arquivos raiz. Contu<strong>do</strong>, to<strong>do</strong>s os drivers SCSI necessários à<br />

instalação são carrega<strong>do</strong>s por meio <strong>do</strong> initramfs ou initrd porque o carregamento<br />

posterior poderia ser problemático.<br />

IMPORTANTE: Atualizan<strong>do</strong> o initramfs ou o initrd<br />

O carrega<strong>do</strong>r de boot carrega o initramfs ou initrd da mesma maneira que o<br />

kernel. Não é necessário reinstalar o GRUB após a atualização <strong>do</strong> initramfs ou<br />

initrd, pois o GRUB procura o arquivo correto no diretório durante a<br />

inicialização.<br />

8.1.2 init no initramfs<br />

O principal objetivo <strong>do</strong> init no initramfs é preparar a montagem <strong>do</strong> sistema de arquivos<br />

raiz e o acesso a este. Dependen<strong>do</strong> da configuração <strong>do</strong> sistema, o init é responsável<br />

pelas tarefas a seguir.<br />

Carregamento de módulos Kernel<br />

Dependen<strong>do</strong> da configuração <strong>do</strong> seu hardware, drivers especiais podem ser<br />

necessários para acessar os componentes de hardware <strong>do</strong> computa<strong>do</strong>r (sen<strong>do</strong> que<br />

o componente mais importante é a unidade de disco rígi<strong>do</strong>). Para acessar o sistema<br />

Inicializan<strong>do</strong> e configuran<strong>do</strong> um sistema Linux 187


188 Referência<br />

de arquivos raiz final, o kernel precisa carregar os drivers adequa<strong>do</strong>s <strong>do</strong> sistema<br />

de arquivos.<br />

Fornecen<strong>do</strong> arquivos de bloco especiais<br />

Para cada módulo carrega<strong>do</strong>, o kernel gera eventos de dispositivo. O udev gerencia<br />

esses eventos e gera os arquivos especiais de dispositivo necessários em um sistema<br />

de arquivos RAM em /dev. Sem esses arquivos especiais, o sistema de arquivos<br />

não estaria acessível.<br />

Gerenciamento de configurações RAID e LVM<br />

Se você tiver configura<strong>do</strong> o sistema para armazenar o sistema de arquivos raiz na<br />

RAID ou LVM, o init configurará a LVM ou a RAID para permitir acesso posterior<br />

ao sistema de arquivos raiz. Informações sobre a RAID podem ser encontradas na<br />

Seção 2.2, “Configuração de RAID de s<strong>of</strong>tware” (p 63). Informações sobre a LVM<br />

podem ser encontradas na Seção 2.1, “Configuração da LVM” (p 55).<br />

Gerenciamento de conexões de rede<br />

Se você tiver configura<strong>do</strong> o sistema para usar um sistema de arquivos raiz monta<strong>do</strong><br />

em rede (via NFS), o init deverá ter certeza de que os drivers de rede corretos foram<br />

carrega<strong>do</strong>s e de que estejam configura<strong>do</strong>s para permitir acesso ao sistema de<br />

arquivos raiz.<br />

Quan<strong>do</strong> o init é chama<strong>do</strong> durante a primeira inicialização como parte <strong>do</strong> processo de<br />

instalação, suas tarefas são diferentes daquelas mencionadas anteriormente:<br />

Localização da mídia de instalação<br />

Quan<strong>do</strong> o processo de instalação é inicia<strong>do</strong>, a máquina carrega um kernel de<br />

instalação e um initrd especial com o instala<strong>do</strong>r <strong>do</strong> YaST proveniente da mídia de<br />

instalação. O instala<strong>do</strong>r <strong>do</strong> YaST, que é executa<strong>do</strong> em um sistema de arquivos<br />

RAM, precisa ter informações sobre a localização da mídia de instalação para<br />

acessá-la e instalar o sistema operacional.<br />

Inicialização <strong>do</strong> reconhecimento de hardware e carregamento <strong>do</strong>s módulos kernel<br />

adequa<strong>do</strong>s<br />

Como menciona<strong>do</strong> na Seção 8.1.1, “initramfs” (p 186), o processo de boot inicia<br />

com um conjunto mínimo de drivers que pode ser usa<strong>do</strong> com a maioria das<br />

configurações de hardware. O init inicia um processo de exploração de hardware<br />

que determina o conjunto de drivers adequa<strong>do</strong> para sua configuração de hardware.<br />

Esses valores são posteriormente grava<strong>do</strong>s em INITRD_MODULES no /etc/<br />

sysconfig/kernel a fim de habilitar qualquer processo de boot subsequente


para usar um initrd personaliza<strong>do</strong> ou em um arquivo /etc/sysconfig/<br />

hardware/hwconfig-* se o dispositivo não for necessário durante o processo<br />

de boot. Durante o processo de instalação, o init carrega esse conjunto de módulos.<br />

Carregamento <strong>do</strong> sistema de instalação ou <strong>do</strong> sistema de recuperação<br />

Depois que o hardware for reconheci<strong>do</strong> adequadamente, os drivers adequa<strong>do</strong>s<br />

forem carrega<strong>do</strong>s e o udev tiver cria<strong>do</strong> os arquivos especiais de dispositivo, o init<br />

iniciará o sistema de instalação, que contém o instala<strong>do</strong>r <strong>do</strong> YaST ou o sistema de<br />

recuperação.<br />

Inicialização <strong>do</strong> YaST<br />

Por fim, o init inicia o YaST que, por sua vez, inicia a instalação <strong>do</strong> pacote e a<br />

configuração <strong>do</strong> sistema.<br />

8.2 O processo init<br />

O programa init é o processo com número de ID 1. Ele é responsável pela inicialização<br />

<strong>do</strong> sistema da maneira necessária e, além disso, tem uma função especial. Ele é inicia<strong>do</strong><br />

diretamente pelo kernel e resiste ao sinal 9, que normalmente elimina os processos.<br />

To<strong>do</strong>s os outros programas são inicia<strong>do</strong>s diretamente pelo init ou por um de seus<br />

processos-filho.<br />

O init é configura<strong>do</strong> centralmente no arquivo /etc/inittab em que os runlevels<br />

são defini<strong>do</strong>s (consulte a Seção 8.2.1, “Runlevels” (p 189)). O arquivo também especifica<br />

os serviços e os daemons disponíveis em cada um <strong>do</strong>s níveis. Dependen<strong>do</strong> das entradas<br />

em /etc/inittab, vários scripts são executa<strong>do</strong>s pelo init. Para fins de clareza, esses<br />

scripts, chama<strong>do</strong>s scripts init, residem no diretório /etc/init.d (consulte a<br />

Seção 8.2.2, “Scripts Init” (p 192)).<br />

To<strong>do</strong> o processo de inicialização e encerramento <strong>do</strong> sistema é manti<strong>do</strong> pelo init. Desse<br />

ponto de vista, o kernel pode ser considera<strong>do</strong> um processo em segun<strong>do</strong> plano cuja tarefa<br />

é manter to<strong>do</strong>s os outros processos e ajustar o horário da CPU e o acesso ao hardware,<br />

de acor<strong>do</strong> com as solicitações de outros programas.<br />

8.2.1 Runlevels<br />

No Linux, os runlevels definem como o sistema é inicia<strong>do</strong> e quais serviços estão<br />

disponíveis no sistema em execução. Após a inicialização, o sistema é inicia<strong>do</strong> conforme<br />

Inicializan<strong>do</strong> e configuran<strong>do</strong> um sistema Linux 189


defini<strong>do</strong> em /etc/inittab na linha initdefault. Normalmente, é 3 ou 5.<br />

Consulte a Tabela 8.1, “Runlevels disponíveis” (p 190). Como alternativa, é possível<br />

especificar o runlevel durante a inicialização (no prompt, por exemplo). Os parâmetros<br />

que não forem avalia<strong>do</strong>s diretamente pelo próprio kernel serão passa<strong>do</strong>s para o init.<br />

Tabela 8.1 Runlevels disponíveis<br />

Runlevel<br />

0<br />

S<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

190 Referência<br />

Descrição<br />

Desligamento <strong>do</strong> sistema<br />

Mo<strong>do</strong> de usuário único; <strong>do</strong> prompt de inicialização, somente com<br />

mapeamento de tecla<strong>do</strong> americano<br />

Mo<strong>do</strong> de usuário único<br />

Mo<strong>do</strong> multiusuário local sem rede remota (NFS, etc.)<br />

Mo<strong>do</strong> multiusuário completo com rede<br />

Não usa<strong>do</strong><br />

Mo<strong>do</strong> multiusuário completo com rede e gerencia<strong>do</strong>r de vídeo X<br />

— KDM, GDM ou XDM<br />

Reinicialização <strong>do</strong> sistema<br />

IMPORTANTE: Evite o Nível de execução 2 com uma partição montada<br />

via NFS<br />

Você não deverá usar o nível de execução 2 se seu sistema montar uma partição<br />

como /usr através <strong>do</strong> NFS. O sistema pode comportar-se de forma inesperada<br />

se as bibliotecas ou arquivos de programa estiverem ausentes pois o serviço<br />

NFS não está disponível no nível de execução 2 (mo<strong>do</strong> multiusuário local sem<br />

rede remota).<br />

Para mudar os níveis de execução durante a execução <strong>do</strong> sistema, digite telinit e<br />

o número correspondente como um argumento. Somente o administra<strong>do</strong>r <strong>do</strong> sistema


pode fazer isso. A lista a seguir resume os coman<strong>do</strong>s mais importantes na área de<br />

runlevel.<br />

telinit 1 ou shut<strong>do</strong>wn now<br />

O sistema muda para o mo<strong>do</strong> de usuário único. Esse mo<strong>do</strong> é usa<strong>do</strong> para manutenção<br />

<strong>do</strong> sistema e tarefas de administração.<br />

telinit 3<br />

To<strong>do</strong>s os programas e serviços essenciais (incluin<strong>do</strong> a rede) são inicia<strong>do</strong>s, e os<br />

usuários comuns podem efetuar login e trabalhar no sistema sem um ambiente<br />

gráfico.<br />

telinit 5<br />

O ambiente gráfico é habilita<strong>do</strong>. Geralmente um gerencia<strong>do</strong>r de exibição como<br />

XDM, GDM ou KDM é inicia<strong>do</strong>. Se o login automático estiver habilita<strong>do</strong>, o usuário<br />

local será conecta<strong>do</strong> ao gerencia<strong>do</strong>r de janelas pré-seleciona<strong>do</strong> (GNOME ou KDE<br />

ou qualquer outro gerencia<strong>do</strong>r de janelas).<br />

telinit 0 ou shut<strong>do</strong>wn -h now<br />

O sistema é desliga<strong>do</strong>.<br />

telinit 6 ou shut<strong>do</strong>wn -r now<br />

O sistema é desliga<strong>do</strong> e, em seguida, reinicializa<strong>do</strong>.<br />

Runlevel 5 é o runlevel padrão em todas as instalações padrão <strong>do</strong> <strong>SUSE</strong> Linux. É<br />

solicita<strong>do</strong> o login <strong>do</strong>s usuários com uma interface gráfica ou o usuário padrão está<br />

conecta<strong>do</strong> automaticamente. Se o runlevel padrão for 3, o Sistema Win<strong>do</strong>ws X deverá<br />

ser configura<strong>do</strong> adequadamente, conforme descrito no Capítulo 14, O sistema X Win<strong>do</strong>w<br />

(p 281), antes que o runlevel seja alterna<strong>do</strong> para 5. Se isso for feito, verifique se o sistema<br />

funciona da maneira desejada, digitan<strong>do</strong> telinit 5. Se tu<strong>do</strong> ocorrer conforme o<br />

espera<strong>do</strong>, você poderá usar o YaST para definir o runlevel padrão como 5.<br />

Geralmente, há duas situações quan<strong>do</strong> os runlevels são muda<strong>do</strong>s. Primeiro, os scripts<br />

de parada <strong>do</strong> runlevel atual são inicia<strong>do</strong>s, fechan<strong>do</strong> alguns programas essenciais ao<br />

runlevel atual. Em seguida, os scripts <strong>do</strong> novo runlevel são inicia<strong>do</strong>s. Na maioria <strong>do</strong>s<br />

casos, vários programas são inicia<strong>do</strong>s. Por exemplo, ocorre o seguinte quan<strong>do</strong> o runlevel<br />

3 muda para 5:<br />

1. O administra<strong>do</strong>r (root) solicita que o init mude para um nível de execução<br />

diferente digitan<strong>do</strong> telinit 5.<br />

Inicializan<strong>do</strong> e configuran<strong>do</strong> um sistema Linux 191


192 Referência<br />

2. O init consulta seu arquivo de configuração (/etc/inittab) e determina se<br />

ele deve iniciar /etc/init.d/rc com o novo runlevel como parâmetro.<br />

3. O rc chama to<strong>do</strong>s os scripts de parada <strong>do</strong> runlevel atual, mas somente aqueles<br />

para os quais não há script de início no novo runlevel. Neste exemplo, to<strong>do</strong>s os<br />

scripts residem em /etc/init.d/rc3.d (o runlevel antigo era 3) e iniciam<br />

com K. O número depois de K especifica a ordem de início, pois algumas<br />

dependências devem ser consideradas.<br />

4. Os scripts <strong>do</strong> novo runlevel são os últimos a serem inicia<strong>do</strong>s. Neste exemplo,<br />

eles estão em /etc/init.d/rc5.d e começam com S. O mesmo<br />

procedimento relativo à ordem em que eles foram inicia<strong>do</strong> se aplica nesse caso.<br />

Ao mudar para o mesmo runlevel que o atual, o init somente verifica as mudanças em<br />

/etc/inittab e inicia as etapas adequadas, por exemplo, para iniciar um getty<br />

em outra interface. A mesma funcionalidade pode ser obtida com o coman<strong>do</strong> telinit<br />

q.<br />

8.2.2 Scripts Init<br />

Há <strong>do</strong>is tipos de scripts em /etc/init.d:<br />

Scripts executa<strong>do</strong>s diretamente pelo init<br />

Isso só ocorrerá durante o processo de boot ou se um encerramento imediato <strong>do</strong><br />

sistema for inicia<strong>do</strong> (falha de energia ou pressionamento de Ctrl + Alt + Del ).<br />

A execução desses scripts é definida em /etc/inittab.<br />

Scripts executa<strong>do</strong>s indiretamente pelo init<br />

São executa<strong>do</strong>s durante a mudança <strong>do</strong> runlevel e sempre chamam o script master<br />

/etc/init.d/rc, que garante a ordem correta <strong>do</strong>s scripts relevantes.<br />

To<strong>do</strong>s os scripts estão localiza<strong>do</strong>s em /etc/init.d. Scripts que são executa<strong>do</strong>s<br />

durante o boot são chama<strong>do</strong>s através de links simbólicos de /etc/init.d/boot<br />

.d. Os scripts para mudança <strong>do</strong> nível de execução são chama<strong>do</strong>s através de links<br />

simbólicos em um <strong>do</strong>s subdiretórios (/etc/init.d/rc0.d para /etc/init.d/<br />

rc6.d). Isso só serve para fins de clareza, além de evitar scripts duplica<strong>do</strong>s se forem<br />

usa<strong>do</strong>s em vários runlevels. Como to<strong>do</strong>s os scripts podem ser executa<strong>do</strong>s como de início<br />

ou de parada, eles devem entender os parâmetros start e stop. Os scripts também<br />

entendem as opções restart, reload, force-reload e status. Essas diversas


opções são explicadas na Tabela 8.2, “Opções possíveis <strong>do</strong> script init” (p 193). Os scripts<br />

executa<strong>do</strong>s diretamente pelo init não têm esses links. Eles são executa<strong>do</strong>s<br />

independentemente <strong>do</strong> runlevel, quan<strong>do</strong> necessário.<br />

Tabela 8.2 Opções possíveis <strong>do</strong> script init<br />

Opção<br />

start<br />

stop<br />

restart<br />

reload<br />

force-reload<br />

status<br />

Descrição<br />

Inicia o serviço.<br />

Pára o serviço.<br />

Se o serviço estiver sen<strong>do</strong> executa<strong>do</strong>, o pára e o reinicia.<br />

Se não estiver, o inicia.<br />

Recarrega a configuração sem parar e reiniciar o serviço.<br />

Recarrega a configuração se o serviço suportá-la. Caso<br />

contrário, age como se restart tivesse si<strong>do</strong> ativa<strong>do</strong>.<br />

Mostra o status atual <strong>do</strong> serviço.<br />

Os links em cada subdiretório específico de runlevel possibilitam a associação de scripts<br />

a diferentes runlevels. Durante a instalação ou desinstalação de pacotes, esses links são<br />

adiciona<strong>do</strong>s e removi<strong>do</strong>s com a ajuda <strong>do</strong> programa insserv (ou usan<strong>do</strong> /usr/lib/<br />

lsb/install_initd, que é um script que chama esse programa). Consulte a página<br />

de manual insserv(8) para obter detalhes.<br />

Veja a seguir uma pequena apresentação <strong>do</strong>s scripts de boot e de parada inicia<strong>do</strong>s<br />

primeiro e por último, respectivamente, bem como uma explicação <strong>do</strong> script de<br />

manutenção.<br />

boot<br />

Executa<strong>do</strong> na inicialização <strong>do</strong> sistema usan<strong>do</strong> diretamente o init. É independente<br />

<strong>do</strong> runlevel escolhi<strong>do</strong> e só é executa<strong>do</strong> uma vez. Nesse momento, os sistemas de<br />

arquivos proc e pts são monta<strong>do</strong>s e o blogd (boot logging daemon) é ativa<strong>do</strong>.<br />

Se o sistema for inicializa<strong>do</strong> pela primeira vez após uma atualização ou instalação,<br />

a configuração inicial <strong>do</strong> sistema será iniciada.<br />

Inicializan<strong>do</strong> e configuran<strong>do</strong> um sistema Linux 193


O daemon blogd é um serviço inicia<strong>do</strong> por boot e rc antes de qualquer outro. Ele<br />

será para<strong>do</strong> depois que os acionamentos feitos pelos scripts acima (por meio da<br />

execução de vários subscripts, por exemplo) forem concluí<strong>do</strong>s. O blogd gravará a<br />

saída de tela no arquivo de registro /var/log/boot.msg, mas somente se e<br />

quan<strong>do</strong> /var for monta<strong>do</strong> para leitura-gravação. Caso contrário, o blogd armazenará<br />

no buffer to<strong>do</strong>s os da<strong>do</strong>s de tela até que /var se torne disponível. Obtenha mais<br />

informações sobre o blogd na página de manual blogd(8).<br />

O script boot também é responsável pela inicialização de to<strong>do</strong>s os scripts em<br />

/etc/init.d/boot.d com um nome inicia<strong>do</strong> com S. Nesse local, to<strong>do</strong>s os<br />

sistemas de arquivos são verifica<strong>do</strong>s e os dispositivos de loop são configura<strong>do</strong>s se<br />

necessário. O horário <strong>do</strong> sistema também é defini<strong>do</strong>. Se ocorrer um erro durante a<br />

verificação e o reparo automáticos <strong>do</strong> sistema de arquivos, o administra<strong>do</strong>r <strong>do</strong><br />

sistema poderá intervir após digitar a senha raiz. Por fim, é executa<strong>do</strong> o script<br />

boot.local.<br />

boot.local<br />

Digite aqui coman<strong>do</strong>s adicionais a serem executa<strong>do</strong>s na inicialização antes de<br />

mudar para um runlevel. Ele pode ser compara<strong>do</strong> ao AUTOEXEC.BAT em sistemas<br />

DOS.<br />

boot.setup<br />

Este script é executa<strong>do</strong> quan<strong>do</strong> o mo<strong>do</strong> de usuário único é muda<strong>do</strong> para outro<br />

runlevel e é responsável por várias configurações básicas, como o layout <strong>do</strong> tecla<strong>do</strong><br />

e a inicialização <strong>do</strong>s consoles virtuais.<br />

halt<br />

Este script é executa<strong>do</strong> somente durante a mudança para o nível de execução 0 ou<br />

6. Ele é executa<strong>do</strong> como halt ou reboot. O mo<strong>do</strong> como halt é chama<strong>do</strong><br />

determina se o sistema deve ser encerra<strong>do</strong> ou reinicializa<strong>do</strong>.<br />

rc<br />

194 Referência<br />

Este script chama os scripts de parada adequa<strong>do</strong>s <strong>do</strong> runlevel atual e os scripts de<br />

início <strong>do</strong> runlevel recém-seleciona<strong>do</strong>.<br />

Você pode criar seus próprios scripts e integrá-los facilmente no esquema descrito<br />

acima. Para obter instruções sobre como formatar, nomear e organizar scripts<br />

personaliza<strong>do</strong>s, consulte as especificações <strong>do</strong> LSB e as páginas de manual <strong>do</strong> init,<br />

init.d e insserv. Além disso, consulte as páginas de manual <strong>do</strong> startproc e<br />

killproc.


ATENÇÃO: Scripts init defeituosos podem desligar o seu sistema<br />

Scripts init defeituosos podem travar sua máquina. Edite esses scripts com<br />

muito cuida<strong>do</strong> e, se possível, submeta-os a testes detalha<strong>do</strong>s no ambiente<br />

multiusuário. Algumas informações úteis sobre os scripts init podem ser<br />

encontradas na Seção 8.2.1, “Runlevels” (p 189).<br />

Para criar um script init personaliza<strong>do</strong> para determina<strong>do</strong> programa ou serviço, use o<br />

arquivo /etc/init.d/skeleton como gabarito. Grave uma cópia desse arquivo<br />

com o novo nome e edite o programa relevante e nomes de arquivos, caminhos e outros<br />

detalhes necessários. Você também pode precisar aprimorar o script com suas próprias<br />

partes, de mo<strong>do</strong> que os acionamentos corretos sejam feitos pelo procedimento init.<br />

O bloco INIT INFO na parte superior é uma parte necessária <strong>do</strong> script e deve ser<br />

editada. Consulte o Exemplo 8.1, “Um bloco INIT INFO mínimo” (p 195).<br />

Exemplo 8.1 Um bloco INIT INFO mínimo<br />

### BEGIN INIT INFO<br />

# Provides: FOO<br />

# Required-Start: $syslog $remote_fs<br />

# Required-Stop: $syslog $remote_fs<br />

# Default-Start: 3 5<br />

# Default-Stop: 0 1 2 6<br />

# Description: Start FOO to allow XY and provide YZ<br />

### END INIT INFO<br />

Na primeira linha <strong>do</strong> bloco INFO, após Provides:, especifique o nome <strong>do</strong> programa<br />

ou serviço controla<strong>do</strong> pelo script init. Nas linhas Required-Start: e<br />

Required-Stop:, especifique to<strong>do</strong>s os serviços que precisam ser inicia<strong>do</strong>s ou<br />

para<strong>do</strong>s antes de o próprio serviço ser inicia<strong>do</strong> ou para<strong>do</strong>. Essas informações são usadas<br />

posteriormente para gerar a numeração <strong>do</strong>s nomes de script, como encontrada nos<br />

diretórios de runlevel. Após Default-Start: e Default-Stop:, especifique<br />

os runlevels em que o serviço deve ser inicia<strong>do</strong> ou para<strong>do</strong> automaticamente. Por fim,<br />

para Description:, forneça uma breve descrição <strong>do</strong> serviço em questão.<br />

Para criar os links <strong>do</strong>s diretórios de runlevel (/etc/init.d/rc?.d/) para os scripts<br />

correspondentes em /etc/init.d/, digite o coman<strong>do</strong> insserv<br />

new-script-name. O programa insserv avalia o cabeçalho INIT INFO para criar<br />

os links necessários para os scripts de início e parada nos diretórios de runlevel (/etc/<br />

init.d/rc?.d/). O programa também se encarrega da ordem correta de início e<br />

parada para cada runlevel, incluin<strong>do</strong> os números necessários nos nomes desses links.<br />

Inicializan<strong>do</strong> e configuran<strong>do</strong> um sistema Linux 195


196 Referência<br />

Se você preferir uma ferramenta gráfica para criar esses links, use o editor de runlevel<br />

forneci<strong>do</strong> pelo YaST, como descrito na Seção 8.2.3, “Configuran<strong>do</strong> serviços <strong>do</strong> sistema<br />

(runlevel) com o YaST” (p 196).<br />

Se um script já existir em /etc/init.d/, deve ser integra<strong>do</strong> ao esquema de runlevel<br />

existente. Crie os links nos diretórios de runlevel imediatamente com insserv ou por<br />

meio <strong>do</strong> serviço correspondente no editor de runlevel <strong>do</strong> YaST. As mudanças serão<br />

aplicadas durante a próxima reinicialização, e o novo serviço será inicia<strong>do</strong><br />

automaticamente.<br />

Não defina esses links manualmente. Se houver algum erro no bloco INFO, surgirão<br />

problemas quan<strong>do</strong> insserv for executa<strong>do</strong> posteriormente para algum outro serviço.<br />

O serviço adiciona<strong>do</strong> manualmente será removi<strong>do</strong> com a próxima execução de<br />

insserv.<br />

8.2.3 Configuran<strong>do</strong> serviços <strong>do</strong> sistema<br />

(runlevel) com o YaST<br />

Depois que o módulo YaST é inicia<strong>do</strong> com YaST → Sistema → Serviços <strong>do</strong> Sistema<br />

(Runlevel), ele exibe uma visão geral que lista to<strong>do</strong>s os serviços disponíveis e o status<br />

atual de cada um deles (desabilita<strong>do</strong> ou habilita<strong>do</strong>). Decida se o módulo deve ser usa<strong>do</strong><br />

no Mo<strong>do</strong> Simples ou no Mo<strong>do</strong> de Especialista. O Mo<strong>do</strong> Simples padrão deve ser<br />

suficiente na maior parte <strong>do</strong>s casos. A coluna à esquerda mostra o nome <strong>do</strong> serviço, a<br />

coluna ao centro indica seu status atual e a coluna à direita fornece uma descrição<br />

resumida. Para o serviço seleciona<strong>do</strong>, uma descrição mais detalhada é fornecida na<br />

parte inferior da janela. Para habilitar um serviço, selecione-o na tabela e, em seguida,<br />

selecione Habilitar. As mesmas etapas se aplicam para desabilitar um serviço.


Figura 8.1 Serviços <strong>do</strong> Sistema (Runlevel)<br />

Para ter mais controle sobre os runlevels em que um serviço é inicia<strong>do</strong> ou para<strong>do</strong> ou<br />

para mudar o runlevel padrão, selecione primeiro Mo<strong>do</strong> de Especialista. O runlevel<br />

padrão atual ou o “initdefault” (o runlevel em que o sistema é inicializa<strong>do</strong> por padrão)<br />

é exibi<strong>do</strong> na parte superior. Normalmente, o runlevel padrão de um sistema <strong>SUSE</strong> Linux<br />

é o 5 (mo<strong>do</strong> multiusuário completo com rede e X). Uma alternativa adequada poderia<br />

ser o runlevel 3 (mo<strong>do</strong> multiusuário completo com rede).<br />

Esta caixa de diálogo <strong>do</strong> YaST permite a seleção de um <strong>do</strong>s runlevels (como lista<strong>do</strong> na<br />

Tabela 8.1, “Runlevels disponíveis” (p 190)) como o novo padrão. Além disso, use a<br />

tabela mostrada nessa janela para habilitar ou desabilitar serviços e daemons individuais.<br />

A tabela lista os serviços e daemons disponíveis, mostra se eles estão habilita<strong>do</strong>s no<br />

sistema e, se estiverem, para quais runlevels. Após selecionar uma das linhas com o<br />

mouse, clique nas caixas de seleção que representam os runlevels (B, 0, 1, 2, 3, 5, 6 e<br />

S) para definir os runlevels em que o serviço ou daemon seleciona<strong>do</strong> deve estar em<br />

execução. O runlevel 4 é inicialmente indefini<strong>do</strong> para permitir a criação de um runlevel<br />

personaliza<strong>do</strong>. Uma breve descrição <strong>do</strong> serviço ou daemon seleciona<strong>do</strong> no momento é<br />

fornecida abaixo da visão geral da tabela.<br />

Com Iniciar, Parar ou Atualizar, decida se um serviço deve ser ativa<strong>do</strong>. Situação da<br />

Renovação verifica o status atual. Inicializar/Reinicializar permite selecionar se você<br />

deseja aplicar as mudanças ao sistema ou restaurar as configurações existentes antes<br />

Inicializan<strong>do</strong> e configuran<strong>do</strong> um sistema Linux 197


198 Referência<br />

da inicialização <strong>do</strong> editor de runlevel. A seleção de Concluir grava no disco as<br />

configurações mudadas.<br />

ATENÇÃO: Configurações de runlevel defeituosas podem danificar o<br />

sistema<br />

Configurações de runlevel defeituosas podem tornar um sistema inutilizável.<br />

Antes de aplicar as mudanças, tenha absoluta certeza sobre suas conseqüências.<br />

8.3 Configuração <strong>do</strong> sistema via<br />

/etc/sysconfig<br />

A configuração principal <strong>do</strong> <strong>SUSE</strong> Linux é controlada pelos arquivos de configuração<br />

em /etc/sysconfig. Os arquivos individuais em /etc/sysconfig são li<strong>do</strong>s<br />

somente pelos scripts para os quais são relevantes. Isso garante que as configurações<br />

de rede, por exemplo, somente precisem ser analisadas pelos scripts relaciona<strong>do</strong>s à<br />

rede. Muitos outros arquivos de configuração <strong>do</strong> sistema são gera<strong>do</strong>s de acor<strong>do</strong> com<br />

as configurações em /etc/sysconfig. Essa tarefa é executada pelo SuSEconfig.<br />

Por exemplo, se você mudar a configuração da rede, o SuSEconfig também poderá<br />

fazer mudanças no arquivo /etc/host.conf, pois esse é um <strong>do</strong>s arquivos relevantes<br />

para a configuração da rede. Esse conceito permite realizar mudanças básicas na<br />

configuração sem a necessidade de reinicializar o sistema.<br />

Há duas maneiras de editar a configuração <strong>do</strong> sistema. Use o Editor sysconfig <strong>do</strong> YaST<br />

ou edite manualmente os arquivos de configuração.<br />

8.3.1 Mudan<strong>do</strong> a configuração <strong>do</strong> sistema<br />

usan<strong>do</strong> o Editor sysconfig <strong>do</strong> YaST<br />

O editor sysconfig <strong>do</strong> YaST fornece um front end fácil de usar para a configuração <strong>do</strong><br />

sistema. Sem conhecimento <strong>do</strong> local da variável de configuração que precisa ser mudada,<br />

você pode apenas usar a função de pesquisa interna desse módulo, mudar o valor dessa<br />

variável conforme o necessário, e permitir que o YaST se encarregue de aplicar essas<br />

mudanças, atualizan<strong>do</strong> as configurações que dependem <strong>do</strong>s valores defini<strong>do</strong>s no<br />

sysconfig e reinician<strong>do</strong> os serviços.


ATENÇÃO: A modificação <strong>do</strong>s arquivos /etc/sysconfig/* pode danificar a<br />

instalação<br />

Não modifique os arquivos /etc/sysconfig se você não tiver experiência<br />

e conhecimento prévios. Isso pode causar sérios danos ao sistema. Os arquivos<br />

em /etc/sysconfig contêm um pequeno comentário sobre cada variável<br />

para explicar seu efeito real.<br />

Figura 8.2 Configuração <strong>do</strong> sistema usan<strong>do</strong> o Editor sysconfig<br />

A caixa de diálogo <strong>do</strong> Editor sysconfig <strong>do</strong> YaST é divida em três partes. A parte esquerda<br />

mostra uma tela de árvore de todas as variáveis configuráveis. Quan<strong>do</strong> você seleciona<br />

uma variável, a parte direita exibe a seleção e a definição atuais dessa variável. Abaixo,<br />

uma terceira janela exibe uma pequena descrição da finalidade da variável, os valores<br />

possíveis, o valor padrão e o arquivo de configuração <strong>do</strong> qual essa variável se origina.<br />

A caixa de diálogo também fornece informações sobre qual script de configuração é<br />

executa<strong>do</strong> após a mudança da variável e qual novo serviço é inicia<strong>do</strong> como resulta<strong>do</strong><br />

da mudança. O YaST solicita a confirmação das mudanças e informa quais scripts serão<br />

executa<strong>do</strong>s depois que você sair da caixa de diálogo selecionan<strong>do</strong> Concluir. Além disso,<br />

selecione os serviços e scripts que devem ser ignora<strong>do</strong>s agora e inicia<strong>do</strong>s mais tarde.<br />

O YaST aplica todas as mudanças automaticamente e reinicia os serviços envolvi<strong>do</strong>s<br />

para que elas sejam efetivadas.<br />

Inicializan<strong>do</strong> e configuran<strong>do</strong> um sistema Linux 199


200 Referência<br />

8.3.2 Mudan<strong>do</strong> manualmente a<br />

configuração <strong>do</strong> sistema<br />

Para mudar manualmente a configuração <strong>do</strong> sistema, faça o seguinte<br />

1 Torne-se root.<br />

2 Coloque o sistema no mo<strong>do</strong> de usuário único (nível de execução 1) com init<br />

1.<br />

3 Mude os arquivos de configuração, conforme o necessário, com um editor de<br />

sua preferência.<br />

Se você não usar o YaST para mudar os arquivos de configuração em /etc/<br />

sysconfig, verifique se os valores das variáveis vazias estão representa<strong>do</strong>s<br />

por duas aspas (KEYTABLE="") e se os valores com espaços em branco estão<br />

delimita<strong>do</strong>s por aspas. Os valores constituí<strong>do</strong>s de somente uma palavra não<br />

precisam ficar entre aspas.<br />

4 Execute SuSEconfig para verificar se as mudanças foram efetivadas.<br />

5 Coloque o sistema de volta no runlevel anterior com o coman<strong>do</strong> init<br />

default_runlevel. Substitua runlevel_padrão pelo runlevel padrão<br />

<strong>do</strong> sistema. Escolha 5 para retornar ao mo<strong>do</strong> multiusuário completo com rede e<br />

X ou escolha 3 se preferir trabalhar no mo<strong>do</strong> multiusuário completo com rede.<br />

Esse procedimento é relevante principalmente durante a mudança das configurações<br />

em to<strong>do</strong> o sistema, como a configuração da rede. Pequenas mudanças não devem<br />

requerer alternar para o mo<strong>do</strong> de usuário único, mas você pode fazer isso para ter certeza<br />

de que to<strong>do</strong>s os programas em questão foram reinicia<strong>do</strong>s corretamente.<br />

DICA: Definin<strong>do</strong> a configuração automatizada <strong>do</strong> sistema<br />

Para desabilitar a configuração automatizada <strong>do</strong> sistema pelo SuSEconfig, defina<br />

a variável ENABLE_<strong>SUSE</strong>CONFIG em /etc/sysconfig/suseconfig como<br />

no. Não desabilite o SuSEconfig se quiser usar o suporte de instalação <strong>do</strong> <strong>SUSE</strong>.<br />

Também é possível desabilitar parcialmente a configuração automática.


O Carrega<strong>do</strong>r de Boot<br />

Este capítulo descreve como configurar o GRUB, o carrega<strong>do</strong>r de boot utiliza<strong>do</strong> no<br />

<strong>SUSE</strong> Linux. Para realizar todas as configurações, há disponível um módulo especial<br />

YaST. Se você não estiver familiariza<strong>do</strong> com a idéia de entrar para o Linux, leia as<br />

seções a seguir para obter algumas informações de apoio. Este capítulo também descreve<br />

alguns problemas freqüentemente encontra<strong>do</strong>s quan<strong>do</strong> se inicializa com o GRUB e<br />

mostra as soluções para eles.<br />

Este capítulo se concentra no gerenciamento de boot e na configuração <strong>do</strong> carrega<strong>do</strong>r<br />

de boot <strong>do</strong> GRUB. O procedimento de boot como um to<strong>do</strong> é detalha<strong>do</strong> no Capítulo 8,<br />

Inicializan<strong>do</strong> e configuran<strong>do</strong> um sistema Linux (p 185). O carrega<strong>do</strong>r de boot representa<br />

a interface entre a máquina (BIOS) e o sistema operacional (<strong>SUSE</strong> Linux). A<br />

configuração <strong>do</strong> carrega<strong>do</strong>r de boot influencia diretamente o boot <strong>do</strong> sistema operacional.<br />

Os termos a seguir aparecem com freqüência neste capítulo e talvez precisem de alguma<br />

explicação:<br />

Registro Mestre de Inicialização<br />

A estrutura <strong>do</strong> MBR é definida por uma convenção que independe <strong>do</strong> sistema<br />

operacional. Os primeiros 446 bytes são reserva<strong>do</strong>s para o código <strong>do</strong> programa.<br />

Eles geralmente mantêm o programa <strong>do</strong> carrega<strong>do</strong>r de boot, neste caso, GRUB<br />

stage 1. Os próximos 64 bytes fornecem espaço para uma tabela de partição com<br />

até quatro entradas (consulte “Tipos de partição” (Capítulo 1, Instalação com o<br />

YaST, ↑Inicialização)). A tabela de partição contém informações sobre o<br />

particionamento <strong>do</strong> disco rígi<strong>do</strong> e sobre o tipo de sistema de arquivos. O sistema<br />

operacional precisa dessa tabela para lidar com o disco rígi<strong>do</strong>. Com o GRUB stage<br />

1 no MBR, exatamente uma partição deve ser marcada como ativa. Os <strong>do</strong>is últimos<br />

9<br />

O Carrega<strong>do</strong>r de Boot 201


202 Referência<br />

bytes <strong>do</strong> MBR devem conter um “número mágico” estático (AA55). Um MBR<br />

conten<strong>do</strong> um valor diferente é considera<strong>do</strong> como inváli<strong>do</strong> pelo BIOSs.<br />

Setores de Boot<br />

Os setores de boot são os primeiros setores das partições <strong>do</strong> disco rígi<strong>do</strong>, com a<br />

execução da partição estendida, que serve meramente como “container” para outras<br />

partições. Esses setores de boot têm 512 bytes de espaço para o código usa<strong>do</strong> para<br />

inicializar um sistema operacional instala<strong>do</strong> na partição respectiva. Isso se aplica<br />

aos setores de boot das partições formatadas <strong>do</strong> DOS, Win<strong>do</strong>ws e OS/2, que também<br />

contêm alguns da<strong>do</strong>s básicos importantes <strong>do</strong> sistema de arquivos. Por outro la<strong>do</strong>,<br />

os setores de boot das partições <strong>do</strong> Linux estão inicialmente vazios depois de se<br />

configurar um sistema de arquivos diferente <strong>do</strong> XFS. Portanto, uma partição <strong>do</strong><br />

Linux não é inicializável por si mesma, mesmo que contenha um kernel e um<br />

sistema váli<strong>do</strong> de arquivos raiz. Um setor de boot com código váli<strong>do</strong> para inicializar<br />

o sistema tem o mesmo número mágico que o MBR em seus <strong>do</strong>is últimos bytes<br />

(AA55).<br />

9.1 Selecionan<strong>do</strong> um carrega<strong>do</strong>r de<br />

boot<br />

Por padrão, o carrega<strong>do</strong>r de boot GRUB é usa<strong>do</strong> no <strong>SUSE</strong> Linux. No entanto, em alguns<br />

casos e para grupos especiais de hardwares e s<strong>of</strong>twares, o LILO pode ser necessário.<br />

Se você atualizar de uma versão mais antiga <strong>do</strong> <strong>SUSE</strong> Linux que usa LILO, este é<br />

instala<strong>do</strong>.<br />

No Banco de Da<strong>do</strong>s de Suporte, na palavra-chave LILO e em /usr/share/<strong>do</strong>c/<br />

packages/lilo, há informações disponíveis sobre a instalação e a configuração <strong>do</strong><br />

LILO.<br />

9.2 Inicializan<strong>do</strong> com o GRUB<br />

O GRUB (Grand Unified Bootloader) tem <strong>do</strong>is estágios. O stage1 consiste em 512 bytes<br />

e sua única tarefa é carregar o segun<strong>do</strong> estágio <strong>do</strong> carrega<strong>do</strong>r de boot. Depois disso, o<br />

stage2 é carrega<strong>do</strong>. Este estágio contém a parte principal <strong>do</strong> carrega<strong>do</strong>r de boot.


Em algumas configurações, um estágio intermediário 1.5 pode ser usa<strong>do</strong>, que localiza<br />

e carrega o estágio 2 de um sistema de arquivos apropria<strong>do</strong>. Se possível, este méto<strong>do</strong><br />

é escolhi<strong>do</strong> por padrão durante a instalação ou durante a configuração inicial <strong>do</strong> GRUB<br />

com o YaST.<br />

O stage2 consegue acessar vários sistemas de arquivos. Atualmente, são suporta<strong>do</strong>s o<br />

Ext2, Ext3, ReiserFS, Minix e o sistema de arquivos FAT <strong>do</strong> DOS usa<strong>do</strong> pelo Win<strong>do</strong>ws.<br />

Até certo ponto, JFS, XFS, e UFS e FFS usa<strong>do</strong>s pelos sistemas BSD também são<br />

suporta<strong>do</strong>s. Desde a versão 0.95, o GRUB também pode ser inicializa<strong>do</strong> de um CD ou<br />

DVD que contenha um sistema de arquivos padrão ISO 9660 que está de acor<strong>do</strong> com<br />

a especificação “El Torito”. Mesmo antes de o sistema ser inicializa<strong>do</strong>, o GRUB pode<br />

acessar os sistemas de arquivos <strong>do</strong>s dispositivos de disco BIOS suporta<strong>do</strong>s (disquetes<br />

ou discos rígi<strong>do</strong>s, unidades de CD e unidades de DVD detectadas pelo BIOS). Portanto,<br />

as alterações realizadas no arquivo de configuração <strong>do</strong> GRUB (menu.lst) não exigem<br />

a reinstalação <strong>do</strong> gerencia<strong>do</strong>r de boot. Quan<strong>do</strong> o sistema é inicializa<strong>do</strong>, o GRUB carrega<br />

o arquivo de menu com os caminhos e da<strong>do</strong>s de partição váli<strong>do</strong>s <strong>do</strong> kernel ou <strong>do</strong> disco<br />

RAM inicial (initrd) e localiza os arquivos.<br />

A configuração atual <strong>do</strong> GRUB se baseia em três arquivos que são descritos a seguir:<br />

/boot/grub/menu.lst<br />

Este arquivo contém todas as informações sobre partições ou sistemas operacionais<br />

que podem ser inicializa<strong>do</strong>s com o GRUB. Sem essas informações, a linha de<br />

coman<strong>do</strong> <strong>do</strong> GRUB pergunta ao usuário como proceder (consulte “Editan<strong>do</strong> as<br />

entradas de menu durante o procedimento de boot” (p 208) para obter detalhes).<br />

/boot/grub/device.map<br />

Esse arquivo traduz os nomes <strong>do</strong>s dispositivos da notação <strong>do</strong> GRUB e <strong>do</strong> BIOS<br />

para os nomes de dispositivos <strong>do</strong> Linux.<br />

/etc/grub.conf<br />

Esse arquivo contém os coman<strong>do</strong>s, os parâmetros e as opções que o shell <strong>do</strong> GRUB<br />

precisa para instalar corretamente o carrega<strong>do</strong>r de boot.<br />

O GRUB pode ser controla<strong>do</strong> de várias maneiras. As entradas de boot de uma<br />

configuração existente podem ser selecionadas no menu gráfico (tela de apresentação).<br />

A configuração é carregada a partir <strong>do</strong> arquivo menu.lst.<br />

No GRUB, to<strong>do</strong>s os parâmetros de boot podem ser altera<strong>do</strong>s antes <strong>do</strong> boot. Por exemplo,<br />

os erros cometi<strong>do</strong>s durante a edição <strong>do</strong> arquivo de menu podem ser corrigi<strong>do</strong>s desta<br />

maneira. Os coman<strong>do</strong>s de boot também podem ser inseri<strong>do</strong>s de forma interativa através<br />

O Carrega<strong>do</strong>r de Boot 203


204 Referência<br />

de um tipo de prompt de entrada (consulte “Editan<strong>do</strong> as entradas de menu durante o<br />

procedimento de boot” (p 208)). O GRUB <strong>of</strong>erece a possibilidade de determinar a<br />

localização <strong>do</strong> kernel e <strong>do</strong> initrd antes <strong>do</strong> boot. Dessa maneira, você pode até<br />

inicializar um sistema operacional instala<strong>do</strong> para o qual não existe entrada na<br />

configuração <strong>do</strong> carrega<strong>do</strong>r de boot.<br />

O GRUB existe em duas versões: como carrega<strong>do</strong>r de boot e como programa normal<br />

<strong>do</strong> Linux em /usr/sbin/grub. Esse programa é conheci<strong>do</strong> como shell <strong>do</strong> GRUB.<br />

Ele fornece uma emulação <strong>do</strong> GRUB no sistema instala<strong>do</strong> e pode ser usa<strong>do</strong> para instalar<br />

o GRUB ou testar novas configurações antes de aplicá-las. A funcionalidade para<br />

instalar o GRUB como carrega<strong>do</strong>r de boot em um disco rígi<strong>do</strong> ou em um disquete é<br />

integrada no GRUB na forma <strong>do</strong>s coman<strong>do</strong>s install e setup. Isso está disponível<br />

no shell <strong>do</strong> GRUB quan<strong>do</strong> o Linux é carrega<strong>do</strong>.<br />

9.2.1 O menu de boot <strong>do</strong> GRUB<br />

A tela de apresentação gráfica com o menu de boot baseia-se no arquivo de configuração<br />

<strong>do</strong> GRUB /boot/grub/menu.lst, que contém todas as informações sobre todas<br />

as partições ou sistemas operacionais que podem ser inicializa<strong>do</strong>s pelo menu.<br />

Todas as vezes em que o sistema é inicializa<strong>do</strong>, o GRUB carrega o arquivo de menu a<br />

partir <strong>do</strong> sistema de arquivos. Por essa razão, o GRUB não precisa ser reinstala<strong>do</strong> depois<br />

de todas as modificações no arquivo. Use o carrega<strong>do</strong>r de boot YaST para modificar a<br />

configuração <strong>do</strong> GRUB conforme descrito no Seção 9.3, “Configuran<strong>do</strong> o carrega<strong>do</strong>r<br />

de boot com o YaST” (p 212).<br />

O arquivo de menu contém coman<strong>do</strong>s. A sintaxe é muito simples. Cada linha contém<br />

um coman<strong>do</strong> segui<strong>do</strong> de parâmetros opcionais separa<strong>do</strong>s por espaços, como ocorre no<br />

shell. Por razões históricas, alguns coman<strong>do</strong>s admitem um = na frente <strong>do</strong> primeiro<br />

parâmetro. Os comentários são introduzi<strong>do</strong>s por um hash (#).<br />

Para identificar os itens <strong>do</strong> menu na visão geral <strong>do</strong> menu, defina um título para cada<br />

entrada. O texto (incluin<strong>do</strong> os espaços) que vem depois da palavra-chave título é<br />

exibi<strong>do</strong> como opção selecionável no menu. To<strong>do</strong>s os coman<strong>do</strong>s até o próximo título<br />

são executa<strong>do</strong>s quan<strong>do</strong> se seleciona esse item de menu.<br />

O caso mais simples é o redirecionamento para os carrega<strong>do</strong>res de boot de outros<br />

sistemas operacionais. O coman<strong>do</strong> é chainloader, e o argumento é geralmente o<br />

bloco de boot de outra partição na notação <strong>do</strong> bloco <strong>do</strong> GRUB. Por exemplo:


chainloader (hd0,3)+1<br />

Os nomes de dispositivo no GRUB são explica<strong>do</strong>s em “Convenções de nomenclatura<br />

para discos rígi<strong>do</strong>s e partições” (p 205). Este exemplo especifica o primeiro bloco da<br />

quarta partição <strong>do</strong> primeiro disco rígi<strong>do</strong>.<br />

Use o coman<strong>do</strong> kernel para especificar uma imagem <strong>do</strong> kernel. O primeiro argumento<br />

é o caminho para a imagem <strong>do</strong> kernel em uma partição. Os outros argumentos são<br />

passa<strong>do</strong>s para o kernel na linha de coman<strong>do</strong>.<br />

Se o kernel não contiver drivers incorpora<strong>do</strong>s para acesso à partição raiz ou um sistema<br />

Linux recente com recursos de hotplug avança<strong>do</strong>s for usa<strong>do</strong>, o initrd deve ser<br />

especifica<strong>do</strong> com um coman<strong>do</strong> separa<strong>do</strong> <strong>do</strong> GRUB cujo único argumento é o caminho<br />

para o arquivo initrd. Como o endereço de carregamento <strong>do</strong> initrd é grava<strong>do</strong> na<br />

imagem <strong>do</strong> kernel carrega<strong>do</strong>, o coman<strong>do</strong> initrd deve vir imediatamente após o<br />

coman<strong>do</strong> kernel.<br />

O coman<strong>do</strong> root simplifica a especificação <strong>do</strong> kernel e <strong>do</strong>s arquivos initrd. O único<br />

argumento de root é um dispositivo ou uma partição. Esse dispositivo é usa<strong>do</strong> para<br />

to<strong>do</strong>s os kernels, initrd, ou para outros caminhos de arquivo para os quais não há<br />

dispositivos explicitamente especifica<strong>do</strong>s até o próximo coman<strong>do</strong> root.<br />

O coman<strong>do</strong> boot está implícito no fim de cada entrada <strong>do</strong> menu, assim ele não precisa<br />

ser grava<strong>do</strong> no arquivo de menu. No entanto, para usar o GRUB interativamente para<br />

o boot, você deve inserir o coman<strong>do</strong> boot no final. O coman<strong>do</strong> em si não tem<br />

argumentos. Ele meramente inicializa a imagem <strong>do</strong> kernel carrega<strong>do</strong> ou <strong>do</strong> carrega<strong>do</strong>r<br />

de cadeia especifica<strong>do</strong>.<br />

Depois de gravar todas as entradas de menu, defina uma delas como entrada default.<br />

Do contrário, é utilizada a primeira (entrada 0). Você também pode especificar um<br />

tempo de espera em segun<strong>do</strong>s, após o qual a entrada padrão deve inicializar. timeout<br />

e default geralmente precedem as entradas de menu. Um arquivo de exemplo é<br />

descrito em “Um exemplo de arquivo de menu” (p 206).<br />

Convenções de nomenclatura para discos rígi<strong>do</strong>s e<br />

partições<br />

As convenções de nomenclatura que o GRUB utiliza para discos rígi<strong>do</strong>s e partições<br />

diferem daquelas usadas para os dispositivos normais <strong>do</strong> <strong>LINUX</strong>. No GRUB, a<br />

numeração das partições começa no zero. Isso significa que (hd0,0) é a primeira<br />

O Carrega<strong>do</strong>r de Boot 205


partição <strong>do</strong> primeiro disco rígi<strong>do</strong>. Em uma máquina desktop comum, com um disco<br />

rígi<strong>do</strong> conecta<strong>do</strong> como master principal, o nome <strong>do</strong> dispositivo correspondente no Linux<br />

é /dev/hda1.<br />

As quatro partições principais possíveis são atribuídas aos números de partição de 0 a<br />

3. As partições lógicas são numeradas a partir de 4:<br />

(hd0,0) primeira partição primária <strong>do</strong> primeiro disco rígi<strong>do</strong><br />

(hd0,1) segunda partição primária<br />

(hd0,2) terceira partição primária<br />

(hd0,3) quarta partição primária (em geral uma partição estendida)<br />

(hd0,4) primeira partição lógica<br />

(hd0,5) segunda partição lógica<br />

Sen<strong>do</strong> dependente de dispositivos BIO, o GRUB não distingue entre dispositivos IDE,<br />

SATA, SCSI e RAID de hardware. To<strong>do</strong>s os discos rígi<strong>do</strong>s reconheci<strong>do</strong>s pelo BIOS<br />

ou por outras controla<strong>do</strong>ras são numera<strong>do</strong>s de acor<strong>do</strong> com a seqüência de boot<br />

predefini<strong>do</strong> no BIOS.<br />

Infelizmente, geralmente não é possível mapear os nomes <strong>do</strong>s dispositivos <strong>do</strong> Linux<br />

exatamente para os nomes <strong>do</strong>s dispositivos <strong>do</strong> BIOS. Ele gera esse mapeamento com<br />

a ajuda de um algoritmo e o salva no arquivodevice.map, que pode ser edita<strong>do</strong> se<br />

necessário. Na Seção 9.2.2, “O arquivo device.map” (p 209), há informações sobre o<br />

arquivo device.map.<br />

O caminho completo <strong>do</strong> GRUB consiste em um nome de dispositivo escrito entre<br />

parênteses e no caminho para o arquivo no sistema de arquivos na partição especificada.<br />

O caminho começa com uma barra. Por exemplo, o kernel inicializável poderia ser<br />

especifica<strong>do</strong> como segue em um sistema com um disco rígi<strong>do</strong> único de IDE que contém<br />

o Linux em sua primeira partição:<br />

(hd0,0)/boot/vmlinuz<br />

Um exemplo de arquivo de menu<br />

O exemplo a seguir mostra a estrutura de um arquivo de menu <strong>do</strong> GRUB. A instalação<br />

de exemplo compreende uma partição de boot <strong>do</strong> Linux em /dev/hda5, uma partição<br />

raiz em /dev/hda7 e uma instalação <strong>do</strong> Win<strong>do</strong>ws em /dev/hda1.<br />

gfxmenu (hd0,4)/message<br />

color white/blue black/light-gray<br />

default 0<br />

timeout 8<br />

title linux<br />

206 Referência


kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791<br />

initrd (hd0,4)/initrd<br />

title win<strong>do</strong>ws<br />

chainloader(hd0,0)+1<br />

title floppy<br />

chainloader(fd0)+1<br />

title failsafe<br />

kernel (hd0,4)/vmlinuz.shipped root=/dev/hda7 ide=nodma \<br />

apm=<strong>of</strong>f acpi=<strong>of</strong>f vga=normal nosmp maxcpus=0 3<br />

initrd (hd0,4)/initrd.shipped<br />

O primeiro bloco define a configuração da tela de apresentação:<br />

gfxmenu (hd0,4)/message<br />

A mensagem da imagem de segun<strong>do</strong> plano localiza-se em /dev/hda5.<br />

color white/blue black/light-gray<br />

Esquema de cor: branco (primeiro plano), azul (segun<strong>do</strong> plano), preto (seleção) e<br />

cinza-claro (segun<strong>do</strong> plano da seleção). O esquema de cores não tem efeito sobre<br />

a tela de apresentação, apenas sobre o menu personalizável <strong>do</strong> GRUB que você<br />

pode acessar sain<strong>do</strong> da tela de apresentação com Esc .<br />

default 0<br />

Por padrão, a primeira entrada <strong>do</strong> menu, title linux, é a utilizada para<br />

inicializar.<br />

timeout 8<br />

Após oito segun<strong>do</strong>s sem nenhuma entrada <strong>do</strong> usuário, o GRUB inicializa<br />

automaticamente a entrada default. Para desativar o boot automático, exclua a linha<br />

timeout. Se você definir timeout 0, o GRUB inicializa a entrada default<br />

imediatamente.<br />

O segun<strong>do</strong> e maior bloco lista os vários sistemas operacionais inicializáveis. As seções<br />

para os sistemas operacionais individuais são introduzidas pelo título.<br />

• A primeira entrada (title linux) é responsável por inicializar o <strong>SUSE</strong> Linux.<br />

O kernel (vmlinuz) localiza-se na primeira partição lógica (a partição de boot)<br />

<strong>do</strong> primeiro disco rígi<strong>do</strong>. Os parâmetros <strong>do</strong> kernel, tais como a partição raiz e o<br />

mo<strong>do</strong> VGA, são anexa<strong>do</strong>s aqui. A partição raiz é especificada de acor<strong>do</strong> com a<br />

convenção de nomenclatura <strong>do</strong> Linux (/dev/hda7/), pois essas informações são<br />

O Carrega<strong>do</strong>r de Boot 207


208 Referência<br />

lidas pelo kernel e não têm nada a ver com o GRUB. O initrd também se localiza<br />

na primeira partição lógica <strong>do</strong> primeiro disco rígi<strong>do</strong>.<br />

• A segunda entrada é responsável por carregar o Win<strong>do</strong>ws. O Win<strong>do</strong>ws é inicializa<strong>do</strong><br />

a partir da primeira partição <strong>do</strong> primeiro disco rígi<strong>do</strong> (hd0,0). O coman<strong>do</strong><br />

chainloader +1 faz com que o GRUB leia e execute o primeiro setor da<br />

partição especificada.<br />

• A próxima entrada permite o boot a partir <strong>do</strong> disco rígi<strong>do</strong> sem modificar as<br />

configurações <strong>do</strong> BIOS.<br />

• A opção de boot failsafe inicia o Linux com uma seleção de parâmetros <strong>do</strong><br />

kernel que permite que o Linux seja inicializa<strong>do</strong> nos sistemas problemáticos.<br />

O arquivo de menu pode ser altera<strong>do</strong> sempre que for necessário. O GRUB utiliza, então,<br />

as configurações modificadas durante o próximo boot. Edite o arquivo permanentemente<br />

usan<strong>do</strong> o YaST ou um editor da sua escolha. Como alternativa, faça as alterações<br />

temporárias de forma interativa usan<strong>do</strong> a função de edição <strong>do</strong> GRUB. Consulte “Editan<strong>do</strong><br />

as entradas de menu durante o procedimento de boot” (p 208).<br />

Editan<strong>do</strong> as entradas de menu durante o<br />

procedimento de boot<br />

No menu gráfico de boot, selecione o sistema operacional a ser inicializa<strong>do</strong> com as<br />

teclas de seta. Se selecionar um sistema Linux, você pode inserir parâmetros extras de<br />

boot no prompt de boot. Para editar diretamente as entradas individuais <strong>do</strong> menu,<br />

pressione Esc para sair da tela de apresentação e entrar no menu basea<strong>do</strong> em texto <strong>do</strong><br />

GRUB e depois pressione E . As alterações feitas desta maneira só se aplicam ao boot<br />

atual, não sen<strong>do</strong> a<strong>do</strong>tadas permanentemente.<br />

IMPORTANTE: Layout <strong>do</strong> tecla<strong>do</strong> durante o procedimento de boot<br />

O layout <strong>do</strong> tecla<strong>do</strong> norte-americano é o único disponível na hora de inicializar.<br />

Editar entradas de menu facilita o reparo de um sistema com defeito que não pode mais<br />

ser inicializa<strong>do</strong>, pois o arquivo de configuração defeituoso <strong>do</strong> carrega<strong>do</strong>r de boot pode<br />

ser evita<strong>do</strong> ao se inserir parâmetros manualmente. A inserção manual de parâmetros<br />

durante o procedimento de boot também é útil para testar novas configurações sem<br />

danificar o sistema nativo.


Depois de ativar o mo<strong>do</strong> de edição, use as teclas de seta para selecionar a entrada de<br />

menu cuja configuração deve ser editada. Para tornar a configuração editável, pressione<br />

E novamente. Dessa maneira, edite as especificações incorretas das partições ou <strong>do</strong><br />

caminho antes que tenham um efeito negativo sobre o processo de boot. Pressione<br />

Enter para sair <strong>do</strong> mo<strong>do</strong> de edição e retornar ao menu. Depois pressione B para<br />

inicializar essa entrada. No texto de ajuda da parte inferior, são mostradas mais ações<br />

possíveis.<br />

Para inserir permanentemente as opções alteradas de boot e passá-las para o kernel,<br />

abra o arquivo menu.lst como raiz <strong>do</strong> usuário e anexe os respectivos parâmetros<br />

<strong>do</strong> kernel à linha existente, separa<strong>do</strong>s por espaços:<br />

title linux<br />

kernel (hd0,0)/vmlinuz root=/dev/hda3 additional parameter<br />

initrd (hd0,0)/initrd<br />

O GRUB a<strong>do</strong>ta automaticamente os novos parâmetros na próxima vez em que o sistema<br />

é inicializa<strong>do</strong>. Como alternativa, essa alteração também pode ser feita com o módulo<br />

<strong>do</strong> carrega<strong>do</strong>r de boot YaST. Anexe os novos parâmetros à linha existente, separa<strong>do</strong>s<br />

por espaços.<br />

9.2.2 O arquivo device.map<br />

O arquivo device.map mapeia os nomes de dispositivos <strong>do</strong> GRUB e <strong>do</strong> BIOS para<br />

os nomes de dispositivos <strong>do</strong> Linux. Em um sistema misto que contém discos rígi<strong>do</strong>s<br />

IDE e SCSI, o GRUB deve tentar determinar a seqüência de boot através de um<br />

procedimento especial, pois o GRUB não tem acesso às informações <strong>do</strong> BIOS na<br />

seqüência de boot. O GRUB salva o resulta<strong>do</strong> desta análise no arquivo /boot/grub/<br />

device.map. Para um sistema no qual a seqüência de boot no BIOS é configurada<br />

como IDE antes de SCSI, o arquivo device.map poderia aparecer da seguinte forma:<br />

(fd0) /dev/fd0<br />

(hd0) /dev/hda<br />

(hd1) /dev/sda<br />

Como a ordem da IDE, da SCSI e de outros discos rígi<strong>do</strong>s depende de vários fatores,<br />

e como o Linux não consegue identificar o mapeamento, a seqüência no arquivo device<br />

.map pode ser configurada manualmente. Se você encontrar problemas na hora <strong>do</strong><br />

boot, verifique se a seqüência neste arquivo corresponde à seqüência no BIOS e use o<br />

prompt <strong>do</strong> GRUB para modificá-la temporariamente, se necessário. Depois que o sistema<br />

Linux for inicializa<strong>do</strong>, o arquivo device.map pode ser permanentemente edita<strong>do</strong><br />

com o módulo <strong>do</strong> carrega<strong>do</strong>r de boot YaST ou com um editor da sua preferência.<br />

O Carrega<strong>do</strong>r de Boot 209


210 Referência<br />

IMPORTANTE: Discos SATA<br />

Dependen<strong>do</strong> <strong>do</strong> controla<strong>do</strong>r, os discos SATA são reconheci<strong>do</strong>s como dispositivos<br />

IDE (/dev/hdx) ou SCSI (/dev/sdx).<br />

Depois de alterar manualmente o device.map, execute o seguinte coman<strong>do</strong> para<br />

reinstalar o GRUB. Este coman<strong>do</strong> faz com que o arquivo device.map seja recarrega<strong>do</strong><br />

e os coman<strong>do</strong>s lista<strong>do</strong>s em grub.conf sejam executa<strong>do</strong>s:<br />

grub --batch < /etc/grub.conf<br />

9.2.3 O arquivo /etc/grub.conf<br />

O terceiro arquivo importante de configuração <strong>do</strong> GRUB, depois <strong>do</strong> menu.lst e <strong>do</strong><br />

device.map, é o /etc/grub.conf. Esse arquivo contém os coman<strong>do</strong>s, os<br />

parâmetros e as opções que o shell <strong>do</strong> GRUB precisa para instalar corretamente o<br />

carrega<strong>do</strong>r de boot:<br />

root (hd0,4)<br />

install /grub/stage1 (hd0,3) /grub/stage2 0x8000 (hd0,4)/grub/menu.lst<br />

quit<br />

Significa<strong>do</strong> das entradas individuais:<br />

root (hd0,4)<br />

Esse coman<strong>do</strong> diz para o GRUB aplicar os seguintes coman<strong>do</strong>s à primeira partição<br />

lógica <strong>do</strong> primeiro disco rígi<strong>do</strong> (o local <strong>do</strong>s arquivos de boot).<br />

install parameter<br />

O coman<strong>do</strong> grub deve ser executa<strong>do</strong> com o parâmetro install. O stage1 <strong>do</strong><br />

carrega<strong>do</strong>r de boot deve ser instala<strong>do</strong> no container da partição estendida<br />

(/grub/stage1 (hd0,3)). O stage2 deve ser carrega<strong>do</strong> no endereço da<br />

memória 0x8000 (/grub/stage2 0x8000). A última entrada<br />

((hd0,4)/grub/menu.lst) mostra para o GRUB onde ele deve procurar o<br />

arquivo de menu.<br />

9.2.4 Configuran<strong>do</strong> uma senha de boot<br />

Mesmo antes de o sistema operacional ser inicializa<strong>do</strong>, o GRUB permite acesso aos<br />

sistema de arquivos. Os usuários que não têm permissões raiz podem acessar os arquivos


no seu sistema Linux aos quais não têm acesso depois que o sistema é inicializa<strong>do</strong>. Para<br />

bloquear esse tipo de acesso ou impedir que os usuários inicializem certos sistemas<br />

operacionais, defina uma senha de boot.<br />

IMPORTANTE: Senha de boot e tela de apresentação<br />

Se você usar uma senha de boot para o GRUB, a tela normal de apresentação<br />

não será exibida.<br />

Como a raiz <strong>do</strong> usuário, proceda da seguinte forma para definir uma senha de boot:<br />

1 No prompt raiz, insira grub.<br />

2 Criptografe a senha no shell <strong>do</strong> GRUB:<br />

grub> md5crypt<br />

Password: ****<br />

Encrypted: $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/<br />

3 Cole a string criptografada na seção global <strong>do</strong> arquivo menu.lst:<br />

gfxmenu (hd0,4)/message<br />

color white/blue black/light-gray<br />

default 0<br />

timeout 8<br />

password --md5 $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/<br />

Agora os coman<strong>do</strong>s <strong>do</strong> GRUB só podem ser executa<strong>do</strong>s no prompt raiz depois<br />

que se pressionar P e se inserir a senha. No entanto, os usuários ainda podem<br />

inicializar to<strong>do</strong>s os sistemas operacionais a partir <strong>do</strong> menu de boot.<br />

4 Para impedir que um ou vários sistemas operacionais sejam inicializa<strong>do</strong>s a partir<br />

<strong>do</strong> menu de boot, acrescente a entrada lock em cada seção no menu.lst que<br />

não deveria ser inicializada sem se inserir uma senha. Por exemplo:<br />

title linux<br />

kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791<br />

initrd (hd0,4)/initrd<br />

lock<br />

Depois de reiniciar o sistema e selecionar a entrada no Linux no menu de boot,<br />

é exibida a seguinte mensagem de erro:<br />

Erro 32: Precisa de autenticação<br />

O Carrega<strong>do</strong>r de Boot 211


212 Referência<br />

Pressione Enter para inserir o menu. Depois pressione P para obter o prompt<br />

da senha. Depois de inserir a senha e pressionar Enter , o sistema operacional<br />

seleciona<strong>do</strong> (o Linux, neste caso) não deve inicializar.<br />

9.3 Configuran<strong>do</strong> o carrega<strong>do</strong>r de<br />

boot com o YaST<br />

O mo<strong>do</strong> mais fácil de configurar o carrega<strong>do</strong>r de boot em seu sistema <strong>SUSE</strong> Linux é<br />

utilizar o módulo <strong>do</strong> YaST. No Centro de Controle <strong>do</strong> YaST, selecione Sistema →<br />

Configuração <strong>do</strong> Carrega<strong>do</strong>r de Boot. Como na Figura 9.1, “Configuran<strong>do</strong> o carrega<strong>do</strong>r<br />

de boot com o YaST” (p 212), isso mostra a configuração <strong>do</strong> carrega<strong>do</strong>r de boot atual<br />

<strong>do</strong> sistema e permite fazer mudanças.<br />

Figura 9.1 Configuran<strong>do</strong> o carrega<strong>do</strong>r de boot com o YaST<br />

Use a guia Gerenciamento de Seções para editar, mudar e apagar seções <strong>do</strong> carrega<strong>do</strong>r<br />

de boot referentes aos sistemas operacionais individuais. Para adicionar uma opção,<br />

clique em Adicionar. Para mudar o valor de uma opção existente, selecione-o com o<br />

mouse e clique em Editar. Se não quiser usar nenhuma opção existente, selecione-a e


clique em Apagar. Se não estiver familiariza<strong>do</strong> com as opções <strong>do</strong> carrega<strong>do</strong>r de boot,<br />

leia primeiro a Seção 9.2, “Inicializan<strong>do</strong> com o GRUB” (p 202).<br />

Use a guia Instalação <strong>do</strong> Carrega<strong>do</strong>r de Boot para exibir e mudar configurações relativas<br />

a tipo, local e configurações de carrega<strong>do</strong>r avançadas.<br />

9.3.1 Tipo de Carrega<strong>do</strong>r de Boot<br />

Defina o tipo de carrega<strong>do</strong>r de boot em Instalação <strong>do</strong> Carrega<strong>do</strong>r de Boot. O carrega<strong>do</strong>r<br />

de boot padrão no <strong>SUSE</strong> Linux é o GRUB. Para usar o LILO, proceda da seguinte<br />

maneira:<br />

Procedimento 9.1 Mudan<strong>do</strong> o tipo de carrega<strong>do</strong>r de boot<br />

1 Selecione a guia Instalação <strong>do</strong> Carrega<strong>do</strong>r de Boot.<br />

2 Para Carrega<strong>do</strong>r de Boot, selecione LILO.<br />

3 Na caixa de diálogo aberta, selecione uma das seguintes ações:<br />

Propor Nova Configuração<br />

Faça com que o YaST proponha uma nova configuração.<br />

Converter Configuração Atual<br />

Faça com que o YaST converta a configuração atual. Na conversão da<br />

configuração, algumas definições podem ser perdidas.<br />

Iniciar Nova Configuração <strong>do</strong> Início<br />

Grave uma configuração personalizada. Esta ação não fica disponível durante<br />

a instalação <strong>do</strong> <strong>SUSE</strong> Linux.<br />

Ler Configuração Salva em Disco<br />

Carregue o /etc/lilo.conf. Esta ação não fica disponível durante a<br />

instalação <strong>do</strong> <strong>SUSE</strong> Linux.<br />

4 Clique em OK para gravar as mudanças.<br />

5 Clique em Concluir na caixa de diálogo principal para aplicar as mudanças.<br />

O Carrega<strong>do</strong>r de Boot 213


214 Referência<br />

Durante a conversão, a antiga configuração <strong>do</strong> GRUB é gravada no disco. Para utilizála,<br />

basta voltar o tipo de carrega<strong>do</strong>r de boot para GRUB e selecionar Recuperar<br />

Configuração Salva Antes da Conversão. Esta ação fica disponível somente em um<br />

sistema instala<strong>do</strong>.<br />

NOTA: Carrega<strong>do</strong>r de boot personaliza<strong>do</strong><br />

Se quiser usar um carrega<strong>do</strong>r de boot que não seja o GRUB nem o LILO,<br />

selecione Não Instalar Nenhum Carrega<strong>do</strong>r de Boot. Leia a <strong>do</strong>cumentação <strong>do</strong><br />

seu carrega<strong>do</strong>r de boot cuida<strong>do</strong>samente antes de escolher esta opção.<br />

9.3.2 Localização <strong>do</strong> carrega<strong>do</strong>r de boot<br />

Para mudar o local <strong>do</strong> carrega<strong>do</strong>r de boot, siga estas etapas:<br />

Procedimento 9.2 Mudan<strong>do</strong> a localização <strong>do</strong> carrega<strong>do</strong>r de boot<br />

1 Selecione a guia Instalação <strong>do</strong> Carrega<strong>do</strong>r de Boot e selecione uma das seguintes<br />

opções para Localização <strong>do</strong> Carrega<strong>do</strong>r de Boot:<br />

MBR (Master Boot Record) de /dev/hdX<br />

Isso instalará o carrega<strong>do</strong>r de boot no MBR de um disco. X identifica o disco<br />

rígi<strong>do</strong>, por exemplo, a, b, c ou d:<br />

hda => ide0 master<br />

hdb => ide0 slave<br />

hdc => ide1 master<br />

hdd => ide1 slave<br />

Setor de Boot da Partição de Boot /dev/hdXY<br />

Setor de inicialização da partição /boot. Esta opção será padrão se você<br />

tiver vários sistemas operacionais instala<strong>do</strong>s no disco rígi<strong>do</strong>. O Y corresponde<br />

à partição (1, 2, 3, 4, 5, etc.) como em:<br />

/dev/hda1<br />

Setor de Boot da Partição Raiz /dev/hdXY<br />

O setor de inicialização da partição / (raiz). A menos que uma partição<br />

/boot seja necessária ou o MBR precise ser usa<strong>do</strong>, esse é o padrão preferi<strong>do</strong>.


Outros<br />

Use esta opção para especificar a localização <strong>do</strong> carrega<strong>do</strong>r de boot<br />

manualmente.<br />

2 Clique em Concluir para aplicar suas mudanças.<br />

9.3.3 Sistema padrão<br />

Para mudar o sistema que é inicializa<strong>do</strong> por padrão, proceda da seguinte maneira:<br />

Procedimento 9.3 Definin<strong>do</strong> o sistema padrão<br />

1 Abra a guia Gerenciamento de Seções.<br />

2 Selecione o sistema deseja<strong>do</strong> na lista.<br />

3 Clique em Definir como Padrão.<br />

4 Clique em Concluir para ativar essas mudanças.<br />

9.3.4 Tempo de espera <strong>do</strong> carrega<strong>do</strong>r de<br />

boot<br />

O carrega<strong>do</strong>r de boot não inicializa o sistema padrão imediatamente. Durante o tempo<br />

de espera, você pode selecionar o sistema para inicializar ou gravar alguns parâmetros<br />

de kernel. Para definir o tempo de espera <strong>do</strong> carrega<strong>do</strong>r de boot, proceda da seguinte<br />

maneira:<br />

Procedimento 9.4 Mudan<strong>do</strong> o tempo de espera <strong>do</strong> carrega<strong>do</strong>r de boot<br />

1 Abra a guia Instalação <strong>do</strong> Carrega<strong>do</strong>r de Boot.<br />

2 Clique em Opções <strong>do</strong> Carrega<strong>do</strong>r de Boot.<br />

3 Marque a opção Mostrar Menu de Boot.<br />

O Carrega<strong>do</strong>r de Boot 215


216 Referência<br />

4 No Menu de Boot, mude o valor de Tempo de Espera <strong>do</strong> Menu de Boot digitan<strong>do</strong><br />

um novo valor, clican<strong>do</strong> na tecla de seta apropriada com o mouse ou utilizan<strong>do</strong><br />

as teclas de seta <strong>do</strong> tecla<strong>do</strong>.<br />

5 Clique em OK.<br />

6 Clique em Concluir para salvar as mudanças.<br />

Defina o menu de boot para que seja exibi<strong>do</strong> permanentemente sem o tempo de espera<br />

através da desabilitação de Continuar Boot após Tempo de Espera.<br />

9.3.5 Configurações de segurança<br />

Utilizan<strong>do</strong> este módulo <strong>do</strong> YaST, é possível definir uma senha para proteger a<br />

inicialização. Este procedimento aumenta o nível de segurança.<br />

Procedimento 9.5 Configuran<strong>do</strong> uma senha <strong>do</strong> carrega<strong>do</strong>r de boot<br />

1 Abra a guia Instalação <strong>do</strong> Carrega<strong>do</strong>r de Boot.<br />

2 Clique em Opções <strong>do</strong> Carrega<strong>do</strong>r de Boot.<br />

3 Em Proteção por Senha, marque a opção Proteger Carrega<strong>do</strong>r de Boot com<br />

Senha e defina a senha.<br />

4 Clique em OK.<br />

5 Clique em Concluir para salvar as mudanças.<br />

9.3.6 Ordem <strong>do</strong> disco<br />

Se o seu computa<strong>do</strong>r tiver mais de um disco rígi<strong>do</strong>, é possível especificar a seqüência<br />

de inicialização <strong>do</strong>s discos para corresponder à configuração <strong>do</strong> BIOS da máquina<br />

(consulte a Seção 9.2.2, “O arquivo device.map” (p 209)). Para fazer isso, proceda da<br />

seguinte maneira:


Procedimento 9.6 Configuran<strong>do</strong> a ordem <strong>do</strong> disco<br />

1 Abra a guia Instalação <strong>do</strong> Carrega<strong>do</strong>r de Boot.<br />

2 Clique em Detalhes de Instalação <strong>do</strong> Carrega<strong>do</strong>r de Boot.<br />

3 Se mais de um disco for lista<strong>do</strong>, selecione um disco e clique em Para cima ou<br />

Para baixo para reordenar os discos exibi<strong>do</strong>s.<br />

4 Clique em OK para gravar as mudanças.<br />

5 Clique em Concluir para salvar as mudanças.<br />

Utilizan<strong>do</strong> este módulo, também é possível substituir o MBR por um código genérico,<br />

que inicializa a partição ativa. Clique em Substituir MBR por Código Genérico em<br />

Atualização da Área <strong>do</strong> Sistema <strong>do</strong> Disco. Habilite Ativar Partição <strong>do</strong> Carrega<strong>do</strong>r de<br />

Boot para ativar a partição que contém o carrega<strong>do</strong>r de boot. Clique em Concluir para<br />

salvar as mudanças.<br />

9.4 Desinstalan<strong>do</strong> a controla<strong>do</strong>ra de<br />

boot <strong>do</strong> Linux<br />

O YaST pode ser usa<strong>do</strong> para desinstalar o carrega<strong>do</strong>r de boot <strong>do</strong> Linux e recuperar o<br />

MBR para o esta<strong>do</strong> que ele tinha antes da instalação <strong>do</strong> Linux. Durante a instalação, o<br />

YaST cria automaticamente uma cópia de backup <strong>do</strong> MBR original e o restaura sob<br />

solicitação.<br />

Para desinstalar o GRUB, inicie o módulo <strong>do</strong> carrega<strong>do</strong>r de boot YaST (Sistema →<br />

Configuração <strong>do</strong> Carrega<strong>do</strong>r de Boot). Nessa primeira caixa de diálogo, selecione<br />

Redefinir → Restaurar MBR <strong>do</strong> Disco Rígi<strong>do</strong> e clique em Concluir para sair.<br />

9.5 Crian<strong>do</strong> CDs de boot<br />

Se a inicialização <strong>do</strong> sistema com um gerencia<strong>do</strong>r de boot apresentar problemas ou se<br />

o gerencia<strong>do</strong>r de boot não puder ser instala<strong>do</strong> no MBR <strong>do</strong> disco rígi<strong>do</strong> ou <strong>do</strong> disquete,<br />

O Carrega<strong>do</strong>r de Boot 217


218 Referência<br />

também será possível criar um CD inicializável com os arquivos de inicialização<br />

necessários para o Linux. É necessário haver um grava<strong>do</strong>r de CD instala<strong>do</strong> no sistema.<br />

A criação de um CR-ROM inicializável com GRUB requer simplesmente um formato<br />

especial de stage2 chama<strong>do</strong>stage2_eltorito e, opcionalmente, um menu.lst<br />

personaliza<strong>do</strong>. Os clássicos arquivos stage1 e stage2 não são necessários.<br />

Procedimento 9.7 Crian<strong>do</strong> CDs de boot<br />

1 Crie um diretório no qual você criará a imagem ISO, por exemplo:<br />

cd /tmp<br />

mkdir iso<br />

2 Crie um subdiretório para GRUB:<br />

mkdir -p iso/boot/grub<br />

3 Copie o kernel, os arquivos stage2_eltorito, initrd, menu.lst e<br />

/boot/message para iso/boot/:<br />

cp /boot/vmlinuz iso/boot/<br />

cp /boot/initrd iso/boot/<br />

cp /boot/message iso/boot/<br />

cp /boot/grub/menu.lst iso/boot/grub<br />

4 Ajuste as entradas <strong>do</strong> caminho em iso/boot/menu.lst para que apontem<br />

para um dispositivo de CD-ROM. Faça isso substituin<strong>do</strong> o nome <strong>do</strong> dispositivo<br />

<strong>do</strong>s discos rígi<strong>do</strong>s, lista<strong>do</strong>s no formato (hd*), nos nomes de caminho, pelo<br />

nome de dispositivo da unidade <strong>do</strong> CD-ROM, que é (cd):<br />

gfxmenu (cd)/boot/message<br />

timeout 8<br />

default 0<br />

title Linux<br />

kernel (cd)/boot/vmlinuz root=/dev/hda5 vga=794 resume=/dev/hda1 \<br />

splash=verbose showopts<br />

initrd (cd)/boot/initrd<br />

5 Crie a imagem ISO com o seguinte coman<strong>do</strong>:<br />

mkis<strong>of</strong>s -R -b boot/grub/stage2_eltorito -no-emul-boot \<br />

-boot-load-size 4 -boot-info-table -o grub.iso iso


6 Grave o arquivo resultante grub.iso em um CD usan<strong>do</strong> seu utilitário preferi<strong>do</strong>.<br />

9.6 A tela gráfica <strong>do</strong> <strong>SUSE</strong><br />

Desde o <strong>SUSE</strong> Linux 7.2, a tela gráfica <strong>do</strong> <strong>SUSE</strong> é exibida no primeiro console se a<br />

opção “vga=” for usada como parâmetro de kernel. Se você fizer a instalação<br />

usan<strong>do</strong> o YaST, essa opção é automaticamente ativada de acor<strong>do</strong> com a resolução e a<br />

placa de vídeo selecionadas. Há três maneiras de desativar a tela <strong>SUSE</strong>, se deseja<strong>do</strong>:<br />

Desabilitan<strong>do</strong> a tela <strong>do</strong> <strong>SUSE</strong> quan<strong>do</strong> necessário<br />

Insira o coman<strong>do</strong> echo 0 >/proc/splash na linha de coman<strong>do</strong> para desativar<br />

a tela gráfica. Para ativá-la novamente, insira echo 1 >/proc/splash.<br />

Desabilitan<strong>do</strong> a tela <strong>do</strong> <strong>SUSE</strong> por padrão.<br />

Acrescente o parâmetro de kernel splash=0 à configuração <strong>do</strong> seu carrega<strong>do</strong>r<br />

de boot. O Capítulo 9, O Carrega<strong>do</strong>r de Boot (p 201) fornece mais informações<br />

sobre isso. No entanto, se você preferir o mo<strong>do</strong> de texto, que foi o padrão nas<br />

versões anteriores, configure vga=normal.<br />

Desativan<strong>do</strong> completamente a tela <strong>SUSE</strong><br />

Compile um novo kernel e desative a opção Usar a tela de apresentação em vez<br />

<strong>do</strong> logotipo de boot no suporte a framebuffer.<br />

DICA<br />

A desabilitação <strong>do</strong> suporte a framebuffer no kernel também desabilita<br />

automaticamente a tela de apresentação. O <strong>SUSE</strong> não pode fornecer suporte<br />

ao seu sistema se você o executar com um kernel personaliza<strong>do</strong>.<br />

9.7 Solução de problemas<br />

Essa seção lista alguns <strong>do</strong>s problemas freqüentemente encontra<strong>do</strong>s na hora de inicializar<br />

com o GRUB e uma breve descrição das possíveis soluções. Alguns desses problemas<br />

são analisa<strong>do</strong>s em artigos <strong>do</strong> Banco de Da<strong>do</strong>s de Suporte, em http://portal.suse<br />

.de/sdb/en/index.html. Se o seu problema específico não estiver incluí<strong>do</strong> nesta<br />

lista, use a caixa de diálogo de pesquisa <strong>do</strong> Banco de Da<strong>do</strong>s de Suporte, no endereço<br />

O Carrega<strong>do</strong>r de Boot 219


220 Referência<br />

https://portal.suse.com/PM/page/search.pm, para pesquisar palavraschave<br />

como GRUB, boot e carrega<strong>do</strong>r de boot.<br />

GRUB e XFS<br />

O XFS não deixa espaço para o stage1 no bloco de boot da partição. Portanto,<br />

não especifique uma partição XFS como local <strong>do</strong> carrega<strong>do</strong>r de boot. Esse problema<br />

pode ser resolvi<strong>do</strong> com a criação de uma partição separada de boot que não é<br />

formatada com o XFS.<br />

GRUB e JFS<br />

Embora tecnicamente possível, a combinação <strong>do</strong> GRUB com o JFS é problemática.<br />

Nesse caso, crie uma partição separada de boot (/boot) e formate-a com o Ext2.<br />

Instale o GRUB nessa partição.<br />

O GRUB relata um erro de geometria no GRUB<br />

O GRUB verifica a geometria <strong>do</strong>s discos rígi<strong>do</strong>s conecta<strong>do</strong>s quan<strong>do</strong> o sistema é<br />

inicializa<strong>do</strong>. Às vezes, a BIOS retorna informações inconsistentes e o GRUB cria<br />

um erro de geometria <strong>do</strong> GRUB. Se este for o caso, use o LILO ou atualize a BIOS.<br />

No Banco de Da<strong>do</strong>s de Suporte, na palavra-chave LILO, há informações detalhadas<br />

sobre a instalação, configuração e manutenção <strong>do</strong> LILO.<br />

O GRUB também retorna essa mensagem de erro se o Linux foi instala<strong>do</strong> em um<br />

disco rígi<strong>do</strong> adicional não registra<strong>do</strong> no BIOS. O stage1 <strong>do</strong> carrega<strong>do</strong>r de boot foi<br />

encontra<strong>do</strong> e carrega<strong>do</strong> corretamente, mas o stage2 não foi encontra<strong>do</strong>. Esse<br />

problema pode ser remedia<strong>do</strong> registran<strong>do</strong>-se o novo disco rígi<strong>do</strong> na BIOS.<br />

O sistema conten<strong>do</strong> discos rígi<strong>do</strong>s IDE e SCSI não inicializa<br />

Durante a instalação, o YaST talvez tenha determina<strong>do</strong> incorretamente a seqüência<br />

de boot <strong>do</strong>s discos rígi<strong>do</strong>s. Por exemplo, o GRUB pode considerar /dev/hda<br />

como hd0 e /dev/sda como hd1, embora a seqüência de boot no BIOS seja ao<br />

contrário (SCSI antes de IDE).<br />

Nesse caso, corrija os discos rígi<strong>do</strong>s durante o processo de boot com a ajuda da<br />

linha de coman<strong>do</strong> <strong>do</strong> GRUB. Depois que o sistema for inicializa<strong>do</strong>, edite device<br />

.map para aplicar o novo mapeamento permanentemente. Depois verifique os<br />

nomes de dispositivo <strong>do</strong> GRUB nos arquivos /boot/grub/menu.lst e<br />

/boot/grub/device.map e reinstale o carrega<strong>do</strong>r de boot com o seguinte<br />

coman<strong>do</strong>:<br />

grub --batch < /etc/grub.conf


Inicializan<strong>do</strong> o Win<strong>do</strong>ws <strong>do</strong> segun<strong>do</strong> disco rígi<strong>do</strong><br />

Alguns sistemas operacionais, como o Win<strong>do</strong>ws, podem ser inicializa<strong>do</strong>s apenas<br />

<strong>do</strong> primeiro disco rígi<strong>do</strong>. Se um sistema operacional desse tipo for instala<strong>do</strong> em<br />

um disco rígi<strong>do</strong> que não for o primeiro, você pode efetuar uma mudança lógica na<br />

respectiva entrada <strong>do</strong> menu.<br />

...<br />

title win<strong>do</strong>ws<br />

map (hd0) (hd1)<br />

map (hd1) (hd0)<br />

chainloader(hd1,0)+1<br />

...<br />

Nesse exemplo, o Win<strong>do</strong>ws é inicia<strong>do</strong> a partir <strong>do</strong> segun<strong>do</strong> disco rígi<strong>do</strong>. Para essa<br />

finalidade, a ordem lógica <strong>do</strong>s discos rígi<strong>do</strong>s é alterada com map. Essa alteração<br />

não afeta a lógica dentro <strong>do</strong> arquivo de menu <strong>do</strong> GRUB. Portanto, o segun<strong>do</strong> disco<br />

rígi<strong>do</strong> deve ser especifica<strong>do</strong> para chainloader.<br />

9.8 Mais informações<br />

Em http://www.gnu.org/s<strong>of</strong>tware/grub/, há informações abrangentes<br />

sobre o GRUB. Consulte também a página de informações grub. Você também pode<br />

pesquisar a palavra-chave “GRUB” no Banco de Da<strong>do</strong>s de Suporte, em http://<br />

portal.suse.de/sdb/en/index.html, para obter informações sobre problemas<br />

específicos.<br />

O Carrega<strong>do</strong>r de Boot 221


Recursos especiais <strong>do</strong> <strong>SUSE</strong> Linux<br />

Este capítulo começa com informações sobre vários pacotes de s<strong>of</strong>tware, os consoles<br />

virtuais e o layout de tecla<strong>do</strong>. Abordamos componentes de s<strong>of</strong>tware como bash, cron<br />

e logrotate, porque eles foram muda<strong>do</strong>s ou aperfeiçoa<strong>do</strong>s durante os últimos ciclos<br />

de lançamento. Mesmo que eles sejam pequenos ou considera<strong>do</strong>s de menor importância,<br />

talvez os usuários desejem mudar o seu comportamento padrão, porque esses<br />

componentes muitas vezes estão intimamente liga<strong>do</strong>s ao sistema. O capítulo termina<br />

com uma seção sobre configurações específicas de país e idioma (I18N e L10N).<br />

10.1 Informações sobre pacotes de<br />

s<strong>of</strong>tware especiais<br />

Os programas bash, cron, logrotate, locate, ulimit e free, e o arquivo<br />

resolv.conf são muito importantes para os administra<strong>do</strong>res de sistema e para vários<br />

usuários. Páginas <strong>do</strong> manual e de informações são duas fontes úteis de informações<br />

sobre coman<strong>do</strong>s, mas nem sempre ambas estão disponíveis. O GNU Emacs é um editor<br />

de texto popular e muito configurável.<br />

10.1.1 O pacote bash e /etc/pr<strong>of</strong>ile<br />

Bash é o shell padrão no <strong>SUSE</strong> Linux. Quan<strong>do</strong> usa<strong>do</strong> com um shell de login, ele lê<br />

vários arquivos de inicialização. O Bash os processa na ordem que são exibi<strong>do</strong>s na lista.<br />

1. /etc/pr<strong>of</strong>ile<br />

10<br />

Recursos especiais <strong>do</strong> <strong>SUSE</strong> Linux 223


224 Referência<br />

2. ~/.pr<strong>of</strong>ile<br />

3. /etc/bash.bashrc<br />

4. ~/.bashrc<br />

Configurações personalizadas podem ser feitas em ~/.pr<strong>of</strong>ile ou em ~/.bashrc.<br />

Para assegurar o processamento correto desses arquivos, é necessário copiar as<br />

configurações básicas de /etc/skel/.pr<strong>of</strong>ile ou /etc/skel/.bashrc no<br />

diretório pessoal <strong>do</strong> usuário. É recomendável copiar as configurações de /etc/skel<br />

após uma atualização. Execute os seguintes coman<strong>do</strong>s de shell para evitar a perda de<br />

ajustes pessoais:<br />

mv ~/.bashrc ~/.bashrc.old<br />

cp /etc/skel/.bashrc ~/.bashrc<br />

mv ~/.pr<strong>of</strong>ile ~/.pr<strong>of</strong>ile.old<br />

cp /etc/skel/.pr<strong>of</strong>ile ~/.pr<strong>of</strong>ile<br />

Em seguida, copie os ajustes pessoais novamente <strong>do</strong>s arquivos *.old.<br />

10.1.2 O pacote cron<br />

Se você deseja executar coman<strong>do</strong>s de maneira regular e automática em segun<strong>do</strong> plano,<br />

em momentos pré-defini<strong>do</strong>s, o cron é a ferramenta tradicional a ser utilizada. O cron é<br />

regi<strong>do</strong> por tabelas de tempo formatadas especialmente. Algumas delas são fornecidas<br />

com o sistema e os usuários podem gravar as suas próprias tabelas, se necessário.<br />

As tabelas cron estão localizadas em /var/spool/cron/tabs. A /etc/crontab<br />

atua como uma tabela cron global <strong>do</strong> sistema. Digite o nome de usuário para executar<br />

o coman<strong>do</strong> diretamente após a tabela de tempo e antes <strong>do</strong> coman<strong>do</strong>. No Exemplo 10.1,<br />

“Entrada in /etc/crontab” (p 224), root é digita<strong>do</strong>. Tabelas específicas de pacote,<br />

localizadas em /etc/cron.d, possuem o mesmo formato. Consulte a página de<br />

manual cron (man cron).<br />

Exemplo 10.1 Entrada in /etc/crontab<br />

1-59/5 * * * * root test -x /usr/sbin/atrun && /usr/sbin/atrun<br />

Você não pode editar /etc/crontab chaman<strong>do</strong> o coman<strong>do</strong> crontab -e. Este<br />

arquivo deve ser carrega<strong>do</strong> diretamente em um editor, modifica<strong>do</strong> e, em seguida,<br />

grava<strong>do</strong>.


Alguns pacotes instalam scripts de shell nos diretórios /etc/cron.hourly, /etc/<br />

cron.daily, /etc/cron.weekly e /etc/cron.monthly, cuja execução é<br />

controlada por /usr/lib/cron/run-crons. /usr/lib/cron/run-crons<br />

é executa<strong>do</strong> a cada 15 minutos da tabela principal (/etc/crontab). Isso garante que<br />

os processos que tenham si<strong>do</strong> negligencia<strong>do</strong>s possam ser executa<strong>do</strong>s no momento<br />

adequa<strong>do</strong>.<br />

Para executar os scripts de manutenção por hora, diário ou outros scripts de<br />

manutenção periódica em horários personaliza<strong>do</strong>s, remova os arquivos de marcação<br />

de horário regularmente, utilizan<strong>do</strong> as entradas /etc/crontab (consulte o<br />

Exemplo 10.2, “/etc/crontab: Remoção de Arquivos de Marcação de Hora” (p 225), que<br />

remove a opção por hora antes de cada hora cheia, a opção diário uma vez ao<br />

dia às 2h14, etc.).<br />

Exemplo 10.2 /etc/crontab: Remoção de Arquivos de Marcação de Hora<br />

59 * * * * root rm -f /var/spool/cron/lastrun/cron.hourly<br />

14 2 * * * root rm -f /var/spool/cron/lastrun/cron.daily<br />

29 2 * * 6 root rm -f /var/spool/cron/lastrun/cron.weekly<br />

44 2 1 * * root rm -f /var/spool/cron/lastrun/cron.monthly<br />

Os trabalhos de manutenção diária de sistema foram distribuí<strong>do</strong>s a vários scripts por<br />

motivos de clareza. Eles estão conti<strong>do</strong>s no pacote aaa_base. /etc/cron.daily<br />

contém, por exemplo, os componentes suse.de-backup-rpmdb, suse<br />

.de-clean-tmp ou suse.de-cron-local.<br />

10.1.3 Arquivos de registro: Pacote<br />

logrotate<br />

Existem vários serviços de sistema (daemons) que, junto com o próprio kernel, gravam<br />

regularmente o status <strong>do</strong> sistema e eventos específicos em arquivos de registro. Desta<br />

maneira, o administra<strong>do</strong>r pode verificar regularmente o status <strong>do</strong> sistema em um<br />

determina<strong>do</strong> momento, reconhecer erros ou funções defeituosas e solucioná-los com<br />

total precisão. Esses arquivos de registro são normalmente armazena<strong>do</strong>s em /var/<br />

log, como especifica<strong>do</strong> pelo FHS e crescem em uma base diária. O pacote logrotate<br />

ajuda a controlar o crescimento desses arquivos.<br />

Configure o logrotate com o arquivo /etc/logrotate.conf. Em particular, a<br />

especificaçãoinclude configura principalmente os arquivos adicionais a serem li<strong>do</strong>s.<br />

O <strong>SUSE</strong> Linux assegura que os programas que produzem arquivos de registro instalam<br />

Recursos especiais <strong>do</strong> <strong>SUSE</strong> Linux 225


226 Referência<br />

arquivos de configuração individual em /etc/logrotate.d. Por exemplo, tais<br />

programas acompanham os pacotes apache2 (/etc/logrotate.d/apache2)<br />

e syslogd (/etc/logrotate.d/syslog).<br />

Exemplo 10.3 Exemplo para /etc/logrotate.conf<br />

# consulte "man logrotate" para obter os detalhes<br />

# rotacione os arquivos de registro semanalmente<br />

semanalmente<br />

# mantenha 4 semanas de backlogs<br />

rotacione 4<br />

# crie arquivos de registro novos (vazios) após rotacionar os antigos<br />

cria<strong>do</strong>s<br />

# ative esta opção se deseja que os arquivos de registro sejam compacta<strong>do</strong>s<br />

#compactar<br />

# As informações de rotação de registro de drop de pacotes RPM neste diretório<br />

incluem /etc/logrotate.d<br />

# nenhum pacote possui lastlog ou wtmp - nós iremos rotacioná-los aqui<br />

#/var/log/wtmp {<br />

# mensal<br />

# criar 0664 root utmp<br />

# rotacionar 1<br />

#}<br />

# registros específicos de sistema também podem ser configura<strong>do</strong>s aqui.<br />

logrotate é controla<strong>do</strong> pelo cron e é chama<strong>do</strong> diariamente por /etc/cron.daily/<br />

logrotate.<br />

IMPORTANTE<br />

A opção create lê todas as configurações feitas pelo administra<strong>do</strong>r em /etc/<br />

permissions*. Certifique-se de que não haja conflitos devi<strong>do</strong> a modificações<br />

pessoais.<br />

10.1.4 O coman<strong>do</strong> locate<br />

locate, um coman<strong>do</strong> para localização rápida de arquivos, não está incluí<strong>do</strong> no escopo<br />

padrão <strong>do</strong> s<strong>of</strong>tware instala<strong>do</strong>. Se deseja<strong>do</strong>, instale o pacote find-locate. O processo


updatedb é inicia<strong>do</strong> automaticamente a cada noite ou aproximadamente 15 minutos<br />

após a inicialização <strong>do</strong> sistema.<br />

10.1.5 O coman<strong>do</strong> ulimit<br />

Com o coman<strong>do</strong> ulimit (user limits), é possível definir limites para o uso de recursos<br />

<strong>do</strong> sistema e fazer com que sejam exibi<strong>do</strong>s. ulimit é particularmente útil para a<br />

limitação da memória disponível para aplicativos. Com ele, pode-se evitar que um<br />

aplicativo utilize muita memória, o que poderia travar o sistema.<br />

O coman<strong>do</strong> ulimit pode ser usa<strong>do</strong> com várias opções. Para limitar o uso da memória,<br />

use as opções listadas na Tabela 10.1, “ulimit: Configuração de Recursos para o<br />

Usuário” (p 227).<br />

Tabela 10.1 ulimit: Configuração de Recursos para o Usuário<br />

-m<br />

-v<br />

-s<br />

-c<br />

-a<br />

Tamanho máximo da memória física<br />

Tamanho máximo da memória virtual<br />

Tamanho máximo da pilha<br />

Tamanho máximo <strong>do</strong>s arquivos básicos<br />

Exibição de definição de limites<br />

Entradas globais de sistema podem ser feitas em /etc/pr<strong>of</strong>ile. Lá, habilite a criação<br />

de arquivos básicos, necessários para os programa<strong>do</strong>res para depuração. Um usuário<br />

normal não pode aumentar os valores especifica<strong>do</strong>s em /etc/pr<strong>of</strong>ile pelo<br />

administra<strong>do</strong>r <strong>do</strong> sistema, mas pode fazer entradas especiais em ~/.bashrc.<br />

Exemplo 10.4 ulimit: Configurações em ~/.bashrc<br />

# limite de memória física:<br />

ulimit -m 98304<br />

# limite de memória virtual:<br />

ulimit -v 98304<br />

As quantidades de memória devem ser especificadas em KB. Para obter informações<br />

mais detalhadas, consulte man bash.<br />

Recursos especiais <strong>do</strong> <strong>SUSE</strong> Linux 227


228 Referência<br />

IMPORTANTE<br />

Nem to<strong>do</strong>s os shells suportam as diretivas ulimit. O PAM (por exemplo,<br />

pam_limits) <strong>of</strong>erece possibilidades abrangentes de ajustes se você depende<br />

de configurações abrangentes para essas restrições.<br />

10.1.6 O coman<strong>do</strong> free<br />

O coman<strong>do</strong> free é um pouco confuso se a sua meta é determinar a quantidade de<br />

memória RAM usada no momento. Essas informações podem ser encontradas em<br />

/proc/meminfo. Atualmente, os usuários com acesso a um sistema operacional<br />

moderno, como o Linux, não precisam se preocupar muito com memória. O conceito<br />

de RAM disponível surgiu antes da época <strong>do</strong> gerenciamento unifica<strong>do</strong> de memória. O<br />

slogan memória livre é memória ruim se aplica bem ao Linux. Como resulta<strong>do</strong>, o Linux<br />

sempre se esforçou para equilibrar caches externos sem realmente permitir memória<br />

livre ou sem uso.<br />

Basicamente, o kernel não tem conhecimento direto de nenhum aplicativo ou da<strong>do</strong>s de<br />

usuário. Em vez disso, ele gerencia aplicativos e da<strong>do</strong>s de usuário em um cache de<br />

página. Se a memória diminuir, partes dele são gravadas na partição de troca ou em<br />

arquivos, <strong>do</strong>s quais podem ser lidas inicialmente com a ajuda <strong>do</strong> coman<strong>do</strong> mmap<br />

(consulte man mmap).<br />

O kernel também contém outros caches, como o cache slab, onde os caches usa<strong>do</strong>s<br />

para acesso a rede são armazena<strong>do</strong>s. Isso pode explicar as diferenças entre os conta<strong>do</strong>res<br />

em /proc/meminfo. A maioria deles (mas não to<strong>do</strong>s) pode ser acessada via /proc/<br />

slabinfo.<br />

10.1.7 O arquivo /etc/resolv.conf<br />

A resolução de nome de <strong>do</strong>mínio é tratada pelo arquivo /etc/resolv.conf.<br />

Consulte o Capítulo 20, Domain Name System (Sistema de Nomes de Domínio) (p 381).<br />

Este arquivo é atualiza<strong>do</strong> pelo script /sbin/modify_resolvconf exclusivamente,<br />

e nenhum outro programa tem permissão para modificar diretamente o /etc/resolv<br />

.conf. Forçar esta regra é a única maneira de garantir que a configuração de rede <strong>do</strong><br />

sistema e os arquivos relevantes sejam manti<strong>do</strong>s em um esta<strong>do</strong> consistente.


10.1.8 Páginas de manual e de informações<br />

Para alguns aplicativos GNU (como o tar), as páginas de manuais não são mais mantidas.<br />

Para esses coman<strong>do</strong>s, use a opção --help para obter um rápi<strong>do</strong> resumo das páginas<br />

de informações, que fornecem instruções mais detalhadas. O info é um sistema hipertexto<br />

<strong>do</strong> GNU. Leia uma introdução sobre este sistema digitan<strong>do</strong> info info. As páginas<br />

de informações podem ser exibidas com Emacs ao se digitar emacs -f info ou<br />

diretamente em um console com info. Também é possível usar tkinfo, xinfo ou o<br />

sistema de ajuda <strong>do</strong> <strong>SUSE</strong> para exibir as páginas de informações.<br />

10.1.9 Configurações para GNU Emacs<br />

O GNU Emacs é um complexo ambiente de trabalho. As seções a seguir descrevem os<br />

arquivos de configuração processa<strong>do</strong>s quan<strong>do</strong> o GNU Emacs é inicia<strong>do</strong>. Há mais<br />

informações em http://www.gnu.org/s<strong>of</strong>tware/emacs/.<br />

Na inicialização, o Emacs lê vários arquivos que contêm as configurações <strong>do</strong> usuário,<br />

administra<strong>do</strong>r <strong>do</strong> sistema e distribui<strong>do</strong>r para personalização ou pré-configuração. O<br />

arquivo de inicialização ~/.emacs é instala<strong>do</strong> nos diretórios pessoais <strong>do</strong>s usuários<br />

individuais a partir de /etc/skel. O .emacs, por sua vez, lê o arquivo /etc/<br />

skel/.gnu-emacs. Para personalizar o programa, copie o arquivo .gnu-emacs<br />

para o diretório pessoal (com cp /etc/skel/.gnu-emacs ~/.gnu-emacs)<br />

e faça as configurações desejadas nesse diretório.<br />

O .gnu-emacs define o arquivo ~/.gnu-emacs-custom como arquivo<br />

personaliza<strong>do</strong>. Se os usuários fizerem as configurações com as opções<br />

personalizar no Emacs, as configurações serão salvas no arquivo ~/<br />

.gnu-emacs-custom.<br />

Com o <strong>SUSE</strong> Linux, o pacote <strong>do</strong> emacs instala o arquivo site-start.el no<br />

diretório /usr/share/emacs/site-lisp. O arquivo site-start.el é<br />

carrega<strong>do</strong> antes <strong>do</strong> arquivo de inicialização ~/.emacs. Entre outras coisas, o arquivo<br />

site-start.el assegura que os arquivos de configuração especial distribuí<strong>do</strong>s com<br />

os pacotes de expansão <strong>do</strong> Emacs, como o psgml, sejam carrega<strong>do</strong>s automaticamente.<br />

Os arquivos de configuração deste tipo estão localiza<strong>do</strong>s em /usr/share/emacs/<br />

site-lisp, também, e sempre começam com o nome suse-start-. O<br />

administra<strong>do</strong>r <strong>do</strong> sistema local pode especificar configurações globais <strong>do</strong> sistema no<br />

arquivo default.el.<br />

Recursos especiais <strong>do</strong> <strong>SUSE</strong> Linux 229


230 Referência<br />

Mais informações sobre esses arquivos estão disponíveis no arquivo de informações<br />

<strong>do</strong> Emacs em Init File: info:/emacs/InitFile. Informações sobre como<br />

desabilitar o carregamento desses arquivos, se necessário, também são fornecidas neste<br />

local.<br />

Os componentes <strong>do</strong> Emacs são dividi<strong>do</strong>s em vários pacotes:<br />

• O pacote base emacs.<br />

• emacs-x11 (normalmente instala<strong>do</strong>): o programa com suporte X11.<br />

• emacs-nox: o programa sem suporte X11.<br />

• emacs-info: <strong>do</strong>cumentação online em formato info.<br />

• emacs-el: os arquivos de biblioteca não compila<strong>do</strong>s em Emacs Lisp. Eles não<br />

são necessários em tempo de execução.<br />

• Numerosos pacotes de expansão podem ser instala<strong>do</strong>s, se houver necessidade:<br />

emacs-auctex (para LaTeX), psgml (para SGML e XML), gnuserv (para<br />

operação de cliente e servi<strong>do</strong>r) e outros.<br />

10.2 Consoles virtuais<br />

O Linux é um sistema multiusuário e multitarefa. As vantagens desses recursos podem<br />

ser apreciadas mesmo em um sistema de PC independente. No mo<strong>do</strong> de texto, existem<br />

seis consoles virtuais disponíveis. Alterne entre eles utilizan<strong>do</strong> a combinação de teclas<br />

Alt + F1 para Alt + F6 . O sétimo console é reserva<strong>do</strong> para X e o décimo console<br />

mostra as mensagens <strong>do</strong> kernel. Podem ser atribuí<strong>do</strong>s mais ou menos consoles com a<br />

modificação <strong>do</strong> arquivo /etc/inittab.<br />

Para alternar para um console de X sem fechá-lo, use a combinação de teclas Ctrl +<br />

Alt + F1 para Ctrl + Alt + F6 . Para voltar para X, pressione Alt + F7 .<br />

10.3 Mapeamento de tecla<strong>do</strong><br />

Para padronizar o mapeamento de tecla<strong>do</strong> de programas, foram feitas mudanças nos<br />

seguintes arquivos:


etc/inputrc<br />

/usr/X11R6/lib/X11/Xmodmap<br />

/etc/skel/.Xmodmap<br />

/etc/skel/.exrc<br />

/etc/skel/.less<br />

/etc/skel/.lesskey<br />

/etc/csh.cshrc<br />

/etc/termcap<br />

/usr/lib/terminfo/x/xterm<br />

/usr/X11R6/lib/X11/app-defaults/XTerm<br />

/usr/share/emacs//site-lisp/term/*.el<br />

Essas mudanças afetam apenas aplicativos que utilizam entradas terminfo ou cujos<br />

arquivos de configuração são muda<strong>do</strong>s diretamente (vi, less, etc.). Os aplicativos<br />

que não acompanham o <strong>SUSE</strong> Linux devem ser adapta<strong>do</strong>s a esses padrões.<br />

Em X, a chave de composição (multikey) pode ser acessada utilizan<strong>do</strong> Ctrl + Shift<br />

(direita). Consulte também a entrada correspondente em /usr/X11R6/lib/X11/<br />

Xmodmap.<br />

Outras configurações são possíveis utilizan<strong>do</strong> a Extensão de Tecla<strong>do</strong> X (XKB). Esta<br />

extensão também é usada pelos ambientes de área de trabalho <strong>do</strong> GNOME (gswitchit)<br />

e KDE (kxkb).<br />

DICA: Mais informações<br />

Informações sobre o XKB estão disponíveis em /etc/X11/xkb/README e<br />

nos <strong>do</strong>cumentos ali relaciona<strong>do</strong>s.<br />

Informações detalhadas sobre a entrada <strong>do</strong>s idiomas chinês, japonês e coreano<br />

(CJK) estão disponíveis na página de Mike Fabian em: http://www.suse<br />

.de/~mfabian/suse-cjk/input.html.<br />

10.4 Configurações de idioma e<br />

específicas de país<br />

O <strong>SUSE</strong> Linux é amplamente internacionaliza<strong>do</strong> e pode ser modifica<strong>do</strong> para satisfazer<br />

as necessidades locais de maneira flexível. Em outras palavras, a internacionalização<br />

(I18N) permite localizações específicas (L10N). As abreviações I18N e L10N são<br />

Recursos especiais <strong>do</strong> <strong>SUSE</strong> Linux 231


232 Referência<br />

derivadas das primeiras e últimas letras das palavras e, no meio, está o número de letras<br />

omitidas.<br />

As configurações são feitas com variáveis LC_ definidas no arquivo /etc/<br />

sysconfig/language. Estas referem-se não somente ao suporte ao idioma nativo,<br />

mas também às categorias Mensagens (Idioma), Conjunto de Caracteres, Ordem de<br />

Classificação, Hora e Data, Números e Moeda. Cada uma dessas categorias pode ser<br />

definida diretamente com sua própria variável ou indiretamente com uma variável<br />

master no arquivo language (consulte a página de manual local).<br />

RC_LC_MESSAGES, RC_LC_CTYPE, RC_LC_COLLATE, RC_LC_TIME,<br />

RC_LC_NUMERIC, RC_LC_MONETARY<br />

Essas variáveis são passadas para o shell sem o prefixo RC_ e representa as<br />

categorias listadas. Os perfis shell de referência estão lista<strong>do</strong>s abaixo. A<br />

configuração atual pode ser exibida com o coman<strong>do</strong> locale.<br />

RC_LC_ALL<br />

Esta variável, se definida, sobregrava os valores das variáveis já mencionadas.<br />

RC_LANG<br />

Se nenhuma das variáveis anteriores for definida, este é o fallback. Por padrão, o<br />

<strong>SUSE</strong> Linux apenas define RC_LANG. Isto facilita o processo para que os usuários<br />

informem seus próprios valores.<br />

ROOT_USES_LANG<br />

Uma variável yes ou no. Se for definida como no, root sempre funcionará no<br />

ambiente POSIX.<br />

As variáveis podem ser definidas com o editor sysconfig <strong>do</strong> YaST (consulte a<br />

Seção 8.3.1, “Mudan<strong>do</strong> a configuração <strong>do</strong> sistema usan<strong>do</strong> o Editor sysconfig <strong>do</strong> YaST”<br />

(p 198)). O valor de tal variável contém o código <strong>do</strong> idioma, código <strong>do</strong> país, codificação<br />

e modifica<strong>do</strong>r. Os componentes individuais são conecta<strong>do</strong>s por caracteres especiais:<br />

LANG=[[_].[@]]<br />

10.4.1 Alguns exemplos<br />

Você deve sempre definir os códigos <strong>do</strong> idioma e <strong>do</strong> país juntos. As configurações <strong>do</strong><br />

idioma seguem o padrão ISO 639 disponível em http://www.evertype.com/<br />

standards/iso639/iso639-en.html e http://www.loc.gov/


standards/iso639-2/. Os códigos de país estão lista<strong>do</strong>s na variável ISO 3166<br />

disponível em http://www.din.de/gremien/nas/nabd/iso3166ma/<br />

codlstp1/en_listp1.html.<br />

Só faz senti<strong>do</strong> definir valores para os quais os arquivos de descrição utilizáveis podem<br />

ser encontra<strong>do</strong>s em /usr/lib/locale. Arquivos de descrição adicionais podem<br />

ser cria<strong>do</strong>s de arquivos em /usr/share/i18n utilizan<strong>do</strong> o coman<strong>do</strong> localedef.<br />

Os arquivos de descrição fazem parte <strong>do</strong> pacote glibc-i18ndata. Um arquivo de<br />

descrição para en_US.UTF-8 (para inglês e Esta<strong>do</strong>s Uni<strong>do</strong>s) pode ser cria<strong>do</strong> com:<br />

localedef -i en_US -f UTF-8 en_US.UTF-8<br />

LANG=en_US.UTF-8<br />

Esta é a configuração padrão se Inglês americano for seleciona<strong>do</strong> durante a<br />

instalação. Se você selecionou outro idioma, aquele idioma será habilita<strong>do</strong>, mas<br />

ainda com o UTF-8 como a codificação de caractere.<br />

LANG=en_US.ISO-8859-1<br />

Este define o idioma para inglês, país para Esta<strong>do</strong>s Uni<strong>do</strong>s e a definição de caractere<br />

para ISO-8859-1. Esta definição de caractere não suporta o sinal de Euro, mas<br />

às vezes pode ser útil para programas que não foram atualiza<strong>do</strong>s para suportar<br />

UTF-8. A string que define o conjunto de caracteres (ISO-8859-1 neste caso)<br />

é então avaliada por programas como o Emacs.<br />

LANG=en_IE@euro<br />

O exemplo acima inclui explicitamente o sinal de Euro em uma configuração de<br />

idioma. Falan<strong>do</strong> estritamente, esta configuração é atualmente obsoleta, porque o<br />

UTF-8 também cobre o símbolo de Euro. Ela é útil apenas se um aplicativo não<br />

suportar o UTF-8, mas o ISO-8859-15.<br />

O SuSEconfig lê as variáveis em /etc/sysconfig/language e grava as mudanças<br />

necessárias em /etc/SuSEconfig/pr<strong>of</strong>ile e /etc/SuSEconfig/csh<br />

.cshrc. /etc/SuSEconfig/pr<strong>of</strong>ile é li<strong>do</strong> ou origina<strong>do</strong> por /etc/pr<strong>of</strong>ile.<br />

/etc/SuSEconfig/csh.cshrc é origina<strong>do</strong> por /etc/csh.cshrc. Isso torna<br />

as configurações disponíveis em to<strong>do</strong> o sistema.<br />

Os usuários podem anular os padrões <strong>do</strong> sistema editan<strong>do</strong> o seu ~/.bashrc de acor<strong>do</strong>.<br />

Por exemplo, se você não quiser usar o en_US global de sistema para mensagens de<br />

programa, inclua LC_MESSAGES=es_ES, então as mensagens serão exibidas em<br />

espanhol.<br />

Recursos especiais <strong>do</strong> <strong>SUSE</strong> Linux 233


10.4.2 Configurações locais em ~/.i18n<br />

Se você não estiver satisfeito com padrões de sistema locais, mude as configurações<br />

em ~/.i18n. As entradas em ~/.i18n substituem padrões de sistema de /etc/<br />

sysconfig/language. Use os mesmos nomes de variáveis mas sem os prefixos<br />

de namespace RC_, por exemplo, use LANG em vez de RC_LANG.<br />

10.4.3 Configurações de suporte de idioma<br />

Arquivos na categoria Mensagens são, como regra, armazena<strong>do</strong>s somente no diretório<br />

<strong>do</strong> idioma correspondente (como en) para ter um fallback. Se você definir LANG para<br />

en_US e o arquivo de mensagem em /usr/share/locale/en_US/LC<br />

_MESSAGES não existir, ele voltará para /usr/share/locale/en/LC<br />

_MESSAGES.<br />

Uma cadeia de fallback também pode ser definida, por exemplo, de bretão para francês<br />

ou galego para espanhol ou português:<br />

LANGUAGE="br_FR:fr_FR"<br />

LANGUAGE="gl_ES:es_ES:pt_PT"<br />

Se deseja<strong>do</strong>, use as variantes norueguesas Nynorsk e Bokmål (com fallback adicional<br />

para não):<br />

LANG="nn_NO"<br />

LANGUAGE="nn_NO:nb_NO:no"<br />

ou<br />

234 Referência<br />

LANG="nb_NO"<br />

LANGUAGE="nb_NO:nn_NO:no"<br />

Observe que em norueguês, LC_TIME também é trata<strong>do</strong> de maneira diferente.<br />

Um problema que pode surgir é um separa<strong>do</strong>r usa<strong>do</strong> para delimitar grupos de dígitos<br />

não ser reconheci<strong>do</strong> corretamente. Isso acontece se LANG for defini<strong>do</strong> para um código<br />

de idioma com somente duas letras, como de, mas o arquivo de definição que o glibc


utiliza está localiza<strong>do</strong> em /usr/share/lib/de_DE/LC_NUMERIC. Por isso,<br />

LC_NUMERIC deve ser defini<strong>do</strong> para de_DE para tornar a definição de separa<strong>do</strong>r<br />

visível para o sistema.<br />

10.4.4 Mais informações<br />

• The GNU C Library Reference Manual, Capítulo “Locales and Internationalization”.<br />

Ele está incluí<strong>do</strong> em glibc-info.<br />

• Markus Kuhn, UTF-8 and Unicode FAQ for Unix/Linux, atualmente em http://<br />

www.cl.cam.ac.uk/~mgk25/unicode.html.<br />

• Unicode-Howto, de Bruno Haible: /usr/share/<strong>do</strong>c/howto/en/html/<br />

Unicode-HOWTO.html.<br />

Recursos especiais <strong>do</strong> <strong>SUSE</strong> Linux 235


Operação da impressora<br />

CUPS é o sistema de impressão padrão <strong>do</strong> <strong>SUSE</strong> Linux. O CUPS é altamente orienta<strong>do</strong><br />

ao usuário. Em muitos casos, é compatível com LPRng ou pode ser adapta<strong>do</strong> com<br />

relativamente pouco esforço. O LPRng é incluí<strong>do</strong> no <strong>SUSE</strong> Linux apenas por motivos<br />

de compatibilidade.<br />

As impressoras podem ser distinguidas pela interface, como USB ou rede, e pela<br />

linguagem de impressão. Ao comprar uma impressora, verifique se a interface <strong>do</strong><br />

equipamento é suportada pelo hardware e se a linguagem da impressora é adequada.<br />

As impressoras podem ser categorizadas com base em três classes de linguagem:<br />

Impressoras PostScript<br />

PostScript é a linguagem de impressora na qual a maior parte <strong>do</strong>s trabalhos de<br />

impressão Linux e Unix são gera<strong>do</strong>s e processa<strong>do</strong>s pelo sistema de impressão<br />

interno. Essa linguagem já existe há bastante tempo e é muito eficiente. Se<br />

<strong>do</strong>cumentos PostScript puderem ser diretamente processa<strong>do</strong>s pela impressora e<br />

não precisarem ser converti<strong>do</strong>s em estágios adicionais <strong>do</strong> sistema de impressão, o<br />

número de origens de erro potenciais será reduzi<strong>do</strong>. Como as impressoras PostScript<br />

estão sujeitas a custos de licenciamento substanciais, elas geralmente custam mais<br />

que as impressoras sem interpreta<strong>do</strong>r PostScript.<br />

Impressora padrão (linguagens como PCL e ESC/P)<br />

Embora essas linguagens de impressora tenham surgi<strong>do</strong> há bastante tempo, ainda<br />

são usadas e s<strong>of</strong>rem constantes desenvolvimentos para se adaptarem aos novos<br />

recursos de impressoras. No caso de linguagens conhecidas, o sistema pode<br />

converter tarefas de impressão PostScript na respectiva linguagem de impressão<br />

com a ajuda <strong>do</strong> Ghostscript. Esse estágio de processamento é chama<strong>do</strong> de<br />

interpretação. As linguagens mais conhecidas são a PCL, mais usada pelas<br />

11<br />

Operação da impressora 237


238 Referência<br />

impressoras HP e seus clones, e a ESC/P, utilizada nas impressoras Epson.<br />

Geralmente, essas linguagens são suportadas no Linux e produzem um resulta<strong>do</strong><br />

de impressão satisfatório. Pode ocorrer de o Linux não conseguir lidar com algumas<br />

funções de impressoras muito novas e s<strong>of</strong>isticadas, já que os desenvolve<strong>do</strong>res <strong>do</strong><br />

código-fonte aberto ainda estarão trabalhan<strong>do</strong> nesses recursos. Além da HP, que<br />

desenvolve os drivers hpijs, nenhum outro fabricante cria ou disponibiliza drivers<br />

Linux aos distribui<strong>do</strong>res como licença de código-fonte aberto. A maior parte dessas<br />

impressoras está na faixa de preços intermediária.<br />

Impressoras proprietárias (geralmente, impressoras GDI)<br />

Em geral, apenas um ou vários drivers Win<strong>do</strong>ws estão disponíveis para impressoras<br />

proprietárias. Essas impressoras não aceitam nenhuma das linguagens de impressão<br />

comuns, e as que usam estão sujeitas a alteração quan<strong>do</strong> uma nova edição de um<br />

modelo é lançada. Consulte a Seção 11.7.1, “Impressoras sem suporte de linguagem<br />

de impressora padrão” (p 253) para obter mais informações.<br />

Antes de comprar uma nova impressora, consulte as seguintes fontes para verificar a<br />

abrangência <strong>do</strong> suporte ao equipamento pretendi<strong>do</strong>:<br />

• http://cdb.suse.de/ — banco de da<strong>do</strong>s de impressoras <strong>do</strong> <strong>SUSE</strong> Linux<br />

• http://www.linuxprinting.org/ — banco de da<strong>do</strong>s de impressoras <strong>do</strong><br />

site LinuxPrinting.org<br />

• http://www.cs.wisc.edu/~ghost/ — site <strong>do</strong> Ghostscript na Web<br />

• /usr/share/<strong>do</strong>c/packages/ghostscript/catalog.devices —<br />

lista de drivers incluí<strong>do</strong>s<br />

Os bancos de da<strong>do</strong>s online sempre mostram o status de suporte Linux mais recente. No<br />

entanto, a distribuição <strong>do</strong> Linux só pode integrar os drivers disponíveis no momento<br />

da produção. Da mesma forma, uma impressora atualmente classificada como<br />

“perfeitamente suportada” poderá não apresentar esse status quan<strong>do</strong> a próxima versão<br />

<strong>do</strong> <strong>SUSE</strong> Linux for lançada. Assim, os bancos de da<strong>do</strong>s não indicarão necessariamente<br />

o status correto, mas apenas uma informação aproximada.


11.1 Fluxo de trabalho <strong>do</strong> sistema de<br />

impressão<br />

O usuário cria uma tarefa de impressão. Essa tarefa consiste nos da<strong>do</strong>s a serem<br />

impressos, além de informações para o spooler, como nome da impressora ou nome da<br />

fila de impressão e, opcionalmente, da<strong>do</strong>s para o filtro, como opções específicas da<br />

impressora.<br />

Existe uma fila de impressão dedicada para cada impressora. O spooler mantém a tarefa<br />

de impressão em fila até que a impressora desejada esteja pronta para receber da<strong>do</strong>s.<br />

Uma vez pronta, o spooler envia os da<strong>do</strong>s pelo filtro, ten<strong>do</strong> a impressora como back<br />

end.<br />

O filtro converte os da<strong>do</strong>s que o usuário deseja imprimir (ASCII, PostScript, PDF,<br />

JPEG etc.) em da<strong>do</strong>s específicos de impressora (PostScript, PCL, ESC/P etc.). Os<br />

recursos da impressora são descritos nos arquivos PPD. O arquivo PPD contém opções<br />

da impressora com os parâmetros necessários para habilitá-los. O sistema de filtros<br />

verifica se as opções selecionadas pelo usuário foram habilitadas.<br />

Se você usa uma impressora PostScript, o sistema de filtros converte os da<strong>do</strong>s em<br />

PostScript específico da impressora. Isso não exige um driver de impressora. Se você<br />

usa uma impressora não-PostScript, o sistema de filtros converte os da<strong>do</strong>s em da<strong>do</strong>s<br />

específicos da impressora usan<strong>do</strong> o Ghostscript. Isso exige um driver Ghostscript<br />

adequa<strong>do</strong> à sua impressora. O back end recebe <strong>do</strong> filtro os da<strong>do</strong>s específicos da<br />

impressora e os repassa a ela.<br />

11.2 Méto<strong>do</strong>s e protocolos de<br />

conexão de impressoras<br />

Existem várias possibilidades para conectar uma impressora ao sistema. A configuração<br />

<strong>do</strong> sistema de impressão CUPS não faz distinção entre uma impressora local e uma<br />

impressora conectada ao sistema pela rede. No Linux, impressoras locais devem ser<br />

conectadas conforme descrito no manual <strong>do</strong> respectivo fabricante. O CUPS suporta<br />

conexões seriais, USB, paralelas e SCSI. Para obter mais informações sobre a conexão<br />

de impressoras, leia o artigo CUPS in a Nutshell (Aprenden<strong>do</strong> mais um pouco sobre<br />

Operação da impressora 239


240 Referência<br />

CUPs) no Banco de Da<strong>do</strong>s de Suporte, em http://portal.suse.com. Para<br />

encontrar o artigo, digite cups na caixa de diálogo de pesquisa.<br />

ATENÇÃO: Conexão <strong>do</strong> cabo à máquina<br />

Ao conectar a impressora à máquina, não esqueça de que apenas dispositivos<br />

USB podem ser conecta<strong>do</strong>s ou desconecta<strong>do</strong>s durante a operação. Desligue o<br />

sistema antes de modificar outros tipos de conexão.<br />

11.3 Instalação <strong>do</strong> s<strong>of</strong>tware<br />

PPD (descrição de impressora PostScript) é a linguagem de computa<strong>do</strong>r que descreve<br />

as propriedades, como resolução, e as opções, como disponibilidade de uma unidade<br />

duplex. Essas descrições são necessárias para o uso de várias opções de impressora no<br />

CUPS. Sem um arquivo PPD, os da<strong>do</strong>s de impressão seriam encaminha<strong>do</strong>s à impressora<br />

em esta<strong>do</strong> “bruto”, o que normalmente não é deseja<strong>do</strong>. Durante a instalação <strong>do</strong> <strong>SUSE</strong><br />

Linux, vários arquivos PPD são pré-instala<strong>do</strong>s, habilitan<strong>do</strong> o uso de até mesmo<br />

impressoras sem suporte a PostScript.<br />

Para configurar uma impressora PostScript, a melhor opção é obter um arquivo PPD<br />

adequa<strong>do</strong>. Há vários arquivos PPD disponíveis no pacote de PPDs <strong>do</strong> fabricante,<br />

que são automaticamente instala<strong>do</strong>s no escopo da instalação padrão. Consulte a<br />

Seção 11.6.3, “Arquivos PPD em pacotes diferentes” (p 251) e a Seção 11.7.2, “Nenhum<br />

arquivo PPD adequa<strong>do</strong> disponível para impressora PostScript” (p 254).<br />

Novos arquivos PPD podem ser armazena<strong>do</strong>s no diretório /usr/share/cups/<br />

model/ ou adiciona<strong>do</strong>s ao sistema de impressão por meio <strong>do</strong> YaST (consulte<br />

“Configuração manual” (p 242)). Posteriormente, é possível selecionar o arquivo PPD<br />

durante a instalação.<br />

Tenha cuida<strong>do</strong> se o fabricante pedir que você instale pacotes de s<strong>of</strong>tware inteiros para<br />

modificar arquivos de configuração. Em primeiro lugar, esse tipo de instalação pode<br />

resultar na perda <strong>do</strong> suporte <strong>of</strong>ereci<strong>do</strong> pelo <strong>SUSE</strong> Linux. Em segun<strong>do</strong> lugar, os coman<strong>do</strong>s<br />

de impressão poderão funcionar de forma diferente, e talvez o sistema não consiga<br />

abordar dispositivos de outros fabricantes. Por isso, não recomendamos instalar o<br />

s<strong>of</strong>tware <strong>do</strong> fabricante.


11.4 Configuração da impressora<br />

Após conectar a impressora ao computa<strong>do</strong>r e instalar o s<strong>of</strong>tware, instale a impressora<br />

no sistema. Faça isso usan<strong>do</strong> as ferramentas que acompanham o <strong>SUSE</strong> Linux. Como<br />

o <strong>SUSE</strong> Linux enfatiza a segurança, ferramentas de terceiros não funcionarão bem com<br />

as restrições de segurança e causarão mais problemas que benefícios. Consulte a<br />

Seção 11.6.1, “Servi<strong>do</strong>r e firewall <strong>do</strong> CUPS” (p 248) e a Seção 11.6.2, “Mudanças no<br />

serviço de impressão <strong>do</strong> CUPS” (p 249) para obter mais informações sobre como<br />

solucionar problemas.<br />

11.4.1 Impressoras locais<br />

Se for detectada uma impressora local não configurada quan<strong>do</strong> você efetuar login, o<br />

YaST será inicia<strong>do</strong> para configurá-la. Serão usadas as mesmas caixas de diálogo<br />

mostradas abaixo para a descrição da configuração.<br />

Para configurar a impressora, selecione Hardware → Impressora no centro de controle<br />

<strong>do</strong> YaST. Isso abrirá a janela de configuração principal da impressora, onde os<br />

dispositivos detecta<strong>do</strong>s são lista<strong>do</strong>s na parte superior. A parte inferior relaciona as listas<br />

configuradas até então. Se sua impressora não foi detectada, configure-a manualmente.<br />

IMPORTANTE<br />

Se a entrada Impressora não estiver disponível no centro de controle <strong>do</strong> YaST,<br />

provavelmente o pacote yast2-printer não está instala<strong>do</strong>. Para solucionar<br />

esse problema, instale o pacote yast2-printer e reinicie o YaST.<br />

Configuração automática<br />

O YaST poderá configurar a impressora automaticamente se for possível configurar<br />

automaticamente a porta paralela ou USB e se a impressora conectada puder ser<br />

detectada. O banco de da<strong>do</strong>s da impressora também deve conter a string <strong>do</strong> ID da<br />

impressora que o YaST recupera durante a detecção automática <strong>do</strong> hardware. Se o ID<br />

<strong>do</strong> hardware for diferente <strong>do</strong> da designação <strong>do</strong> modelo, selecione o modelo manualmente.<br />

Operação da impressora 241


242 Referência<br />

Para assegurar que tu<strong>do</strong> funcione adequadamente, cada configuração deve ser verificada<br />

com a função de teste de impressão <strong>do</strong> YaST. A página de teste também fornece<br />

informações importantes sobre a configuração testada.<br />

Configuração manual<br />

Se os requisitos da configuração automática não forem atendi<strong>do</strong>s, ou se você quiser<br />

fazer uma configuração personalizada, configure a impressora manualmente.<br />

Dependen<strong>do</strong> <strong>do</strong> sucesso da detecção automática e da quantidade de informações sobre<br />

o modelo de impressora encontradas no banco de da<strong>do</strong>s, o YaST poderá determinar as<br />

configurações corretas automaticamente ou, pelo menos, fazer uma pré-seleção razoável.<br />

Os seguintes parâmetros devem ser configura<strong>do</strong>s:<br />

Conexão de Hardware (Porta)<br />

A configuração da conexão de hardware dependerá da habilidade <strong>do</strong> YaST em<br />

encontrar a impressora durante a detecção automática de hardware. Se o YaST<br />

conseguir detectar o modelo de impressora automaticamente, poderemos deduzir<br />

que a conexão da impressora está funcionan<strong>do</strong> no nível de hardware, não sen<strong>do</strong><br />

necessário modificar qualquer configuração a esse respeito. Se o YaST não conseguir<br />

detectar automaticamente o modelo de impressora, poderá haver algum problema<br />

na conexão no nível <strong>do</strong> hardware. Nesse caso, será necessária alguma intervenção<br />

manual para configurar a conexão.<br />

Na caixa de diálogo Configuração da Impressora, pressione Adicionar para iniciar<br />

o fluxo de trabalho de configuração manual. Selecione o Tipo de Impressora (por<br />

exemplo, Impressora USB) e, clican<strong>do</strong> em Próximo, digite a Conexão de<br />

Impressora e selecione o dispositivo.<br />

Nome da Fila<br />

O nome da fila é usa<strong>do</strong> quan<strong>do</strong> emitimos coman<strong>do</strong>s de impressão. O nome deve<br />

ser relativamente curto e composto apenas por letras minúsculas e números. Digite<br />

o Nome para impressão na próxima caixa de diálogo (Nome da fila).<br />

Modelo de Impressora e Arquivo PPD<br />

To<strong>do</strong>s os parâmetros específicos da impressora, como o driver Ghostscript a ser<br />

usa<strong>do</strong> e os parâmetros <strong>do</strong> filtro de impressão, são armazena<strong>do</strong>s em um arquivo<br />

PPD (PostDescription Printer Description). Consulte a Seção 11.3, “Instalação <strong>do</strong><br />

s<strong>of</strong>tware” (p 240) para obter mais informações sobre arquivos PPD.


Para muitos modelos de impressora, haverá vários arquivos PPD disponíveis se,<br />

por exemplo, vários drivers Ghostscript funcionarem com o modelo em questão.<br />

Quan<strong>do</strong> você selecionar um fabricante e um modelo na próxima caixa de diálogo<br />

(Modelo de impressora), o YaST selecionará o arquivo PPD que corresponde à<br />

impressora. Se houver vários arquivos PPD disponíveis para o modelo, o YaST<br />

assumirá um deles como padrão (normalmente aquele marca<strong>do</strong> como<br />

recomenda<strong>do</strong>). É possível modificar o arquivo PPD escolhi<strong>do</strong> na próxima caixa<br />

de diálogo usan<strong>do</strong> Editar.<br />

Para modelos não-PostScript, to<strong>do</strong>s os da<strong>do</strong>s específicos da impressora são<br />

produzi<strong>do</strong>s pelo driver Ghostscript. Por esse motivo, a configuração <strong>do</strong> driver é o<br />

fator mais importante a determinar a qualidade da impressão. A impressão é afetada<br />

pelo tipo de driver Ghostscript (arquivo PPD) seleciona<strong>do</strong> e pelas opções<br />

especificadas para ele. Se necessário, mude as opções adicionais (conforme<br />

disponibilizadas pelo arquivo PPD) depois de selecionar Editar.<br />

Figura 11.1 Seleção <strong>do</strong> modelo de impressora<br />

Sempre verifique se suas configurações estão funcionan<strong>do</strong> como espera<strong>do</strong>. Para<br />

isso, imprima a página de teste. Se a impressão sair com erros (por exemplo, com<br />

várias páginas praticamente vazias), pare a impressão removen<strong>do</strong> to<strong>do</strong> o papel e,<br />

em seguida, interrompen<strong>do</strong> o teste no YaST.<br />

Operação da impressora 243


244 Referência<br />

Se o banco de da<strong>do</strong>s da impressora não incluir uma entrada para o modelo, será<br />

possível adicionar um novo arquivo PPD selecionan<strong>do</strong> Adicionan<strong>do</strong> Arquivo PPD<br />

ao Banco de Da<strong>do</strong>s ou usan<strong>do</strong> um grupo de arquivos PPD genéricos para forçar a<br />

impressora a usar uma das linguagens de impressão padrão. Para isso, selecione<br />

FABRICANTE DESCONHECIDO como fabricante da impressora.<br />

Configurações Avançadas<br />

Normalmente, não é necessário alterar essas configurações.<br />

11.4.2 Impressoras de rede<br />

Uma impressora de rede pode suportar vários protocolos, alguns deles simultaneamente.<br />

Embora a maioria <strong>do</strong>s protocolos suporta<strong>do</strong>s sejam padroniza<strong>do</strong>s, alguns fabricantes<br />

expandem (modificam) o padrão porque eles testam sistemas que não implementaram<br />

o padrão corretamente ou porque querem fornecer certas funções que não estão<br />

disponíveis no padrão. Os fabricantes fornecem drivers apenas para alguns sistemas<br />

operacionais, eliminan<strong>do</strong> dificuldades relativas a eles. Infelizmente, raros são os drivers<br />

para Linux. Na situação atual, não é possível agir como se to<strong>do</strong>s os protocolos<br />

funcionassem perfeitamente no Linux. Portanto, talvez seja necessário testar várias<br />

opções para obter uma configuração funcional.<br />

O CUPS suporta os protocolos soquete, LPD, IPP e smb. Veja abaixo alguns detalhes<br />

sobre esses protocolos:<br />

soquete<br />

Soquete se refere a uma conexão na qual os da<strong>do</strong>s são envia<strong>do</strong>s a um soquete de<br />

Internet sem precedência de handshake de da<strong>do</strong>s. Alguns <strong>do</strong>s números de portas<br />

de soquete normalmente usa<strong>do</strong>s são 9100 ou 35. Um exemplo de URI de<br />

dispositivo é socket://host-printer:9100/.<br />

LPD (daemon de impressora de linha)<br />

O protocolo LPD comprova<strong>do</strong> é descrito em RFC 1179. Nesse protocolo, alguns<br />

da<strong>do</strong>s relativos à tarefa, como ID da fila de impressão, são envia<strong>do</strong>s antes <strong>do</strong>s da<strong>do</strong>s<br />

de impressão propriamente ditos. Portanto, deve ser especificada uma fila de<br />

impressão durante a configuração <strong>do</strong> protocolo LPD para a transmissão de da<strong>do</strong>s.<br />

As implementações de fabricantes de impressoras diferentes são flexíveis o<br />

suficiente para aceitar qualquer nome como fila de impressão. Se necessário, o<br />

manual da impressora indicará o nome a ser usa<strong>do</strong>. LPT, LPT1, LP1 ou semelhantes<br />

são os nomes normalmente usa<strong>do</strong>s. Também é possível configurar uma fila LPD


em um host Linux ou Unix diferente no sistema CUPS. O número de porta para o<br />

serviço LPD é 515. Um exemplo de URI de dispositivo é<br />

lpd://host-printer/LPT1.<br />

IPP (protocolo de impressão de Internet)<br />

O IPP é um protocolo relativamente novo (1999) basea<strong>do</strong> no protocolo HTTP.<br />

Com o IPP, mais da<strong>do</strong>s referentes à tarefa são transmiti<strong>do</strong>s. O CUPS usa o IPP em<br />

transmissões internas de da<strong>do</strong>s. É o protocolo escolhi<strong>do</strong> para a fila de<br />

encaminhamento entre <strong>do</strong>is servi<strong>do</strong>res CUPS. É necessário indicar o nome da fila<br />

de impressão para que o IPP seja configura<strong>do</strong> corretamente. A porta padrão <strong>do</strong> IPP<br />

é 631. Exemplos de URIs de dispositivo são ipp://host-printer/ps e<br />

ipp://host-cupsserver/printers/ps.<br />

SMB (compartilhamento Win<strong>do</strong>ws)<br />

O CUPS também suporta a impressão em impressoras conectadas a<br />

compartilhamentos Win<strong>do</strong>ws. O protocolo usa<strong>do</strong> para essa finalidade é o SMB. O<br />

SMB usa os números de porta 137, 138 e 139. Exemplos de URIs de dispositivos<br />

são smb://user:password@workgroup/server/printer,<br />

smb://user:password@host/printer e smb://server/printer.<br />

O protocolo suporta<strong>do</strong> pela impressora deve ser determina<strong>do</strong> antes da configuração.<br />

Se o fabricante não fornecer as informações necessárias, o coman<strong>do</strong> nmap, que vem<br />

com o pacote nmap, poderá ser usa<strong>do</strong> para descobrir o protocolo. nmap verificar as<br />

portas abertas <strong>do</strong> host. Por exemplo:<br />

nmap -p 35,137-139,515,631,9100-10000 printerIP<br />

Configuração <strong>do</strong> CUPS na rede com YaST<br />

As impressoras de rede devem ser configuradas com o YaST. O YaST facilita a<br />

configuração e é mais bem equipa<strong>do</strong> para lidar com restrições de segurança no CUPS<br />

(consulte a Seção 11.6.2, “Mudanças no serviço de impressão <strong>do</strong> CUPS” (p 249)). Para<br />

obter orientações sobre a instalação <strong>do</strong> CUPS na rede, leia o artigo CUPS in a Nutshell<br />

no Banco de Da<strong>do</strong>s de Suporte, em http://portal.suse.com.<br />

Inicie a configuração da impressora e clique em Adicionar. Se não houver orientação<br />

contrária <strong>do</strong> administra<strong>do</strong>r de rede, tente a opção Imprimir Diretamente em Impressora<br />

de Rede e prossiga de acor<strong>do</strong> com os requisitos locais.<br />

Operação da impressora 245


246 Referência<br />

Configuração com ferramentas da linha de coman<strong>do</strong><br />

O CUPS também pode ser configura<strong>do</strong> com ferramentas de linha de coman<strong>do</strong> como<br />

lpadmin e lpoptions. Você precisará de um URI de dispositivo consistente em<br />

um back end, como usb, e parâmetros como /dev/usb/lp0. Por exemplo, o URI<br />

completo poderia ser parallel:/dev/lp0 (impressora conectada à primeira porta<br />

paralela) ou usb:/dev/usb/lp0 (primeira impressora conectada à porta USB).<br />

Com lpadmin, o administra<strong>do</strong>r <strong>do</strong> servi<strong>do</strong>r CUPS pode adicionar, remover ou gerenciar<br />

filas de classe e de impressão. Para adicionar uma fila de impressão, use a seguinte<br />

sintaxe:<br />

lpadmin -p queue -v device-URI \<br />

-P PPD-file -E<br />

O dispositivo (-v) estará disponível como fila (-p), usan<strong>do</strong> o arquivo PPD<br />

especifica<strong>do</strong> (-P). Isso significa que você deve conhecer o arquivo PPD e o nome <strong>do</strong><br />

dispositivo se quiser configurar a impressora manualmente.<br />

Não use -E como primeira opção. Em to<strong>do</strong>s os coman<strong>do</strong>s CUPS, -E como primeiro<br />

argumento define o uso de uma conexão criptografada. Para habilitar a impressora, -E<br />

deve ser usa<strong>do</strong> como mostra<strong>do</strong> no seguinte exemplo:<br />

lpadmin -p ps -v parallel:/dev/lp0 -P \<br />

/usr/share/cups/model/Postscript.ppd.gz -E<br />

O seguinte exemplo configura uma impressora de rede:<br />

lpadmin -p ps -v socket://192.168.1.0:9100/ -P \<br />

/usr/share/cups/model/Postscript-level1.ppd.gz -E<br />

Para obter mais opções de lpadmin, consulte a página de manual lpadmin(1).<br />

Durante a configuração da impressora, algumas opções são definidas como padrão.<br />

Essas opções podem ser modificadas para cada tarefa de impressão (dependen<strong>do</strong> da<br />

ferramenta de impressão utilizada). Também é possível modificar essas opções padrão<br />

com o YaST. Usan<strong>do</strong> ferramentas de linha de coman<strong>do</strong>, defina opções padrão da seguinte<br />

forma:<br />

1 Primeiro, liste todas as opções:<br />

lpoptions -p queue -l<br />

Exemplo:


Resolução/Resolução de Saída: 150dpi *300dpi 600dpi<br />

A opção padrão ativada fica evidente com o asterisco precedente (*).<br />

2 Mude a opção com lpadmin:<br />

lpadmin -p queue -o Resolution=600dpi<br />

3 Verifique a nova configuração:<br />

lpoptions -p queue -l<br />

Resolução/Resolução de Saída: 150dpi 300dpi *600dpi<br />

As configurações são gravadas em ~/.lpoptions quan<strong>do</strong> um usuário normal executa<br />

lpoptions. As configurações de root são gravadas em /etc/cups/lpoptions.<br />

11.5 Configuração de aplicativos<br />

Os aplicativos, assim como as ferramentas da linha de coman<strong>do</strong>, dependem das filas<br />

de impressora existentes. Geralmente, não é necessário reconfigurar a impressora de<br />

um aplicativo específico porque provavelmente você conseguirá imprimir usan<strong>do</strong> as<br />

filas disponíveis.<br />

Para imprimir da linha de coman<strong>do</strong>, digite lp-d nome da fila nome <strong>do</strong><br />

arquivo, substituin<strong>do</strong> os nomes correspondentes <strong>do</strong> nome da fila e nome <strong>do</strong><br />

arquivo.<br />

Alguns aplicativos dependem <strong>do</strong> coman<strong>do</strong> lp para imprimir. Nesse caso, digite o<br />

coman<strong>do</strong> correto na caixa de diálogo <strong>do</strong> aplicativo, geralmente sem especificar nome<br />

<strong>do</strong> arquivo, por exemplo lp -dnome da fila. Para que isso funcione com<br />

programas KDE, habilite Impressão através de programa externo. Caso contrário, você<br />

não poderá digitar o coman<strong>do</strong> de impressão.<br />

Ferramentas como o xpp e o programa kprinter <strong>do</strong> KDE <strong>of</strong>erecem uma interface gráfica<br />

que permite escolher filas e definir opções padrão <strong>do</strong> CUPS e específicas da impressora<br />

disponibilizadas por meio <strong>do</strong> arquivo PPD. Você pode usar o kprinter como interface<br />

de impressão padrão de aplicativos não KDE especifican<strong>do</strong> kprinter ou<br />

kprinter--stdin como coman<strong>do</strong> de impressão nas caixas de diálogo desses<br />

aplicativos. O comportamento <strong>do</strong> aplicativo determinará o coman<strong>do</strong> a ser escolhi<strong>do</strong>.<br />

Operação da impressora 247


248 Referência<br />

Se configura<strong>do</strong> corretamente, o aplicativo deverá chamar a caixa de diálogo kprinter<br />

sempre que uma tarefa de impressão for emitida. Por isso, você pode usar a caixa de<br />

diálogo para selecionar uma fila e definir outras opções de impressão. Isso requer que<br />

a configuração de impressão <strong>do</strong> próprio aplicativo não conflite com a <strong>do</strong> kprinter, e que<br />

as opções de impressão somente sejam modificadas por meio de kprinter depois que<br />

este seja habilita<strong>do</strong>.<br />

11.6 Recursos especiais <strong>do</strong> <strong>SUSE</strong> Linux<br />

Vários recursos <strong>do</strong> CUPS foram adapta<strong>do</strong>s para o <strong>SUSE</strong> Linux. Algumas das mudanças<br />

mais importantes são abordadas aqui.<br />

11.6.1 Servi<strong>do</strong>r e firewall <strong>do</strong> CUPS<br />

Existem várias maneiras de configurar o CUPS como cliente de um servi<strong>do</strong>r de rede.<br />

1. Para cada fila <strong>do</strong> servi<strong>do</strong>r de rede, você pode configurar uma fila local por meio<br />

da qual encaminhará todas as tarefas ao servi<strong>do</strong>r de rede correspondente (fila de<br />

encaminhamento). Geralmente, essa abordagem não é recomendada porque todas<br />

as máquinas clientes devem ser reconfiguradas sempre que a configuração <strong>do</strong><br />

servi<strong>do</strong>r de rede s<strong>of</strong>rer alguma mudança.<br />

2. As tarefas de impressão também podem ser encaminhadas diretamente a um<br />

servi<strong>do</strong>r de rede. Para esse tipo de configuração, não execute um daemon CUPS<br />

local. A chamada de lp ou da biblioteca correspondente de outros programas<br />

pode enviar tarefas diretamente ao servi<strong>do</strong>r de rede. No entanto, essa configuração<br />

não funcionará se você também quiser imprimir em uma impressora local.<br />

3. O daemon CUPS pode ouvir pacotes de transmissão IPP que outros servi<strong>do</strong>res<br />

de rede enviam para anunciar as filas disponíveis.<br />

Essa é a melhor configuração <strong>do</strong> CUPS para impressão em servi<strong>do</strong>res CUPS<br />

remotos. No entanto, há o risco de que um invasor envie transmissões IPP com<br />

filas e o daemon local acesse uma fila falsa. Se ele exibir a fila com o mesmo<br />

nome de outra fila no servi<strong>do</strong>r local, o proprietário da tarefa poderá acreditar<br />

que a tarefa foi enviada a um servi<strong>do</strong>r local, enquanto, na verdade, ela foi enviada<br />

ao servi<strong>do</strong>r <strong>do</strong> invasor.


O YaST pode localizar os servi<strong>do</strong>res CUPS verifican<strong>do</strong> os hosts de rede local para ver<br />

se eles <strong>of</strong>erecem o serviço IPP ou ouvin<strong>do</strong> transmissões IPP. Isso exige que o firewall<br />

permita a transmissão de pacotes recebi<strong>do</strong>s na porta 631/UDP (cliente de serviço IPP).<br />

Isso será habilita<strong>do</strong> automaticamente quan<strong>do</strong> você tiver configura<strong>do</strong> sua máquina para<br />

estar na zona de firewall interna. Abrir uma porta para configurar acesso a filas remotas<br />

na zona externa pode constituir um risco de segurança porque o invasor pode transmitir<br />

um servi<strong>do</strong>r que talvez seja aceito pelos usuários. Por padrão, as transmissões de IPP<br />

são rejeitadas na zona externa. Consulte “Configuran<strong>do</strong> com o YaST” (p 110) para obter<br />

detalhes sobre a configuração de firewall.<br />

O usuário também pode detectar os servi<strong>do</strong>res CUPS verifican<strong>do</strong> ativamente os hosts<br />

de rede locais ou configurar filas manualmente. No entanto, por causa das razões<br />

mencionadas no início desta seção, esse méto<strong>do</strong> não é recomenda<strong>do</strong>.<br />

11.6.2 Mudanças no serviço de impressão<br />

<strong>do</strong> CUPS<br />

Estas mudanças foram inicialmente aplicadas para o <strong>SUSE</strong> Linux 9.1.<br />

Execuções de cupsd como usuário lp<br />

Na inicialização, cupsd muda <strong>do</strong> usuário root para o usuário lp. Isso <strong>of</strong>erece um<br />

nível de segurança muito maior porque o serviço de impressão CUPS não é executa<strong>do</strong><br />

com permissões irrestritas, mas somente com as permissões necessárias para o serviço<br />

de impressão.<br />

Entretanto, a autenticação (a verificação de senha) não pode ser executada via /etc/<br />

sha<strong>do</strong>w, porque lp não tem acesso a /etc/sha<strong>do</strong>w. Em vez disso, deve ser usada<br />

a autenticação específica <strong>do</strong> CUPS via /etc/cups/passwd.md5. Para esses fins,<br />

o administra<strong>do</strong>r <strong>do</strong> CUPS com o grupo de administração <strong>do</strong> CUPS sys e a senha <strong>do</strong><br />

CUPS devem ser digita<strong>do</strong>s em /etc/cups/passwd.md5. Para isso, digite o seguinte<br />

como root:<br />

lppasswd -g sys -a CUPS-admin-name<br />

Esta configuração também é essencial se você quiser usar o front end da Web de<br />

administração CUPS ou a ferramenta de administração da impressora KDE.<br />

Operação da impressora 249


Quan<strong>do</strong> cupsd é executa<strong>do</strong> como lp, /etc/printcap não pode ser gera<strong>do</strong>, porque<br />

lp não pode criar arquivos em /etc/. Portanto, cupsd gera /etc/cups/<br />

printcap. Para assegurar que os aplicativos que lêem somente nomes de fila de<br />

/etc/printcap continuem a funcionar adequadamente, /etc/printcap é um<br />

link simbólico que aponta para /etc/cups/printcap.<br />

Quan<strong>do</strong> cupsd é executa<strong>do</strong> como lp, a porta 631 não pode ser aberta. Portanto,<br />

cupsd não pode ser recarrega<strong>do</strong> com rccups reload. Use rccups restart.<br />

Funcionalidade genérica para BrowseAllow e<br />

BrowseDeny<br />

As permissões de acesso para BrowseAllow e BrowseDeny se aplicam a to<strong>do</strong>s os<br />

tipos de pacotes envia<strong>do</strong>s para cupsd. As configurações padrão em /etc/cups/<br />

cupsd.conf são as seguintes:<br />

BrowseAllow @LOCAL<br />

BrowseDeny All<br />

e<br />

250 Referência<br />

<br />

Order Deny,<br />

Allow Deny From All<br />

Allow From 127.0.0.1<br />

Allow From 127.0.0.2<br />

Allow From @LOCAL<br />

<br />

Dessa forma, somente hosts LOCAL podem acessar cupsd em um servi<strong>do</strong>r CUPS.<br />

Hosts LOCAL são hosts cujos endereços IP pertencem a uma interface não-PPP<br />

(interfaces cujos sinaliza<strong>do</strong>res IFF_POINTOPOINT não estão defini<strong>do</strong>s) e pertencem<br />

à mesma rede <strong>do</strong> servi<strong>do</strong>r CUPS. Pacotes de to<strong>do</strong>s os outros hosts serão rejeita<strong>do</strong>s<br />

imediatamente.<br />

cupsd ativa<strong>do</strong> por padrão<br />

Em uma instalação padrão, cupsd é ativa<strong>do</strong> automaticamente, permitin<strong>do</strong> fácil acesso<br />

a filas de servi<strong>do</strong>res de rede CUPS sem qualquer ação manual adicional. Os itens em<br />

“Execuções de cupsd como usuário lp” (p 249) e “Funcionalidade genérica para<br />

BrowseAllow e BrowseDeny” (p 250) são pré-condições essenciais desse recurso,<br />

caso contrário a segurança não seria suficiente para ativação automática de cupsd.


11.6.3 Arquivos PPD em pacotes diferentes<br />

A configuração de impressora <strong>do</strong> YaST define as filas <strong>do</strong> CUPS usan<strong>do</strong> apenas os<br />

arquivos PPD instala<strong>do</strong>s em /usr/share/cups/model/ no sistema. Para localizar<br />

os arquivos PPD adequa<strong>do</strong>s ao modelo de impressora, o YaST compara o fabricante e<br />

o modelo determina<strong>do</strong>s durante a detecção <strong>do</strong> hardware aos fabricantes e modelos de<br />

to<strong>do</strong>s os arquivos PPD disponíveis em /usr/share/cups/model/ no sistema.<br />

Para isso, a configuração de impressora <strong>do</strong> YaST gera um banco de da<strong>do</strong>s com as<br />

informações de fabricante e modelo extraídas <strong>do</strong>s arquivos PPD. Quan<strong>do</strong> você seleciona<br />

uma impressora na lista de fabricantes e modelos, recebe os arquivos PPD que<br />

correspondem ao fabricante e modelo adequa<strong>do</strong>s.<br />

A configuração usan<strong>do</strong> apenas arquivos PPD e nenhuma outra fonte de informação tem<br />

a vantagem de permitir a livre modificação de arquivos PPD em /usr/share/cups/<br />

model/. A configuração de impressora <strong>do</strong> YaST reconhece as mudanças e gera<br />

novamente o banco de da<strong>do</strong>s de fabricantes e modelos. Por exemplo, se você tem apenas<br />

impressoras PostScript, normalmente não precisa <strong>do</strong>s arquivos PPD Foomatic <strong>do</strong> pacote<br />

cups-drivers ou os arquivos PPD Gimp-Print <strong>do</strong> pacote cups-drivers-stp.<br />

Em vez disso, os arquivos PPD de suas impressoras PostScript podem ser copia<strong>do</strong>s<br />

diretamente para /usr/share/cups/model/ (se já não existem no pacote<br />

manufacturer-PPDs) para que você obtenha uma configuração ideal para suas<br />

impressoras.<br />

Arquivos PPD <strong>do</strong> CUPS <strong>do</strong> pacote cups<br />

Os arquivos PPD genéricos <strong>do</strong> pacote cups foram complementa<strong>do</strong>s com arquivos PPD<br />

Foomatic adapta<strong>do</strong>s para impressoras PostScript nível 1 e 2:<br />

• /usr/share/cups/model/Postscript-level1.ppd.gz<br />

• /usr/share/cups/model/Postscript-level2.ppd.gz<br />

Arquivos PPD <strong>do</strong> pacote cups-drivers<br />

Normalmente, o filtro de impressora Foomatic foomatic-rip é usa<strong>do</strong> junto com<br />

Ghostscript para impressoras não-PostScript. Os arquivos PPD Foomatic adequa<strong>do</strong>s<br />

têm as entradas *NickName: ... Foomatic/Ghostscript driver e<br />

Operação da impressora 251


252 Referência<br />

*cupsFilter: ... foomatic-rip. Esses arquivos PPD estão localiza<strong>do</strong>s no<br />

pacote cups-drivers.<br />

O YaST preferirá um arquivo PPD Foomatic se um arquivo destes com a entrada<br />

*NickName: ... Foomatic ... (recommended) corresponder ao modelo<br />

de impressora e o pacote manufacturer-PPDs não contiver um arquivo PPD mais<br />

adequa<strong>do</strong>.<br />

Arquivos PPD Gimp-Print <strong>do</strong> pacote<br />

cups-drivers-stp<br />

Em vez de foomatic-rip, o filtro CUPS rastertoprinter <strong>do</strong> Gimp-Print pode<br />

ser usa<strong>do</strong> em várias impressoras não-PostScript. Esse filtro e os arquivos PPD Gimp-<br />

Print adequa<strong>do</strong>s estão disponíveis no pacote cups-drivers-stp. Os arquivos PPD<br />

Gimp-Print estão localiza<strong>do</strong>s em /usr/share/cups/model/stp/ e têm as<br />

entradas *NickName: ... CUPS+Gimp-Print e *cupsFilter: ...<br />

rastertoprinter.<br />

Arquivos PPD de fabricantes de impressoras no<br />

pacote manufacturer-PPDs<br />

O pacote manufacturer-PPDs contém arquivos PPD de fabricantes de impressoras<br />

que são libera<strong>do</strong>s mediante uma licença suficientemente permissiva. Impressoras<br />

PostScript devem ser configuradas com o arquivo PPD adequa<strong>do</strong> <strong>do</strong> fabricante da<br />

impressora, já que esse arquivo permite o uso de todas as funções da impressora<br />

PostScript. O YaST preferirá um arquivo PPD <strong>do</strong> pacote manufacturer-PPDs se<br />

as seguintes condições forem atendidas:<br />

• O fabricante e o modelo determina<strong>do</strong>s durante a detecção <strong>do</strong> hardware correspondem<br />

ao fabricante e ao modelo de um arquivo PPD <strong>do</strong> pacote manufacturer-PPDs.<br />

• O arquivo PPD <strong>do</strong> pacote manufacturer-PPDs é o único arquivo PPD adequa<strong>do</strong><br />

para o modelo de impressora ou existe um arquivo PPD Foomatic com uma entrada<br />

*NickName: ... Foomatic/Postscript (recommended) que também<br />

corresponde ao modelo de impressora.<br />

Assim, o YaST não usa nenhum arquivo PPD <strong>do</strong> pacote manufacturer-PPDs nos<br />

seguintes casos:


• O arquivo PPD <strong>do</strong> pacote manufacturer-PPDs não corresponde ao fabricante<br />

e ao modelo. Isso poderá ocorrer se o pacote manufacturer-PPDs contiver<br />

apenas um arquivo PPD para modelos semelhantes, por exemplo, se não houver<br />

arquivo PPD separa<strong>do</strong> para os modelos individuais de uma série de modelos, mas<br />

o nome <strong>do</strong> modelo for especifica<strong>do</strong> na forma Funprinter 1000 series no<br />

arquivo PPD.<br />

• O arquivo PPD Foomatic PostScript não é recomenda<strong>do</strong>. Isso talvez ocorra porque<br />

o modelo de impressora não funciona suficientemente bem no mo<strong>do</strong> PostScript;<br />

por exemplo, a impressora pode não ser confiável nesse mo<strong>do</strong> porque tem pouca<br />

memória ou é muito lenta porque seu processa<strong>do</strong>r é fraco. Além disso, a impressora<br />

pode não suportar PostScript por padrão porque, por exemplo, o suporte a PostScript<br />

só está disponível como módulo opcional.<br />

Se um arquivo PPD <strong>do</strong> pacote manufacturer-PPDs for adequa<strong>do</strong> para uma<br />

impressora PostScript, mas o YaST não puder configurá-lo por esses motivos, selecione<br />

manualmente o modelo de impressora respectivo no YaST.<br />

11.7 Solução de problemas<br />

As seções a seguir abordam alguns <strong>do</strong>s problemas mais encontra<strong>do</strong>s em relação a<br />

hardware e s<strong>of</strong>tware de impressora, bem como formas de solucionar ou superar esses<br />

problemas.<br />

11.7.1 Impressoras sem suporte de<br />

linguagem de impressora padrão<br />

As impressoras que não suportam nenhuma linguagem de impressora comum e só<br />

podem ser endereçadas com seqüências de controle especiais são chamadas de<br />

impressoras GDI. Essas impressoras só funcionam com as versões <strong>do</strong> sistema<br />

operacional para as quais o fabricante <strong>of</strong>erece driver. GDI é uma interface de<br />

programação desenvolvida pela Micros<strong>of</strong>t para dispositivos gráficos. O verdadeiro<br />

problema não é a interface de programação, mas o fato de que as impressoras GDI só<br />

podem ser endereçadas com a linguagem de impressora proprietária <strong>do</strong> respectivo<br />

modelo de impressora.<br />

Operação da impressora 253


254 Referência<br />

Algumas impressoras podem ser modificadas para funcionar no mo<strong>do</strong> GDI ou em uma<br />

das linguagens de impressora padrão. Alguns fabricantes <strong>of</strong>erecem drivers proprietários<br />

para suas impressoras GDI. A desvantagem <strong>do</strong>s drivers de impressora proprietários é<br />

que não há garantia de que vão funcionar com o sistema de impressão instala<strong>do</strong> e de<br />

que são adequa<strong>do</strong>s para as diferentes plataformas de hardware. Em contraste, impressoras<br />

que suportam uma linguagem de impressora padrão não dependem de uma versão <strong>do</strong><br />

sistema de impressão especial ou de plataforma de hardware especial.<br />

Em vez de desperdiçar tempo tentan<strong>do</strong> fazer um driver Linux proprietário funcionar,<br />

pode ser mais eficaz comprar uma impressora suportada. Isso solucionaria o problema<br />

<strong>do</strong> driver de uma vez por todas, eliminan<strong>do</strong> a necessidade de instalar e configurar<br />

s<strong>of</strong>tware de driver especial e obter atualizações <strong>do</strong> driver eventualmente necessárias<br />

devi<strong>do</strong> a novos avanços no sistema de impressão.<br />

11.7.2 Nenhum arquivo PPD adequa<strong>do</strong><br />

disponível para impressora PostScript<br />

Se o pacote manufacturer-PPDs não contiver qualquer arquivo PPD adequa<strong>do</strong><br />

para uma impressora PostScript, será possível usar o arquivo PPD <strong>do</strong> CD <strong>do</strong> driver <strong>do</strong><br />

fabricante da impressora ou fazer <strong>do</strong>wnload de um arquivo PPD adequa<strong>do</strong> da página<br />

da Web <strong>do</strong> fabricante.<br />

Se o arquivo PPD for forneci<strong>do</strong> como arquivo compacta<strong>do</strong> (.zip) ou arquivo compacta<strong>do</strong><br />

de auto-extração (.exe), faça a descompactação com unzip. Primeiro, reveja os<br />

termos de licença <strong>do</strong> arquivo PPD. Use o utilitário cupstestppd para verificar se o<br />

arquivo PPD é compatível com a “Especificação de Formato <strong>do</strong> Arquivo de Descrição<br />

de Impressora A<strong>do</strong>be PostScript, versão 4.3”. Se o utilitário retornar “FAIL”, os erros<br />

<strong>do</strong>s arquivos PPD são sérios e provavelmente causarão grandes problemas. Os problemas<br />

reporta<strong>do</strong>s pelo cupstestppd devem ser elimina<strong>do</strong>s. Se necessário, peça o arquivo<br />

PPD adequa<strong>do</strong> ao fabricante da impressora.<br />

11.7.3 Portas paralelas<br />

A abordagem mais segura é conectar a impressora diretamente à primeira porta paralela<br />

e selecionar as configurações de porta paralela no BIOS:<br />

• Endereço de E/S: 378 (hexadecimal)


• Interrupção: irrelevante<br />

• Mo<strong>do</strong>: Normal, SPP ou Output Only<br />

• DMA: desabilita<strong>do</strong><br />

Se a impressora não puder ser endereçada na porta paralela apesar dessas configurações,<br />

digite o endereço de E/S explicitamente de acor<strong>do</strong> com a configuração no BIOS no<br />

formato 0x378 em /etc/modprobe.conf. Se houver duas portas paralelas definidas<br />

para os endereços de E/S 378 e 278 (hexadecimal), digite-os no formato<br />

0x378,0x278.<br />

Se a interrupção 7 estiver livre, poderá ser ativada com a entrada mostrada no<br />

Exemplo 11.1, “/etc/modprobe.conf: Mo<strong>do</strong> de interrupção para a primeira porta paralela”<br />

(p 255). Antes de ativar o mo<strong>do</strong> de interrupção, verifique o arquivo /proc/<br />

interrupts para ver quais interrupções já estão sen<strong>do</strong> usadas. Somente as<br />

interrupções usadas atualmente são exibidas. Isso pode mudar dependen<strong>do</strong> <strong>do</strong>s<br />

componentes de hardware ativos. A interrupção da porta paralela não deve ser usada<br />

por outro dispositivo. Se não tiver certeza, use o mo<strong>do</strong> de polling com irq=none.<br />

Exemplo 11.1 /etc/modprobe.conf: Mo<strong>do</strong> de interrupção para a primeira porta<br />

paralela<br />

alias parport_lowlevel parport_pc<br />

options parport_pc io=0x378 irq=7<br />

11.7.4 Conexões da impressora de rede<br />

Identificação de problemas de rede<br />

Conecte a impressora diretamente ao computa<strong>do</strong>r. Para fins de teste, configure-a<br />

como impressora local. Se isso funcionar, o problema está na rede.<br />

Verifican<strong>do</strong> a rede TCP/IP<br />

A rede TCP/IP e a resolução de nomes devem ser funcionais.<br />

Verifican<strong>do</strong> um lpd remoto<br />

Use o coman<strong>do</strong> a seguir para testar o estabelecimento de uma conexão TCP com<br />

lpd (porta 515) no host.<br />

netcat -z host 515 && echo ok || echo failed<br />

Operação da impressora 255


256 Referência<br />

Se a conexão com lpd não for estabelecida, o lpd pode não estar ativo ou pode<br />

haver problemas básicos de rede.<br />

Como usuário root, use o seguinte coman<strong>do</strong> para consultar um relatório de status<br />

(possivelmente muito longo) sobre a fila no host remoto, consideran<strong>do</strong> que o<br />

respectivo lpd esteja ativo e o host aceite consultas:<br />

echo -e "\004queue" \<br />

| netcat -w 2 -p 722 host 515<br />

Se o lpd não responder, ele pode não estar ativo ou pode haver problemas básicos<br />

de rede. Se o lpd responder, a resposta deve mostrar por que não é possível<br />

imprimir na fila <strong>do</strong> host. Se você receber uma resposta como a <strong>do</strong> Exemplo 11.2,<br />

“Mensagem de erro <strong>do</strong> lpd” (p 256), o problema está sen<strong>do</strong> causa<strong>do</strong> pelo lpd<br />

remoto.<br />

Exemplo 11.2 Mensagem de erro <strong>do</strong> lpd<br />

lpd: your host <strong>do</strong>es not have line printer access<br />

lpd: queue <strong>do</strong>es not exist<br />

printer: spooling disabled<br />

printer: printing disabled<br />

Verifican<strong>do</strong> um cupsd remoto<br />

Por padrão, o servi<strong>do</strong>r de rede CUPS deve transmitir suas filas a cada 30 segun<strong>do</strong>s<br />

na porta UDP 631. Por isso, o seguinte coman<strong>do</strong> pode ser usa<strong>do</strong> para testar a<br />

existência de um servi<strong>do</strong>r de rede CUPS na rede.<br />

netcat -u -l -p 631 & PID=$! ; sleep 40 ; kill $PID<br />

Se existir um servi<strong>do</strong>r de rede CUPS de transmissão, a saída aparecerá conforme<br />

mostra<strong>do</strong> no Exemplo 11.3, “Transmissão <strong>do</strong> servi<strong>do</strong>r de rede CUPS” (p 256).<br />

Exemplo 11.3 Transmissão <strong>do</strong> servi<strong>do</strong>r de rede CUPS<br />

ipp://host.<strong>do</strong>main:631/printers/queue<br />

Use o coman<strong>do</strong> a seguir para testar o estabelecimento de uma conexão TCP com<br />

cupsd (porta 631) no host.<br />

netcat -z host 631 && echo ok || echo failed<br />

Se a conexão com cupsd não for estabelecida, o cupsd pode não estar ativo ou<br />

existem problemas básicos de rede. lpstat -h host -l -t retorna um<br />

relatório de status (possivelmente muito longo) para todas as filas <strong>do</strong> host, desde<br />

que o respectivo cupsd esteja ativo e o host aceite consultas.


O próximo coman<strong>do</strong> pode ser usa<strong>do</strong> para testar se a fila <strong>do</strong> host aceita uma<br />

tarefa de impressão consistin<strong>do</strong> em um único caractere de retorno de carro. Nada<br />

será impresso. Possivelmente, será ejetada uma página em branco.<br />

echo -en "\r" \<br />

| lp -d fila -h host<br />

Solução de problemas da impressora de rede ou da caixa <strong>do</strong> servi<strong>do</strong>r de impressão<br />

Algumas vezes, spoolers executa<strong>do</strong>s na caixa <strong>do</strong> servi<strong>do</strong>r de impressão causam<br />

problemas quan<strong>do</strong> precisam lidar com muitas tarefas de impressão. Como isso é<br />

causa<strong>do</strong> pelo spooler nessa caixa, não há solução para o problema. Como paliativo,<br />

desvie o spooler na caixa <strong>do</strong> servi<strong>do</strong>r de impressão endereçan<strong>do</strong> a impressora<br />

conectada à caixa diretamente por meio <strong>do</strong> soquete TCP. Consulte a Seção 11.4.2,<br />

“Impressoras de rede” (p 244).<br />

Dessa forma, a caixa <strong>do</strong> servi<strong>do</strong>r de impressão é reduzida a um conversor entre as<br />

várias formas de transferência de da<strong>do</strong>s (conexão de rede TCP/IP e impressora<br />

local). Para usar esse méto<strong>do</strong>, você precisa conhecer a porta TCP da caixa <strong>do</strong><br />

servi<strong>do</strong>r de impressão. Se a impressora estiver conectada à caixa <strong>do</strong> servi<strong>do</strong>r de<br />

impressão e ligada, a porta TCP poderá, geralmente, ser determinada com o utilitário<br />

nmap <strong>do</strong> pacote nmap depois que essa caixa for ativada. Por exemplo,<br />

nmapendereço IP pode resultar na seguinte saída para a caixa <strong>do</strong> servi<strong>do</strong>r de<br />

impressão:<br />

Port State Service<br />

23/tcp open telnet<br />

80/tcp open http<br />

515/tcp open printer<br />

631/tcp open cups<br />

9100/tcp open jetdirect<br />

Essa saída indica que a impressora conectada à caixa <strong>do</strong> servi<strong>do</strong>r de impressão<br />

pode ser endereçada via soquete TCP na porta 9100. Por padrão, nmap verifica<br />

somente algumas portas mais conhecidas listadas em /usr/share/nmap/<br />

nmap-services. Para verificar todas as portas possíveis, use o coman<strong>do</strong><br />

nmap-pporta_de_origem-porta_de_destino endereço-IP. O<br />

processo pode demorar. Para obter mais informações, consulte a página de manual<br />

nmap.<br />

Digite um coman<strong>do</strong> como<br />

echo -en "\rHello\r\f" | netcat -w 1 porta endereço-IP arquivo<br />

cat | netcat -w 1 porta endereço-IP<br />

Operação da impressora 257


258 Referência<br />

para enviar strings de caracteres ou arquivos diretamente à respectiva porta para<br />

testar se a impressora pode ser endereçada dessa porta.<br />

11.7.5 Defeitos na impressão sem mensagem<br />

de erro<br />

Para o sistema de impressão, a tarefa de impressão é concluída quan<strong>do</strong> o back end <strong>do</strong><br />

CUPS finaliza a transferência de da<strong>do</strong>s ao destinatário (impressora). Se houver falha<br />

no processamento posterior no destinatário (por exemplo, se a impressora não imprimir<br />

seus da<strong>do</strong>s específicos), o sistema de impressão não notará. Se a impressora não imprimir<br />

seus da<strong>do</strong>s específicos, selecione outro arquivo PPD mais adequa<strong>do</strong> à impressora.<br />

11.7.6 Filas desabilitadas<br />

Se a transferência de da<strong>do</strong>s para o destinatário falhar completamente após várias<br />

tentativas, o back end <strong>do</strong> CUPS, como usb ou soquete, reportará um erro ao sistema<br />

de impressão (ao cupsd). O back end decide se e quantas tentativas devem ser feitas<br />

até que a transferência de da<strong>do</strong>s seja reportada como impossível. Como tentativas<br />

posteriores podem ser inúteis, o cupsd desabilita a impressão da fila respectiva. Após<br />

eliminar a causa <strong>do</strong> problema, o administra<strong>do</strong>r <strong>do</strong> sistema deve reabilitar a impressão<br />

com o coman<strong>do</strong> /usr/bin/enable.<br />

11.7.7 Navegação no CUPS: apagan<strong>do</strong><br />

tarefas de impressão<br />

Se um servi<strong>do</strong>r de rede CUPS transmitir suas filas aos hosts de clientes via navegação<br />

e um cupsd local adequa<strong>do</strong> estiver ativo nos hosts de clientes, o cupsd cliente aceitará<br />

tarefas de impressão de aplicativos e as encaminhará para o cupsd no servi<strong>do</strong>r. Quan<strong>do</strong><br />

o cupsd aceita uma tarefa de impressão, esta recebe um novo número. Portanto, o<br />

número da tarefa no host cliente é diferente <strong>do</strong> número da tarefa no servi<strong>do</strong>r. Como<br />

geralmente a tarefa de impressão é encaminhada de imediato, não pode ser apagada<br />

com o número de tarefa <strong>do</strong> host cliente, porque o cupsd cliente considera a tarefa<br />

como concluída assim que ela é encaminhada ao cupsd <strong>do</strong> servi<strong>do</strong>r.


Para apagar a tarefa de impressão no servi<strong>do</strong>r, use um coman<strong>do</strong> como lpstat -h<br />

print-server -o para determinar o número da tarefa no servi<strong>do</strong>r, contanto que o<br />

servi<strong>do</strong>r não tenha concluí<strong>do</strong> a tarefa de impressão (isto é, envia<strong>do</strong> para a impressora).<br />

Usan<strong>do</strong> este número, a tarefa de impressão pode ser apagada no servi<strong>do</strong>r:<br />

cancel -h servi<strong>do</strong>r-de-impressão fila-nr_tarefa<br />

11.7.8 Tarefas de impressão defeituosas e<br />

erros de transferência de da<strong>do</strong>s<br />

As tarefas de impressão permanecerão nas filas e a impressão recomeçará se você<br />

desligar e ligar a impressora ou desligar e reinicializar o computa<strong>do</strong>r durante o processo<br />

de impressão. As tarefas de impressão defeituosas devem ser removidas da fila com<br />

cancel.<br />

Se a tarefa de impressão apresentar defeito ou se ocorrer um erro na comunicação entre<br />

o host e a impressora, a impressora imprimirá várias folhas de papel com caracteres<br />

ininteligíveis porque não conseguiu processar os da<strong>do</strong>s corretamente. Para solucionar<br />

esse problema, siga este procedimento:<br />

1 Para interromper a impressão, remova to<strong>do</strong> o papel das bandejas da impressora<br />

jato de tinta ou laser. Impressoras de alta qualidade têm um botão de cancelamento<br />

da impressão.<br />

2 A tarefa de impressão pode ainda estar na fila, já que as tarefas são removidas<br />

somente depois de enviadas completamente à impressora. Use lpstat -o ou<br />

lpstat -h servi<strong>do</strong>r-de-impressão -o para verificar a fila que está<br />

sen<strong>do</strong> impressa. Apague a tarefa com cancelfila-númerodatarefa ou<br />

cancel -hservi<strong>do</strong>r-de-impressão fila-númerodatarefa.<br />

3 Alguns da<strong>do</strong>s podem ainda ser transferi<strong>do</strong>s à impressora mesmo que a tarefa seja<br />

apagada da fila. Verifique se há um processo back end <strong>do</strong> CUPS em execução<br />

para a fila respectiva e termine-o. Por exemplo, para uma impressora conectada<br />

à porta paralela, o coman<strong>do</strong> fuser -k /dev/lp0 pode ser usa<strong>do</strong> para<br />

terminar to<strong>do</strong>s os processos que ainda estão acessan<strong>do</strong> a impressora (mais<br />

precisamente: a porta paralela).<br />

4 Reinicialize a impressora completamente deixan<strong>do</strong>-a desligada por um tempo.<br />

Em seguida, insira o papel e ligue a impressora.<br />

Operação da impressora 259


260 Referência<br />

11.7.9 Depuração <strong>do</strong> sistema de impressão<br />

<strong>do</strong> CUPS<br />

Use o seguinte procedimento genérico para localizar problemas no sistema de impressão<br />

<strong>do</strong> CUPS:<br />

1 Defina LogLevel debug em /etc/cups/cupsd.conf.<br />

2 Pare o cupsd.<br />

3 Remova /var/log/cups/error_log* para não precisar procurar em<br />

arquivos de registro muito grandes.<br />

4 Inicie o cupsd.<br />

5 Repita a ação que causou o problema.<br />

6 Verifique as mensagens em /var/log/cups/error_log* para identificar<br />

a causa <strong>do</strong> problema.<br />

11.7.10 Mais informações<br />

Soluções para vários problemas específicos são apresentadas no Banco de Da<strong>do</strong>s de<br />

Suporte <strong>do</strong> <strong>SUSE</strong> (http://portal.suse.com/). Localize os artigos relevantes<br />

com pesquisas de palavras-chave.


Gerenciamento de dispositivo de<br />

kernel dinâmico com udev<br />

Desde a versão 2.6, o kernel é capaz de adicionar ou remover praticamente qualquer<br />

dispositivo no sistema em execução. Mudanças no esta<strong>do</strong> <strong>do</strong> dispositivo (se um<br />

dispositivo foi conecta<strong>do</strong> ou removi<strong>do</strong>) precisam ser estendidas ao espaço <strong>do</strong> usuário.<br />

Os dispositivos devem ser configura<strong>do</strong>s assim que forem conecta<strong>do</strong>s e identifica<strong>do</strong>s.<br />

Os usuários de um determina<strong>do</strong> dispositivo devem ser informa<strong>do</strong>s sobre qualquer<br />

mudança de esta<strong>do</strong> deste dispositivo. O udev fornece a infra-estrutura necessária para<br />

manter dinamicamente os arquivos de nó de dispositivo e links simbólicos no diretório<br />

/dev. As regras <strong>do</strong> udev permitem conectar ferramentas externas ao processamento<br />

de evento de dispositivo de kernel. Isso permite que você personalize o tratamento <strong>do</strong><br />

dispositivo de udev, por exemplo, adicionan<strong>do</strong> determina<strong>do</strong>s scripts a serem executa<strong>do</strong>s<br />

como parte <strong>do</strong> tratamento <strong>do</strong> dispositivo de kernel ou solicitar e importar da<strong>do</strong>s<br />

adicionais para avaliação durante o tratamento <strong>do</strong> dispositivo.<br />

12.1 O diretório /dev<br />

Os nós de dispositivo no diretório /dev fornecem acesso aos dispositivos de kernel<br />

correspondentes. Com o udev, o diretório /dev reflete o esta<strong>do</strong> atual <strong>do</strong> kernel. Cada<br />

dispositivo de kernel tem um arquivo de dispositivo correspondente. Se um dispositivo<br />

for desconecta<strong>do</strong> <strong>do</strong> sistema, o nó de dispositivo será removi<strong>do</strong>.<br />

O conteú<strong>do</strong> <strong>do</strong> diretório /dev será manti<strong>do</strong> em um sistema de arquivos temporário e<br />

os arquivos serão cria<strong>do</strong>s <strong>do</strong> zero a cada inicialização <strong>do</strong> sistema. Os arquivos cria<strong>do</strong>s<br />

manualmente ou modifica<strong>do</strong>s intencionalmente não sobrevivem a uma reinicialização.<br />

Diretórios e arquivos estáticos que sempre devem estar presentes no diretório /dev,<br />

independentemente <strong>do</strong> esta<strong>do</strong> <strong>do</strong> dispositivo de kernel correspondente, podem ser<br />

12<br />

Gerenciamento de dispositivo de kernel dinâmico com udev 261


262 Referência<br />

coloca<strong>do</strong>s no diretório /lib/udev/devices. Na inicialização <strong>do</strong> sistema, o conteú<strong>do</strong><br />

<strong>do</strong> diretório é copia<strong>do</strong> para o diretório /dev com propriedade e permissões iguais às<br />

<strong>do</strong>s arquivos em /lib/udev/devices.<br />

12.2 udev e uevents de kernel<br />

As informações de dispositivo necessárias são exportadas pelo sistema de arquivos<br />

sysfs. Para cada dispositivo detecta<strong>do</strong> e inicializa<strong>do</strong> pelo kernel, um diretório com o<br />

nome <strong>do</strong> dispositivo é cria<strong>do</strong>. Ele contém arquivos de atributos com propriedades<br />

específicas <strong>do</strong> dispositivo. Sempre que um dispositivo é adiciona<strong>do</strong> ou removi<strong>do</strong>, o<br />

kernel envia um uevent para notificar o udev da mudança.<br />

O daemon udev lê e analisa todas as regras fornecidas <strong>do</strong>s arquivos /etc/udev/<br />

rules.d/*.rules uma vez na inicialização e mantém essas regras na memória. Se<br />

arquivos de regras forem modifica<strong>do</strong>s, adiciona<strong>do</strong>s ou removi<strong>do</strong>s, o daemon receberá<br />

um evento e atualizará a representação das regras na memória.<br />

Cada evento recebi<strong>do</strong> é compara<strong>do</strong> com o conjunto de regras forneci<strong>do</strong>. As regras<br />

podem adicionar ou modificar chaves de ambiente de eventos, solicitar um nome<br />

específico a ser cria<strong>do</strong> pelo nó <strong>do</strong> evento, adicionar symlinks apontan<strong>do</strong> para o nó ou<br />

adicionar programas a serem executa<strong>do</strong>s após a criação <strong>do</strong> nó <strong>do</strong> dispositivo. Os uevents<br />

centrais <strong>do</strong> driver são recebi<strong>do</strong>s de um soquete de netlink de kernel.<br />

12.3 Drivers, módulos de kernel e<br />

dispositivos<br />

Os drivers de barramento de kernel pesquisam dispositivos. Para cada dispositivo<br />

detecta<strong>do</strong>, o kernel cria uma estrutura interna de dispositivo e o centro <strong>do</strong> driver envia<br />

um uevent para o daemon udev. Dispositivos de barramento se identificam através de<br />

um ID formata<strong>do</strong> especialmente, que informa o tipo de dispositivo. Geralmente esses<br />

IDs consistem em IDs de produto e fornece<strong>do</strong>r, além de outros valores específicos <strong>do</strong><br />

subsistema. Cada barramento tem seu próprio esquema para esses IDs, chama<strong>do</strong>s<br />

MODALIAS. O kernel toma as informações <strong>do</strong> dispositivo, compõe uma string de ID<br />

MODALIAS a partir dele e envia essa string junto com o evento. Para um mouse USB,<br />

a string tem a seguinte aparência:<br />

MODALIAS=usb:v046DpC03Ed2000dc00dsc00dp00ic03isc01ip02


Cada driver de dispositivo carrega uma lista de álias conheci<strong>do</strong>s para os dispositivos<br />

que pode tratar. A lista está contida no próprio arquivo de módulo de kernel. O programa<br />

depmod lê as listas de ID e cria o arquivo modules.alias no diretório /lib/<br />

modules <strong>do</strong> kernel para to<strong>do</strong>s os módulos disponíveis atualmente. Com essa infraestrutura,<br />

carregar o módulo é fácil como chamar modprobe para cada evento com<br />

uma chave MODALIAS. Se modprobe $MODALIAS for chama<strong>do</strong>, ele corresponderá<br />

o álias <strong>do</strong> dispositivo composto para o dispositivo com os álias forneci<strong>do</strong>s pelos módulos.<br />

Se uma entrada correspondente for encontrada, o módulo será carrega<strong>do</strong>. Tu<strong>do</strong> isso é<br />

aciona<strong>do</strong> pelo udev e ocorre automaticamente.<br />

12.4 Inicialização e configuração <strong>do</strong><br />

dispositivo inicial<br />

To<strong>do</strong>s os eventos de dispositivo que ocorrerem durante o processo de inicialização<br />

antes da execução <strong>do</strong> daemon udev são perdi<strong>do</strong>s, pois a infra-estrutura para tratar esses<br />

eventos está no sistema de arquivos raiz e não está disponível no momento. Para<br />

compensar essa perda, o kernel fornece um arquivo uevent para cada dispositivo no<br />

sistema de arquivos sysfs. Ao gravar add para esse arquivo, o kernel envia novamente<br />

o mesmo evento como o evento perdi<strong>do</strong> durante a inicialização. Um loop simples em<br />

to<strong>do</strong>s os arquivos uevent em /sys aciona to<strong>do</strong>s os eventos novamente para criar os<br />

nós de dispositivo e executar a configuração <strong>do</strong> dispositivo.<br />

Por exemplo, durante o boot, um mouse USB talvez não seja inicializa<strong>do</strong> pela lógica<br />

de boot anterior, pois o driver não está disponível nesse momento. O evento para a<br />

descoberta <strong>do</strong> dispositivo foi perdi<strong>do</strong> e não encontrou um módulo de kernel para o<br />

dispositivo. Em vez de você pesquisar manualmente por dispositivos possivelmente<br />

conecta<strong>do</strong>s, o udev solicita to<strong>do</strong>s os eventos de dispositivo <strong>do</strong> kernel depois que o<br />

sistema de arquivos raiz está disponível. Assim, o evento <strong>do</strong> dispositivo <strong>do</strong> mouse USB<br />

é executa<strong>do</strong> novamente. Então ele encontra o módulo de kernel no sistema de arquivos<br />

raiz monta<strong>do</strong> e o mouse USB pode ser inicializa<strong>do</strong>.<br />

No espaço <strong>do</strong> usuário, não há diferença visível entre uma seqüência coldplug <strong>do</strong><br />

dispositivo e uma detecção de dispositivo durante a execução. Em ambos os casos, as<br />

mesmas regras são usadas para correspondência e os mesmos programas configura<strong>do</strong>s<br />

são executa<strong>do</strong>s.<br />

Gerenciamento de dispositivo de kernel dinâmico com udev 263


264 Referência<br />

12.5 Depuran<strong>do</strong> eventos <strong>do</strong> udev<br />

O programa udevmonitor pode ser usa<strong>do</strong> para visualizar os eventos centrais <strong>do</strong><br />

driver e a temporização <strong>do</strong>s processos de eventos <strong>do</strong> udev.<br />

UEVENT[1132632714.285362] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2<br />

UEVENT[1132632714.288166] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2/2-2:1.0<br />

UEVENT[1132632714.309485] add@/class/input/input6<br />

UEVENT[1132632714.309511] add@/class/input/input6/mouse2<br />

UEVENT[1132632714.309524] add@/class/usb_device/usbdev2.12<br />

UDEV [1132632714.348966] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2<br />

UDEV [1132632714.420947] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2/2-2:1.0<br />

UDEV [1132632714.427298] add@/class/input/input6<br />

UDEV [1132632714.434223] add@/class/usb_device/usbdev2.12<br />

UDEV [1132632714.439934] add@/class/input/input6/mouse2<br />

As linhas UEVENT mostram os eventos que o kernel enviou através de netlink. As<br />

linhas UDEV mostram os handlers de evento <strong>do</strong> udev concluí<strong>do</strong>s. A temporização é<br />

impressa em microssegun<strong>do</strong>s. O tempo entre UEVENT e UDEV é o tempo que udev<br />

levou para processar esse evento ou que o daemon udev atrasou sua execução para<br />

sincronizar esse evento com eventos relaciona<strong>do</strong>s e já em execução. Por exemplo,<br />

eventos para partições de disco rígi<strong>do</strong> sempre esperam pela conclusão <strong>do</strong> evento <strong>do</strong><br />

dispositivo de disco principal, pois os eventos de partição podem se basear nos da<strong>do</strong>s<br />

que o evento de disco principal consultou <strong>do</strong> hardware.<br />

udevmonitor --env mostra o ambiente de evento completo:<br />

UDEV [1132633002.937243] add@/class/input/input7<br />

UDEV_LOG=3<br />

ACTION=add<br />

DEVPATH=/class/input/input7<br />

SUBSYSTEM=input<br />

SEQNUM=1043<br />

PHYSDEVPATH=/devices/pci0000:00/0000:00:1d.1/usb2/2-2/2-2:1.0<br />

PHYSDEVBUS=usb<br />

PHYSDEVDRIVER=usbhid<br />

PRODUCT=3/46d/c03e/2000<br />

NAME="Logitech USB-PS/2 Optical Mouse"<br />

PHYS="usb-0000:00:1d.1-2/input0"<br />

UNIQ=""<br />

EV=7<br />

KEY=70000 0 0 0 0 0 0 0 0<br />

REL=103<br />

O udev também envia mensagens para o syslog. A prioridade padrão <strong>do</strong> syslog que<br />

controla quais mensagens são enviadas ao syslog é especificada no arquivo de<br />

configuração <strong>do</strong> udev /etc/udev/udev.conf. A prioridade de registro <strong>do</strong> daemon


em execução pode ser modificada com udevcontrol<br />

log_priority=level/number.<br />

12.6 Influencian<strong>do</strong> o tratamento de<br />

evento de dispositivo de kernel<br />

com regras <strong>do</strong> udev<br />

Uma regra <strong>do</strong> udev pode corresponder a qualquer propriedade adicionada pelo kernel<br />

ao próprio evento ou a qualquer informação exportada pelo kernel para sysfs. A regra<br />

também pode solicitar informações adicionais de programas externos. Cada evento é<br />

correspondi<strong>do</strong> com as regras fornecidas. Essas regras estão localizadas no diretório<br />

/etc/udev/rules.d.<br />

Cada linha no arquivo de regras contém pelo menos um par de valores de chave. Há<br />

<strong>do</strong>is tipos de chaves, de atribuição e correspondência. Se todas as chaves de<br />

correspondência corresponderem aos valores, a regra será aplicada e as chaves de<br />

atribuição serão atribuídas ao valor especifica<strong>do</strong>. Uma regra correspondente pode<br />

especificar o nome <strong>do</strong> nó <strong>do</strong> dispositivo, adicionar symlinks apontan<strong>do</strong> para o nó ou<br />

executar um programa especifica<strong>do</strong> como parte <strong>do</strong> tratamento de eventos. Se nenhuma<br />

regra de correspondência for encontrada, o nome <strong>do</strong> nó de dispositivo padrão será usa<strong>do</strong><br />

para criar o nó de dispositivo. A sintaxe de regra e as chaves fornecidas para<br />

correspondência ou importação de da<strong>do</strong>s são descritas na página de manual <strong>do</strong> udev.<br />

12.7 Nomeação de dispositivo<br />

persistente<br />

O diretório de dispositivo dinâmico e a infra-estrutura de regras <strong>do</strong> udev permitem<br />

fornecer nomes estáveis para to<strong>do</strong>s os dispositivos de disco, independentemente da<br />

ordem de reconhecimento ou a conexão usada para conectar o dispositivo. Cada<br />

dispositivo de bloco apropria<strong>do</strong> cria<strong>do</strong> pelo kernel é examina<strong>do</strong> por ferramentas com<br />

conhecimento especial sobre determina<strong>do</strong>s barramentos, tipos de unidade ou sistemas<br />

de arquivos. Junto com o nome <strong>do</strong> nó de dispositivo forneci<strong>do</strong> pelo kernel dinâmico,<br />

o udev mantém classes de links simbólicos apontan<strong>do</strong> para o dispositivo:<br />

Gerenciamento de dispositivo de kernel dinâmico com udev 265


266 Referência<br />

/dev/disk<br />

|-- by-id<br />

| |-- scsi-SATA_HTS726060M9AT00_MRH453M4HWHG7B -> ../../sda<br />

| |-- scsi-SATA_HTS726060M9AT00_MRH453M4HWHG7B-part1 -> ../../sda1<br />

| |-- scsi-SATA_HTS726060M9AT00_MRH453M4HWHG7B-part6 -> ../../sda6<br />

| |-- scsi-SATA_HTS726060M9AT00_MRH453M4HWHG7B-part7 -> ../../sda7<br />

| |-- usb-Generic_STORAGE_DEVICE_02773 -> ../../sdd<br />

| `-- usb-Generic_STORAGE_DEVICE_02773-part1 -> ../../sdd1<br />

|-- by-label<br />

| |-- Photos -> ../../sdd1<br />

| |-- <strong>SUSE</strong>10 -> ../../sda7<br />

| `-- devel -> ../../sda6<br />

|-- by-path<br />

| |-- pci-0000:00:1f.2-scsi-0:0:0:0 -> ../../sda<br />

| |-- pci-0000:00:1f.2-scsi-0:0:0:0-part1 -> ../../sda1<br />

| |-- pci-0000:00:1f.2-scsi-0:0:0:0-part6 -> ../../sda6<br />

| |-- pci-0000:00:1f.2-scsi-0:0:0:0-part7 -> ../../sda7<br />

| |-- pci-0000:00:1f.2-scsi-1:0:0:0 -> ../../sr0<br />

| |-- usb-02773:0:0:2 -> ../../sdd<br />

| |-- usb-02773:0:0:2-part1 -> ../../sdd1<br />

`-- by-uuid<br />

|-- 159a47a4-e6e6-40be-a757-a629991479ae -> ../../sda7<br />

|-- 3e999973-00c9-4917-9442-b7633bd95b9e -> ../../sda6<br />

`-- 4210-8F8C -> ../../sdd1<br />

12.8 O pacote de hotplug substituí<strong>do</strong><br />

O pacote de hotplug usa<strong>do</strong> anteriormente é substituí<strong>do</strong> totalmente pelo udev e pela<br />

infra-estrutura de kernel relacionada ao udev. As seguintes partes da infra-estrutura de<br />

hotplug anterior estão obsoletas ou sua funcionalidade foi assumida pelo udev:<br />

/etc/hotplug/*.agent<br />

Não mais necessário ou movi<strong>do</strong> para /lib/udev<br />

/etc/hotplug/*.rc<br />

Substituí<strong>do</strong> pelo aciona<strong>do</strong>r /sys/*/uevent<br />

/etc/hotplug/blacklist<br />

Substituí<strong>do</strong> pela opção blacklist em modprobe.conf<br />

/etc/dev.d/*<br />

Substituí<strong>do</strong> pela chave RUN de regra <strong>do</strong> udev<br />

/etc/hotplug.d/*<br />

Substituí<strong>do</strong> pela chave RUN de regra <strong>do</strong> udev


sbin/hotplug<br />

Substituí<strong>do</strong> pela escuta <strong>do</strong> udevd <strong>do</strong> netlink; usa<strong>do</strong> somente no sistema de arquivos<br />

RAM inicial até que o sistema de arquivos raiz possa ser monta<strong>do</strong>, em seguida ele<br />

é desabilita<strong>do</strong><br />

/dev/*<br />

Substituí<strong>do</strong> pelo conteú<strong>do</strong> estático e udev dinâmico em /lib/udev/devices/<br />

*<br />

Os seguintes arquivos e diretórios contêm os elementos cruciais da infra-estrutura <strong>do</strong><br />

udev:<br />

/etc/udev/udev.conf<br />

Arquivo de configuração principal <strong>do</strong> udev<br />

/etc/udev/rules.d/*<br />

regras de correspondência de evento <strong>do</strong> udev<br />

/lib/udev/devices/*<br />

Conteú<strong>do</strong> /dev estático<br />

/lib/udev/*<br />

Programas auxiliares chama<strong>do</strong>s de regras <strong>do</strong> udev<br />

12.9 Mais informações<br />

Para obter mais informações sobre a infra-estrutura <strong>do</strong> udev, consulte as seguintes<br />

páginas de manual:<br />

udev<br />

Informações gerais sobre o udev, chaves, regras e outras questões relevantes sobre<br />

configuração.<br />

udevinfo<br />

É possível usar udevinfo para consultar informações de dispositivo <strong>do</strong> banco de<br />

da<strong>do</strong>s <strong>do</strong> udev.<br />

udevd<br />

Informações sobre o daemon de gerenciamento de eventos udev.<br />

Gerenciamento de dispositivo de kernel dinâmico com udev 267


268 Referência<br />

udevmonitor<br />

Imprime o kernel e a seqüência de eventos <strong>do</strong> udev para o console. Essa ferramenta<br />

é usada principalmente para propósitos de depuração.


Sistemas de arquivos no Linux<br />

O Linux suporta diversos sistemas de arquivos. Este capítulo apresenta uma breve visão<br />

geral sobre os sistemas de arquivos Linux mais populares, abordan<strong>do</strong> conceitos de<br />

design, vantagens e campos de aplicação. Também são fornecidas algumas informações<br />

adicionais sobre LFS (Large File Support - Suporte a Arquivo Grande) no Linux.<br />

13.1 Terminologia<br />

metada<strong>do</strong>s<br />

Uma estrutura de da<strong>do</strong>s interna ao sistema de arquivos que assegura que to<strong>do</strong>s os<br />

da<strong>do</strong>s de um disco sejam organiza<strong>do</strong>s adequadamente e de forma acessível.<br />

Essencialmente, tratam-se de “da<strong>do</strong>s sobre os da<strong>do</strong>s.” Quase to<strong>do</strong> sistema de<br />

arquivos tem sua própria estrutura de metada<strong>do</strong>s, razão pela qual os sistemas de<br />

arquivos exibem diferentes características de desempenho. É extremamente<br />

importante manter os metada<strong>do</strong>s intactos, caso contrário to<strong>do</strong>s os da<strong>do</strong>s <strong>do</strong> sistema<br />

de arquivos podem se tornar inacessíveis.<br />

inode<br />

Inodes contêm várias informações sobre um arquivo, incluin<strong>do</strong> tamanho, número<br />

de links, data e horário da criação, da modificação e <strong>do</strong> acesso, e indica<strong>do</strong>res para<br />

os blocos de disco em que o conteú<strong>do</strong> <strong>do</strong> arquivo está armazena<strong>do</strong> no momento.<br />

diário<br />

No contexto de um sistema de arquivos, o diário é uma estrutura em disco que<br />

contém um tipo de registro em que o sistema de arquivos armazena o que está<br />

prestes a ser modifica<strong>do</strong> em seus metada<strong>do</strong>s. Os diários reduzem imensamente o<br />

13<br />

Sistemas de arquivos no Linux 269


270 Referência<br />

tempo de recuperação de um sistema Linux, pois eles tornam obsoleto o extenso<br />

processo de pesquisa que verifica to<strong>do</strong> o sistema de arquivos na inicialização <strong>do</strong><br />

sistema. Em vez disso, somente o diário é reproduzi<strong>do</strong>.<br />

13.2 Principais sistemas de arquivos<br />

no Linux<br />

Diferentemente <strong>do</strong> que ocorria há <strong>do</strong>is ou três anos, escolher um sistema de arquivos<br />

para um sistema Linux não é mais uma questão de segun<strong>do</strong>s (Ext2 ou ReiserFS?).<br />

Kernels a partir <strong>do</strong> 2.4 <strong>of</strong>erecem uma variedade de opções de sistemas de arquivos. A<br />

seguir será mostrada uma visão geral de como esses sistemas de arquivos basicamente<br />

funcionam e quais as vantagens que <strong>of</strong>erecem.<br />

É muito importante lembrar que pode não haver um sistema de arquivos adequa<strong>do</strong> a<br />

to<strong>do</strong>s os tipos de aplicativos. Cada sistema de arquivos tem seus pontos fortes e fracos<br />

específicos, o que deve ser considera<strong>do</strong>. No entanto, nem mesmo o sistema de arquivos<br />

mais s<strong>of</strong>istica<strong>do</strong> pode ser substituí<strong>do</strong> por uma estratégia de backup razoável.<br />

Os termos integridade de da<strong>do</strong>s e consistência de da<strong>do</strong>s, quan<strong>do</strong> usa<strong>do</strong>s neste capítulo,<br />

não se referirão à consistência <strong>do</strong>s da<strong>do</strong>s <strong>do</strong> espaço <strong>do</strong> usuário (os da<strong>do</strong>s que seu<br />

aplicativo grava nos arquivos). O próprio aplicativo deve controlar se os da<strong>do</strong>s são<br />

consistentes ou não.<br />

IMPORTANTE: Configuran<strong>do</strong> sistemas de arquivos<br />

A menos que declara<strong>do</strong> em outra seção deste capítulo, todas as etapas<br />

necessárias para configurar ou mudar partições e sistemas de arquivos podem<br />

ser realizadas com o YaST.<br />

13.2.1 ReiserFS<br />

Oficialmente um <strong>do</strong>s recursos mais importantes da versão 2.4 <strong>do</strong> kernel, o ReiserFS<br />

tornou-se disponível como um patch para kernels <strong>SUSE</strong> 2.2 x desde a versão 6.4 <strong>do</strong><br />

<strong>SUSE</strong> Linux. O ReiserFS foi cria<strong>do</strong> por Hans Reiser e pela equipe de desenvolvimento<br />

da Namesys. Ele provou ser uma alternativa robusta ao Ext2. Seus bens mais importantes


são a melhor utilização <strong>do</strong> espaço em disco, o melhor desempenho <strong>do</strong> acesso ao disco<br />

e uma recuperação de falhas mais rápida.<br />

Os pontos fortes <strong>do</strong> ReiserFS, em mais detalhes, são:<br />

Melhor utilização <strong>do</strong> espaço em disco<br />

No ReiserFS, to<strong>do</strong>s os da<strong>do</strong>s são organiza<strong>do</strong>s em uma estrutura chamada árvore<br />

equilibrada (B * - tree). A estrutura de árvore contribui para uma melhor utilização<br />

<strong>do</strong> espaço em disco, pois arquivos pequenos podem ser armazena<strong>do</strong>s diretamente<br />

nos nós da folha da árvore equilibrada B * , em vez de serem armazena<strong>do</strong>s em outro<br />

local e simplesmente manterem um indica<strong>do</strong>r no local <strong>do</strong> disco. Além disso, o<br />

armazenamento não é aloca<strong>do</strong> em pacotes de 1 ou 4 kB, mas em porções <strong>do</strong> tamanho<br />

exato necessário. Uma outra vantagem está na alocação dinâmica de inodes. Ela<br />

mantém o sistema de arquivos mais flexível <strong>do</strong> que os sistemas de arquivos<br />

tradicionais, como Ext2, em que a densidade <strong>do</strong> inode deve ser especificada no<br />

momento da criação <strong>do</strong> sistema de arquivos.<br />

Melhor desempenho <strong>do</strong> acesso ao disco<br />

Para arquivos pequenos, os respectivos da<strong>do</strong>s e as informações (inode) “stat_data”<br />

são sempre armazena<strong>do</strong>s la<strong>do</strong> a la<strong>do</strong>. Eles podem ser li<strong>do</strong>s com uma simples<br />

operação E/S de disco, o que quer dizer que é necessário somente um acesso ao<br />

disco para recuperar todas as informações necessárias.<br />

Rápida recuperação de falhas<br />

A utilização de um diário para controlar as mudanças de metada<strong>do</strong>s recentes faz<br />

com que a verificação de um sistema de arquivos leve segun<strong>do</strong>s, mesmo no caso<br />

<strong>do</strong>s muito grandes.<br />

Confiabilidade por meio <strong>do</strong> registro <strong>do</strong>s da<strong>do</strong>s em diário<br />

O ReiserFS também suporta o registro de da<strong>do</strong>s em diário e mo<strong>do</strong>s de da<strong>do</strong>s<br />

ordena<strong>do</strong>s similares aos conceitos realça<strong>do</strong>s na seção Ext3, Seção 13.2.3, “Ext3”<br />

(p 272). O mo<strong>do</strong> padrão é data=ordered, que garante a integridade <strong>do</strong>s da<strong>do</strong>s<br />

e <strong>do</strong>s metada<strong>do</strong>s, mas usa o registro de da<strong>do</strong>s em diário somente para metada<strong>do</strong>s.<br />

13.2.2 Ext2<br />

A origem <strong>do</strong> Ext2 remonta ao início da história <strong>do</strong> Linux. Seu predecessor, o Extended<br />

File System, foi implementa<strong>do</strong> em abril de 1992 e integra<strong>do</strong> ao Linux 0.96c. O Extended<br />

File System passou por uma série de modificações e, como o Ext2, tornou-se o sistema<br />

Sistemas de arquivos no Linux 271


272 Referência<br />

de arquivos Linux mais popular por muitos anos. Com a criação <strong>do</strong>s sistemas de arquivos<br />

com registro em diário e seus surpreendentes e curtos tempos de recuperação, o Ext2<br />

ficou menos importante.<br />

Um breve resumo <strong>do</strong>s pontos fortes <strong>do</strong> Ext2 podem ajudar a mostrar por que ele foi, e<br />

ainda é em algumas áreas, o sistema de arquivos Linux favorito de muitos usuários.<br />

Solidez<br />

Por ser um “veterano,” o Ext2 passou por várias melhorias e foi bastante testa<strong>do</strong>.<br />

Esta pode ser a razão para as pessoas sempre se referirem a ele como "sóli<strong>do</strong> como<br />

uma pedra". Depois de uma falha no sistema em que o sistema de arquivos não<br />

pode ser desmonta<strong>do</strong> inteiramente, o e2fsck começa a analisar os da<strong>do</strong>s <strong>do</strong> sistema<br />

de arquivos. Os metada<strong>do</strong>s são leva<strong>do</strong>s a um esta<strong>do</strong> consistente e os arquivos<br />

pendentes ou blocos de da<strong>do</strong>s são grava<strong>do</strong>s em um diretório designa<strong>do</strong> (chama<strong>do</strong><br />

lost+found). Em contraste com os sistemas de arquivos de registro em diário,<br />

o e2fsck analisa to<strong>do</strong> o sistema de arquivos e não somente os bits de metada<strong>do</strong>s<br />

modifica<strong>do</strong>s recentemente. Esse procedimento demora muito mais <strong>do</strong> que a<br />

verificação <strong>do</strong>s da<strong>do</strong>s de registro de um sistema de arquivos com registro em diário.<br />

Dependen<strong>do</strong> <strong>do</strong> tamanho <strong>do</strong> sistema de arquivos, ele pode levar meia hora ou mais.<br />

Portanto, não é desejável optar pelo Ext2 em servi<strong>do</strong>res que precisem de grande<br />

disponibilidade. No entanto, como o Ext2 não mantém um diário e usa muito menos<br />

memória, algumas vezes ele é mais rápi<strong>do</strong> <strong>do</strong> que outros sistemas de arquivos.<br />

Fácil capacidade de upgrade<br />

O código <strong>do</strong> Ext2 é a base sólida sobre a qual o Ext3 poderia se tornar um sistema<br />

de arquivos de última geração amplamente aclama<strong>do</strong>. Sua confiabilidade e solidez<br />

foram combinadas de forma elegante com as vantagens de um sistema de arquivos<br />

de registro em diário.<br />

13.2.3 Ext3<br />

O Ext3 foi cria<strong>do</strong> por Stephen Tweedie. Diferentemente de to<strong>do</strong>s os sistemas de arquivos<br />

de última geração, o Ext3 não segue totalmente um princípio de design novo. Ele é<br />

basea<strong>do</strong> no Ext2. Esses <strong>do</strong>is sistemas de arquivos têm uma relação muito próxima. Um<br />

sistema de arquivos Ext3 pode ser facilmente cria<strong>do</strong> sobre um sistema de arquivos Ext2.<br />

A diferença mais importante entre o Ext2 e o Ext3 é que o Ext3 suporta o registro em<br />

diário. Em resumo, o Ext3 tem três grandes vantagens a <strong>of</strong>erecer:


Upgrades <strong>do</strong> Ext2 fáceis e altamente confiáveis.<br />

Como o Ext3 é basea<strong>do</strong> no código <strong>do</strong> Ext2 e compartilha seu formato em disco,<br />

bem como seu formato de metada<strong>do</strong>s, as atualizações <strong>do</strong> Ext2 para o Ext3 são<br />

incrivelmente fáceis. Ao contrário de transições para outros sistemas de arquivos<br />

de registro em diário, como o ReiserFS ou XFS, que podem ser bastante tediosas<br />

(fazer backup de to<strong>do</strong> o sistema e recriá-lo de um rascunho), a transição para o<br />

Ext3 é uma questão de minutos. Ela também é muito segura, pois a recriação de<br />

um sistema de arquivos inteiro de um rascunho pode não ser perfeita. Consideran<strong>do</strong><br />

o número de sistemas Ext2 existentes que aguardam um upgrade para um sistema<br />

de arquivos de registro em diário, você pode imaginar facilmente por que o Ext3<br />

pode ter alguma importância para vários administra<strong>do</strong>res de sistema. O <strong>do</strong>wngrade<br />

<strong>do</strong> Ext3 para o Ext2 é tão fácil quanto o upgrade. Simplesmente execute uma<br />

desmontagem completa <strong>do</strong> sistema de arquivos Ext3 e remonte-o como um sistema<br />

de arquivos Ext2.<br />

Confiabilidade e desempenho<br />

Alguns outros sistemas de arquivos de registro em diário seguem a abordagem de<br />

registro em diário de “Apenas Metada<strong>do</strong>s”. Isso significa que seus metada<strong>do</strong>s são<br />

sempre manti<strong>do</strong>s em um esta<strong>do</strong> consistente, mas o mesmo não pode ser garanti<strong>do</strong><br />

automaticamente para os próprios da<strong>do</strong>s <strong>do</strong> sistema de arquivos. O Ext 3 foi cria<strong>do</strong><br />

para cuidar <strong>do</strong>s da<strong>do</strong>s e <strong>do</strong>s metada<strong>do</strong>s. O grau de “cuida<strong>do</strong>” pode ser personaliza<strong>do</strong>.<br />

Habilitar o Ext3 no mo<strong>do</strong> data=journal <strong>of</strong>erece segurança máxima (integridade<br />

de da<strong>do</strong>s), mas também deixa o sistema mais lento, pois os da<strong>do</strong>s e os metada<strong>do</strong>s<br />

são registra<strong>do</strong>s em diário. Uma abordagem relativamente nova é usar o mo<strong>do</strong><br />

data=ordered, que garante a integridade <strong>do</strong>s da<strong>do</strong>s e metada<strong>do</strong>s, mas usa o<br />

registro em diário apenas para metada<strong>do</strong>s. O driver <strong>do</strong> sistema de arquivos coleta<br />

to<strong>do</strong>s os blocos de da<strong>do</strong>s que correspondem a uma atualização de metada<strong>do</strong>s. Esses<br />

blocos de da<strong>do</strong>s são grava<strong>do</strong>s em disco antes da atualização <strong>do</strong>s metada<strong>do</strong>s. Como<br />

resulta<strong>do</strong>, obtém-se consistência para da<strong>do</strong>s e metada<strong>do</strong>s sem sacrificar o<br />

desempenho. Uma terceira opção é usar o data=writeback, para que os da<strong>do</strong>s<br />

sejam grava<strong>do</strong>s no mesmo sistema de arquivos depois que seus metada<strong>do</strong>s forem<br />

confirma<strong>do</strong>s no diário. Essa opção é sempre considerada a melhor em desempenho.<br />

Contu<strong>do</strong>, ela pode permitir que da<strong>do</strong>s antigos surjam novamente nos arquivos<br />

depois de uma falha e recuperação, enquanto a integridade <strong>do</strong> sistema <strong>do</strong> arquivo<br />

é mantida. A menos que você especifique de forma diferente, o Ext3 será executa<strong>do</strong><br />

no mo<strong>do</strong> data=ordered por padrão.<br />

Sistemas de arquivos no Linux 273


274 Referência<br />

13.2.4 Converten<strong>do</strong> um sistema de arquivos<br />

Ext2 em Ext3<br />

Para converter um sistema de arquivos Ext2 em Ext3, proceda da seguinte maneira:<br />

1 Crie um diário Ext3 executan<strong>do</strong> tune2fs -j como root. Esse procedimento<br />

criará um diário <strong>do</strong> Ext3 com os parâmetros padrão.<br />

Para que você decida o tamanho <strong>do</strong> diário e em que dispositivo ele deverá residir,<br />

execute tune2fs -J, juntamente com as opções de diário desejadas size=<br />

e device=. Mais informações sobre o programa tune2fs estão disponíveis em<br />

sua respectiva página de manual tune2fs.<br />

2 Para garantir que o sistema de arquivos Ext3 seja reconheci<strong>do</strong> como tal, edite o<br />

arquivo /etc/fstab como root, mudan<strong>do</strong> o tipo de sistema de arquivos<br />

especifica<strong>do</strong> pela partição correspondente de ext2 para ext3. A mudança terá<br />

efeito na próxima reinicialização.<br />

3 Para inicializar uma configuração de sistema de arquivos raiz como uma partição<br />

Ext3, inclua os módulos ext3 e jbd no initrd. Para fazer isso, edite /etc/<br />

sysconfig/kernel como root, adicionan<strong>do</strong> ext3 e jbd à variável<br />

INITRD_MODULES. Após salvar as mudanças, execute o coman<strong>do</strong> mkinitrd.<br />

Isso cria um novo initrd e o prepara para uso.<br />

13.2.5 Reiser4<br />

Logo depois que o kernel 2.6 foi lança<strong>do</strong>, a família de sistemas de arquivos com registro<br />

em diário recebeu outro membro: o Reiser4. O Reiser4 é fundamentalmente diferente<br />

de seu predecessor, o ReiserFS (versão 3.6). Ele apresenta o conceito de plug-ins para<br />

ajustar a funcionalidade <strong>do</strong> sistema de arquivos e um conceito de segurança mais<br />

refina<strong>do</strong>.<br />

Conceito de segurança refina<strong>do</strong><br />

Na criação <strong>do</strong> Reiser4, seus desenvolve<strong>do</strong>res enfatizaram a implementação de<br />

recursos relevantes de segurança. Portanto, o Reiser4 contém um conjunto de plugins<br />

de segurança dedica<strong>do</strong>s. O mais importante deles apresenta o conceito de “itens”<br />

de arquivo. Atualmente, os controles de acesso a arquivos são defini<strong>do</strong>s por arquivo.<br />

Se existe um arquivo grande conten<strong>do</strong> informações relevantes para vários usuários,


grupos ou aplicativos, os direitos de acesso devem ser razoavelmente imprecisos<br />

para incluir todas as partes envolvidas. No Reiser4, é possível dividir esses arquivos<br />

em partes menores (os “itens”). Os direitos de acesso podem então ser defini<strong>do</strong>s<br />

para cada item e cada usuário separadamente, permitin<strong>do</strong> um gerenciamento de<br />

segurança de arquivos muito mais preciso. Um exemplo perfeito seria /etc/<br />

passwd. Atualmente, somente os usuários root podem ler e editar o arquivo,<br />

enquanto os não-root só obtêm acesso de leitura a esse arquivo. Usan<strong>do</strong> o conceito<br />

de item <strong>do</strong> Reiser4, você pode dividir esse arquivo em um conjunto de itens (um<br />

item por usuário) e permitir que os usuários ou aplicativos modifiquem seus próprios<br />

da<strong>do</strong>s, mas sem acessar os da<strong>do</strong>s de outros usuários. Esse conceito aumenta a<br />

segurança e flexibilidade.<br />

Extensibilidade por meio de plug-ins<br />

Muitas funções <strong>do</strong> sistema de arquivos e funções externas normalmente usadas por<br />

um sistema de arquivos são implementadas como plug-ins no Reiser4. Esses plugins<br />

podem ser facilmente adiciona<strong>do</strong>s ao sistema básico. Você não precisa mais<br />

compilar o kernel ou reformatar o disco rígi<strong>do</strong> para adicionar novas funcionalidades<br />

ao sistema de arquivos.<br />

Melhor layout <strong>do</strong> sistema de arquivos por meio de alocação atrasada<br />

Assim como o XFS, o Reiser4 suporta a alocação atrasada. Consulte a Seção 13.2.6,<br />

“XFS” (p 275). A utilização da alocação atrasada, até mesmo para metada<strong>do</strong>s, pode<br />

resultar em um melhor layout geral.<br />

13.2.6 XFS<br />

Com intenção original de ser um sistema de arquivos para o sistema operacional IRIX,<br />

a SGI iniciou o desenvolvimento <strong>do</strong> XFS no começo de 1990. A idéia por trás <strong>do</strong> XFS<br />

era criar um sistema de arquivos de registro em diário de 64 bits de alto desempenho<br />

para atender aos altos desafios de computação de hoje. O XFS é muito bom na<br />

manipulação de arquivos grandes e tem bom desempenho em hardware de ponta.<br />

Entretanto, até mesmo o XFS tem uma desvantagem. Assim como o ReiserFS, o XFS<br />

cuida bastante da integridade <strong>do</strong>s metada<strong>do</strong>s, mas nem tanto da integridade <strong>do</strong>s da<strong>do</strong>s.<br />

Uma rápida análise <strong>do</strong>s recursos fundamentais <strong>do</strong> XFS explica por que ele pode ser um<br />

forte concorrente para outros sistemas de arquivos de registro em diário em computação<br />

de ponta.<br />

Sistemas de arquivos no Linux 275


276 Referência<br />

Alta escalabilidade por meio <strong>do</strong> uso de grupos de alocação<br />

No momento de criação de um sistema de arquivos XFS, o dispositivo de bloco<br />

subjacente ao sistema de arquivos é dividi<strong>do</strong> em oito ou mais regiões lineares <strong>do</strong><br />

mesmo tamanho. Elas são denominadas grupos de alocação. Cada grupo de alocação<br />

gerencia seus próprios inodes e espaços libera<strong>do</strong>s em disco. Praticamente, os grupos<br />

de alocação podem ser vistos como sistemas de arquivos dentro de um sistema de<br />

arquivos. Como grupos de alocação são independentes uns <strong>do</strong>s outros, mais de um<br />

pode ser aborda<strong>do</strong> pelo kernel ao mesmo tempo. Esse recurso é a chave da grande<br />

escalabilidade <strong>do</strong> XFS. Naturalmente, o conceito de grupos de alocação<br />

independente corresponde às necessidades <strong>do</strong>s sistemas com multiprocessa<strong>do</strong>res.<br />

Alto desempenho por meio de um eficiente gerenciamento de espaço em disco<br />

O espaço em disco e os inodes são controla<strong>do</strong>s por árvores equilibradas B + dentro<br />

<strong>do</strong>s grupos de alocação. O uso de árvores equilibradas B + contribui muito para o<br />

desempenho e a escalabilidade <strong>do</strong> XFS. O XFs usa a alocação atrasada. Ele lida<br />

com a alocação dividin<strong>do</strong> o processo em duas partes. Uma transação pendente é<br />

armazenada em RAM e o espaço necessário é reserva<strong>do</strong>. O XFS ainda não decide<br />

exatamente onde (tratan<strong>do</strong>-se <strong>do</strong> bloco <strong>do</strong> sistema de arquivos) os da<strong>do</strong>s devem<br />

ser armazena<strong>do</strong>s. Essa decisão é atrasada até o último momento possível. Alguns<br />

da<strong>do</strong>s temporários de vida curta talvez nunca cheguem no disco, pois podem ficar<br />

obsoletos devi<strong>do</strong> ao tempo que o XFS leva para decidir onde gravá-los. Portanto,<br />

o XFS aumenta o desempenho de gravação e reduz a fragmentação <strong>do</strong> sistema de<br />

arquivos. Como a alocação atrasada resulta em eventos de gravação menos<br />

freqüentes <strong>do</strong> que em outros sistemas de arquivos, é provável que a perda de da<strong>do</strong>s<br />

depois de uma falha durante a gravação seja mais severa.<br />

Pré-alocação para evitar a fragmentação <strong>do</strong> sistema de arquivos<br />

Antes de gravar os da<strong>do</strong>s no sistema de arquivos, o XFS reserva (pré-aloca) o<br />

espaço livre necessário para um arquivo. Portanto, a fragmentação <strong>do</strong> sistema de<br />

arquivos é amplamente reduzida. O desempenho aumenta porque o conteú<strong>do</strong> <strong>do</strong>s<br />

arquivos não é distribuí<strong>do</strong> em to<strong>do</strong> o sistema de arquivos.<br />

13.3 Outros sistemas de arquivos<br />

suporta<strong>do</strong>s<br />

A Tabela 13.1, “Tipos de sistema de arquivos no Linux” (p 277) resume alguns <strong>do</strong>s<br />

sistemas de arquivos suporta<strong>do</strong>s pelo Linux. Eles são suporta<strong>do</strong>s principalmente para


garantir a compatibilidade e o intercâmbio de da<strong>do</strong>s com diferentes tipos de mídia de<br />

sistemas operacionais estrangeiros.<br />

Tabela 13.1 Tipos de sistema de arquivos no Linux<br />

cramfs<br />

hpfs<br />

iso9660<br />

minix<br />

ms<strong>do</strong>s<br />

ncpfs<br />

nfs<br />

smbfs<br />

sysv<br />

ufs<br />

ums<strong>do</strong>s<br />

Sistema de arquivos ROM compacta<strong>do</strong>: um sistema de arquivos<br />

compacta<strong>do</strong>s apenas leitura para ROMs.<br />

Sistema de arquivos de alto desempenho: o sistema de arquivos<br />

padrão da IBM OS/2 — suporta<strong>do</strong> no mo<strong>do</strong> apenas leitura.<br />

Sistema de arquivos padrão em CD-ROMs.<br />

Este sistema de arquivos foi origina<strong>do</strong> de projetos acadêmicos em<br />

sistemas operacionais e foi o primeiro usa<strong>do</strong> no Linux. Atualmente,<br />

ele é usa<strong>do</strong> como um sistema de arquivos para disquetes.<br />

fat, o sistema de arquivos originariamente usa<strong>do</strong> por DOS, hoje<br />

é usa<strong>do</strong> por vários sistemas operacionais.<br />

Sistema de arquivos para montagem de volumes Novell em redes.<br />

Sistema de arquivos de rede: os da<strong>do</strong>s podem ser armazena<strong>do</strong>s<br />

em qualquer máquina em uma rede, e o acesso pode ser concedi<strong>do</strong><br />

via rede.<br />

O Bloco de Mensagens <strong>do</strong> Servi<strong>do</strong>r é usa<strong>do</strong> por produtos como o<br />

Win<strong>do</strong>ws para permitir o acesso a arquivos em uma rede.<br />

Usa<strong>do</strong> no SCO UNIX, no Xenix e no Coherent (sistemas UNIX<br />

comerciais para PCs).<br />

Usa<strong>do</strong> por BSD, SunOS e NeXTstep. Suporta<strong>do</strong> somente no mo<strong>do</strong><br />

apenas leitura.<br />

UNIX em MS-DOS: aplica<strong>do</strong> sobre um sistema de arquivos fat<br />

normal, atinge a funcionalidade UNIX (permissões, links, nomes<br />

longos de arquivos) crian<strong>do</strong> arquivos especiais.<br />

Sistemas de arquivos no Linux 277


vfat<br />

ntfs<br />

278 Referência<br />

Virtual FAT: extensão <strong>do</strong> sistema de arquivos fat (suporta<br />

nomes longos de arquivos).<br />

Sistema de arquivos <strong>do</strong> Win<strong>do</strong>ws NT, apenas leitura.<br />

13.4 LFS (Large File Support - Suporte<br />

a Arquivos Grandes) no Linux<br />

Originariamente, o Linux suportava um tamanho máximo de arquivo de 2 GB. Isso era<br />

o suficiente antes da explosão da multimídia e enquanto ninguém tentava manipular<br />

enormes bancos de da<strong>do</strong>s no Linux. Ao se tornarem cada vez mais importantes na<br />

computação de servi<strong>do</strong>res, o kernel e a biblioteca C foram modifica<strong>do</strong>s para suportar<br />

tamanhos de arquivo maiores que 2 GB, usa<strong>do</strong>s em um novo conjunto de interfaces<br />

que os aplicativos devem usar. Atualmente, to<strong>do</strong>s os grandes sistemas de arquivos<br />

<strong>of</strong>erecem suporte a LFS, permitin<strong>do</strong> o desempenho de uma computação de ponta. A<br />

Tabela 13.2, “Tamanhos máximos de sistemas de arquivos (formato no disco)” (p 278)<br />

<strong>of</strong>erece uma visão geral das limitações atuais <strong>do</strong>s arquivos Linux e <strong>do</strong>s sistemas de<br />

arquivos.<br />

Tabela 13.2 Tamanhos máximos de sistemas de arquivos (formato no disco)<br />

Sistema de arquivos<br />

Ext2 ou Ext3 (tamanho <strong>do</strong> bloco<br />

de 1 kB)<br />

Ext2 ou Ext3 (tamanho <strong>do</strong> bloco<br />

de 2 kB)<br />

Ext2 ou Ext3 (tamanho <strong>do</strong> bloco<br />

de 4 kB)<br />

Ext2 ou Ext3 (tamanho <strong>do</strong> bloco<br />

de 8 kB) (sistemas com páginas de<br />

8 kB, como o Alpha)<br />

Tamanho <strong>do</strong><br />

arquivo (bytes)<br />

2 34 (16 GB)<br />

2 38 (256 GB)<br />

2 41 (2 TB)<br />

2 46 (64 TB)<br />

Tamanho <strong>do</strong> sistema<br />

de arquivos (bytes)<br />

2 41 (2 TB)<br />

2 43 (8 TB)<br />

2 43 -4096 (16 TB-4096<br />

Bytes)<br />

2 45 (32 TB)


Sistema de arquivos<br />

ReiserFS v3<br />

XFS<br />

NFSv2 (la<strong>do</strong> cliente)<br />

NFSv3 (la<strong>do</strong> cliente)<br />

Tamanho <strong>do</strong><br />

arquivo (bytes)<br />

2 46 (64 TB)<br />

2 63 (8 EB)<br />

2 31 (2 GB)<br />

2 63 (8 EB)<br />

IMPORTANTE: Limites de kernel <strong>do</strong> Linux<br />

Tamanho <strong>do</strong> sistema<br />

de arquivos (bytes)<br />

2 45 (32 TB)<br />

2 63 (8 EB)<br />

2 63 (8 EB)<br />

2 63 (8 EB)<br />

A Tabela 13.2, “Tamanhos máximos de sistemas de arquivos (formato no disco)”<br />

(p 278) descreve as limitações com relação ao formato no disco. O kernel 2.6<br />

impõe seus próprios limites ao tamanho <strong>do</strong>s arquivos e aos sistemas de arquivos<br />

gerencia<strong>do</strong>s por ele. Os limites são os seguintes:<br />

Tamanho <strong>do</strong> arquivo<br />

Em sistemas de 32 bits, os arquivos não podem exceder o tamanho de 2<br />

TB (2 41 bytes).<br />

Tamanho <strong>do</strong> sistema de arquivos<br />

Os sistemas de arquivos podem ter até 2 73 de tamanho. Entretanto, esse<br />

limite ainda está fora <strong>do</strong> alcance para o hardware disponível atualmente.<br />

13.5 Mais informações<br />

Cada projeto de sistema de arquivos descrito anteriormente mantém sua própria home<br />

page, na qual é possível encontrar informações de listas de discussão, outras<br />

<strong>do</strong>cumentações e FAQs (perguntas freqüentes).<br />

• http://e2fsprogs.sourceforge.net/<br />

• http://www.zipworld.com.au/~akpm/linux/ext3/<br />

• http://www.namesys.com/<br />

Sistemas de arquivos no Linux 279


280 Referência<br />

• http://oss.s<strong>of</strong>tware.ibm.com/developerworks/opensource/<br />

jfs/<br />

• http://oss.sgi.com/projects/xfs/<br />

Um tutorial abrangente e multiparte sobre os sistemas de arquivos Linux pode ser<br />

encontra<strong>do</strong> em IBM developerWorks: http://www-106.ibm.com/<br />

developerworks/library/l-fs.html. Para obter uma comparação <strong>do</strong>s<br />

diferentes sistemas de arquivos de registro em diário no Linux, consulte o artigo de<br />

Juan I. Santos Flori<strong>do</strong> em Linuxgazette: http://www.linuxgazette.com/<br />

issue55/flori<strong>do</strong>.html. Os interessa<strong>do</strong>s em uma análise mais apr<strong>of</strong>undada <strong>do</strong><br />

LFS no Linux podem acessar o site de Andreas Jaeger: http://www.suse.de/<br />

~aj/linux_lfs.html.


O sistema X Win<strong>do</strong>w<br />

O sistema X Win<strong>do</strong>w (X11) é o padrão de fato para interfaces gráficas de usuário no<br />

UNIX. O X é basea<strong>do</strong> em rede, permitin<strong>do</strong> que aplicativos inicia<strong>do</strong>s em um host sejam<br />

exibi<strong>do</strong>s em outro host conecta<strong>do</strong> em qualquer tipo de rede (LAN ou Internet). Este<br />

capítulo descreve a configuração e a otimização <strong>do</strong> ambiente <strong>do</strong> sistema X Win<strong>do</strong>w,<br />

fornece informações de base sobre o uso de fontes no <strong>SUSE</strong> Linux e explica a<br />

configuração <strong>do</strong> OpenGL e 3D.<br />

O texto a seguir contém diversas referências para a <strong>do</strong>cumentação que pode ser<br />

encontrada em /usr/share/<strong>do</strong>c/packages/Xorg e /usr/share/<strong>do</strong>c/<br />

howto/en. Esse material, junto com as respectivas páginas de manual, só estará<br />

disponível se os pacotes de <strong>do</strong>cumentação estiverem instala<strong>do</strong>s (xorg-x11-<strong>do</strong>c,<br />

xorg-x11-man e howtoenh).<br />

14.1 Configuração <strong>do</strong> X11 com o SaX2<br />

A interface gráfica de usuário, ou servi<strong>do</strong>r X, lida com a comunicação entre o hardware<br />

e o s<strong>of</strong>tware. Áreas de trabalho, como KDE e GNOME e a grande variedade de<br />

gerencia<strong>do</strong>res de janelas, usam o servi<strong>do</strong>r X para interação com o usuário. A interface<br />

gráfica <strong>do</strong> usuário é inicialmente configurada durante a instalação. Para mudar depois<br />

as configurações, use o módulo respectivo <strong>do</strong> centro de controle <strong>do</strong> YaST ou execute<br />

o SaX2 manualmente da linha de coman<strong>do</strong> com o coman<strong>do</strong> sax2. A janela principal<br />

<strong>do</strong> SaX2 <strong>of</strong>erece uma interface comum para os módulos individuais <strong>do</strong> centro de controle<br />

<strong>do</strong> YaST.<br />

14<br />

O sistema X Win<strong>do</strong>w 281


282 Referência<br />

Figura 14.1 A janela principal <strong>do</strong> SaX2<br />

Na barra de navegação esquerda, há seis itens, cada um mostran<strong>do</strong> a caixa de diálogo<br />

de configuração respectiva <strong>do</strong> centro de controle <strong>do</strong> YaST. Encontre as seções<br />

mencionadas abaixo no Capítulo Configuração <strong>do</strong> sistema com YaST (↑Inicialização).<br />

Monitor<br />

Para obter uma descrição da configuração da placa de vídeo e o monitor, consulte<br />

a Seção “Propriedades da Placa e <strong>do</strong> Monitor” (Capítulo 2, Configuração <strong>do</strong> sistema<br />

com YaST, ↑Inicialização).<br />

Mouse<br />

Para obter uma descrição da configuração <strong>do</strong> mouse no ambiente gráfico, consulte<br />

a Seção “Propriedades <strong>do</strong> Mouse” (Capítulo 2, Configuração <strong>do</strong> sistema com YaST,<br />

↑Inicialização).<br />

Tecla<strong>do</strong><br />

Para obter uma descrição da configuração <strong>do</strong> tecla<strong>do</strong> no ambiente gráfico, consulte<br />

a Seção “Propriedades <strong>do</strong> Tecla<strong>do</strong>” (Capítulo 2, Configuração <strong>do</strong> sistema com<br />

YaST, ↑Inicialização).


Mesa<br />

Para obter uma descrição da configuração da mesa gráfica, consulte a<br />

Seção “Propriedades da mesa digitaliza<strong>do</strong>ra” (Capítulo 2, Configuração <strong>do</strong> sistema<br />

com YaST, ↑Inicialização).<br />

Tela sensível ao toque<br />

Para obter uma descrição da configuração da tela sensível ao toque, consulte a<br />

Seção “Propriedades da Tela Sensível ao Toque” (Capítulo 2, Configuração <strong>do</strong><br />

sistema com YaST, ↑Inicialização).<br />

VNC<br />

Para obter uma descrição da configuração de VNC, consulte a Seção “Propriedades<br />

<strong>do</strong> Acesso Remoto” (Capítulo 2, Configuração <strong>do</strong> sistema com YaST,<br />

↑Inicialização).<br />

14.2 Otimizan<strong>do</strong> a configuração <strong>do</strong> X<br />

O X.Org é uma implementação de código-fonte aberto <strong>do</strong> sistema X Win<strong>do</strong>w. Ele<br />

também é desenvolvi<strong>do</strong> pela X.Org Foundation, que é responsável ainda pelo<br />

desenvolvimento de novas tecnologias e padrões <strong>do</strong> sistema X Win<strong>do</strong>w.<br />

Para usar da melhor forma possível o hardware disponível, inclusive o mouse, a placa<br />

gráfica, o monitor e o tecla<strong>do</strong>, a configuração pode ser otimizada manualmente. Alguns<br />

aspectos desta otimização são explica<strong>do</strong>s abaixo. Para obter informações detalhadas<br />

sobre como configurar o sistema X Win<strong>do</strong>w, consulte os vários arquivos no diretório<br />

/usr/share/<strong>do</strong>c/packages/Xorg e man xorg.conf.<br />

ATENÇÃO<br />

Tenha cuida<strong>do</strong> ao configurar o sistema X Win<strong>do</strong>w. Nunca inicie o sistema X<br />

Win<strong>do</strong>w antes que a configuração esteja concluída. Um sistema configura<strong>do</strong><br />

de forma errada pode causar danos irreparáveis ao seu hardware (isso aplicase<br />

especialmente a monitores de freqüência fixa). Os autores deste livro e o<br />

<strong>SUSE</strong> Linux não podem ser considera<strong>do</strong>s responsáveis por danos. Essas<br />

informações foram pesquisadas cuida<strong>do</strong>samente, mas isso não garante que<br />

to<strong>do</strong>s os méto<strong>do</strong>s apresenta<strong>do</strong>s aqui estejam corretos e não danifiquem o seu<br />

hardware.<br />

O sistema X Win<strong>do</strong>w 283


Os programas SaX2 e xorgconfig criam o arquivo xorg.conf, por padrão no /etc/<br />

X11. Esse é o arquivo de configuração principal para o sistema X Win<strong>do</strong>w. A seguir<br />

estão todas as configurações referentes ao monitor, ao mouse e à placa de vídeo.<br />

As seções a seguir descrevem a estrutura <strong>do</strong> arquivo de configuração /etc/X11/<br />

xorg.conf. Ela consiste em várias seções, cada uma delas referente a um determina<strong>do</strong><br />

aspecto da configuração. Cada seção se inicia com a palavra-chave Section<br />

e termina com EndSection. As seções têm o seguinte formato:<br />

Section designation<br />

entry 1<br />

entry 2<br />

entry n<br />

EndSection<br />

Os tipos de seção disponíveis estão lista<strong>do</strong>s na Tabela 14.1, “Seções em<br />

/etc/X11/xorg.conf” (p 284).<br />

Tabela 14.1 Seções em /etc/X11/xorg.conf<br />

Tipo<br />

Files<br />

284 Referência<br />

ServerFlags<br />

InputDevice<br />

Monitor<br />

Significa<strong>do</strong><br />

Esta seção descreve os caminhos usa<strong>do</strong>s por fontes e a tabela de<br />

cores RGB.<br />

Switches gerais são defini<strong>do</strong>s aqui.<br />

Dispositivos de entrada, como tecla<strong>do</strong>s e dispositivos de entrada<br />

especiais (touchpads, joysticks, etc.), são configura<strong>do</strong>s nesta<br />

seção. Parâmetros importantes nesta seção são Driver e as<br />

opções que definem o Protocol e o Device.<br />

Descreve o monitor usa<strong>do</strong>. Os elementos individuais desta seção<br />

são o nome, que é referencia<strong>do</strong> posteriormente na definição de<br />

Screen, a bandwidth e os limites de freqüência de<br />

sincronização (HorizSync e VertRefresh). As<br />

configurações são fornecidas em MHz, kHz e Hz. Normalmente,<br />

o servi<strong>do</strong>r recusa qualquer linha modelo que não corresponda à<br />

especificação <strong>do</strong> monitor. Isso evita que freqüências muito altas<br />

sejam enviadas ao monitor por acidente.


Tipo<br />

Modes<br />

Device<br />

Screen<br />

ServerLayout<br />

Significa<strong>do</strong><br />

Os parâmetros da linha modelo são armazena<strong>do</strong>s aqui para<br />

resoluções de tela específicas. Esses parâmetros podem ser<br />

calcula<strong>do</strong>s por SaX2 com base nos valores forneci<strong>do</strong>s pelo<br />

usuário e, normalmente, não precisam ser modifica<strong>do</strong>s.<br />

Intervenha manualmente neste ponto se, por exemplo, quiser<br />

conectar um monitor de freqüência fixa. Há detalhes sobre o<br />

significa<strong>do</strong> de valores numéricos individuais nos arquivos<br />

HOWTO /usr/share/<strong>do</strong>c/howto/en/html/<br />

XFree86-Video-Timings-HOWTO.<br />

Esta seção define uma placa de vídeo específica. Ela é<br />

referenciada por seu nome descritivo.<br />

Esta seção junta um Monitor e um Device para formar todas<br />

as configurações necessárias para X.Org. Na subseção Display,<br />

especifique o tamanho da tela virtual (Virtual), a ViewPort<br />

e os Modes usa<strong>do</strong>s com esta tela.<br />

Esta seção define o layout de uma configuração única ou<br />

multihead. Esta seção junta os dispositivos de entrada<br />

InputDevice e os dispositivos de exibição Screen.<br />

Monitor, Device e Screen são explica<strong>do</strong>s em mais detalhes abaixo. Mais<br />

informações sobre as outras seções podem ser encontradas nas páginas de manual de<br />

X.Org e xorg.conf.<br />

Há várias seções Monitor e Device diferentes em xorg.conf. Mesmo várias<br />

seções Screen são possíveis. A seção ServerLayout a seguir determina qual é<br />

usada.<br />

14.2.1 Seção de Tela<br />

A seção de tela combina um monitor com uma seção de dispositivo e determina a<br />

resolução e a intensidade de cor usadas. Uma seção de tela pode ter a aparência <strong>do</strong><br />

Exemplo 14.1, “Seção de tela <strong>do</strong> arquivo /etc/X11/xorg.conf” (p 286).<br />

O sistema X Win<strong>do</strong>w 285


286 Referência<br />

Exemplo 14.1 Seção de tela <strong>do</strong> arquivo /etc/X11/xorg.conf<br />

Section "Screen"<br />

DefaultDepth 16<br />

SubSection "Display"<br />

Depth 16<br />

Modes "1152x864" "1024x768" "800x600"<br />

Virtual 1152x864<br />

EndSubSection<br />

SubSection "Display"<br />

Depth 24<br />

Modes "1280x1024"<br />

EndSubSection<br />

SubSection "Display"<br />

Depth 32<br />

Modes "640x480"<br />

EndSubSection<br />

SubSection "Display"<br />

Depth 8<br />

Modes "1280x1024"<br />

EndSubSection<br />

Device "Device[0]"<br />

Identifier "Screen[0]"<br />

Monitor "Monitor[0]"<br />

EndSection<br />

A linha Identifier (aqui Screen[0]) fornece a esta seção um nome defini<strong>do</strong><br />

com o qual pode ser exclusivamente referencia<strong>do</strong> na seguinte seção ServerLayout.<br />

As linhas Device e Monitor especificam a placa de vídeo e o monitor que pertence<br />

a esta definição. Estes são links às seções Device e Monitor com seus nomes<br />

correspondentes ou identifica<strong>do</strong>res. Estas seções são abordadas em detalhes abaixo.<br />

Use a configuração DefaultDepth para selecionar a intensidade de cor que o servi<strong>do</strong>r<br />

deve usar a menos que seja inicia<strong>do</strong> com uma intensidade de cor específica. Há uma<br />

subseção Display para cada intensidade de cor. A palavra-chave Depth atribui a<br />

intensidade de cor válida para essa subseção. Valores possíveis para Depth são 8, 15,<br />

16 e 24. Nem to<strong>do</strong>s os módulos <strong>do</strong> servi<strong>do</strong>r X suportam esses valores.<br />

Após a intensidade de cor, uma lista de resoluções é definida na seção Modes. O<br />

servi<strong>do</strong>r X verifica essa lista da esquerda para a direita. Para cada resolução, o servi<strong>do</strong>r<br />

X procura uma Modeline adequada na seção Modes. A Modeline depende da<br />

capacidade <strong>do</strong> monitor e da placa de vídeo. As configurações de Monitor determinam<br />

a Modeline resultante.<br />

A primeira resolução encontrada é o Default mode. Com Ctrl + Alt + + (no<br />

tecla<strong>do</strong> numérico), alterne para a resolução seguinte na lista à direita. Com Ctrl + Alt


+ – (no tecla<strong>do</strong> numérico), alterne para a esquerda. Isso permite a você variar a<br />

resolução enquanto o X está sen<strong>do</strong> executa<strong>do</strong>.<br />

A última linha da subseção Display com Depth 16 refere-se ao tamanho da tela<br />

virtual. O tamanho máximo possível de uma tela virtual depende da quantidade de<br />

memória instalada na placa de vídeo e a intensidade de cor desejada, não a resolução<br />

máxima <strong>do</strong> monitor. Como placas de vídeo modernas têm uma grande quantidade de<br />

memória de vídeo, você pode criar áreas de trabalho virtuais bem grandes. Porém, você<br />

talvez não seja mais capaz de usar a funcionalidade de 3D se preencher a maior parte<br />

da memória de vídeo com uma área de trabalho virtual. Se a placa tem 16 MB de<br />

memória RAM de vídeo, por exemplo, a tela virtual pode ser de até 4096x4096 pixels<br />

em tamanho com intensidade de cor de 8 bits. Porém, principalmente para placas<br />

aceleradas, não é recomendável usar toda a memória para a tela virtual, pois a memória<br />

na placa também é usada para vários caches de vídeo e fontes.<br />

14.2.2 Seção <strong>do</strong> dispositivo<br />

Uma seção de dispositivo descreve uma placa de vídeo específica. Você pode ter quantas<br />

entradas de dispositivo em xorg.conf desejar, desde que os nomes sejam<br />

diferencia<strong>do</strong>s pela palavra-chave Identifier. Como regra — se você tiver mais de<br />

uma placa de vídeo instalada — as seções são simplesmente numeradas em ordem. A<br />

primeira é chamada Device[0], a segunda Device[1] e assim por diante. O arquivo<br />

a seguir mostra um exemplo da seção Device de um computa<strong>do</strong>r com uma placa de<br />

vídeo de PCI Matrox Millennium:<br />

Section "Device"<br />

BoardName "MGA2064W"<br />

BusID "0:19:0"<br />

Driver "mga"<br />

Identifier "Device[0]"<br />

Ven<strong>do</strong>rName "Matrox"<br />

Option "sw_cursor"<br />

EndSection<br />

Se você usar SaX2 para a configuração, a seção de dispositivo deverá ter a aparência<br />

semelhante à <strong>do</strong> exemplo acima. Ambos o Driver e o BusID são dependentes <strong>do</strong><br />

hardware instala<strong>do</strong> no seu computa<strong>do</strong>r e são detecta<strong>do</strong>s pelo SaX2 automaticamente.<br />

O BusID define o slot PCI ou AGP no qual a placa de vídeo está instalada. Isso<br />

corresponde ao ID exibi<strong>do</strong> pelo coman<strong>do</strong> lspci. O servi<strong>do</strong>r X precisa de detalhes no<br />

formato decimal, mas o lspci os exibe no formato hexadecimal.<br />

O sistema X Win<strong>do</strong>w 287


288 Referência<br />

Com o parâmetro Driver, especifique o driver a ser usa<strong>do</strong> para esta placa de vídeo.<br />

Se a placa for Matrox Millennium, o módulo <strong>do</strong> driver será chama<strong>do</strong> mga. Em seguida,<br />

o servi<strong>do</strong>r X pesquisa através <strong>do</strong> ModulePath defini<strong>do</strong> na seção Files no<br />

subdiretório drivers. Em uma instalação padrão, este é o diretório /usr/X11R6/<br />

lib/modules/drivers. _drv.o será adiciona<strong>do</strong> ao nome, por isso, no caso <strong>do</strong><br />

driver mga, o arquivo de driver mga_drv.o será carrega<strong>do</strong>.<br />

O comportamento <strong>do</strong> servi<strong>do</strong>r X ou <strong>do</strong> driver também pode ser influencia<strong>do</strong> através de<br />

opções adicionais. Um exemplo disso é a opção sw_cursor, definida na seção de<br />

dispositivo. Isso desativa o cursor <strong>do</strong> mouse <strong>do</strong> hardware e mostra o cursor <strong>do</strong> mouse<br />

usan<strong>do</strong> o s<strong>of</strong>tware. Dependen<strong>do</strong> <strong>do</strong> módulo <strong>do</strong> driver, há várias opções disponíveis,<br />

que podem ser encontradas nos arquivos de descrição <strong>do</strong>s módulos <strong>do</strong> driver no diretório<br />

/usr/X11R6/lib/X11/<strong>do</strong>c. Em geral, opções válidas também podem ser<br />

encontradas nas páginas de manual (man xorg.conf e man X.Org).<br />

14.2.3 Seção Monitor e Mo<strong>do</strong>s<br />

Como as seções Device, as seções Monitor e Modes descrevem um monitor cada.<br />

O arquivo de configuração /etc/X11/xorg.conf pode conter quantas seções<br />

Monitor você desejar. A seção de layout <strong>do</strong> servi<strong>do</strong>r especifica qual seção Monitor<br />

é relevante.<br />

Definições de monitor devem ser configuradas por usuários experientes. As linhas<br />

modelo constituem uma parte importante das seções Monitor. Linhas modelo definem<br />

temporizações verticais para a respectiva resolução. As propriedades <strong>do</strong> monitor,<br />

especialmente as freqüências permitidas, estão armazenadas na seção Monitor.<br />

ATENÇÃO<br />

A menos que você tenha um conhecimento pr<strong>of</strong>un<strong>do</strong> de funções de monitor<br />

e placa de vídeo, nada deve ser muda<strong>do</strong> nas linhas modelo, pois isso poderia<br />

causar danos severos ao seu monitor.<br />

As pessoas que tentam desenvolver suas próprias descrições de monitor devem estar<br />

familiarizadas com a <strong>do</strong>cumentação em /usr/X11/lib/X11/<strong>do</strong>c. A seção cobrin<strong>do</strong><br />

os mo<strong>do</strong>s de vídeo merece uma atenção especial. Ela descreve, em detalhes, como o<br />

hardware funciona e como criar linhas modelo.


A especificação manual de linhas modelo raramente é exigida atualmente. Se você está<br />

usan<strong>do</strong> um monitor multisync moderno, as freqüências permitidas e as resoluções ótimas<br />

podem, como regra, serem lidas <strong>do</strong> monitor pelo servi<strong>do</strong>r X através de DDC, como<br />

descrito na seção de configuração <strong>do</strong> SaX2. Se isso não for possível por algum motivo,<br />

use um <strong>do</strong>s mo<strong>do</strong>s VESA incluí<strong>do</strong>s no servi<strong>do</strong>r X. Isso funcionará com praticamente<br />

todas as combinações de monitor e placa de vídeo.<br />

14.3 Instalan<strong>do</strong> e configuran<strong>do</strong> fontes<br />

A instalação de fontes adicionais no <strong>SUSE</strong> Linux é muito fácil. Simplesmente copie as<br />

fontes para qualquer diretório localiza<strong>do</strong> no caminho da fonte X11 (consulte a<br />

Seção 14.3.1, “Fontes centrais X11” (p 290)). Para habilitar o uso das fontes, o diretório<br />

de instalação deve ser um subdiretório <strong>do</strong>s diretórios configura<strong>do</strong>s em /etc/fonts/<br />

fonts.conf (consulte a Seção 14.3.2, “Xft” (p 291)).<br />

Os arquivos de fontes podem ser copia<strong>do</strong>s manualmente (como root) para um diretório<br />

adequa<strong>do</strong>, como /usr/X11R6/lib/X11/fonts/truetype. Alternativamente,<br />

a tarefa pode ser realizada com o instala<strong>do</strong>r de fontes <strong>do</strong> KDE no Centro de Controle<br />

<strong>do</strong> KDE. O resulta<strong>do</strong> é o mesmo.<br />

Em vez de copiar as fontes reais, você também pode criar links simbólicos. Por exemplo,<br />

é recomendável fazer isso se você tem fontes licenciadas em uma partição <strong>do</strong> Win<strong>do</strong>ws<br />

montada e deseja usá-las. Em seguida, execute SuSEconfig --module fonts.<br />

SuSEconfig --module fonts executa o script /usr/sbin/fonts-config,<br />

que lida com a configuração das fontes. Para ver o que o script faz, consulte a página<br />

de manual <strong>do</strong> script (man fonts-config).<br />

O procedimento é o mesmo para fontes de bitmap, fontes TrueType e OpenType e<br />

fontes Type1 (PostScript). To<strong>do</strong>s esses tipos de fonte podem ser instala<strong>do</strong>s em qualquer<br />

diretório. Somente fontes indexadas ao CID exigem um procedimento um pouco<br />

diferente. Para isso, consulte a Seção 14.3.3, “Fontes indexadas <strong>do</strong> CID” (p 294).<br />

X.Org contém <strong>do</strong>is sistemas de fontes completamente diferentes: O sistema de fontes<br />

central X11 antigo e o sistema Xft and fontconfig recém-cria<strong>do</strong>. As seções a seguir<br />

descrevem brevemente esses <strong>do</strong>is sistemas.<br />

O sistema X Win<strong>do</strong>w 289


290 Referência<br />

14.3.1 Fontes centrais X11<br />

Atualmente, o sistema de fontes centrais X11 suporta não somente fontes de bitmap,<br />

mas também fontes escaláveis, como fontes Type1, TrueType e OpenType e fontes<br />

indexadas <strong>do</strong> CID. Fontes escaláveis são suportadas somente sem a exibição de subpixel<br />

e antialiasing e o carregamento de fontes escaláveis grandes para vários idiomas pode<br />

levar muito tempo. As fontes Unicode também são suportadas, mas seu uso pode ser<br />

lento e requerer mais memória.<br />

O sistema de fontes centrais X11 tem algumas fraquezas inerentes. Ele está desatualiza<strong>do</strong><br />

e não pode mais ser estendi<strong>do</strong> de forma significativa. Embora ele possa ser manti<strong>do</strong><br />

por motivos de compatibilidade retroativa, o sistema Xft e fontconfig mais moderno<br />

deve ser usa<strong>do</strong> se for possível.<br />

Para essa operação, o servi<strong>do</strong>r X precisa saber quais fontes estão disponíveis e onde no<br />

sistema ele pode encontrá-las. Isso é trata<strong>do</strong> por uma variável FontPath, que contém o<br />

caminho para to<strong>do</strong>s os diretórios de fontes de sistemas váli<strong>do</strong>s. Em cada um desses<br />

diretórios, um arquivo chama<strong>do</strong> fonts.dir lista as fontes disponíveis neste diretório.<br />

O FontPath é gera<strong>do</strong> pelo servi<strong>do</strong>r X na inicialização. Ele procura um arquivo fonts<br />

.dir váli<strong>do</strong> em cada uma das entradas FontPath no arquivo de configuração /etc/<br />

X11/xorg.conf. Essas entradas são encontradas na seção Files. Exiba o FontPath<br />

real com xset q. Esse caminho também pode ser modifica<strong>do</strong> no tempo de execução<br />

com xset. Para adicionar outro caminho, use xset +fp . Para remover um<br />

caminho indeseja<strong>do</strong>, use xset -fp .<br />

Se o servi<strong>do</strong>r X já estiver ativo, fontes recém-instaladas em diretórios monta<strong>do</strong>s podem<br />

ficar disponíveis com o coman<strong>do</strong> xset fp rehash. Este coman<strong>do</strong> é executa<strong>do</strong> por<br />

SuSEconfig --module fonts. Como o coman<strong>do</strong> xset precisa de acesso ao<br />

servi<strong>do</strong>r X em execução, isso funciona somente se SuSEconfig --module fonts<br />

for inicia<strong>do</strong> em um shell com acesso ao servi<strong>do</strong>r X em execução. A maneira mais fácil<br />

de conseguir isso é assumir permissões de root digitan<strong>do</strong> su e a senha de root. su<br />

transfere as permissões de acesso <strong>do</strong> usuário que iniciou o servi<strong>do</strong>r X para o shell <strong>do</strong><br />

root. Para verificar se as fontes foram instaladas corretamente e estão disponíveis através<br />

<strong>do</strong> sistema de fontes centrais X11, use o coman<strong>do</strong> xlsfonts para listar todas as fontes<br />

disponíveis.<br />

Por padrão, o <strong>SUSE</strong> Linux usa locales UTF-8. Desta forma, fontes Unicode devem ser<br />

preferidas (nomes de fontes terminan<strong>do</strong> com iso10646-1 na saída xlsfonts).<br />

Todas as fontes Unicode disponíveis podem ser relacionadas com xlsfonts | grep<br />

iso10646-1. Praticamente todas as fontes Unicode disponíveis no <strong>SUSE</strong> Linux


contêm pelo menos os glifos necessários para idiomas europeus (anteriormente<br />

codifica<strong>do</strong> como iso-8859-*).<br />

14.3.2 Xft<br />

Desde o início, os programa<strong>do</strong>res <strong>do</strong> Xft certificaram-se de que as fontes escaláveis,<br />

incluin<strong>do</strong> as de antialiasing, tivessem suporte adequa<strong>do</strong>. Se o Xft for usa<strong>do</strong>, as fontes<br />

serão exibidas pelo aplicativo usan<strong>do</strong> as fontes, não pelo servi<strong>do</strong>r X como no sistema<br />

de fontes central X11. Desta forma, o respectivo aplicativo tem acesso aos arquivos de<br />

fontes reais e controle total sobre como os glifos são exibi<strong>do</strong>s. Isso constitui a base para<br />

a exibição correta <strong>do</strong> texto em vários idiomas. Acesso direto aos arquivos de fontes é<br />

bastante útil para embutir fontes para impressão para certificar-se de que a impressão<br />

tem a mesma aparência da saída da tela.<br />

No <strong>SUSE</strong> Linux, os <strong>do</strong>is ambientes de área de trabalho <strong>do</strong> KDE e <strong>do</strong> GNOME, Mozilla,<br />

e vários outros aplicativos já usam o Xft por padrão. O Xft já é usa<strong>do</strong> por mais<br />

aplicativos <strong>do</strong> que o sistema de fontes central X11 antigo.<br />

O Xft usa a biblioteca fontconfig para localizar fontes e influenciar como elas são<br />

exibidas. As propriedades de fontconfig são controladas pelo arquivo de configuração<br />

global /etc/fonts/fonts.conf e o arquivo de configuração específico ao usuário<br />

~/.fonts.conf. Cada um destes arquivos de configuração fontconfig deve iniciar<br />

com<br />

<br />

<br />

<br />

e terminar com<br />

<br />

Para adicionar diretórios para pesquisar fontes, acrescente linhas como as seguintes:<br />

/usr/local/share/fonts/<br />

Porém, isso geralmente não é necessário. Por padrão, o diretório específico ao usuário<br />

~/.fonts já está inseri<strong>do</strong> em /etc/fonts/fonts.conf. Da mesma maneira,<br />

tu<strong>do</strong> o que você precisa fazer para instalar fontes adicionais é copiá-las para ~/.fonts.<br />

Você também pode inserir regras que influenciam a aparência das fontes. Por exemplo,<br />

digite<br />

O sistema X Win<strong>do</strong>w 291


292 Referência<br />

<br />

<br />

false<br />

<br />

<br />

Para desabilitar o antialiasing para todas as fontes ou<br />

<br />

<br />

Luxi Mono<br />

Luxi Sans<br />

<br />

<br />

false<br />

<br />

<br />

para desabilitar o antialiasing para fontes específicas.<br />

Por padrão, a maioria <strong>do</strong>s aplicativos usa os nomes de fontes sans-serif (ou o<br />

equivalente sans), serif ou monospace. Estas não são fontes reais, mas somente<br />

aliás que são resolvi<strong>do</strong>s para uma fonte adequada, dependen<strong>do</strong> da configuração de<br />

idioma.<br />

Usuários podem facilmente adicionar regras para ~/.fonts.conf a fim de resolver<br />

esses alias para suas fontes favoritas:<br />

<br />

sans-serif<br />

<br />

FreeSans<br />

<br />

<br />

<br />

serif<br />

<br />

FreeSerif<br />

<br />

<br />

<br />

monospace<br />

<br />

FreeMono<br />

<br />

<br />

Como quase to<strong>do</strong>s os aplicativos usam esses alias por padrão, isso afeta praticamente<br />

to<strong>do</strong> o sistema. Desta forma, você pode facilmente usar suas fontes favoritas praticamente


em qualquer local sem precisar modificar as configurações de fontes nos aplicativos<br />

individuais.<br />

Use o coman<strong>do</strong> fc-list para encontrar as fontes instaladas e disponíveis para uso.<br />

Por exemplo, o coman<strong>do</strong> fc-list retorna uma lista de todas as fontes. Para descobrir<br />

quais das fontes escaláveis disponíveis (:scalable=true) contêm to<strong>do</strong>s os glifos<br />

exigi<strong>do</strong>s para hebraico (:lang=he), os nomes de fontes (family), o estilo (style),<br />

o peso (weight) e o nome <strong>do</strong>s arquivos que contêm as fontes, digite o seguinte<br />

coman<strong>do</strong>:<br />

fc-list ":lang=he:scalable=true" family style weight<br />

A saída <strong>do</strong> coman<strong>do</strong> pode ter a seguinte aparência:<br />

FreeSansBold.ttf: FreeSans:style=Bold:weight=200<br />

FreeMonoBoldOblique.ttf: FreeMono:style=BoldOblique:weight=200<br />

FreeSerif.ttf: FreeSerif:style=Medium:weight=80<br />

FreeSerifBoldItalic.ttf: FreeSerif:style=BoldItalic:weight=200<br />

FreeSansOblique.ttf: FreeSans:style=Oblique:weight=80<br />

FreeSerifItalic.ttf: FreeSerif:style=Italic:weight=80<br />

FreeMonoOblique.ttf: FreeMono:style=Oblique:weight=80<br />

FreeMono.ttf: FreeMono:style=Medium:weight=80<br />

FreeSans.ttf: FreeSans:style=Medium:weight=80<br />

FreeSerifBold.ttf: FreeSerif:style=Bold:weight=200<br />

FreeSansBoldOblique.ttf: FreeSans:style=BoldOblique:weight=200<br />

FreeMonoBold.ttf: FreeMono:style=Bold:weight=200<br />

Parâmetros importantes podem ser consulta<strong>do</strong>s com fc-list:<br />

Tabela 14.2 Parâmetros de fc-list<br />

Parâmetro<br />

family<br />

foundry<br />

style<br />

lang<br />

Significa<strong>do</strong> e valores possíveis<br />

Nome da família da fonte, por exemplo, FreeSans.<br />

Nome <strong>do</strong> fabricante da fonte, por exemplo, urw.<br />

O estilo da fonte, como Medium, Regular, Bold,<br />

Italic ou Heavy.<br />

O idioma que a fonte suporta, por exemplo, de para alemão,<br />

ja para japonês, zh-TW para chinês tradicional ou zh-CN<br />

para chinês simplifica<strong>do</strong>.<br />

O sistema X Win<strong>do</strong>w 293


Parâmetro<br />

weight<br />

slant<br />

file<br />

outline<br />

scalable<br />

bitmap<br />

pixelsize<br />

Significa<strong>do</strong> e valores possíveis<br />

O peso da fonte, como 80 para normal ou 200 para negrito.<br />

A inclinação, geralmente 0 para nenhum e 100 para itálico.<br />

O nome <strong>do</strong> arquivo conten<strong>do</strong> a fonte.<br />

true para fontes de bordas ou false para outras fontes.<br />

true para fontes escaláveis ou false para outras fontes.<br />

true para fontes de bitmap ou false para outras fontes.<br />

Tamanho de fonte em pixels. Em conexão com a fc-list, esta<br />

opção só faz senti<strong>do</strong> para fontes de bitmap.<br />

14.3.3 Fontes indexadas <strong>do</strong> CID<br />

Em contraste com outros tipos de fontes, você não pode simplesmente instalar fontes<br />

indexadas <strong>do</strong> CID em somente qualquer diretório. Fontes indexadas <strong>do</strong> CID devem ser<br />

instaladas em /usr/share/ghostscript/Resource/CIDFont. Isso não é<br />

relevante para Xft e fontconfig, mas é necessário para Ghostscript e o sistema de fontes<br />

centrais X11.<br />

DICA<br />

294 Referência<br />

Consulte http://www.xfree86.org/current/fonts.html para obter<br />

mais informações sobre fontes sob X11.


14.4 Configuração 3D <strong>do</strong> OpenGL<br />

14.4.1 Suporte a hardware<br />

O <strong>SUSE</strong> Linux inclui vários drivers <strong>do</strong> OpenGL para suporte a hardware 3D. A<br />

Tabela 14.3, “Hardwares 3D suporta<strong>do</strong>s” (p 295) fornece uma visão geral.<br />

Tabela 14.3 Hardwares 3D suporta<strong>do</strong>s<br />

Driver <strong>do</strong> OpenGL<br />

nVidia<br />

DRI<br />

Hardware suporta<strong>do</strong><br />

nVidia Chips: to<strong>do</strong>s, exceto alguns chipsets antigos (GeForce2<br />

e anteriores)<br />

Intel i810/i815/i830M,<br />

Intel 845G/852GM/855GM/865G/915G,915GM/945G<br />

Matrox G200/G400/G450/G550,<br />

ATI Rage 128(Pro)/Radeon (até 9250)<br />

Se você estiver fazen<strong>do</strong> uma instalação com o YaST pela primeira vez, a aceleração<br />

3D poderá ser ativada durante a instalação, uma vez que o YaST detecta suporte a 3D.<br />

Para chips de gráficos nVidia, é necessário instalar o driver nVidia antes. Para fazer<br />

isso, selecione o patch <strong>do</strong> driver nVidia em YOU (YaST Online Update - Atualização<br />

Online <strong>do</strong> YaST). Devi<strong>do</strong> a restrições de licença, o driver <strong>do</strong> nVidia não está incluí<strong>do</strong><br />

na distribuição.<br />

Se você atualizar o sistema, o procedimento para configurar o suporte ao hardware 3D<br />

será diferente. Isso depende de qual driver <strong>do</strong> OpenGL está sen<strong>do</strong> usa<strong>do</strong>. Detalhes<br />

adicionais serão forneci<strong>do</strong>s na próxima seção.<br />

O sistema X Win<strong>do</strong>w 295


296 Referência<br />

14.4.2 Drivers <strong>do</strong> OpenGL<br />

Os drivers nVidia e DRI <strong>do</strong> OpenGL podem ser facilmente configura<strong>do</strong>s com SaX2.<br />

Para adapta<strong>do</strong>res nVidia, é necessário instalar o driver nVidia antes. Digite o coman<strong>do</strong><br />

3Ddiag para verificar se a configuração <strong>do</strong> nVidia ou DRI está correta.<br />

Por razões de segurança, somente usuários pertencentes ao grupo vídeo têm permissão<br />

para acessar o hardware 3D. Portanto, verifique se to<strong>do</strong>s os usuários locais são membros<br />

desse grupo. Caso contrário, o fallback de renderização de s<strong>of</strong>tware lento <strong>do</strong> driver <strong>do</strong><br />

OpenGL será usa<strong>do</strong> para aplicativos <strong>do</strong> OpenGL. Use o coman<strong>do</strong> id para verificar se<br />

o usuário atual pertence ao grupo vídeo. Se não for o caso, use o YaST para adicionar<br />

o usuário ao grupo.<br />

14.4.3 Ferramenta de diagnóstico 3Ddiag<br />

A ferramenta de diagnóstico 3Ddiag permite verificar a configuração 3D <strong>do</strong> <strong>SUSE</strong><br />

Linux. Essa é uma ferramenta da linha de coman<strong>do</strong> que deve ser iniciada em um terminal.<br />

Digite 3Ddiag -h para relacionar possíveis opções para a 3Ddiag.<br />

Para verificar a configuração de X.Org, a ferramenta verifica se os pacotes necessários<br />

para o suporte 3D estão instala<strong>do</strong>s e se a biblioteca <strong>do</strong> OpenGL e a extensão GLX<br />

corretas estão sen<strong>do</strong> usadas. Se receber mensagens de falha, siga as instruções da 3Ddiag.<br />

Se tu<strong>do</strong> estiver correto, serão exibidas somente mensagens de conclusão na tela.<br />

14.4.4 Utilitários de teste <strong>do</strong> OpenGL<br />

Para testar o OpenGL, pode ser útil usar o programa glxgears e jogos como<br />

tuxracer e armagetron (os pacotes têm os mesmos nomes). Se o suporte 3D tiver<br />

si<strong>do</strong> ativa<strong>do</strong>, será possível reproduzi-los adequadamente em um computa<strong>do</strong>r novo. Sem<br />

suporte 3D, esses jogos seriam executa<strong>do</strong>s muito lentamente (efeito apresentação de<br />

slide). Use o coman<strong>do</strong> glxinfo para verificar se o 3D está ativo. Em caso positivo,<br />

a saída conterá uma linha com direct rendering: Yes.


14.4.5 Solução de problemas<br />

Se os resulta<strong>do</strong>s <strong>do</strong> teste 3D <strong>do</strong> OpenGL forem negativos (os jogos não forem<br />

reproduzi<strong>do</strong>s adequadamente), use a 3Ddiag para verificar se não há erros na<br />

configuração (mensagens de erro). Se a correção não ajudar ou as mensagens de erro<br />

não tiverem si<strong>do</strong> exibidas, analise os arquivos de registro X.Org.<br />

Com freqüência, você encontrará a linha DRI is disabled no arquivo X.Org<br />

/var/log/Xorg.0.log. A causa exata só poderá ser descoberta por meio de um<br />

exame detalha<strong>do</strong> <strong>do</strong> arquivo de registro, tarefa que requer experiência.<br />

Em tais casos, não há erros de configuração, pois eles teriam si<strong>do</strong> detecta<strong>do</strong>s pela<br />

3Ddiag. Conseqüentemente, nesse ponto a única alternativa é usar o fallback de<br />

renderização <strong>do</strong> s<strong>of</strong>tware <strong>do</strong> driver DRI, que não fornece suporte a hardware 3D. Você<br />

também deverá ficar sem suporte a 3D, se houver instabilidade ou erros de representação<br />

<strong>do</strong> OpenGL. Use o SaX2 para desabilitar totalmente o suporte a 3D.<br />

14.4.6 Suporte à instalação<br />

Além <strong>do</strong> fallback de renderização de s<strong>of</strong>tware <strong>do</strong> driver DRI, alguns<br />

drivers <strong>do</strong> OpenGL no Linux ainda estão em fase de desenvolvimento e, portanto, são<br />

considera<strong>do</strong>s experimentais. Os drivers são incluí<strong>do</strong>s na distribuição devi<strong>do</strong> à alta<br />

demanda de aceleração <strong>do</strong> hardware 3D no Linux. Consideran<strong>do</strong> o status experimental<br />

de alguns drivers <strong>do</strong> OpenGL, o <strong>SUSE</strong> não pode <strong>of</strong>erecer suporte à instalação para a<br />

configuração da aceleração <strong>do</strong> hardware 3D, nem fornecer assistência adicional a<br />

problemas relaciona<strong>do</strong>s. A configuração básica da interface gráfica <strong>do</strong> usuário (sistema<br />

X Win<strong>do</strong>w) não inclui configuração de aceleração <strong>do</strong> hardware 3D. Se você tiver<br />

problemas com a aceleração <strong>do</strong> hardware 3D, é recomendável desabilitar totalmente o<br />

suporte a 3D.<br />

14.4.7 Mais informações<br />

Para obter informações, consulte os arquivos LEIAME em /usr/X11R6/lib/X11/<br />

<strong>do</strong>c. Obtenha mais informações sobre a instalação <strong>do</strong> driver nvidia em http://www<br />

.suse.de/~sndirsch/nvidia-installer-HOWTO.html.<br />

O sistema X Win<strong>do</strong>w 297


FreeNX: controlan<strong>do</strong> outro<br />

computa<strong>do</strong>r remotamente<br />

O FreeNX é uma implementação GPL <strong>do</strong> servi<strong>do</strong>r NX, usa<strong>do</strong> para exibição e acesso<br />

remoto de outro computa<strong>do</strong>r. Ele <strong>of</strong>erece resposta de aplicativo em velocidade quase<br />

local através de links de alta latência e largura de banda baixa.<br />

15.1 Noções básicas <strong>do</strong> NX<br />

Estas etapas descrevem o procedimento básico para estabelecer uma configuração <strong>do</strong><br />

NX de trabalho que aceite até 10 clientes conecta<strong>do</strong>s ao servi<strong>do</strong>r NX:<br />

1 Instale os seguintes pacotes na máquina servi<strong>do</strong>r e cliente usan<strong>do</strong> o módulo de<br />

gerenciamento de s<strong>of</strong>tware <strong>do</strong> YaST:<br />

Máquina servi<strong>do</strong>r<br />

• NX<br />

Máquina cliente<br />

• NX<br />

• FreeNX • knx (para sessões <strong>do</strong> KDE)<br />

• NoMachine nxclient (para sessões não-<br />

KDE)<br />

2 Execute o seguinte coman<strong>do</strong> como Root para configurar o servi<strong>do</strong>r NX:<br />

nxsetup --install --clean --purge --setup-nomachine-key<br />

15<br />

FreeNX: controlan<strong>do</strong> outro computa<strong>do</strong>r remotamente 299


O servi<strong>do</strong>r é executa<strong>do</strong> de acor<strong>do</strong> com as configurações padrão existentes em<br />

/etc/nxserver/node.conf. Qualquer usuário pode se conectar<br />

remotamente de qualquer estação de trabalho. Para informar-se sobre a<br />

configuração avançada <strong>do</strong> servi<strong>do</strong>r NX, consulte a Seção 15.2, “Configuração<br />

avançada <strong>do</strong> FreeNX” (p 302).<br />

Se você preferir uma configuração mais segura com chaves privadas distribuídas<br />

para cada cliente, consulte as instruções contidas na Seção 15.2.1, “Configuran<strong>do</strong><br />

a autenticação SSH com chaves <strong>do</strong> cliente” (p 302).<br />

3 Configure o firewall na máquina que hospeda o servi<strong>do</strong>r NX para permitir<br />

conexões <strong>do</strong> NX.<br />

DICA<br />

300 Referência<br />

a Efetue login na máquina servi<strong>do</strong>r como Root e inicie o módulo de firewall<br />

<strong>do</strong> YaST.<br />

b Selecione Serviços Permiti<strong>do</strong>s para acessar a caixa de diálogo de<br />

configuração <strong>do</strong> serviço e selecione Zona Externa.<br />

c Selecione Avança<strong>do</strong> para especificar detalhes de porta <strong>do</strong> NX.<br />

d Abra as portas 22 (SSH), 5000 a 5009, e 7000 a 7009 para aceitar tráfego<br />

<strong>do</strong> NX. Para fazer isso, especifique o seguinte nas portas TCP:<br />

22 5000:5009 7000:7009<br />

e Selecione OK → Próximo → Aceitar para armazenar suas configurações e<br />

reiniciar o firewall.<br />

Para obter informações detalhadas sobre a configuração de firewall para o NX,<br />

consulte /usr/share/<strong>do</strong>c/packages/FreeNX/NX-Firewall.txt.<br />

Para conectar-se remotamente a outra estação de trabalho e usar o KDE como sua opção<br />

de desktop, proceda da seguinte maneira:<br />

1 Inicie o KNX no menu principal.


2 No primeiro login, você precisará criar uma nova conexão. Para criar uma<br />

conexão, faça o seguinte:<br />

a Em Login de Cliente <strong>do</strong> KNX, clique em Configurações de Conexão.<br />

b Digite um nome para a conexão; por exemplo, o nome <strong>do</strong> servi<strong>do</strong>r.<br />

c Especifique as informações de host, o número da porta e a largura de banda<br />

da conexão.<br />

d Em Tipo de Sessão, selecione UNIX/KDE para iniciar uma sessão <strong>do</strong> KDE.<br />

e Selecione uma resolução de tela.<br />

f Clique em OK.<br />

3 Depois que você se conectar e a conexão remota aparecer na tela, você poderá<br />

acessar aplicativos e usar o computa<strong>do</strong>r remoto como se estivesse em frente a<br />

ele.<br />

Para conectar-se remotamente a outra máquina que execute o GNOME como sua opção<br />

de desktop, proceda da seguinte maneira:<br />

1 Faça o <strong>do</strong>wnload <strong>do</strong> pacote nxclient <strong>do</strong> NoMachine através de http://www<br />

.nomachine.com/<strong>do</strong>wnload_client_linux.php e instale-o.<br />

2 Inicie o Assistente para Conexão <strong>do</strong> NX no menu principal.<br />

3 Em três etapas, digite o nome da conexão, detalhes da porta e <strong>do</strong> host, e o tipo<br />

de conexão, selecione o tipo de sessão Unix/Gnome, decida se criará um atalho<br />

na área de trabalho e clique em Concluir.<br />

4 Para conectar-se ao desktop remoto, clique no atalho <strong>do</strong> NX na área de trabalho<br />

e informe o nome de usuário e a senha. Em seguida, clique em OK.<br />

A área de trabalho remota aparece na sua tela.<br />

FreeNX: controlan<strong>do</strong> outro computa<strong>do</strong>r remotamente 301


302 Referência<br />

15.2 Configuração avançada <strong>do</strong><br />

FreeNX<br />

As seções a seguir apresentam alguns recursos avança<strong>do</strong>s usa<strong>do</strong>s principalmente em<br />

cenários mais complexos <strong>do</strong> NX.<br />

15.2.1 Configuran<strong>do</strong> a autenticação SSH<br />

com chaves <strong>do</strong> cliente<br />

A autenticação configurada na Seção 15.1, “Noções básicas <strong>do</strong> NX” (p 299) utiliza<br />

apenas credenciais de senha e nome de usuário. Para obter uma autenticação mais<br />

segura, o NX pode ser configura<strong>do</strong> para gerar um par de chaves SSH. A chave <strong>do</strong> cliente<br />

é, então, copiada da máquina servi<strong>do</strong>r para qualquer cliente que possa se conectar ao<br />

servi<strong>do</strong>r NX. Os clientes que não tiverem essa chave não poderão se autenticar no<br />

servi<strong>do</strong>r NX. Esse recurso só tem suporte para a combinação de servi<strong>do</strong>r FreeNX e<br />

cliente knx.<br />

Para configurar o servi<strong>do</strong>r NX para que use esse méto<strong>do</strong> de autenticação e gere o par<br />

de chaves apropriada, proceda da seguinte maneira:<br />

1 Efetue login como Root na máquina servi<strong>do</strong>r.<br />

2 Abra o arquivo de configuração <strong>do</strong> servi<strong>do</strong>r /etc/nxserver/node.conf<br />

e verifique se ENABLE_SSH_AUTHENTICATION está defini<strong>do</strong> como 1 (valor<br />

padrão).<br />

3 Instale o servi<strong>do</strong>r com o seguinte coman<strong>do</strong>:<br />

nxsetup --install --clean --purge<br />

4 Ajuste as permissões de acesso para /var/lib/nxserver/home/.ssh/<br />

authorized_keys2:<br />

chmod 640 /var/lib/nxserver/home/.ssh/authorized_keys2<br />

5 Efetue logout.


Para configurar o knx para usar essa chave, proceda da seguinte maneira:<br />

1 Na máquina servi<strong>do</strong>r, efetue login como Root.<br />

2 Copie o arquivo de chave para o local na máquina cliente necessário ao knx;<br />

substitua cliente pelo endereço <strong>do</strong> cliente.<br />

scp /var/lib/nxserver/home/.ssh/client.id_dsa.key cliente:/usr/share/knx/<br />

3 Efetue login na máquina cliente como Root.<br />

4 Ajuste as permissões de acesso da seguinte maneira:<br />

chmod 644 /usr/share/knx/client.id_dsa.key<br />

5 Efetue logout.<br />

15.2.2 Configuran<strong>do</strong> a autenticação PAM<br />

Por padrão, o FreeNX permite que qualquer usuário abra uma sessão <strong>do</strong> NX, desde que<br />

ele esteja presente no banco de da<strong>do</strong>s de usuários <strong>do</strong> seu servi<strong>do</strong>r (localmente ou por<br />

meio de LDAP, NIS, entre outros). Esse comportamento é alterna<strong>do</strong> pela variável<br />

ENABLE_PAM_AUTHENTICATION em /usr/bin/nxserver na máquina servi<strong>do</strong>r.<br />

O valor padrão aqui é 1. Configurar com o valor 0 desabilita a autenticação <strong>do</strong> usuário<br />

mediada por PAM (PAM_AUTH) para o FreeNX.<br />

Se ENABLE_PAM_AUTHENTICATION for defini<strong>do</strong> como 0, será preciso adicionar<br />

usuários e senhas manualmente. Para adicionar usuários locais <strong>do</strong> NX ao servi<strong>do</strong>r,<br />

proceda da seguinte maneira:<br />

1 Efetue login na máquina servi<strong>do</strong>r como Root.<br />

2 Certifique-se de que os usuários a serem adiciona<strong>do</strong>s existem no banco de da<strong>do</strong>s<br />

de usuários locais <strong>do</strong> sistema. Para isso, verifique o conteú<strong>do</strong> de /etc/passwd<br />

ou use o módulo de gerenciamento de usuários <strong>do</strong> YaST.<br />

3 Inclua o nome de cada usuário adiciona<strong>do</strong> com o coman<strong>do</strong> nxserver<br />

--adduser. Em seguida, adicione a senha <strong>do</strong> usuário com nxserver<br />

--passwd.<br />

FreeNX: controlan<strong>do</strong> outro computa<strong>do</strong>r remotamente 303


304 Referência<br />

4 Reinicie o servi<strong>do</strong>r com nxserver --restart e efetue logout.<br />

15.2.3 Usan<strong>do</strong> arquivos de configuração no<br />

sistema to<strong>do</strong> e específicos <strong>do</strong> usuário<br />

O comportamento <strong>do</strong> servi<strong>do</strong>r FreeNX é controla<strong>do</strong> por meio de /etc/node.conf.<br />

Você pode executar uma configuração global <strong>do</strong> servi<strong>do</strong>r NX ou executar o servi<strong>do</strong>r<br />

com configurações específicas <strong>do</strong> usuário. Isso é importante quan<strong>do</strong> você tem diversos<br />

usuários com o NX em execução em uma máquina com requisitos distintos.<br />

No exemplo a seguir, suponha que o usuário joe queira que o NX seja inicia<strong>do</strong><br />

automaticamente com um certo aplicativo quan<strong>do</strong> ele abrir uma sessão <strong>do</strong> NX. Para<br />

habilitar esse comportamento para apenas esse usuário, proceda da seguinte maneira:<br />

1 Efetue login como Root.<br />

2 Digite o diretório /etc/nxserver:<br />

cd /etc/nxserver<br />

3 Grave uma cópia <strong>do</strong> arquivo de configuração <strong>do</strong> servi<strong>do</strong>r NX (node.conf) em<br />

joe.node.conf no mesmo diretório.<br />

4 Edite os parâmetros apropria<strong>do</strong>s (NODE_AUTOSTART e<br />

ENABLE_AUTORECONNECT) em joe.node.conf. Para obter detalhes sobre<br />

esses recursos, consulte a Seção 15.2.5, “Configuran<strong>do</strong> tarefas de auto-início e<br />

exportan<strong>do</strong> configurações” (p 305) e a Seção 15.2.4, “Suspenden<strong>do</strong> e reinician<strong>do</strong><br />

sessões <strong>do</strong> NX” (p 305).<br />

5 Reinstale o servi<strong>do</strong>r NX para ativar a nova configuração:<br />

nxsetup --install --clean --purge --setup-nomachine-key<br />

A configuração específica <strong>do</strong> usuário substitui a configuração global.<br />

6 Efetue logout.


15.2.4 Suspenden<strong>do</strong> e reinician<strong>do</strong> sessões<br />

<strong>do</strong> NX<br />

Como nas sessões em computa<strong>do</strong>res móveis, é possível configurar o NX para suspender<br />

e reiniciar sessões <strong>do</strong> usuário. Uma sessão suspensa é reaberta no mesmo esta<strong>do</strong> em<br />

que estava ao ser fechada.<br />

Para configurar a suspensão e o reinício de sessões <strong>do</strong> NX, proceda da seguinte maneira:<br />

1 Efetue login como Root.<br />

2 Abra o arquivo de configuração <strong>do</strong> servi<strong>do</strong>r, /etc/nxserver/node.conf,<br />

e edite-o assim:<br />

ENABLE_PASSDB_AUTHENTICATION="0"<br />

ENABLE_USER_DB="0"<br />

ENABLE_AUTORECONNECT="1"<br />

3 Grave o arquivo de configuração, saia e reinicie o servi<strong>do</strong>r com nxserver<br />

--restart.<br />

4 Efetue logout.<br />

Para suspender uma sessão ao sair, clique no X no canto superior direito da janela <strong>do</strong><br />

NX e selecione Suspender para suspender a sessão e sair <strong>do</strong> cliente. Na reconexão, você<br />

deverá informar se deseja reiniciar a sessão antiga ou iniciar uma nova.<br />

15.2.5 Configuran<strong>do</strong> tarefas de auto-início<br />

e exportan<strong>do</strong> configurações<br />

O FreeNX <strong>of</strong>erece a função de auto-início que lhe permite iniciar certas tarefas quan<strong>do</strong><br />

uma sessão <strong>do</strong> NX é iniciada ou reiniciada, desde que o aplicativo subjacente suporte<br />

as propriedades start e resume. Por exemplo, você pode limpar a área de trabalho<br />

automaticamente ou executar outras tarefas de auto-início quan<strong>do</strong> abrir o FreeNX. Esse<br />

recurso é especialmente útil quan<strong>do</strong> você reconecta uma sessão, mesmo em outro cliente<br />

<strong>do</strong> NX (no qual não é possível usar os mecanismos padrão <strong>do</strong> KDE ou GNOME).<br />

Para configurar recursos de auto-início, proceda da seguinte maneira:<br />

FreeNX: controlan<strong>do</strong> outro computa<strong>do</strong>r remotamente 305


306 Referência<br />

1 Efetue login como Root na máquina servi<strong>do</strong>r.<br />

2 Abra o arquivo de configuração <strong>do</strong> servi<strong>do</strong>r /etc/nxserver/node.conf<br />

e edite a variável NODE_AUTOSTART da maneira descrita abaixo, onde<br />

meuprograma deve ser substituí<strong>do</strong> pelo programa a ser executa<strong>do</strong> no início<br />

ou reinício de uma sessão <strong>do</strong> NX:<br />

NODE_AUTOSTART=meuprograma<br />

3 Grave e saia <strong>do</strong> arquivo de configuração.<br />

4 Reinicie o servi<strong>do</strong>r com o coman<strong>do</strong> nxserver --restart e efetue logout.<br />

O programa especifica<strong>do</strong> será inicia<strong>do</strong> toda vez que uma sessão for iniciada ou<br />

reiniciada.<br />

Você também pode exportar as variáveis NX_USERIP e NX_SESSIONID para que<br />

possam ser acessadas no ambiente <strong>do</strong> usuário. Com isso, é possível, por exemplo,<br />

colocar um ícone na área de trabalho com o conteú<strong>do</strong> genérico e acessar um servi<strong>do</strong>r<br />

Samba em execução no thin client <strong>do</strong> usuário. Para que o conteú<strong>do</strong> de um disquete na<br />

unidade de disquete <strong>do</strong> thin client fique à disposição <strong>do</strong> usuário, proceda da seguinte<br />

maneira:<br />

1 Habilite a exportação das variáveis NX_USERIP e NX_SESSIONID no servi<strong>do</strong>r:<br />

a Efetue login como Root no servi<strong>do</strong>r.<br />

b Abra o /etc/nxserver/node.conf de configuração <strong>do</strong> servi<strong>do</strong>r e<br />

defina as seguintes variáveis:<br />

EXPORT_USERIP="1"<br />

EXPORT_SESSIONID="1"<br />

c Grave o arquivo de configuração <strong>do</strong> servi<strong>do</strong>r, saia e reinicie o servi<strong>do</strong>r com<br />

o coman<strong>do</strong> nxserver --restart.<br />

d Efetue logout.<br />

2 No cliente, abra uma sessão, exporte a unidade de disquete através de SMB e<br />

crie um ícone na área de trabalho:


a Use o seu gerencia<strong>do</strong>r de arquivos (Nautilus ou Konqueror) para exportar<br />

o conteú<strong>do</strong> da unidade de disquete com o Samba.<br />

b Crie um arquivo floppy.desktop no diretório Desktop e inclua a<br />

seguinte linha:<br />

Exec=smb://$NX_USERIP/floppy<br />

O servi<strong>do</strong>r exporta o endereço IP <strong>do</strong> thin client, permitin<strong>do</strong> assim que você<br />

tenha acesso à unidade de disquete <strong>do</strong> thin client com o ícone de disquete<br />

na sessão <strong>do</strong> NX.<br />

15.2.6 Crian<strong>do</strong> uma cadeia de servi<strong>do</strong>res NX<br />

Uma cadeia de servi<strong>do</strong>res NX permite que você atravesse firewalls e entenda a máscara<br />

de IP. Um servi<strong>do</strong>r de “gateway” externo pode ser usa<strong>do</strong> para encaminhar conexões de<br />

entrada para um servi<strong>do</strong>r interno, oculto por trás de um firewall (máscara).<br />

Para configurar uma cadeia de servi<strong>do</strong>res NX, proceda da seguinte maneira:<br />

1 Configure o servi<strong>do</strong>r interno como descrito na Seção 15.2.1, “Configuran<strong>do</strong> a<br />

autenticação SSH com chaves <strong>do</strong> cliente” (p 302) e distribua a chave privada <strong>do</strong><br />

servi<strong>do</strong>r (client.id_dsa.key) para /usr/NX/share/ no gateway.<br />

2 No servi<strong>do</strong>r de gateway, proceda da seguinte maneira:<br />

a Efetue login como Root.<br />

b Defina as seguintes variáveis em /etc/nxserver/node.conf e<br />

substitua meuhostinterno pelo endereço IP <strong>do</strong> servi<strong>do</strong>r NX interno:<br />

ENABLE_SERVER_FORWARD="1"<br />

SERVER_FORWARD_HOST="meuhostinterno"<br />

SERVER_FORWARD_KEY="/usr/NX/share/client.id_dsa.key"<br />

c Reinicie o servi<strong>do</strong>r externo para aplicar a configuração alterada com o<br />

coman<strong>do</strong> nxserver --restart e efetue logout.<br />

Toda conexão de entrada será encaminhada ao servi<strong>do</strong>r interno.<br />

FreeNX: controlan<strong>do</strong> outro computa<strong>do</strong>r remotamente 307


308 Referência<br />

15.2.7 Instalan<strong>do</strong> e executan<strong>do</strong> o FreeNX e<br />

o NoMachine no mesmo servi<strong>do</strong>r<br />

É possível instalar e executar o FreeNX e o servi<strong>do</strong>r comercial NX NoMachine na<br />

mesma máquina sem interferência. Para fazer essa implementação no FreeNX,<br />

encaminhe a conexão para o NoMachine instala<strong>do</strong> na mesma máquina.<br />

Para habilitar esse recurso, proceda da seguinte maneira:<br />

1 Efetue login como Root na máquina servi<strong>do</strong>r.<br />

2 Abra o arquivo de configuração <strong>do</strong> servi<strong>do</strong>r para o FreeNX em /etc/<br />

nxserver/node.conf e defina a seguinte variável:<br />

ENABLE_NOMACHINE_FORWARD="1"<br />

3 Grave esse arquivo e reinicie o servi<strong>do</strong>r FreeNX com o coman<strong>do</strong> nserver<br />

--restart.<br />

4 Efetue logout.<br />

Para conectar-se ao servi<strong>do</strong>r NoMachine, use as credenciais padrão de nome de usuário<br />

e senha. Para conectar-se ao servi<strong>do</strong>r FreeNX, use freenx. como prefixo <strong>do</strong> nome<br />

de usuário normal (por exemplo, freenx.joe<strong>do</strong>e) e use a senha normal.<br />

15.3 Solução de problemas<br />

As seções a seguir indicam alguns <strong>do</strong>s problemas mais freqüentes que ocorrem quan<strong>do</strong><br />

se usa o FreeNX e fornecem as possíveis soluções para resolvê-los.<br />

15.3.1 O knx trava ao tentar estabelecer<br />

uma conexão<br />

Você está tentan<strong>do</strong> estabelecer uma conexão com o servi<strong>do</strong>r NX usan<strong>do</strong> o knx. Ao<br />

iniciar a conexão, o knx falha na autenticação <strong>do</strong> usuário e nenhuma sessão remota é<br />

iniciada.


Para determinar por que isso ocorre e como o problema pode ser soluciona<strong>do</strong>, proceda<br />

da seguinte maneira:<br />

1 Verifique se o Novell AppArmor está em execução na máquina servi<strong>do</strong>r e proceda<br />

como descrito na Seção 15.3.2, “Não é possível estabelecer conexão com o<br />

servi<strong>do</strong>r NX” (p 310).<br />

2 Tente restabelecer uma conexão entre o knx e o servi<strong>do</strong>r.<br />

3 Verifique se o firewall <strong>do</strong> cliente permite tráfego SSH. Para isso, inicie o módulo<br />

de firewall <strong>do</strong> YaST e verifique se o SSH está entre os Serviços Permiti<strong>do</strong>s da<br />

Zona Externa. Habilite o SSH caso ele ainda não esteja habilita<strong>do</strong>.<br />

4 No firewall <strong>do</strong> servi<strong>do</strong>r, verifique se o SSH e as portas NX estão relacionadas<br />

na Seção 15.1, “Noções básicas <strong>do</strong> NX” (p 299). Abra essas portas se tiverem<br />

si<strong>do</strong> fechadas.<br />

5 Tente restabelecer uma conexão entre o knx e o servi<strong>do</strong>r.<br />

6 Efetue login no servi<strong>do</strong>r como Root e proceda da seguinte maneira:<br />

a Especifique o diretório /tmp e procure arquivos de bloqueio no servi<strong>do</strong>r<br />

NX:<br />

cd /<br />

ls -ltr .nX*<br />

b Se houver algum desses antigos arquivos de bloqueio, remova-os.<br />

c Efetue logout.<br />

7 Tente restabelecer uma conexão entre o knx e o servi<strong>do</strong>r.<br />

8 Na máquina cliente, apague e reinstale o cliente <strong>do</strong> knx usan<strong>do</strong> o módulo de<br />

gerenciamento de s<strong>of</strong>tware <strong>do</strong> YaST.<br />

Se você seguiu as instruções acima, agora poderá se conectar.<br />

FreeNX: controlan<strong>do</strong> outro computa<strong>do</strong>r remotamente 309


310 Referência<br />

15.3.2 Não é possível estabelecer conexão<br />

com o servi<strong>do</strong>r NX<br />

Depois de iniciar o knx e a conexão, você obterá a seguinte mensagem de erro:<br />

Não foi possível estabelecer conexão com o servi<strong>do</strong>r NX. Tempo de conexão<br />

esgota<strong>do</strong>.<br />

Para determinar a origem desse problema, proceda da seguinte maneira:<br />

1 Efetue login no servi<strong>do</strong>r como Root.<br />

2 Verifique se na saída <strong>do</strong> coman<strong>do</strong> dmesg existe uma entrada como esta:<br />

SubDomain: REJECTING r access to<br />

/var/lib/nxserver/home/.ssh/authorized_keys2 (sshd(31247) pr<strong>of</strong>ile<br />

/usr/sbin/sshd active /usr/sbin/sshd)<br />

Essa entrada indica que o Novell AppArmor em execução no servi<strong>do</strong>r não permite<br />

que o daemon ssh acesse alguns arquivos específicos <strong>do</strong> NX.<br />

3 Interrompa o AppArmor na máquina servi<strong>do</strong>r<br />

ou<br />

Coloque o perfil sshd no mo<strong>do</strong> de aprendiza<strong>do</strong> e adicione permissões ao perfil<br />

existente para ter acesso aos arquivos <strong>do</strong> NX. Essas informações são fornecidas<br />

com mais detalhes no Guia de Administração <strong>do</strong> Novell AppArmor 2.0.<br />

4 Reconecte-se ao servi<strong>do</strong>r.<br />

15.3.3 Autenticação <strong>do</strong> usuário<br />

bem-sucedida, conexão remota não<br />

se estabelece<br />

Depois que você executa o knx e inicia a sessão, o knx autentica o usuário mas, em vez<br />

de uma janela de terminal abrir com uma nova sessão, é exibida uma mensagem de erro<br />

como esta:


Ainda não foi possível estabelecer conexão com o proxy remoto. Deseja encerrar<br />

a sessão?<br />

A conexão falhou porque as portas superiores usadas na negociação da sessão remota<br />

<strong>do</strong> NX não foram abertas no firewall <strong>do</strong> servi<strong>do</strong>r. Para ajustar as configurações <strong>do</strong><br />

firewall no servi<strong>do</strong>r, proceda como descrito na Seção 15.1, “Noções básicas <strong>do</strong> NX”<br />

(p 299).<br />

15.4 Mais informações<br />

Para obter as informações mais recentes sobre o atual pacote <strong>do</strong> FreeNX, consulte o<br />

LEIAME em /usr/share/<strong>do</strong>c/packages/FreeNX/README.<strong>SUSE</strong>. Para obter<br />

informações adicionais sobre o servi<strong>do</strong>r NX, use o coman<strong>do</strong> nxserver --help.<br />

FreeNX: controlan<strong>do</strong> outro computa<strong>do</strong>r remotamente 311


Autenticação com o PAM<br />

O Linux usa o PAM (Pluggable Authentication Modules) no processo de autenticação<br />

como uma camada media<strong>do</strong>ra entre o usuário e o aplicativo. Como os módulos PAM<br />

estão disponíveis em to<strong>do</strong> o sistema, eles podem ser solicita<strong>do</strong>s por qualquer aplicativo.<br />

Este capítulo descreve o funcionamento e a configuração <strong>do</strong> mecanismo de autenticação<br />

modular.<br />

Os programa<strong>do</strong>res e administra<strong>do</strong>res <strong>do</strong> sistema muitas vezes desejam restringir o<br />

acesso a certas partes <strong>do</strong> sistema ou limitar o uso de certas funções de um aplicativo.<br />

Sem o PAM, os aplicativos precisam ser adapta<strong>do</strong>s toda vez que é introduzi<strong>do</strong> um novo<br />

mecanismo de autenticação, como o LDAP ou o SAMBA. Entretanto, esse processo é<br />

bastante demora<strong>do</strong> e propenso a erros. Uma forma de evitar essas desvantagens é separar<br />

os aplicativos <strong>do</strong> mecanismo de autenticação e delegar a autenticação a módulos<br />

gerencia<strong>do</strong>s centralmente. Sempre que um esquema de autenticação passa a ser<br />

necessário, basta adaptar ou gravar um módulo PAM adequa<strong>do</strong> para ser usa<strong>do</strong> pelo<br />

programa em questão.<br />

To<strong>do</strong> programa basea<strong>do</strong> no mecanismo PAM tem um arquivo de configuração próprio<br />

no diretório /etc/pam.d/programname. Esses arquivos definem os módulos PAM<br />

usa<strong>do</strong>s para a autenticação. Além disso, existem arquivos de configuração globais para<br />

a maioria <strong>do</strong>s módulos PAM em /etc/security, que definem o exato<br />

comportamento desses módulos (alguns exemplos são pam_env.conf, pam<br />

_pwcheck.conf, pam_unix2.conf e time.conf). To<strong>do</strong> aplicativo que usa<br />

um módulo PAM na realidade chama um conjunto de funções <strong>do</strong> PAM que, em seguida,<br />

processa as informações nos diversos arquivos de configuração e apresenta o resulta<strong>do</strong><br />

ao aplicativo que chamou.<br />

16<br />

Autenticação com o PAM 313


314 Referência<br />

16.1 Estrutura de um arquivo de<br />

configuração PAM<br />

Cada linha de um arquivo de configuração PAM contém, no máximo, quatro colunas:<br />

<br />

Os módulos PAM são processa<strong>do</strong>s como pilhas. Diferentes tipos de módulos servem<br />

a diferentes objetivos. Por exemplo, um módulo verifica a senha, outro verifica a<br />

localização de onde o sistema está sen<strong>do</strong> acessa<strong>do</strong> e outro lê configurações específicas<br />

ao usuário. O PAM tem conhecimento sobre quatro tipos diferentes de módulos:<br />

autenticação<br />

O objetivo desse tipo de módulo é verificar a autenticidade <strong>do</strong> usuário. Essa<br />

verificação tradicionalmente é feita por meio de uma consulta a senha, mas também<br />

pode ser realizada com a ajuda de um cartão com chip ou de biometria (impressões<br />

digitais ou leitura da íris).<br />

account (conta)<br />

Os módulos desse tipo verificam se o usuário possui uma permissão geral para usar<br />

o serviço solicita<strong>do</strong>. A título de exemplo, essa verificação deve ser realizada para<br />

assegurar que ninguém seja capaz de efetuar o login com o nome de usuário de<br />

uma conta vencida.<br />

password (senha)<br />

O objetivo desse tipo de módulo é permitir a mudança de um token de autenticação.<br />

Na maioria <strong>do</strong>s casos, trata-se de uma senha.<br />

session (sessão)<br />

Os módulos desse tipo são responsáveis pelo gerenciamento e configuração de<br />

sessões de usuários. Eles são inicia<strong>do</strong>s antes e depois da autenticação para registrar<br />

tentativas de login em registros <strong>do</strong> sistema e para configurar o ambiente específico<br />

<strong>do</strong> usuário (contas de e-mail, diretório pessoal, limites <strong>do</strong> sistema etc.).<br />

A segunda coluna contém flags de controle para influenciar o comportamento <strong>do</strong>s<br />

módulos inicia<strong>do</strong>s:<br />

required (obrigatório)<br />

Um módulo com esse flag precisa ser processa<strong>do</strong> com êxito para que a autenticação<br />

possa prosseguir. Após a falha de um módulo com o flag required (obrigatório),


to<strong>do</strong>s os outros módulos com o mesmo flag serão processa<strong>do</strong>s antes que o usuário<br />

receba uma mensagem sobre a falha da tentativa de autenticação.<br />

requisite (necessário)<br />

Os módulos com esse flag também precisam ser processa<strong>do</strong>s com êxito, de mo<strong>do</strong><br />

bastante semelhante ao módulo com o flag required (obrigatório). Contu<strong>do</strong>, em<br />

caso de falha, um módulo com esse flag dá um retorno imediato ao usuário e os<br />

módulos restantes deixam de ser processa<strong>do</strong>s. Em caso de êxito, os outros módulos<br />

são processa<strong>do</strong>s, exatamente como qualquer módulo com o flag required<br />

(obrigatório). O flag requisite (necessário) pode ser usa<strong>do</strong> como um filtro<br />

básico para verificar a existência de determinadas condições essenciais para a<br />

correta autenticação.<br />

sufficient (suficiente)<br />

Após o processamento com êxito de um módulo com esse flag, o aplicativo que<br />

chamou recebe imediatamente uma mensagem sobre o êxito e o processamento<br />

<strong>do</strong>s módulos é interrompi<strong>do</strong>, exceto quan<strong>do</strong> houver falhas anteriores em um módulo<br />

com o flag required (obrigatório). A falha de um módulo com o flag<br />

sufficient (suficiente) não traz conseqüências diretas, com os módulos<br />

subseqüentes sen<strong>do</strong> processa<strong>do</strong>s na sua respectiva ordem.<br />

optional (opcional)<br />

A falha ou êxito de um módulo com esse flag não traz conseqüências diretas. Isso<br />

pode ser útil no caso de módulos cujo único propósito é exibir uma mensagem (por<br />

exemplo, informar ao usuário sobre a chegada de e-mails) sem executar nenhuma<br />

ação adicional.<br />

include (incluir)<br />

Quan<strong>do</strong> esse flag é da<strong>do</strong>, o arquivo especifica<strong>do</strong> como argumento é inseri<strong>do</strong> nesse<br />

lugar.<br />

O caminho <strong>do</strong> módulo não precisa ser explicita<strong>do</strong>, contanto que o módulo fique<br />

localiza<strong>do</strong> no diretório padrão /lib/security (para todas as plataformas de 64 bits<br />

suportadas pelo <strong>SUSE</strong> Linux, o diretório é /lib64/security). A quarta coluna<br />

pode conter uma opção para o módulo específico, como debug (permite a depuração)<br />

ou nullok (permite o uso de senhas vazias).<br />

Autenticação com o PAM 315


316 Referência<br />

16.2 A configuração PAM <strong>do</strong> sshd<br />

Para demonstrar o funcionamento da teoria <strong>do</strong> PAM, considere a configuração PAM<br />

<strong>do</strong> sshd como um exemplo prático:<br />

Exemplo 16.1 Configuração PAM <strong>do</strong> sshd<br />

#%PAM-1.0<br />

auth include common-auth<br />

auth required pam_nologin.so<br />

account include common-account<br />

password include common-password<br />

session include common-session<br />

# Habilitar a seguinte linha para obter suporte de resmgr para<br />

# sessões ssh (consulte /usr/share/<strong>do</strong>c/packages/resmgr/README.SuSE)<br />

#session optional pam_resmgr.so fake_ttyname<br />

A configuração PAM típica de um aplicativo (sshd, nesse caso) contém quatro instruções<br />

include (incluir) referentes aos arquivos de configuração de quatro tipos de módulo:<br />

common-auth, common-account, common-password e common-session.<br />

Esses quatro arquivos abrigam a configuração padrão de cada tipo de módulo. Ao incluílos<br />

em vez de chamar cada módulo separadamente para cada aplicativo <strong>do</strong> PAM, será<br />

possível obter automaticamente uma configuração PAM atualizada se o administra<strong>do</strong>r<br />

mudar os padrões. Antigamente, era necessário fazer o ajuste manual de to<strong>do</strong>s os<br />

arquivos de configuração para to<strong>do</strong>s os aplicativos quan<strong>do</strong> ocorriam mudanças no PAM<br />

ou quan<strong>do</strong> um novo aplicativo era instala<strong>do</strong>. Agora, a configuração PAM é feita com<br />

arquivos de configuração centrais e todas as mudanças são automaticamente herdadas<br />

pela configuração PAM de cada serviço.<br />

O primeiro arquivo incluí<strong>do</strong> (common-auth) chama <strong>do</strong>is módulos <strong>do</strong> tipo auth<br />

(autenticação): pam_env e pam_unix2. Consulte o Exemplo 16.2, “Configuração<br />

padrão da seção auth (autenticação)” (p 316).<br />

Exemplo 16.2 Configuração padrão da seção auth (autenticação)<br />

auth required pam_env.so<br />

auth required pam_unix2.so<br />

O primeiro, pam_env, carrega o arquivo /etc/security/pam_env.conf para<br />

definir as variáveis de ambiente conforme especifica<strong>do</strong> nesse arquivo. Esse módulo<br />

pode ser usa<strong>do</strong> para definir o valor correto da variável DISPLAY, pois o módulo pam<br />

_env tem conhecimento <strong>do</strong> local de onde o login está sen<strong>do</strong> feito. O segun<strong>do</strong>, pam<br />

_unix2, compara o login e a senha <strong>do</strong> usuário a /etc/passwd e /etc/sha<strong>do</strong>w.


Depois da chamada com êxito <strong>do</strong>s módulos especifica<strong>do</strong>s em common-auth, um<br />

terceiro módulo chama<strong>do</strong> pam_nologin verifica se o arquivo /etc/nologin<br />

existe. Em caso afirmativo, somente o usuário root poderá efetuar o login. A pilha<br />

inteira de módulos auth (autenticação) é processada antes que o sshd receba qualquer<br />

retorno sobre o êxito <strong>do</strong> login. Ten<strong>do</strong> em vista que to<strong>do</strong>s os módulos da pilha apresentam<br />

o flag de controle required (obrigatório), to<strong>do</strong>s precisam ser processa<strong>do</strong>s com êxito<br />

antes que o sshd receba uma mensagem sobre o resulta<strong>do</strong> positivo. Se algum <strong>do</strong>s módulos<br />

falhar, a pilha de módulos inteira ainda será processada e somente aí é que o sshd será<br />

notifica<strong>do</strong> sobre o resulta<strong>do</strong> negativo.<br />

Logo após o processamento com êxito de to<strong>do</strong>s os módulos <strong>do</strong> tipo auth (autenticação),<br />

outra instrução include (incluir) é processada. Nesse caso, a que está no Exemplo 16.3,<br />

“Configuração padrão da seção account (conta)” (p 317). O common-account<br />

contém apenas um módulo, o pam_unix2. Se o pam_unix2 retornar o resulta<strong>do</strong> de<br />

que o usuário existe, o sshd receberá uma mensagem de êxito e a próxima pilha de<br />

módulos (password - senha) será processada, conforme mostra<strong>do</strong> no Exemplo 16.4,<br />

“Configuração padrão da seção password (senha)” (p 317).<br />

Exemplo 16.3 Configuração padrão da seção account (conta)<br />

account required pam_unix2.so<br />

Exemplo 16.4 Configuração padrão da seção password (senha)<br />

password required pam_pwcheck.so nullok<br />

password required pam_unix2.so nullok use_first_pass use_authtok<br />

#password required pam_make.so /var/yp<br />

Mais uma vez, a configuração PAM <strong>do</strong> sshd envolve apenas uma instrução include<br />

(incluir) referente à configuração padrão <strong>do</strong>s módulos password (senha) localiza<strong>do</strong>s<br />

em common-password. Esses módulos precisam ser concluí<strong>do</strong>s com êxito (flag de<br />

controle required - obrigatório) sempre que o aplicativo solicita a mudança de um<br />

token de autenticação. A mudança de uma senha ou de outro token de autenticação<br />

requer uma verificação de segurança. Essa ação é possibilitada pelo módulo pam<br />

_pwcheck. O módulo pam_unix2 usa<strong>do</strong> posteriormente vem com quaisquer senhas<br />

antigas e novas <strong>do</strong> módulo pam_pwcheck, de mo<strong>do</strong> que o usuário não precise<br />

autenticar novamente. Isso também torna impossível driblar as verificações realizadas<br />

pelo pam_pwcheck. Os módulos <strong>do</strong> tipo password (senha) devem ser usa<strong>do</strong>s sempre<br />

que os módulos precedentes <strong>do</strong> tipo account (conta) ou auth (autenticação) são<br />

configura<strong>do</strong>s para fazer uma queixa sobre uma senha vencida.<br />

Autenticação com o PAM 317


318 Referência<br />

Exemplo 16.5 Configuração padrão da seção session (sessão)<br />

session required pam_limits.so<br />

session required pam_unix2.so<br />

Na etapa final, os módulos <strong>do</strong> tipo session (sessão), integra<strong>do</strong>s no arquivo<br />

common-session, são chama<strong>do</strong>s para configurar a sessão de acor<strong>do</strong> com as<br />

configurações <strong>do</strong> usuário em questão. Embora o pam_unix2 seja processa<strong>do</strong><br />

novamente, não há conseqüências práticas devi<strong>do</strong> à opção none (nenhum) especificada<br />

no respectivo arquivo de configuração desse módulo, o pam_unix2.conf. O módulo<br />

pam_limits carrega o arquivo /etc/security/limits.conf, que pode definir<br />

limites sobre o uso de certos recursos <strong>do</strong> sistema. Os módulos session (sessão) são<br />

chama<strong>do</strong>s uma segunda vez quan<strong>do</strong> o usuário efetua logout.<br />

16.3 Configuração de módulos PAM<br />

Alguns <strong>do</strong>s módulos PAM são configuráveis. Os arquivos de configuração<br />

correspondentes estão localiza<strong>do</strong>s em /etc/security. Essa seção apresenta uma<br />

breve descrição <strong>do</strong>s arquivos de configuração relevantes para o exemplo <strong>do</strong> sshd: pam<br />

_unix2.conf, pam_env.conf, pam_pwcheck.conf e limits.conf.<br />

16.3.1 pam_unix2.conf<br />

O méto<strong>do</strong> tradicional de autenticação baseada em senha é controla<strong>do</strong> pelo módulo PAM<br />

pam_unix2. Ele consegue ler os da<strong>do</strong>s necessários de /etc/passwd, /etc/<br />

sha<strong>do</strong>w, mapas NIS, tabelas NIS+ ou um banco de da<strong>do</strong>s LDAP. Para influenciar o<br />

comportamento desse módulo, configure as opções de PAM <strong>do</strong> aplicativo em si ou<br />

efetue uma mudança global editan<strong>do</strong> /etc/security/pam_unix2.conf. Um<br />

arquivo de configuração <strong>do</strong> módulo bastante básico é mostra<strong>do</strong> no Exemplo 16.6,<br />

“pam_unix2.conf” (p 318).<br />

Exemplo 16.6 pam_unix2.conf<br />

auth: nullok<br />

account:<br />

password: nullok<br />

session: none<br />

A opção nullok para os tipos de módulo auth (autenticação) e password (senha)<br />

especifica que senhas vazias são permitidas para o tipo de conta correspondente. Os


usuários também têm permissão para mudar as senhas de suas contas. A opção none<br />

(nenhum) <strong>do</strong> tipo de módulo session (sessão) especifica que nenhuma mensagem<br />

foi registrada em seu nome (esse é o padrão). Obtenha mais informações sobre opções<br />

adicionais de configuração nos comentários <strong>do</strong> próprio arquivo e na página pam_unix2(8)<br />

<strong>do</strong> manual.<br />

16.3.2 pam_env.conf<br />

Esse arquivo pode ser usa<strong>do</strong> para definir um ambiente padroniza<strong>do</strong> para os usuários<br />

que será defini<strong>do</strong> sempre que o módulo pam_env for chama<strong>do</strong>. Com ele, predefina<br />

variáveis de ambiente usan<strong>do</strong> a seguinte sintaxe:<br />

VARIÁVEL [DEFAULT=[valor]] [OVERRIDE=[valor]]<br />

VARIÁVEL<br />

Nome da variável de ambiente a ser definida.<br />

[DEFAULT=[valor]]<br />

Valor padrão que o administra<strong>do</strong>r deseja definir.<br />

[OVERRIDE=[valor]]<br />

Os valores que podem ser usa<strong>do</strong>s para consulta e defini<strong>do</strong>s por pam_env,<br />

substituin<strong>do</strong> o valor padrão.<br />

Um exemplo típico de como o módulo pam_env pode ser usa<strong>do</strong> é a adaptação da<br />

variável DISPLAY, que é mudada sempre que ocorre um login remoto. Você pode ver<br />

isso no Exemplo 16.7, “pam_env.conf” (p 319).<br />

Exemplo 16.7 pam_env.conf<br />

REMOTEHOST DEFAULT=localhost OVERRIDE=@{PAM_RHOST}<br />

DISPLAY DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}<br />

A primeira linha define o valor da variável REMOTEHOST para o localhost, que é<br />

usada sempre que pam_env não puder determinar qualquer outro valor. A variável<br />

DISPLAY, por sua vez, contém o valor de REMOTEHOST. Mais informações podem<br />

ser encontradas nos comentários <strong>do</strong> arquivo /etc/security/pam_env.conf.<br />

Autenticação com o PAM 319


320 Referência<br />

16.3.3 pam_pwcheck.conf<br />

Esse arquivo de configuração se destina ao módulo pam_pwcheck, que lê opções<br />

dele para to<strong>do</strong>s os módulos <strong>do</strong> tipo password (senha). As configurações armazenadas<br />

nesse arquivo têm prioridade sobre as configurações PAM de um aplicativo individual.<br />

Se configurações específicas a um aplicativo não tiverem si<strong>do</strong> definidas, o aplicativo<br />

usará as configurações globais. Exemplo 16.8, “pam_pwcheck.conf” (p 320) instrui o<br />

módulo pam_pwcheck a permitir senhas vazias e a modificação de senhas. Mais<br />

opções para o módulo são citadas no arquivo /etc/security/pam_pwcheck<br />

.conf.<br />

Exemplo 16.8 pam_pwcheck.conf<br />

password: nullok<br />

16.3.4 limits.conf<br />

Os limites <strong>do</strong> sistema podem ser defini<strong>do</strong>s para um usuário ou para um grupo no arquivo<br />

limits.conf, que é li<strong>do</strong> pelo módulo pam_limits. O arquivo permite a definição<br />

de limites fixos, que não podem ser excedi<strong>do</strong>s em hipótese alguma, e limites flexíveis,<br />

que podem ser excedi<strong>do</strong>s temporariamente. Para obter informações sobre a sintaxe e<br />

as opções disponíveis, leia os comentários conti<strong>do</strong>s no arquivo.<br />

16.4 Mais informações<br />

No diretório /usr/share/<strong>do</strong>c/packages/pam <strong>do</strong> sistema instala<strong>do</strong>, você encontra<br />

a seguinte <strong>do</strong>cumentação adicional:<br />

READMEs<br />

No nível superior desse diretório, há alguns arquivos README gerais. O<br />

subdiretório modules abriga arquivos README sobre os módulos PAM<br />

disponíveis.<br />

The Linux-PAM System Administrators' Guide (Guia <strong>do</strong> Administra<strong>do</strong>r <strong>do</strong> Sistema<br />

Linux-PAM)<br />

Esse <strong>do</strong>cumento contém todas as informações que o administra<strong>do</strong>r <strong>do</strong> sistema deve<br />

saber sobre o PAM. Ele aborda uma variedade de tópicos, desde a sintaxe <strong>do</strong>s


arquivos de configuração até os aspectos de segurança <strong>do</strong> PAM. O <strong>do</strong>cumento está<br />

disponível em formato PDF, HTML e como texto simples.<br />

The Linux-PAM Module Writers' Manual (Manual <strong>do</strong> Elabora<strong>do</strong>r de Módulos Linux-<br />

PAM)<br />

Esse <strong>do</strong>cumento sintetiza esse tópico <strong>do</strong> ponto de vista <strong>do</strong> desenvolve<strong>do</strong>r, com<br />

informações sobre como elaborar módulos PAM em conformidade com os padrões.<br />

O <strong>do</strong>cumento está disponível em formato PDF, HTML e como texto simples.<br />

The Linux-PAM Application Developers' Guide (Guia <strong>do</strong> Desenvolve<strong>do</strong>r de Aplicativos<br />

Linux-PAM)<br />

Esse <strong>do</strong>cumento contém todas as informações necessárias a um desenvolve<strong>do</strong>r de<br />

aplicativos que queira usar as bibliotecas PAM. O <strong>do</strong>cumento está disponível em<br />

formato PDF, HTML e como texto simples.<br />

Thorsten Kukuk desenvolveu uma série de módulos PAM para o <strong>SUSE</strong> Linux e<br />

disponibilizou algumas informações a esse respeito em http://www.suse.de/<br />

~kukuk/pam/.<br />

Autenticação com o PAM 321


Virtualização com o Xen<br />

O Xen torna possível executar vários sistemas Linux em uma máquina física. O hardware<br />

para os sistemas diferentes é forneci<strong>do</strong> virtualmente. Este capítulo fornece uma visão<br />

geral das possibilidades e limitações desta tecnologia. As seções sobre instalação,<br />

configuração e execução <strong>do</strong> Xen completam essa introdução.<br />

Máquinas virtuais comumente precisam emular o hardware que o sistema precisa. A<br />

desvantagem é que o hardware emula<strong>do</strong> é mais lento <strong>do</strong> que o silício real. O Xen tem<br />

uma abordagem diferente. Ele restringe a emulação para o mínimo de partes possível.<br />

Para obter isso, o Xen usa a paravirtualização. Esta é uma técnica que apresenta<br />

máquinas virtuais similarmente, mas não identicamente ao hardware subjacente. Portanto,<br />

os sistemas operacionais de host e convida<strong>do</strong>s estão adapta<strong>do</strong>s no nível <strong>do</strong> kernel. O<br />

espaço <strong>do</strong> usuário permanece inaltera<strong>do</strong>. O Xen controla o hardware com um hypervisor<br />

e um convida<strong>do</strong> de controle, também chama<strong>do</strong> Domain-0. Eles fornecem to<strong>do</strong>s os<br />

dispositivos de rede e blocos virtualiza<strong>do</strong>s necessários. Os sistemas convida<strong>do</strong>s usam<br />

esses dispositivos de rede e blocos virtuais para executar o sistema e conectar-se a<br />

outros convida<strong>do</strong>s ou à rede local. Quan<strong>do</strong> várias máquinas físicas executan<strong>do</strong> o Xen<br />

são configuradas de forma que os dispositivos e rede e os blocos virtuais estejam<br />

disponíveis, também é possível migrar um sistema convida<strong>do</strong> de um equipamento de<br />

hardware para outro enquanto ele está em execução. Originalmente o Xen foi<br />

desenvolvi<strong>do</strong> para executar até 100 sistemas convida<strong>do</strong>s em um computa<strong>do</strong>r, mas esse<br />

número depende bastante <strong>do</strong>s requisitos de sistema <strong>do</strong>s sistemas convida<strong>do</strong>s em<br />

execução, especialmente o consumo de memória.<br />

Para limitar o uso de CPU, o hypervisor <strong>do</strong> Xen <strong>of</strong>erece três programa<strong>do</strong>res diferentes.<br />

O programa<strong>do</strong>r também pode ser muda<strong>do</strong> durante a execução <strong>do</strong> sistema convida<strong>do</strong>,<br />

tornan<strong>do</strong> possível mudar a prioridade da execução <strong>do</strong> sistema convida<strong>do</strong>. Em um nível<br />

17<br />

Virtualização com o Xen 323


324 Referência<br />

mais alto, migrar um convida<strong>do</strong> também pode ser usa<strong>do</strong> para ajustar a energia <strong>do</strong> CPU<br />

disponível.<br />

O sistema de virtualização <strong>do</strong> Xen também tem algumas desvantagens relativas ao<br />

hardware suporta<strong>do</strong>. Vários drivers de código-fonte fecha<strong>do</strong>, como os da Nvidia ou<br />

ATI, não funcionam como espera<strong>do</strong>. Nesses casos, você deve usar os drivers de códig<strong>of</strong>onte<br />

aberto se disponíveis, mesmo que eles não suportem as capacidades totais <strong>do</strong>s<br />

chips. Além disso, vários chips de WLAN e pontes Cardbus não são suporta<strong>do</strong>s durante<br />

o uso <strong>do</strong> Xen. Na versão 2, o Xen não suporta PAE (extensão de endereço físico),<br />

significan<strong>do</strong> que ele não suporta mais <strong>do</strong> que 4 GB de memória. A ACPI não é suportada.<br />

O gerenciamento de energia e outros mo<strong>do</strong>s que dependem da ACPI não funcionam.<br />

Outra limitação <strong>do</strong> Xen é que atualmente não é possível somente inicializar um<br />

dispositivo de bloco. Para inicializar, é sempre necessário ter o kernel correto e o initrd<br />

disponível no Domain-0.<br />

Figura 17.1 Visão geral <strong>do</strong> Xen<br />

Management<br />

Application<br />

Management<br />

Host OS<br />

userspace<br />

applications<br />

Linux Kernel<br />

(paravirtualized)<br />

Physical<br />

Device<br />

Drivers<br />

IO<br />

Xen<br />

Service<br />

Guest OS<br />

userspace<br />

applications<br />

Linux Kernel<br />

(paravirtualized)<br />

virt.<br />

Console<br />

virt.<br />

CPU<br />

virt.<br />

Memory<br />

Service<br />

Guest OS<br />

userspace<br />

applications<br />

NetWare Kernel<br />

(paravirtualized)<br />

virt.<br />

Network<br />

IO CPU Memory<br />

Physical Hardware (CPU, Memory, Network, Block Devices)<br />

virt.<br />

Blockdev


17.1 Instalação <strong>do</strong> Xen<br />

O procedimento de instalação <strong>do</strong> Xen envolve a configuração de um <strong>do</strong>mínio Domain-<br />

0 e a instalação de convida<strong>do</strong>s <strong>do</strong> Xen. Primeiro, verifique se os pacotes necessários<br />

estão instala<strong>do</strong>s. Esses são python, bridge-utils, xen, xen-tools,<br />

xen-tools-ioemu e um pacote kernel-xen. Ao selecionar o Xen durante a<br />

instalação, ele é adiciona<strong>do</strong> à configuração <strong>do</strong> GRUB. Para outros casos, digite uma<br />

entrada em boot/grub/menu.lst. Essa entrada deve ser similar ao seguinte:<br />

title Xen3<br />

kernel (hd0,0)/boot/xen.gz<br />

module (hd0,0)/boot/vmlinuz-xen <br />

module (hd0,0)/boot/initrd-xen<br />

Substitua (hd0,0) pela partição que mantém o seu diretório /boot. Consulte também<br />

o Capítulo 9, O Carrega<strong>do</strong>r de Boot (p 201). Substitua pelos parâmetros<br />

normalmente usa<strong>do</strong>s para inicializar um kernel <strong>do</strong> Linux. Em seguida, reinicialize no<br />

mo<strong>do</strong> Xen. Isso inicializa o hypervisor <strong>do</strong> Xen e um kernel <strong>do</strong> Linux levemente<br />

modifica<strong>do</strong> como Domain-0 que executa a maioria <strong>do</strong> hardware. Além das exceções<br />

já mencionadas, tu<strong>do</strong> deve funcionar normalmente.<br />

17.2 Instalação <strong>do</strong> <strong>do</strong>mínio<br />

Cada <strong>do</strong>mínio convida<strong>do</strong> deve ser instala<strong>do</strong> individualmente. Para isso, execute o Virtual<br />

Machine Installation (Xen) <strong>do</strong> módulo YaST no grupo S<strong>of</strong>tware. Na interface seguinte,<br />

forneça todas as informações necessárias para executar o instala<strong>do</strong>r. Essas informações<br />

estão divididas em quatro categorias:<br />

Opções<br />

Aqui, defina o nome <strong>do</strong> <strong>do</strong>mínio convida<strong>do</strong>, o seu recurso de memória e opções<br />

de inicialização para o instala<strong>do</strong>r.<br />

Discos<br />

Escolha para criar uma imagem de sistema de arquivos ou uma partição física real.<br />

As imagens <strong>do</strong> sistema de arquivos são armazenadas no diretório /var/lib/<br />

xen/images. Verifique se você tem espaço suficiente em disco neste diretório.<br />

Virtualização com o Xen 325


326 Referência<br />

Sistema operacional<br />

O sistema operacional que deve ser usa<strong>do</strong> para instalar o <strong>do</strong>mínio convida<strong>do</strong>. Esse<br />

sistema é seleciona<strong>do</strong> na Fonte de Instalação <strong>do</strong> módulo YaST e não pode ser<br />

defini<strong>do</strong> nesse fluxo de trabalho.<br />

Rede<br />

Somente a rede em pontes é suportada por esse módulo. Adicione o número de<br />

placas de rede virtuais necessárias.<br />

A caixa de diálogo seguinte inicia o sistema de instalação após executar várias tarefas<br />

de configuração. Esse sistema é idêntico a uma instalação padrão no mo<strong>do</strong> de texto<br />

conforme descrito na Seção “YaST em mo<strong>do</strong> de texto” (Capítulo 2, Configuração <strong>do</strong><br />

sistema com YaST, ↑Inicialização).<br />

Se você precisar mudar a configuração de um <strong>do</strong>mínio convida<strong>do</strong>, deve fazer isso<br />

diretamente no arquivo de configuração. Esse arquivo está localiza<strong>do</strong> em /etc/xen<br />

e tem um nome idêntico ao nome <strong>do</strong> <strong>do</strong>mínio convida<strong>do</strong>.<br />

17.3 Inician<strong>do</strong> e controlan<strong>do</strong><br />

<strong>do</strong>mínios <strong>do</strong> Xen com xm<br />

O Xen reduz automaticamente a quantidade de memória <strong>do</strong> Domain-0 para atender aos<br />

requisitos <strong>do</strong> <strong>do</strong>mínio convida<strong>do</strong> recém-inicia<strong>do</strong>. Se não houver memória suficiente<br />

disponível, o convida<strong>do</strong> não será inicia<strong>do</strong>. Você sempre pode verificar a memória<br />

disponível <strong>do</strong> Domain-0 com o coman<strong>do</strong> free.<br />

Sempre é possível destacar um console ou reconectá-lo de outro terminal. Para destacálo,<br />

use Ctrl + ] . Para reconectá-lo, primeiro verifique o ID <strong>do</strong> convida<strong>do</strong> necessário<br />

com xm list e conecte-o ao ID com xm console ID.<br />

A ferramenta xm <strong>do</strong> Xen tem vários parâmetros possíveis. Exiba uma lista com uma<br />

explicação curta digitan<strong>do</strong> xm help. A Tabela 17.1, “Coman<strong>do</strong>s xm” (p 326) fornece<br />

alguns <strong>do</strong>s coman<strong>do</strong>s mais importantes como ponto de início.<br />

Tabela 17.1 Coman<strong>do</strong>s xm<br />

xm help<br />

Imprima uma lista de coman<strong>do</strong>s disponíveis para a<br />

ferramenta xm.


xm console ID<br />

xm mem-set ID Mem<br />

xm create <strong>do</strong>mname<br />

[-c]<br />

xm shut<strong>do</strong>wn ID<br />

xm destroy ID<br />

xm list<br />

xm info<br />

Conecte ao primeiro console (tty1) <strong>do</strong> convida<strong>do</strong> com o<br />

ID ID.<br />

Defina o tamanho da memória <strong>do</strong> <strong>do</strong>mínio com o ID ID<br />

para Mem em MB.<br />

Inicie o <strong>do</strong>mínio com o arquivo de configuração<br />

<strong>do</strong>mname. O -c opcional vincula o terminal atual ao<br />

primeiro tty <strong>do</strong> novo convida<strong>do</strong>.<br />

Realize um encerramento normal <strong>do</strong> convida<strong>do</strong> com o<br />

ID ID.<br />

Termine o convida<strong>do</strong> com ID ID imediatamente.<br />

Imprima uma lista de to<strong>do</strong>s os <strong>do</strong>mínios em execução<br />

com o ID respectivo, a memória e os valores de tempo<br />

de CPU.<br />

Exiba informações sobre o host <strong>do</strong> Xen, incluin<strong>do</strong><br />

informações de memória e CPU.<br />

17.4 Solução de problemas<br />

Esta seção fornece algumas dicas sobre como resolver problemas comuns. Ela não visa<br />

ser uma instrução passo a passo completa, mas deve ajudar a resolver alguns problemas.<br />

Existem problemas de rede no Xen3.<br />

O conceito de rede mu<strong>do</strong>u consideravelmente de Xen2 para Xen3. O Domain-0<br />

não está mais conecta<strong>do</strong> à ponte para evitar o bloqueio da mesma. Infelizmente,<br />

os scripts de inicialização <strong>do</strong> sistema não podem tratar da configuração atual. Para<br />

reiniciar a rede, execute /etc/init.d/xend restart.<br />

Preciso executar uma verificação <strong>do</strong> sistema de arquivos.<br />

Se a verificação <strong>do</strong> sistema de arquivos não funcionar automaticamente, você talvez<br />

precise fazer isso manualmente <strong>do</strong> Domain-0. Desligue o convida<strong>do</strong> e execute<br />

fsck na imagem enquanto ele não está monta<strong>do</strong>. Se fsck reclamar que o sistema<br />

de arquivos está monta<strong>do</strong>, verifique as montagens com o coman<strong>do</strong> mount.<br />

Virtualização com o Xen 327


328 Referência<br />

O DHCP não obtém os endereços IP.<br />

O DHCP precisa de vários módulos de kernel iptables para ser executa<strong>do</strong>. Os<br />

módulos não foram instala<strong>do</strong>s ou você atualizou o kernel e esqueceu de atualizar<br />

os módulos de kernel no sistema convida<strong>do</strong>.<br />

Há um problema na inicialização <strong>do</strong> hypervisor e as mensagens desaparecem com muita<br />

rapidez<br />

Conecte a sua máquina Xen a outra estação de trabalho com um cabo nullmodem<br />

serial. Em seguida, no la<strong>do</strong> <strong>do</strong> Xen, adicione o seguinte parâmetro à linha<br />

kernel (hd0,0)/boot/xen.gz com1=115200,8n1<br />

Antes de inicializar o Xen, inicie um programa de terminal na estação de trabalho.<br />

Como um exemplo, isso pode ser<br />

screen /dev/ttyS0 115200<br />

Mude o dispositivo e a velocidade de acor<strong>do</strong> com suas necessidades.<br />

17.5 Mais informações<br />

Mais informações sobre o Xen podem ser encontradas nos seguintes sites:<br />

• /usr/share/<strong>do</strong>c/packages/xen/user/html/index<br />

.html—Informações <strong>of</strong>iciais para usuários <strong>do</strong> Xen Exige o pacote<br />

xen-<strong>do</strong>c-html.<br />

• /usr/share/<strong>do</strong>c/packages/xen/interface/html/index<br />

.html—Mais <strong>do</strong>cumentação técnica de interface. Também exige o pacote<br />

xen-<strong>do</strong>c-html.<br />

• http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index<br />

.html—Home page <strong>do</strong> Xen com vários links de <strong>do</strong>cumentação diferentes.<br />

• http://lists.xensource.com/—Várias listas de discussão sobre o Xen.<br />

• http://wiki.xensource.com/xenwiki—Xen wiki para a comunidade<br />

de código aberto.


Parte 4. Serviços


Rede básica<br />

O Linux <strong>of</strong>erece os recursos e as ferramentas de rede necessários para a integração em<br />

to<strong>do</strong>s os tipos de estruturas de rede. O protocolo Linux comum, TCP/IP, possui vários<br />

serviços e recursos especiais aborda<strong>do</strong>s aqui. O acesso à rede através de placa de rede,<br />

modem ou outro dispositivo pode ser configura<strong>do</strong> com o YaST. A configuração também<br />

pode ser feita manualmente. Somente os mecanismos fundamentais e os arquivos de<br />

configuração de rede relevantes serão discuti<strong>do</strong>s neste capítulo.<br />

Linux e outros sistemas operacionais Unix usam o protocolo TCP/IP. Não é um protocolo<br />

de rede único, mas uma família de protocolos de rede que <strong>of</strong>erece vários serviços. Os<br />

protocolos lista<strong>do</strong>s na Tabela 18.1, “Vários protocolos na família de protocolos TCP/IP”<br />

(p 332) são forneci<strong>do</strong>s com a finalidade de trocar da<strong>do</strong>s entre duas máquinas através <strong>do</strong><br />

TCP/IP. As redes combinadas por TCP/IP compõem uma rede mundial também chamada<br />

de “Internet.”<br />

RFC significa Request for Comments. Os RFCs são <strong>do</strong>cumentos que descrevem vários<br />

procedimentos de implementação e protocolos da Internet para o sistema operacional<br />

e seus aplicativos. Os <strong>do</strong>cumentos RFC descrevem a configuração <strong>do</strong>s protocolos da<br />

Internet. Para ampliar seu conhecimento sobre qualquer <strong>do</strong>s protocolos, consulte os<br />

<strong>do</strong>cumentos de RFC apropria<strong>do</strong>s. Eles estão disponíveis online em http://www<br />

.ietf.org/rfc.html.<br />

18<br />

Rede básica 331


Tabela 18.1 Vários protocolos na família de protocolos TCP/IP<br />

Protocolo<br />

TCP<br />

UDP<br />

ICMP<br />

IGMP<br />

332 Referência<br />

Descrição<br />

Protocolo de controle de transmissão: um protocolo seguro orienta<strong>do</strong><br />

por conexão. Os da<strong>do</strong>s a serem transmiti<strong>do</strong>s são primeiramente envia<strong>do</strong>s<br />

pelo aplicativo como um fluxo de da<strong>do</strong>s. Depois, são converti<strong>do</strong>s pelo<br />

sistema operacional no formato apropria<strong>do</strong>. Os da<strong>do</strong>s chegam ao<br />

respectivo aplicativo no host de destino no formato <strong>do</strong> fluxo de da<strong>do</strong>s<br />

original no qual foram inicialmente envia<strong>do</strong>s. O TCP determina se<br />

algum da<strong>do</strong> foi perdi<strong>do</strong> durante a transmissão e se não foram mistura<strong>do</strong>s.<br />

O TCP é implementa<strong>do</strong> onde a seqüência de da<strong>do</strong>s for necessária.<br />

UDP: um protocolo inseguro, sem conexão. Os da<strong>do</strong>s a serem<br />

transmiti<strong>do</strong>s são envia<strong>do</strong>s na forma de pacotes gera<strong>do</strong>s pelo aplicativo.<br />

A ordem em que os da<strong>do</strong>s chegam ao destinatário não é garantida e<br />

eles podem ser perdi<strong>do</strong>s. O UDP é adequa<strong>do</strong> para aplicativos orienta<strong>do</strong>s<br />

por registro. Ele possui um perío<strong>do</strong> de latência menor que o TCP.<br />

ICMP: essencialmente, não é um protocolo para o usuário final, mas<br />

um protocolo de controle especial que emite relatórios de erros e pode<br />

controlar o comportamento de máquinas que participam da transferência<br />

de da<strong>do</strong>s TCP/IP. Além disso, ele fornece um mo<strong>do</strong> de eco especial,<br />

que pode ser visualiza<strong>do</strong> usan<strong>do</strong> o programa ping.<br />

IGMP: este protocolo controla o comportamento da máquina durante<br />

o multicast IP.<br />

Conforme mostra<strong>do</strong> na Figura 18.1, “Modelo de camadas simplifica<strong>do</strong> para TCP/IP”<br />

(p 333), a troca de da<strong>do</strong>s ocorre em camadas diferentes. A camada de rede real é a<br />

transferência de da<strong>do</strong>s insegura por IP. Acima <strong>do</strong> IP, o TCP garante, até certo ponto, a<br />

segurança na transferência de da<strong>do</strong>s. A camada IP é suportada pelo protocolo dependente<br />

de hardware subjacente, como uma ethernet.


Figura 18.1 Modelo de camadas simplifica<strong>do</strong> para TCP/IP<br />

Host sun<br />

Application Layer<br />

Transport Layer<br />

Network Layer<br />

Data Link Layer<br />

Physical Layer<br />

Applications<br />

TCP, UDP<br />

IP<br />

Ethernet, FDDI, ISDN<br />

Cable, Fiberglass<br />

Data Transfer<br />

Host earth<br />

Application Layer<br />

Transport Layer<br />

Network Layer<br />

Data Link Layer<br />

Physical Layer<br />

O diagrama fornece um ou <strong>do</strong>is exemplos para cada camada. As camadas são organizadas<br />

de acor<strong>do</strong> com os níveis de abstração. A camada mais baixa fica muito próxima <strong>do</strong><br />

hardware. A camada mais alta é quase completamente abstraída <strong>do</strong> hardware. Todas<br />

as camadas possuem suas funções especiais próprias. As funções especiais de cada<br />

camada, na maioria das vezes, estão implícitas em suas descrições. O link de da<strong>do</strong>s e<br />

as camadas físicas representam a rede física usada, como uma ethernet.<br />

Quase to<strong>do</strong>s os protocolos de hardware funcionam em uma base orientada por pacotes.<br />

Os da<strong>do</strong>s a serem transmiti<strong>do</strong>s são forneci<strong>do</strong>s em pacotes, pois não podem ser envia<strong>do</strong>s<br />

to<strong>do</strong>s de uma vez. O tamanho máximo de um pacote TCP/IP é de, aproximadamente,<br />

64 KB. Os pacotes são normalmente um pouco menores, pois o hardware da rede pode<br />

ser um fator de limitação. O tamanho máximo de um pacote de da<strong>do</strong>s em uma ethernet<br />

é em torno de 1.500 bytes. O tamanho de um pacote TCP/IP limita-se a esse máximo<br />

quan<strong>do</strong> os da<strong>do</strong>s são envia<strong>do</strong>s por uma ethernet. Se mais da<strong>do</strong>s forem transferi<strong>do</strong>s,<br />

mais pacotes de da<strong>do</strong>s precisarão ser envia<strong>do</strong>s pelo sistema operacional.<br />

Para que as camadas executem suas respectivas funções, informações adicionais<br />

referentes a cada uma delas devem ser gravadas no pacote de da<strong>do</strong>s. Isso ocorre no<br />

cabeçalho <strong>do</strong> pacote. Todas as camadas anexam um pequeno bloco de da<strong>do</strong>s, chama<strong>do</strong><br />

cabeçalho <strong>do</strong> protocolo, à frente de cada pacote emergente. Um exemplo de um pacote<br />

de da<strong>do</strong>s TCP/IP transmiti<strong>do</strong> por um cabo ethernet é exibi<strong>do</strong> na Figura 18.2, “Pacote<br />

Rede básica 333


334 Referência<br />

Ethernet TCP/IP” (p 334). A soma de teste está localizada no final <strong>do</strong> pacote e não no<br />

início. Isso torna as coisas mais simples para o hardware de rede.<br />

Figura 18.2 Pacote Ethernet TCP/IP<br />

Usage Data (maximum 1460 bytes)<br />

TCP (Layer 4) Protocol Header (approx. 20 bytes)<br />

IP (Layer 3) Protocol Header (approx. 20 bytes)<br />

Ethernet (Layer 2) Protocol Header (approx. 14 bytes) + Checksum (2 bytes)<br />

Quan<strong>do</strong> um aplicativo envia da<strong>do</strong>s por uma rede, eles passam por cada camada, todas<br />

implementadas no kernel <strong>do</strong> Linux, exceto a camada física. Cada camada é responsável<br />

pela preparação <strong>do</strong>s da<strong>do</strong>s, para que eles possam passar para a camada seguinte. A<br />

camada mais baixa é a responsável pelo envio de da<strong>do</strong>s. To<strong>do</strong> o processo é inverti<strong>do</strong><br />

quan<strong>do</strong> os da<strong>do</strong>s são recebi<strong>do</strong>s. Como camadas de uma cebola, em cada uma os<br />

cabeçalhos de protocolo são removi<strong>do</strong>s <strong>do</strong>s da<strong>do</strong>s transporta<strong>do</strong>s. Por fim, a camada de<br />

transporte é responsável por disponibilizar os da<strong>do</strong>s para uso pelos aplicativos de destino.<br />

Dessa forma, cada camada se comunica somente com a camada diretamente acima ou<br />

abaixo dela. Para os aplicativos, é relevante se os da<strong>do</strong>s são transmiti<strong>do</strong>s através de<br />

uma rede FDDI de 100 MBit/s ou de uma linha de modem de 56 kbit/s. Da mesma<br />

forma, é relevante para a linha de da<strong>do</strong>s os tipos de da<strong>do</strong>s transmiti<strong>do</strong>s, contanto que<br />

os pacotes estejam no formato correto.


18.1 Roteamento e endereços IP<br />

Esta seção limita-se à abordagem de redes IPv4. Para obter informações sobre o<br />

protocolo IPv6, sucessor <strong>do</strong> IPv4, consulte a Seção 18.2, “IPv6 — A Internet da próxima<br />

geração” (p 338).<br />

18.1.1 Endereços IP<br />

To<strong>do</strong> computa<strong>do</strong>r na Internet possui um endereço de 32 bits exclusivo. Esses 32 bits<br />

(ou 4 bytes) são normalmente grava<strong>do</strong>s conforme ilustra<strong>do</strong> na segunda linha no<br />

Exemplo 18.1, “Gravan<strong>do</strong> endereços IP” (p 335).<br />

Exemplo 18.1 Gravan<strong>do</strong> endereços IP<br />

IP Address (binary): 11000000 10101000 00000000 00010100<br />

IP Address (decimal): 192. 168. 0. 20<br />

Na forma decimal, os quatro bytes são grava<strong>do</strong>s no sistema de números decimais,<br />

separa<strong>do</strong>s por pontos. O endereço IP é designa<strong>do</strong> a um host ou a uma interface de rede.<br />

Ele não pode ser usa<strong>do</strong> em nenhum outro lugar no mun<strong>do</strong>. Há exceções a essa regra,<br />

mas não são relevantes nas passagens a seguir.<br />

Os pontos nos endereços IP indicam o sistema hierárquico. Até os anos 90, os endereços<br />

IP eram estritamente categoriza<strong>do</strong>s em classes. Entretanto, esse sistema provou ser<br />

excessivamente inflexível e foi interrompi<strong>do</strong>. Agora, o CIDR (Classless Inter<strong>do</strong>main<br />

Routing - Roteamento Inter<strong>do</strong>mínio sem Classes) é usa<strong>do</strong>.<br />

18.1.2 Máscaras de rede e roteamento<br />

As máscaras de rede são usadas para definir a faixa de endereços de uma sub-rede. Se<br />

<strong>do</strong>is hosts estão em uma mesma sub-rede, eles podem se encontrar diretamente. Caso<br />

não estejam na mesma sub-rede, precisam <strong>do</strong> endereço de gateway que controla to<strong>do</strong><br />

o tráfego entre a sub-rede e o resto <strong>do</strong> mun<strong>do</strong>. Para verificar se <strong>do</strong>is endereços IP estão<br />

em uma mesma sub-rede, basta “E” os <strong>do</strong>is endereços com a máscara de rede. Se o<br />

resulta<strong>do</strong> for idêntico, os <strong>do</strong>is endereços IP estarão na mesma rede local. Se houver<br />

diferenças, o endereço IP remoto e, portanto, a interface remota, só poderão ser<br />

localiza<strong>do</strong>s através de um gateway.<br />

Rede básica 335


336 Referência<br />

Para compreender como as máscaras de rede funcionam, consulte o Exemplo 18.2,<br />

“Vinculan<strong>do</strong> endereços IP à máscara de rede” (p 336). A máscara de rede consiste em<br />

32 bits que identificam quanto de um endereço IP pertence à rede. To<strong>do</strong>s os bits 1<br />

marcam o bit correspondente no endereço IP como pertencente à rede. To<strong>do</strong>s os bits 0<br />

marcam os bits dentro da sub-rede. Isso significa que quanto maior a quantidade de bits<br />

1, menor será o tamanho da sub-rede. Como a máscara de rede sempre consiste em<br />

vários bits 1 sucessivos, também é possível apenas contar o número de bits da máscara<br />

de rede. No Exemplo 18.2, “Vinculan<strong>do</strong> endereços IP à máscara de rede” (p 336) a<br />

primeira rede com 24 bits também poderia ser gravada como 192.168.0.0/24.<br />

Exemplo 18.2 Vinculan<strong>do</strong> endereços IP à máscara de rede<br />

IP address (192.168.0.20): 11000000 10101000 00000000 00010100<br />

Netmask (255.255.255.0): 11111111 11111111 11111111 00000000<br />

---------------------------------------------------------------<br />

Result <strong>of</strong> the link: 11000000 10101000 00000000 00000000<br />

In the decimal system: 192. 168. 0. 0<br />

IP address (213.95.15.200): 11010101 10111111 00001111 11001000<br />

Netmask (255.255.255.0): 11111111 11111111 11111111 00000000<br />

---------------------------------------------------------------<br />

Result <strong>of</strong> the link: 11010101 10111111 00001111 00000000<br />

In the decimal system: 213. 95. 15. 0<br />

Para dar outro exemplo: todas as máquinas conectadas ao mesmo cabo ethernet,<br />

normalmente, estão localizadas na mesma sub-rede e são diretamente acessíveis. Mesmo<br />

quan<strong>do</strong> a sub-rede é dividida fisicamente por switches ou pontes, esses hosts ainda<br />

assim podem ser diretamente localiza<strong>do</strong>s.<br />

Endereços IP fora da sub-rede local só poderão ser localiza<strong>do</strong>s se um gateway for<br />

configura<strong>do</strong> para a rede de destino. Nos casos mais comuns, há somente um gateway<br />

que controla to<strong>do</strong> o tráfego externo. Entretanto, também é possível configurar vários<br />

gateways para sub-redes diferentes.<br />

Se um gateway tiver si<strong>do</strong> configura<strong>do</strong>, to<strong>do</strong>s os pacotes IP externos serão envia<strong>do</strong>s para<br />

o gateway apropria<strong>do</strong>. Esse gateway tentará então encaminhar os pacotes da mesma<br />

forma (de host para host) até acessar o host de destino ou até o TTL (time to live) <strong>do</strong><br />

pacote expirar.


Tabela 18.2 Endereços específicos<br />

Tipo de endereço<br />

Endereço de rede de<br />

base<br />

Endereço de<br />

broadcast<br />

Host local<br />

Descrição<br />

Essa é a máscara de rede E qualquer endereço na rede,<br />

conforme mostra<strong>do</strong> no Exemplo 18.2, “Vinculan<strong>do</strong> endereços<br />

IP à máscara de rede” (p 336) em Resulta<strong>do</strong>. Esse endereço<br />

não pode ser designa<strong>do</strong> a nenhum host.<br />

Isso significa, basicamente, “Acessar to<strong>do</strong>s os hosts nesta subrede.”<br />

Para gerar isso, a máscara de rede é invertida no formato<br />

binário e vinculada ao endereço de rede base com um OU<br />

lógico. O exemplo acima resulta, portanto, em 192.168.0.255.<br />

Esse endereço não pode ser designa<strong>do</strong> a nenhum host.<br />

O endereço 127.0.0.1 é designa<strong>do</strong> ao “dispositivo<br />

loopback” em cada host. Uma conexão pode ser configurada<br />

em sua própria máquina com esse endereço.<br />

Como os endereços IP precisam ser exclusivos em qualquer parte <strong>do</strong> mun<strong>do</strong>, não é<br />

possível selecionar endereços aleatoriamente. Há três <strong>do</strong>mínios de endereços a serem<br />

usa<strong>do</strong>s para configurar uma rede baseada em IP priva<strong>do</strong>. Eles não conseguem se conectar<br />

ao restante da Internet, pois não podem ser transmiti<strong>do</strong>s através dela. Esses <strong>do</strong>mínios<br />

de endereço são especifica<strong>do</strong>s no RFC 1597 e lista<strong>do</strong>s na Tabela 18.3, “Domínios de<br />

endereços IP priva<strong>do</strong>s” (p 337).<br />

Tabela 18.3 Domínios de endereços IP priva<strong>do</strong>s<br />

Rede/máscara de rede<br />

10.0.0.0/255.0.0.0<br />

172.16.0.0/255.240.0.0<br />

192.168.0.0/255.255.0.0<br />

Domínio<br />

10.x.x.x<br />

172.16.x.x – 172.31.x.x<br />

192.168.x.x<br />

Rede básica 337


338 Referência<br />

18.2 IPv6 — A Internet da próxima<br />

geração<br />

Devi<strong>do</strong> ao surgimento da WWW (World Wide Web), a Internet teve um crescimento<br />

explosivo com um número cada vez maior de computa<strong>do</strong>res se comunican<strong>do</strong> através<br />

de TCP/IP nos últimos quinze anos. Desde que Tim Berners-Lee da CERN (http://<br />

public.web.cern.ch) inventou a WWW em 1990, o número de hosts da Internet<br />

cresceu de poucos milhares para centenas de milhões deles.<br />

Conforme menciona<strong>do</strong>, um endereço IPv4 consiste em apenas 32 bits. Da mesma forma,<br />

poucos endereços IP são perdi<strong>do</strong>s — eles não podem ser usa<strong>do</strong>s devi<strong>do</strong> à forma como<br />

as redes são organizadas. O número de endereços disponíveis na sua sub-rede é <strong>do</strong>is<br />

eleva<strong>do</strong> à potência <strong>do</strong> número de bits, menos <strong>do</strong>is. Uma sub-rede tem, por exemplo, 2,<br />

6 ou 14 endereços disponíveis. Para conectar 128 hosts à Internet, por exemplo, você<br />

precisa de uma sub-rede com 256 endereços IP, <strong>do</strong>s quais somente 254 são utilizáveis,<br />

pois <strong>do</strong>is endereços IP são necessários para a estrutura da própria sub-rede: o endereço<br />

da rede de base e broadcast.<br />

No protocolo IPv4 atual, DHCP ou NAT (Network Address Translation - Conversão<br />

de Endereços de Rede) são os mecanismos comuns usa<strong>do</strong>s para contornar a grande falta<br />

de endereços. Combina<strong>do</strong> à convenção de manter endereços públicos e priva<strong>do</strong>s<br />

separa<strong>do</strong>s por espaços, esses méto<strong>do</strong>s podem certamente reduzir a falta de endereços.<br />

O problema deles está em suas configurações, trabalhosas para configurar e difíceis de<br />

manter. Para configurar um host em uma rede IPv4, é preciso haver vários itens de<br />

endereços, como o próprio endereço IP <strong>do</strong> host, a máscara de sub-rede, o endereço de<br />

gateway e talvez o endereço <strong>do</strong> servi<strong>do</strong>r de nomes. To<strong>do</strong>s esses itens precisam ser<br />

conheci<strong>do</strong>s e não podem ser deriva<strong>do</strong>s de outro lugar.<br />

Com o IPv6, tanto a falta de endereços quanto as configurações complicadas passariam<br />

a ser problemas <strong>do</strong> passa<strong>do</strong>. As seções a seguir <strong>of</strong>erecem mais informações sobre os<br />

aprimoramentos e benefícios trazi<strong>do</strong>s pelo IPv6 e sobre a transição <strong>do</strong> protocolo antigo<br />

para o novo.<br />

18.2.1 Vantagens<br />

A melhoria mais importante e visível <strong>of</strong>erecida pelo novo protocolo é a expansão enorme<br />

<strong>do</strong> espaço disponível para endereços. Um endereço IPv6 é cria<strong>do</strong> com valores de 128


its em vez <strong>do</strong>s 32 bits tradicionais. Ele é capaz de fornecer 'quatrilhões' de endereços<br />

IP.<br />

Entretanto, os endereços IPv6 não diferem de seus antecessores apenas em relação ao<br />

comprimento. Também possuem uma estrutura interna diferente, que pode conter mais<br />

informações específicas sobre os sistemas e as redes a que pertencem. Leia mais detalhes<br />

sobre eles na Seção 18.2.2, “Estrutura e tipos de endereços” (p 340).<br />

A seguir, há uma lista de algumas outras vantagens <strong>do</strong> novo protocolo:<br />

Configuração automática<br />

O IPv6 torna apto o “plug and play” da rede, o que significa que um sistema<br />

recentemente configura<strong>do</strong> é integra<strong>do</strong> à rede (local) sem qualquer configuração<br />

manual. O novo host usa seu mecanismo de configuração automática para derivar<br />

seu próprio endereço a partir das informações disponibilizadas pelos rotea<strong>do</strong>res<br />

vizinhos, com base em um protocolo chama<strong>do</strong> protocolo ND (Neighbor Discovery<br />

- Descoberta de Vizinho). Esse méto<strong>do</strong> não exige nenhuma intervenção por parte<br />

<strong>do</strong> administra<strong>do</strong>r e não há necessidade de manter um servi<strong>do</strong>r central para alocação<br />

de endereços; uma vantagem adicional em relação ao IPv4, cuja alocação automática<br />

de endereços exige um servi<strong>do</strong>r DHCP.<br />

Mobilidade<br />

O IPv6 torna possível a designação de vários endereços a uma interface de rede ao<br />

mesmo tempo. Isso permite que usuários acessem várias redes facilmente, o que é<br />

compara<strong>do</strong> aos serviços de roaming internacionais <strong>of</strong>ereci<strong>do</strong>s pelas empresas de<br />

celulares: quan<strong>do</strong> você viaja com seu celular, ele automaticamente se conecta a um<br />

serviço interurbano, assim que entra na área correspondente. Dessa forma, você<br />

pode ser localiza<strong>do</strong> no mesmo número de celular em qualquer lugar e pode fazer<br />

ligações como se estivesse em sua cidade.<br />

Comunicação segura<br />

Com o IPv4, a segurança da rede é uma função adicional. O IPv6 inclui IPSec como<br />

um de seus recursos principais, permitin<strong>do</strong> que sistemas se comuniquem através<br />

de um túnel seguro, para evitar a intromissão de estranhos na Internet.<br />

Compatibilidade retroativa<br />

De forma realista, seria impossível mudar toda a Internet de IPv4 para IPv6 de uma<br />

só vez. Portanto, é essencial que ambos os protocolos sejam capazes de coexistir<br />

na Internet, mas também em um sistema. Isso é garanti<strong>do</strong> por endereços compatíveis<br />

(endereços IPv4 podem facilmente ser converti<strong>do</strong>s em endereços IPv6) e através<br />

<strong>do</strong> uso de vários túneis. Consulte a Seção 18.2.3, “Coexistência de IPv4 e IPv6”<br />

Rede básica 339


340 Referência<br />

(p 345). Da mesma forma, os sistemas podem se basear em uma técnica IP de pilha<br />

dupla para suportar os <strong>do</strong>is protocolos ao mesmo tempo, significan<strong>do</strong> que possuem<br />

duas pilhas de rede completamente separadas, de tal forma que não há interferência<br />

entre as duas versões de protocolos.<br />

Serviços adapta<strong>do</strong>s e personaliza<strong>do</strong>s através de Multicast<br />

Com o IPv4, alguns serviços, como SMB, precisam transmitir seus pacotes para<br />

to<strong>do</strong>s os host na rede local. O IPv6 <strong>of</strong>erece uma abordagem mais detalhada,<br />

permitin<strong>do</strong> que os servi<strong>do</strong>res enviem hosts através de multicast — determinan<strong>do</strong><br />

um número de hosts como partes de um grupo (o que é diferente de direcionar<br />

to<strong>do</strong>s os hosts através de broadcast ou cada host individualmente através de unicast).<br />

Os hosts envia<strong>do</strong>s como grupos talvez dependam <strong>do</strong> aplicativo concreto. É possível<br />

enviar to<strong>do</strong>s os servi<strong>do</strong>res de nomes para alguns grupos predefini<strong>do</strong>s (o grupo<br />

multicast de servi<strong>do</strong>res de nomes), por exemplo ou to<strong>do</strong>s os rotea<strong>do</strong>res (o grupo<br />

multicast de to<strong>do</strong>s os rotea<strong>do</strong>res).<br />

18.2.2 Estrutura e tipos de endereços<br />

Como menciona<strong>do</strong>, está faltan<strong>do</strong> no protocolo IP atual <strong>do</strong>is aspectos importantes: há<br />

um aumento de falta de endereços IP e a configuração de rede e manutenção de tabelas<br />

de roteamento vêm se tornan<strong>do</strong> tarefas cada vez mais complexas e trabalhosas. O IPv6<br />

soluciona o primeiro problema, expandin<strong>do</strong> o espaço <strong>do</strong>s endereços para 128 bits. O<br />

segun<strong>do</strong> problema é contorna<strong>do</strong> com a introdução de uma estrutura hierárquica de<br />

endereços, combinada com técnicas s<strong>of</strong>isticadas para alocar endereços de rede, assim<br />

como multihoming (a capacidade de designar vários endereços a um dispositivo,<br />

permitin<strong>do</strong> acesso a diversas redes).<br />

Ao utilizar o IPv6, é útil saber que há três tipos diferentes de endereços:<br />

Unicast<br />

Endereços desse tipo são associa<strong>do</strong>s com exatamente uma interface de rede. Pacotes<br />

com esse tipo de endereço são entregues em apenas um destino. Da mesma forma,<br />

os endereços unicast são usa<strong>do</strong>s para transferir pacotes para hosts individuais na<br />

rede local ou na Internet.<br />

Multicast<br />

Endereços desse tipo estão relaciona<strong>do</strong>s a um grupo de interfaces de rede. Pacotes<br />

com esse tipo de endereço são entregues a to<strong>do</strong>s os destinos pertencentes ao grupo.<br />

Endereços multicast são usa<strong>do</strong>s, principalmente, por certos tipos de serviços de


ede para se comunicarem com determina<strong>do</strong>s grupos de host de forma bem<br />

direcionada.<br />

Anycast<br />

Endereços desse tipo estão relaciona<strong>do</strong>s a um grupo de interfaces. Pacotes com<br />

esse tipo de endereço são entregues ao membro <strong>do</strong> grupo mais próximo <strong>do</strong><br />

remetente, de acor<strong>do</strong> com os princípios <strong>do</strong> protocolo de roteamento subjacente.<br />

Endereços anycast são usa<strong>do</strong>s para que hosts possam descobrir mais facilmente<br />

servi<strong>do</strong>res que <strong>of</strong>erecem certos serviços na área da rede determinada. To<strong>do</strong>s os<br />

servi<strong>do</strong>res <strong>do</strong> mesmo tipo possuem o mesmo endereço anycast. Sempre que um<br />

host solicita um serviço, ele recebe uma resposta <strong>do</strong> servi<strong>do</strong>r com o local mais<br />

próximo, conforme determina<strong>do</strong> pelo protocolo de roteamento. Caso ocorra alguma<br />

falha com esse servi<strong>do</strong>r, o protocolo selecionará automaticamente o segun<strong>do</strong> servi<strong>do</strong>r<br />

mais próximo ou então o terceiro e assim por diante.<br />

Um endereço IPv6 é constituí<strong>do</strong> de oito campos de quatro dígitos, cada um representan<strong>do</strong><br />

16 bits, grava<strong>do</strong>s em notação hexadecimal. Também são separa<strong>do</strong>s por <strong>do</strong>is-pontos (:).<br />

Quaisquer zero bytes iniciais em um determina<strong>do</strong> campo podem ser descarta<strong>do</strong>s, mas<br />

zeros dentro ou no final <strong>do</strong> campo não podem ser descarta<strong>do</strong>s. Outra convenção é a de<br />

que mais de quatro zero bytes consecutivos podem retornar como <strong>do</strong>is-pontos duplos.<br />

Entretanto, somente um como :: é permiti<strong>do</strong> em cada endereço. Esse tipo de notação<br />

reduzida é mostra<strong>do</strong> no Exemplo 18.3, “Amostra de endereço IPv6” (p 341), em que<br />

todas as três linhas representam o mesmo endereço.<br />

Exemplo 18.3 Amostra de endereço IPv6<br />

fe80 : 0000 : 0000 : 0000 : 0000 : 10 : 1000 : 1a4<br />

fe80 : 0 : 0 : 0 : 0 : 10 : 1000 : 1a4<br />

fe80 : : 10 : 1000 : 1a4<br />

Cada parte de um endereço IPv6 possui uma função definida. Os primeiros bytes formam<br />

o prefixo e especificam o tipo de endereço. A parte central é a porção <strong>do</strong> endereço na<br />

rede, mas pode não ser utilizada. O final <strong>do</strong> endereço forma a parte <strong>do</strong> host. Com o<br />

IPv6, a máscara de rede é definida indican<strong>do</strong> o comprimento <strong>do</strong> prefixo depois de uma<br />

barra no final <strong>do</strong> endereço. Um endereço, como mostra<strong>do</strong> no Exemplo 18.4, “Endereço<br />

IPv6 especifican<strong>do</strong> o comprimento <strong>do</strong> prefixo” (p 342), contém as informações de que<br />

os primeiros 64 bits formam a parte da rede <strong>do</strong> endereço e que os últimos 64 formam<br />

a parte <strong>do</strong> host. Em outras palavras, 64 significa que a máscara de rede está preenchida<br />

com 64 valores de 1 bit a partir da esquerda. Da mesma forma que o IPv4, o endereço<br />

IP é combina<strong>do</strong> com E com os valores da máscara de rede, para determinar se o host<br />

está localiza<strong>do</strong> na mesma sub-rede ou em outra.<br />

Rede básica 341


Exemplo 18.4 Endereço IPv6 especifican<strong>do</strong> o comprimento <strong>do</strong> prefixo<br />

fe80::10:1000:1a4/64<br />

O IPv6 conhece vários tipos de prefixos predefini<strong>do</strong>s. Alguns são mostra<strong>do</strong>s na<br />

Tabela 18.4, “Vários prefixos IPv6” (p 342).<br />

Tabela 18.4 Vários prefixos IPv6<br />

Prefixo (hex)<br />

00<br />

2 ou 3 como o<br />

primeiro dígito<br />

fe80::/10<br />

fe80::/10<br />

ff<br />

342 Referência<br />

Definição<br />

Endereços IPv4 e endereços de compatibilidade de IPv4 sobre<br />

IPv6. Esses são usa<strong>do</strong>s para manter a compatibilidade com IPv4.<br />

O seu uso ainda exige um rotea<strong>do</strong>r capaz de converter pacotes<br />

IPv6 em pacotes IPv4. Vários endereços especiais, como o <strong>do</strong><br />

dispositivo loopback, também possuem esse prefixo.<br />

Endereços unicast globais agregativos. Como no caso <strong>do</strong> IPv4,<br />

uma interface pode ser designada para fazer parte de uma<br />

determinada sub-rede. Atualmente, há os seguintes espaços de<br />

endereços: 2001::/16 (espaço de endereço da qualidade de<br />

produção) e 2002::/16 (espaço de endereço 6to4).<br />

Endereços locais de links. Endereços com esse prefixo não devem<br />

ser rotea<strong>do</strong>s e, portanto, só devem ser encontra<strong>do</strong>s na mesma subrede.<br />

Endereços locais de sites. Esses podem ser rotea<strong>do</strong>s, mas somente<br />

na rede da organização a que pertencem. Na verdade, eles são o<br />

equivalente IPv6 <strong>do</strong> espaço de endereço de rede privada atual,<br />

como 10.x.x.x.<br />

Esses são endereços multicast.<br />

Um endereço unicast consiste em três componentes básicos:<br />

Topologia pública<br />

A primeira parte (que também contém um <strong>do</strong>s prefixos menciona<strong>do</strong>s acima) é usada<br />

para rotear pacotes através da Internet pública. Ela inclui informações sobre a<br />

empresa ou instituição que fornece o acesso à Internet.


Topologia <strong>do</strong> site<br />

A segunda parte contém informações de roteamento sobre a sub-rede à qual o<br />

pacote deve ser entregue.<br />

ID de interface<br />

A terceira parte identifica a interface à qual o pacote deve ser entregue. Isso também<br />

permite que o MAC faça parte <strong>do</strong> endereço. Como MAC é um identifica<strong>do</strong>r fixo<br />

globalmente exclusivo codifica<strong>do</strong> no dispositivo pelo fabricante <strong>do</strong> hardware, o<br />

procedimento de configuração é bastante simplifica<strong>do</strong>. Na verdade, os primeiros<br />

64 bits de endereço são consolida<strong>do</strong>s para formar o token EUI-64, com os últimos<br />

48 bits obti<strong>do</strong>s no MAC e os 24 bits restantes conten<strong>do</strong> informações especiais sobre<br />

o tipo de token. Isso também possibilita designar um token EUI-64 a interfaces<br />

que não possuem MAC, como aquelas baseadas em PPP ou ISDN.<br />

No topo dessa estrutura básica, o IPv6 faz distinção entre cinco tipos de endereços<br />

unicast:<br />

:: (não especifica<strong>do</strong>)<br />

Esse endereço é usa<strong>do</strong> pelo host como seu endereço de origem quan<strong>do</strong> a interface<br />

é inicializada pela primeira vez — quan<strong>do</strong> o endereço ainda não pode ser<br />

determina<strong>do</strong> por outros meios.<br />

::1 (loopback)<br />

O endereço <strong>do</strong> dispositivo loopback.<br />

Endereços compatíveis com o IPv4<br />

O endereço IPv6 é forma<strong>do</strong> pelo endereço IPv4 e um prefixo consistin<strong>do</strong> em 96<br />

zero bits. Esse tipo de endereço de compatibilidade é usa<strong>do</strong> para um túnel (consulte<br />

a Seção 18.2.3, “Coexistência de IPv4 e IPv6” (p 345)) para permitir que os hosts<br />

IPv4 e IPv6 se comuniquem com outros que estejam operan<strong>do</strong> em um ambiente<br />

IPv4 puro.<br />

Endereços IPv4 mapea<strong>do</strong>s para IPv6<br />

Esse tipo de endereço especifica um endereço IPv4 puro em uma notação IPv6.<br />

Endereços locais<br />

Há <strong>do</strong>is tipos de endereços para uso local:<br />

link-local<br />

Esse tipo de endereço só pode ser usa<strong>do</strong> na sub-rede local. Pacotes com<br />

endereço de origem ou de destino desse tipo não devem ser rotea<strong>do</strong>s para a<br />

Rede básica 343


344 Referência<br />

Internet nem para outras sub-redes. Esses endereços contêm um prefixo especial<br />

(fe80::/10) e o ID da interface da placa de rede, com a parte <strong>do</strong> meio<br />

consistin<strong>do</strong> em zero bytes. Endereços desse tipo são usa<strong>do</strong>s durante a<br />

configuração automática para se comunicarem com outros hosts pertencentes<br />

à mesma sub-rede.<br />

site-local<br />

Pacotes com esse tipo de endereço podem ser rotea<strong>do</strong>s para outras sub-redes,<br />

mas não para a Internet mais ampla. Eles precisam permanecer dentro da própria<br />

rede da organização. Tais endereços são usa<strong>do</strong>s para intranets e equivalem ao<br />

espaço de endereço priva<strong>do</strong> defini<strong>do</strong> pelo IPv4. Eles contêm um prefixo especial<br />

(fec0::/10), o ID da interface e um campo de 16 bits especifican<strong>do</strong> o ID<br />

da sub-rede. Novamente, o restante é preenchi<strong>do</strong> com zero bytes.<br />

Como um recurso completamente novo, introduzi<strong>do</strong> com o IPv6, cada interface de rede<br />

normalmente obtém vários endereços IP, com a vantagem de que várias redes podem<br />

ser acessadas através da mesma interface. Uma dessas redes pode ser totalmente<br />

configurada automaticamente usan<strong>do</strong> o MAC e um prefixo conheci<strong>do</strong>, resultan<strong>do</strong> na<br />

possibilidade de to<strong>do</strong>s os hosts na rede local serem encontra<strong>do</strong>s assim que o IPv6 for<br />

habilita<strong>do</strong> (usan<strong>do</strong> o endereço link-local). Com o MAC fazen<strong>do</strong> parte disso, qualquer<br />

endereço IP usa<strong>do</strong> no mun<strong>do</strong> será exclusivo. As únicas partes variáveis <strong>do</strong> endereço<br />

são aquelas que indicam a topologia <strong>do</strong> site e a topologia pública, dependen<strong>do</strong> da rede<br />

real na qual o host estiver operan<strong>do</strong> no momento.<br />

Para que um host avance e retroceda entre duas redes diferentes ele precisa de, pelo<br />

menos, <strong>do</strong>is endereços. Um deles, o endereço pessoal, contém não só o ID de interface,<br />

como também um identifica<strong>do</strong>r da rede <strong>do</strong>méstica a que ele normalmente pertence (e<br />

o prefixo correspondente). O endereço pessoal é um endereço estático e, portanto,<br />

normalmente não se modifica. Mesmo assim, to<strong>do</strong>s os pacotes destina<strong>do</strong>s ao host móvel<br />

podem ser entregues a ele, independentemente de ele operar na rede <strong>do</strong>méstica ou em<br />

outro local externo. Isso é possível devi<strong>do</strong> aos recursos totalmente novos introduzi<strong>do</strong>s<br />

com o IPv6, como configuração automática sem esta<strong>do</strong> e descoberta de vizinho. Além<br />

<strong>do</strong> endereço residencial, um host móvel obtém um ou mais endereços adicionais<br />

pertencentes às redes interurbanas com roaming. Eles são chama<strong>do</strong>s endereços care<strong>of</strong>.<br />

A rede <strong>do</strong>méstica tem um recurso que encaminha qualquer pacote destina<strong>do</strong> ao host<br />

quan<strong>do</strong> ele está em roaming. Em um ambiente IPv6, essa tarefa é executada pelo agente<br />

local, que retransmite to<strong>do</strong>s os pacotes destina<strong>do</strong>s ao endereço residencial através de<br />

um túnel. Por outro la<strong>do</strong>, esses pacotes destina<strong>do</strong>s ao endereço care-<strong>of</strong> são diretamente<br />

transferi<strong>do</strong>s para o host móvel sem qualquer desvio especial.


18.2.3 Coexistência de IPv4 e IPv6<br />

A migração de to<strong>do</strong>s os hosts conecta<strong>do</strong>s à Internet <strong>do</strong> IPv4 para o IPv6 é um processo<br />

gradual. Os <strong>do</strong>is protocolos coexistirão durante algum tempo. A coexistência deles em<br />

um sistema é garantida onde houver uma implementação de pilha dupla de ambos os<br />

protocolos. Ainda resta a dúvida de como um host habilita<strong>do</strong> <strong>do</strong> IPv6 deve se comunicar<br />

com um host IPv4 e como pacotes <strong>do</strong> IPv6 devem ser transporta<strong>do</strong>s pelas redes atuais,<br />

que são pre<strong>do</strong>minantemente baseadas no IPv4. As melhores soluções <strong>of</strong>erecem endereços<br />

de compatibilidade e túnel (consulte a Seção 18.2.2, “Estrutura e tipos de endereços”<br />

(p 340)).<br />

Os hosts <strong>do</strong> IPv6 relativamente isola<strong>do</strong>s na rede IPv4 (mundial) podem se comunicar<br />

através de túneis: Pacotes IPv6 são encapsula<strong>do</strong>s como pacotes IPv4 para serem movi<strong>do</strong>s<br />

por uma rede IPv4. Tal conexão entre <strong>do</strong>is hosts IPv4 é chamada de túnel. Para que<br />

isso ocorra, os pacotes precisam incluir o endereço de destino <strong>do</strong> IPv6 (ou o prefixo<br />

correspondente), assim como o endereço IPv4 <strong>do</strong> host remoto no destino final <strong>do</strong> túnel.<br />

Um túnel básico pode ser configura<strong>do</strong> manualmente, de acor<strong>do</strong> com um contrato entre<br />

os administra<strong>do</strong>res <strong>do</strong>s hosts. Também é chama<strong>do</strong> de túnel estático.<br />

Entretanto, a configuração e manutenção de túneis estáticos é normalmente muito<br />

trabalhosa para ser usada diariamente em comunicações. Portanto, o IPv6 fornece três<br />

méto<strong>do</strong>s de túneis dinâmicos:<br />

6over4<br />

Os pacotes IPv6 são automaticamente encapsula<strong>do</strong>s como pacotes IPv4 e envia<strong>do</strong>s<br />

por uma rede IPv4 com capacidade multicast. O IPv6 é induzi<strong>do</strong> a considerar toda<br />

a rede (Internet) como uma LAN enorme. Com isso, é possível determinar<br />

automaticamente o destino final <strong>do</strong> túnel IPv4. Entretanto, esse méto<strong>do</strong> não faz um<br />

dimensionamento muito bom e também é dificulta<strong>do</strong> pelo fato de o multicast IP<br />

não ser tão difundi<strong>do</strong> na Internet. Portanto, ele apenas fornece uma solução para<br />

redes corporativas ou institucionais menores, em que o multicast pode ser habilita<strong>do</strong>.<br />

As especificações para esse méto<strong>do</strong> estão descritas no RFC 2529.<br />

6to4<br />

Com esse méto<strong>do</strong>, os endereços IPv4 são automaticamente gera<strong>do</strong>s a partir de<br />

endereços IPv6, habilitan<strong>do</strong> a comunicação de hosts IPv6 isola<strong>do</strong>s através de uma<br />

rede IPv4. Entretanto, alguns problemas foram relata<strong>do</strong>s no que tange à comunicação<br />

entre esses hosts IPv6 isola<strong>do</strong>s e a Internet. O méto<strong>do</strong> está descrito no RFC 3056.<br />

Rede básica 345


346 Referência<br />

Controla<strong>do</strong>r <strong>do</strong> túnel IPv6<br />

Esse méto<strong>do</strong> se baseia em servi<strong>do</strong>res especiais que fornecem túneis dedica<strong>do</strong>s para<br />

hosts IPv6. É descrito no RFC 3053.<br />

IMPORTANTE: A Iniciativa 6bone<br />

Nos principais locais “mais estabeleci<strong>do</strong>s” da Internet, já existe uma rede<br />

globalmente distribuída de sub-redes IPv6 conectadas através de túneis. Essa<br />

é a rede 6bone (http://www.6bone.net), um ambiente de testes IPv6 que<br />

pode ser usa<strong>do</strong> por programa<strong>do</strong>res e prove<strong>do</strong>res da Internet que desejam<br />

desenvolver e <strong>of</strong>erecer serviços basea<strong>do</strong>s no IPv6, a fim de obter a experiência<br />

necessária para implementar o novo protocolo. Mais informações podem ser<br />

encontradas no site desse projeto na Internet.<br />

18.2.4 Configuran<strong>do</strong> o IPv6<br />

Para configurar o IPv6, normalmente não é necessário fazer mudanças nas estações de<br />

trabalho individuais. Entretanto, o suporte <strong>do</strong> IPv6 precisa ser carrega<strong>do</strong>. Para fazer<br />

isso, digite modprobe ipv6 como raiz.<br />

Devi<strong>do</strong> ao conceito de configuração automática <strong>do</strong> IPv6, um endereço é designa<strong>do</strong> à<br />

placa de rede na rede link-local. Normalmente, nenhum gerenciamento de tabela de<br />

roteamento é feito em uma estação de trabalho. Os rotea<strong>do</strong>res de rede podem ser<br />

consulta<strong>do</strong>s pela estação de trabalho, usan<strong>do</strong> o protocolo de anúncios <strong>do</strong> rotea<strong>do</strong>r, para<br />

o qual devem ser implementa<strong>do</strong>s um prefixo e gateways. O programa radvd pode ser<br />

usa<strong>do</strong> para configurar um rotea<strong>do</strong>r IPv6. Esse programa informa às estações de trabalho<br />

o prefixo que deve ser usa<strong>do</strong> para os endereços IPv6 e os rotea<strong>do</strong>res. Outra opção é<br />

usar zebra para a configuração automática <strong>do</strong>s <strong>do</strong>is endereços e roteamento.<br />

Consulte a página de manual <strong>do</strong> ifup(8) para obter informações sobre como configurar<br />

vários tipos de túneis usan<strong>do</strong> os arquivos /etc/sysconfig/network.<br />

18.2.5 Mais informações<br />

A visão geral acima não abrange totalmente o tópico <strong>do</strong> IPv6. Para obter informações<br />

mais detalhadas sobre o novo protocolo, consulte os livros e a <strong>do</strong>cumentação online a<br />

seguir:


http://www.ngnet.it/e/cosa-ipv6.php<br />

Uma série de artigos fornecen<strong>do</strong> uma introdução explicativa sobre os fundamentos<br />

básicos <strong>do</strong> IPv6. Um bom manual sobre o tópico.<br />

http://www.bieringer.de/linux/IPv6/<br />

Aqui, encontre o Linux IPv6-HOWTO e muitos links relaciona<strong>do</strong>s ao tópico.<br />

http://www.6bone.net/<br />

Visite esse site se desejar se juntar a uma rede IPv6 com túnel.<br />

http://www.ipv6.org/<br />

O ponto de partida para tu<strong>do</strong> relativo ao IPv6.<br />

RFC 2640<br />

Informações fundamentais <strong>do</strong> RFC sobre o IPv6.<br />

IPv6 Essentials<br />

Um livro que descreve to<strong>do</strong>s os aspectos importantes <strong>do</strong> tópico é o IPv6 Essentials<br />

de Silvia Hagen (ISBN 0-596-00125-8).<br />

18.3 Resolução de nomes<br />

O DNS ajuda na designação de um endereço IP a um ou mais nomes e na designação<br />

de um nome a um endereço IP. No Linux, essa conversão normalmente é executada<br />

por um tipo especial de s<strong>of</strong>tware chama<strong>do</strong> bind. A máquina responsável por essa<br />

conversão é chamada de servi<strong>do</strong>r de nomes. Os nomes criam um sistema hierárquico,<br />

no qual cada componente <strong>do</strong> nome é separa<strong>do</strong> por pontos. A hierarquia de nomes é,<br />

entretanto, independente da hierarquia de endereços IP descrita acima.<br />

Considere um nome completo, como earth.example.com, grava<strong>do</strong> no formato<br />

hostname.<strong>do</strong>main. Um nome completo, denomina<strong>do</strong> FQDN (Fully Qualified<br />

Domain Name - Nome de Domínio Totalmente Qualifica<strong>do</strong>), consiste em um nome de<br />

host e um nome de <strong>do</strong>mínio (example.com). O último também inclui o TLD (Top<br />

Level Domain - Domínio de Nível Superior (com).<br />

A designação TLD tornou-se bastante confusa por razões históricas. Tradicionalmente,<br />

nomes de <strong>do</strong>mínio com três letras são usa<strong>do</strong>s nos EUA. No resto <strong>do</strong> mun<strong>do</strong>, os códigos<br />

nacionais ISO de duas letras são o padrão. Além disso, TLDs mais longos foram<br />

Rede básica 347


348 Referência<br />

introduzi<strong>do</strong>s em 2000, representan<strong>do</strong> certas esferas de atividades (por exemplo, .info,<br />

.name, .museum).<br />

No início da Internet (antes de 1990), o arquivo /etc/hosts era usa<strong>do</strong> para armazenar<br />

os nomes de todas as máquinas representadas na Internet. Isso rapidamente se tornou<br />

impraticável, devi<strong>do</strong> ao crescente número de computa<strong>do</strong>res conecta<strong>do</strong>s à Internet. Por<br />

essa razão, um banco de da<strong>do</strong>s descentraliza<strong>do</strong> foi desenvolvi<strong>do</strong> para armazenar nomes<br />

de hosts de uma forma amplamente distribuída. Esse banco de da<strong>do</strong>s, semelhante ao<br />

servi<strong>do</strong>r de nomes, não possui os da<strong>do</strong>s pertencentes a to<strong>do</strong>s os hosts na Internet já<br />

disponíveis, mas pode encaminhar solicitações a outros servi<strong>do</strong>res de nomes.<br />

A parte superior da hierarquia é ocupada pelos servi<strong>do</strong>res de nomes raiz. Esses servi<strong>do</strong>res<br />

de nomes raiz gerenciam os <strong>do</strong>mínios de nível superior e são executa<strong>do</strong>s pelo NIC<br />

(Network Information Center). Cada servi<strong>do</strong>r de nomes raiz conhece os servi<strong>do</strong>res de<br />

nomes responsáveis por um determina<strong>do</strong> <strong>do</strong>mínio de nível superior. Para obter<br />

informações sobre NICs de <strong>do</strong>mínio superior, vá para http://www.internic<br />

.net.<br />

O DNS pode fazer mais <strong>do</strong> que apenas resolver nomes de hosts. O servi<strong>do</strong>r de nomes<br />

também distingue qual host recebe e-mails para um <strong>do</strong>mínio inteiro — o MX (servi<strong>do</strong>r<br />

de correio).<br />

Para sua máquina resolver um endereço IP, ela precisa pelo menos conhecer um servi<strong>do</strong>r<br />

de nomes e seu respectivo endereço IP. É fácil especificar esse servi<strong>do</strong>r de nomes com<br />

a ajuda <strong>do</strong> YaST. Se você tiver uma conexão de discagem por modem, talvez não precise<br />

nem mesmo configurar um servi<strong>do</strong>r de nomes manualmente. O protocolo de discagem<br />

fornece o endereço <strong>do</strong> servi<strong>do</strong>r de nomes enquanto a conexão é efetuada. A configuração<br />

de acesso ao servi<strong>do</strong>r de nomes com o <strong>SUSE</strong> Linux é descrita no Capítulo 20, Domain<br />

Name System (Sistema de Nomes de Domínio) (p 381).<br />

O protocolo whois está intimamente relaciona<strong>do</strong> ao DNS. Com esse programa, é<br />

possível descobrir rapidamente o responsável por qualquer <strong>do</strong>mínio especifica<strong>do</strong>.<br />

18.4 Configuran<strong>do</strong> uma conexão de<br />

rede com o YaST<br />

Há muitos tipos de redes suportadas no Linux. A maioria delas usa nomes de dispositivos<br />

diferentes e os arquivos de configuração se espalham por vários locais no sistema de


arquivos. Para obter uma visão geral detalhada <strong>do</strong>s aspectos da configuração manual<br />

de rede, consulte a Seção 18.6, “Configuran<strong>do</strong> uma conexão de rede manualmente”<br />

(p 362).<br />

Durante a instalação, o YaST pode ser usa<strong>do</strong> para configurar automaticamente todas<br />

as interfaces detectadas. Hardwares adicionais podem ser configura<strong>do</strong>s em qualquer<br />

momento após sua instalação no sistema. As seções a seguir descrevem a configuração<br />

de rede para to<strong>do</strong>s os tipos de conexões de rede suportadas pelo <strong>SUSE</strong> Linux.<br />

18.4.1 Configuran<strong>do</strong> a placa de rede com o<br />

YaST<br />

Depois de iniciar o módulo, o YaST exibe uma caixa de diálogo da configuração geral<br />

da rede. Escolha se usará o YaST ou o NetworkManager para gerenciar to<strong>do</strong>s os seus<br />

dispositivos de rede. Para usar o NetworkManager, marque Controla<strong>do</strong> por Usuário<br />

com o NetworkManager. Encontre informações detalhadas sobre o NetworkManager<br />

na Seção 18.5, “Gerencian<strong>do</strong> conexões de rede com o NetworkManager” (p 359). Para<br />

configurar sua rede na forma tradicional com o YaST, marque Méto<strong>do</strong> Tradicional com<br />

ifup.<br />

A parte superior da configuração tradicional mostra uma lista com todas as placas de<br />

rede disponíveis para configuração. Qualquer placa devidamente detectada é listada<br />

com seu nome. É possível configurar dispositivos não detecta<strong>do</strong>s usan<strong>do</strong> Adicionar,<br />

conforme descrito em “Configuração manual de uma placa de rede não detectada”<br />

(p 349). Configure uma nova placa de rede ou mude uma configuração existente.<br />

Configuração manual de uma placa de rede não<br />

detectada<br />

A configuração de uma placa de rede não detectada inclui os seguintes itens:<br />

Configuração de rede<br />

Configure o tipo de dispositivo da interface a partir das opções disponíveis e <strong>do</strong><br />

nome de configuração. As informações sobre as convenções de nomeação para<br />

nomes de configuração estão disponíveis na página de manual <strong>do</strong> getcfg(8).<br />

Rede básica 349


350 Referência<br />

Módulo de Kernel<br />

Nome de Configuração de Hardware especifica o nome <strong>do</strong> arquivo /etc/<br />

sysconfig/hardware/hwcfg-* que contém as configurações de hardware<br />

da sua placa de rede. Também contém o nome <strong>do</strong> módulo de kernel adequa<strong>do</strong>,<br />

assim como as opções necessárias para inicializar o hardware. Normalmente, o<br />

YaST sugere nomes úteis para os hardwares PCMCIA e USB. Para outros<br />

hardwares, o hwcfg-static-0 costuma funcionar somente se a placa estiver<br />

configurada com o nome de configuração 0.<br />

Se a placa de rede for um dispositivo PCMCIA ou USB, ative as respectivas caixas<br />

de seleção e saia dessa caixa de diálogo com Próximo. Caso contrário, selecione o<br />

modelo da placa de rede em Selecionar da Lista. O YaST selecionará<br />

automaticamente o módulo de kernel adequa<strong>do</strong> para a placa. Clique em Avançar<br />

para sair dessa caixa de diálogo.<br />

Figura 18.3 Configuração da placa de rede<br />

Configuran<strong>do</strong> o endereço de rede<br />

Configure o tipo de dispositivo da interface e o nome da configuração. Selecione o tipo<br />

de dispositivo entre os forneci<strong>do</strong>s. Especifique o nome da configuração de acor<strong>do</strong> com<br />

suas necessidades. Normalmente, as configurações padrão são úteis e podem ser aceitas.


As informações sobre as convenções de nomeação para nomes de configuração estão<br />

disponíveis na página de manual <strong>do</strong> getcfg(8).<br />

Se tiver seleciona<strong>do</strong> Wireless como tipo de dispositivo da interface, configure o mo<strong>do</strong><br />

operacional, o nome da rede (ESSID) e a criptografia na caixa de diálogo seguinte,<br />

Configuração de Placa de Rede Wireless. Clique em OK para concluir a configuração<br />

da placa. Uma descrição detalhada da configuração de placas WLAN é apresentada na<br />

Seção 34.1.3, “Configuração com o YaST” (p 629). Para to<strong>do</strong>s os outros tipos de<br />

interface, prossiga com a configuração de endereço de rede:<br />

Configuração Automática de Endereço (via DHCP)<br />

Se sua rede incluir um servi<strong>do</strong>r DHCP, você poderá configurar o endereço de rede<br />

com segurança de forma automática. A opção também deverá ser usada se você<br />

estiver usan<strong>do</strong> uma linha DSL sem IP estático designa<strong>do</strong> pelo prove<strong>do</strong>r de serviços<br />

da Internet. Se decidir usar o DHCP, configure os detalhes depois de selecionar<br />

Opções <strong>do</strong> Cliente DHCP. Especifique se o servi<strong>do</strong>r DHCP deve sempre atender<br />

a solicitações de broadcast e permitir o uso por qualquer identifica<strong>do</strong>r. Por padrão,<br />

os servi<strong>do</strong>res DHCP usam o endereço de hardware da placa para identificar uma<br />

interface. Se você tiver uma configuração de host virtual, em que hosts diferentes<br />

se comunicam através da mesma interface, um identifica<strong>do</strong>r será necessário para<br />

distingui-los.<br />

Configuração de endereço estático<br />

Se você possui um endereço estático, habilite essa opção. Depois, digite o endereço<br />

e a máscara de sub-rede para sua rede. A máscara de sub-rede predefinida deve<br />

corresponder aos requisitos de uma rede <strong>do</strong>méstica típica.<br />

Saia dessa caixa de diálogo, selecionan<strong>do</strong> Próximo ou continue a configurar o nome<br />

de host, servi<strong>do</strong>r de nomes e detalhes de roteamento (consulte as seções em Servi<strong>do</strong>r<br />

DNS (↑Inicialização) e em Roteamento (↑Inicialização)).<br />

Avança<strong>do</strong> permite especificar configurações mais complexas. Em Configurações<br />

Detalhadas, use Controla<strong>do</strong> pelo Usuário para delegar o controle sobre a placa de rede<br />

desde o administra<strong>do</strong>r (root) até o usuário normal. Em operações móveis, isso permite<br />

ao usuário adaptar a mudança de conexões de rede de uma forma mais flexível, pois<br />

ele pode controlar a ativação ou desativação da interface. A MTU (Maximum<br />

Transmission Unit - Unidade de Transmissão Máxima) e o tipo de Ativação <strong>do</strong><br />

Dispositivo também podem ser configura<strong>do</strong>s nessa caixa de diálogo.<br />

Rede básica 351


352 Referência<br />

18.4.2 Modem<br />

No Centro de Controle <strong>do</strong> YaST, acesse a configuração <strong>do</strong> modem em Dispositivos de<br />

Rede. Se o modem não tiver si<strong>do</strong> detecta<strong>do</strong> automaticamente, abra a caixa de diálogo<br />

e faça uma configuração manual. Na caixa de diálogo aberta, digite a interface à qual<br />

o modem está conecta<strong>do</strong> em Modem.<br />

Figura 18.4 Configuração <strong>do</strong> modem<br />

Se você estiver usan<strong>do</strong> um PBX, talvez precise digitar um prefixo de discagem.<br />

Normalmente, é um zero. Consulte as instruções que acompanham o PBX para descobrir.<br />

Selecione também se usará a discagem por tom ou pulso, se o alto-falante estará liga<strong>do</strong><br />

e se o modem aguardará até detectar um tom de discagem. A última opção não deve<br />

ser habilitada se o modem estiver conecta<strong>do</strong> a um intercâmbio.<br />

Em Detalhes, configure a taxa de transmissão e as strings de inicialização <strong>do</strong> modem.<br />

Somente mude essas configurações se seu modem não tiver si<strong>do</strong> detecta<strong>do</strong><br />

automaticamente ou se ele exigir configurações especiais para o funcionamento da<br />

transmissão de da<strong>do</strong>s. Esse é basicamente o caso <strong>do</strong>s adapta<strong>do</strong>res <strong>do</strong> terminal ISDN.<br />

Saia dessa caixa de diálogo clican<strong>do</strong> em OK. Para delegar controle sobre o modem para<br />

um usuário normal, sem permissões de root, ative Controla<strong>do</strong> pelo Usuário. Dessa<br />

forma, um usuário sem permissões de administra<strong>do</strong>r poderá ativar ou desativar uma<br />

interface. Em Dial Prefix Expressão Regular, especifique uma expressão regular. O


Prefixo de Discagem no KInternet, que pode ser modifica<strong>do</strong> por um usuário normal,<br />

precisa corresponder a essa expressão regular. Se esse campo for deixa<strong>do</strong> vazio, o<br />

usuário não poderá configurar um Prefixo de Discagem diferente sem as permissões<br />

de administra<strong>do</strong>r.<br />

Na caixa de diálogo a seguir, selecione o ISP (Internet Service Provider - Prove<strong>do</strong>r de<br />

Serviços da Internet). Para escolher a partir de uma lista de ISPs predefinida operacional<br />

em seu país, selecione País. Ou então, clique em Novo para abrir uma caixa de diálogo<br />

em que você fornecerá os da<strong>do</strong>s <strong>do</strong> seu ISP. Isso inclui um nome para a conexão de<br />

discagem e o ISP, assim como o login e a senha forneci<strong>do</strong>s pelo seu ISP. Habilite<br />

Sempre Solicitar Senha para que a senha seja solicitada sempre que você se conectar.<br />

Na última caixa de diálogo, especifique as opções de conexão adicionais:<br />

Discagem sob Demanda<br />

Se você habilitar a discagem sob demanda, configure, pelo menos, um servi<strong>do</strong>r de<br />

nomes.<br />

Modificar DNS quan<strong>do</strong> conecta<strong>do</strong><br />

Essa opção é habilitada por padrão, com o efeito de que o endereço <strong>do</strong> servi<strong>do</strong>r de<br />

nomes é atualiza<strong>do</strong> sempre que você se conectar à Internet.<br />

Receber DNS automaticamente<br />

Se o prove<strong>do</strong>r não transmitir seu servi<strong>do</strong>r de nomes de <strong>do</strong>mínio após a conexão,<br />

desabilite essa opção e digite os da<strong>do</strong>s <strong>do</strong> DNS manualmente.<br />

Mo<strong>do</strong> Estúpi<strong>do</strong><br />

Essa opção é habilitada por padrão. Com ela, prompts de entrada envia<strong>do</strong>s pelo<br />

servi<strong>do</strong>r <strong>do</strong> ISP são ignora<strong>do</strong>s para que não interfiram no processo de conexão.<br />

Interface Externa <strong>do</strong> Firewall e Reiniciar Firewall<br />

A seleção dessas opções habilita o <strong>SUSE</strong>firewall2, que protege contra ataques<br />

externos enquanto você está conecta<strong>do</strong> à Internet.<br />

Tempo Ocioso (em segun<strong>do</strong>s)<br />

Com essa opção, especifique um perío<strong>do</strong> de inatividade da rede depois <strong>do</strong> qual o<br />

modem se desconectará automaticamente.<br />

Detalhes IP<br />

Essa opção abre a caixa de diálogo de configuração de endereço. Se o ISP não<br />

designar um endereço IP dinâmico ao host, desabilite Endereço IP Dinâmico e,<br />

Rede básica 353


354 Referência<br />

depois, digite o endereço IP local <strong>do</strong> host e o endereço IP remoto. Peça essa<br />

informação ao ISP. Habilite Rota Padrão e feche a caixa de diálogo, selecionan<strong>do</strong><br />

OK.<br />

Selecionan<strong>do</strong> Próximo, você retorna à caixa de diálogo original, que exibirá um resumo<br />

da configuração <strong>do</strong> modem. Feche essa caixa de diálogo com Concluir.<br />

18.4.3 ISDN<br />

Use esse módulo para configurar uma ou várias placas ISDN para o seu sistema. Se o<br />

YaST não tiver detecta<strong>do</strong> a placa ISDN, selecione-a manualmente. É possível haver<br />

várias Interfaces, mas diversos ISPs podem ser configura<strong>do</strong>s para uma única interface.<br />

Nas caixas de diálogo subseqüentes, configure as opções de ISDN necessárias para o<br />

funcionamento adequa<strong>do</strong> da placa.<br />

Figura 18.5 Configuração ISDN<br />

Na caixa de diálogo a seguir, mostrada na Figura 18.5, “Configuração ISDN” (p 354),<br />

selecione o protocolo a ser usa<strong>do</strong>. O padrão é Euro-ISDN (EDSS1), mas para<br />

intercâmbios mais antigos ou maiores, selecione 1TR6. Se você estiver nos E.U.A.,<br />

selecione NI1. Selecione seu país no campo relevante. O código de país correspondente<br />

aparecerá no campo próximo a ele. Por fim, forneça seu Código de Área e o Prefixo de<br />

Discagem, se necessário.


Mo<strong>do</strong> de Início define como a interface <strong>do</strong> ISDN deve ser iniciada: Em Tempo de Boot<br />

inicializa o driver <strong>do</strong> ISDN sempre que o sistema for inicializa<strong>do</strong>. Manualmente exige<br />

que você carregue o driver <strong>do</strong> ISDN como root com o coman<strong>do</strong> rcisdn start.<br />

Em Hotplug, usa<strong>do</strong> para dispositivos PCMCIA ou USB, carrega o driver depois que o<br />

dispositivo é conecta<strong>do</strong>. Ao concluir essas configurações, selecione OK.<br />

Na caixa de diálogo a seguir, especifique o tipo de interface para a placa ISDN e adicione<br />

ISPs a uma interface existente. As interfaces podem ser <strong>do</strong> tipo SyncPPP ou RawIP,<br />

mas a maioria <strong>do</strong>s ISPs opera no mo<strong>do</strong> SyncPPP, descrito abaixo.<br />

Figura 18.6 Configuração da interface ISDN<br />

O número a ser digita<strong>do</strong> para Meu Número Telefônico dependerá da sua configuração<br />

específica:<br />

Placa ISDN conectada diretamente à saída <strong>do</strong> fone<br />

Uma linha ISDN padrão fornece três números telefônicos (chama<strong>do</strong>s MSNs ou<br />

multiple subscriber numbers). Se o assinante pediu mais números, poderá ter até<br />

10. Um desses MSNs precisa ser digita<strong>do</strong> aqui, mas sem o código de área. Se você<br />

digitar o número erra<strong>do</strong>, o opera<strong>do</strong>r de fone retornará automaticamente ao primeiro<br />

MSN designa<strong>do</strong> à sua linha ISDN.<br />

Placa ISDN conectada a um PBX<br />

Novamente, a configuração poderá variar de acor<strong>do</strong> com o equipamento instala<strong>do</strong>:<br />

Rede básica 355


356 Referência<br />

1. PBX menores, cria<strong>do</strong>s para fins <strong>do</strong>mésticos, normalmente usam o protocolo<br />

Euro-ISDN (EDSS1) para chamadas internas. Esses intercâmbios possuem<br />

um barramento S0 interno e usam números internos para o equipamento<br />

conecta<strong>do</strong> a eles.<br />

Use um <strong>do</strong>s números internos como o seu MSN. Você deveria usar, pelo<br />

menos, um <strong>do</strong>s MSNs de intercâmbio habilita<strong>do</strong>s para discagem direta para<br />

fora. Se não funcionar, tente um único zero. Para obter mais informações,<br />

consulte a <strong>do</strong>cumentação que acompanha o intercâmbio <strong>do</strong> fone.<br />

2. Intercâmbios de fone maiores cria<strong>do</strong>s para negócios normalmente usam o<br />

protocolo 1TR6 para chamadas internas. Seus MSNs são chama<strong>do</strong>s EAZ e,<br />

geralmente, correspondem ao número de discagem direta. Para a configuração<br />

no Linux, deverá ser suficiente digitar o último dígito de EAZ. Como última<br />

opção, tente cada um <strong>do</strong>s dígitos de 1 a 9.<br />

Para que a conexão seja encerrada pouco antes de terminar a próxima unidade de carga,<br />

habilite ChargeHUP. Entretanto, lembre-se de que talvez não funcione com to<strong>do</strong>s os<br />

ISPs. Você também pode habilitar o agrupamento de canais (multilink PPP) selecionan<strong>do</strong><br />

a opção correspondente. Por fim, você pode habilitar o SuSEfirewall2 para o link<br />

selecionan<strong>do</strong> Interface Externa <strong>do</strong> Firewall e Reiniciar Firewall. Para que o usuário<br />

normal sem permissões de administra<strong>do</strong>r possa ativar ou desativar a interface, selecione<br />

a opção Controla<strong>do</strong> pelo Usuário.<br />

Detalhes abre uma caixa de diálogo em que se implementa esquemas de conexão mais<br />

complexos, pouco relevantes para usuários <strong>do</strong>mésticos. Saia da caixa de diálogo Detalhes<br />

selecionan<strong>do</strong> OK.<br />

Na caixa de diálogo seguinte, configure endereços IP. Se o prove<strong>do</strong>r não tiver forneci<strong>do</strong><br />

um IP estático, selecione Endereço IP Dinâmico. Caso contrário, use os campos<br />

forneci<strong>do</strong>s para digitar o endereço IP local e o remoto <strong>do</strong> seu host, de acor<strong>do</strong> com as<br />

especificações <strong>do</strong> ISP. Se a interface for a rota padrão para a Internet, selecione Rota<br />

Padrão. Cada host só pode ter uma interface configurada como a rota padrão. Saia<br />

dessa caixa de diálogo selecionan<strong>do</strong> Próximo.<br />

A caixa de diálogo a seguir permite que você defina seu país e selecione um ISP. Os<br />

ISPs incluí<strong>do</strong>s na lista são apenas prove<strong>do</strong>res <strong>do</strong> tipo chamada-por-chamada. Se seu<br />

ISP não estiver na lista, selecione Novo. A caixa de diálogo Parâmetros <strong>do</strong> Prove<strong>do</strong>r<br />

será aberta para que você digite to<strong>do</strong>s os detalhes <strong>do</strong> seu ISP. Ao digitar o número


telefônico, não inclua espaços vazios nem vírgulas entre os dígitos. Por fim, digite seu<br />

login e senha, conforme forneci<strong>do</strong> pelo ISP. Ao terminar, selecione Próximo.<br />

Para usar Discagem sob Demanda em uma estação de trabalho independente, especifique<br />

também o servi<strong>do</strong>r de nomes (servi<strong>do</strong>r DNS). A maioria <strong>do</strong>s ISPs suporta DNS dinâmico,<br />

o que significa que o endereço IP de um servi<strong>do</strong>r de nomes é envia<strong>do</strong> pelo ISP toda<br />

vez que você se conecta. Entretanto, para uma única estação de trabalho, é preciso<br />

fornecer um endereço marca<strong>do</strong>r, como 192.168.22.99. Se o ISP não suportar um<br />

DNS dinâmico, especifique os endereços IP <strong>do</strong> servi<strong>do</strong>r de nomes <strong>do</strong> ISP. Se desejar,<br />

especifique um tempo de espera para a conexão — o perío<strong>do</strong> de inatividade da rede<br />

(em segun<strong>do</strong>s) depois <strong>do</strong> qual a conexão deve encerrar automaticamente. Confirme as<br />

configurações com Próximo. O YaST exibe um resumo das interfaces configuradas.<br />

Para ativar todas essas configurações, selecione Concluir.<br />

18.4.4 Modem a cabo<br />

Em alguns países, como a Áustria e os E.U.A., é bastante comum acessar a Internet<br />

pela rede de TV a cabo. O assinante de TV a cabo normalmente recebe um modem,<br />

que é conecta<strong>do</strong> à saída <strong>do</strong> cabo da TV em uma ponta e à placa de rede <strong>do</strong> computa<strong>do</strong>r<br />

na outra (usan<strong>do</strong> um cabo de par trança<strong>do</strong> 10Base-TG). O modem a cabo então fornece<br />

uma conexão dedicada à Internet com um endereço IP fixo.<br />

Dependen<strong>do</strong> das instruções fornecidas pelo ISP, ao configurar a placa de rede, selecione<br />

Configuração Automática de Endereço (via DHCP) ou Configuração de Endereço<br />

Estático. A maioria <strong>do</strong>s prove<strong>do</strong>res usa atualmente o DHCP. Um endereço IP estático<br />

freqüentemente vem como parte de uma conta comercial especial.<br />

18.4.5 DSL<br />

Para configurar o dispositivo DSL, selecione o módulo DSL na seção Dispositivos de<br />

Rede <strong>do</strong> YaST. O módulo YaST consiste em várias caixas de diálogo nas quais<br />

configura-se os parâmetros de links DSL com base em um <strong>do</strong>s seguintes protocolos:<br />

• PPPoE (PPP sobre Ethernet)<br />

• PPPoATM (PPP sobre ATM)<br />

• CAPI para ADSL (Placas Fritz)<br />

Rede básica 357


• PPTP (Point-to-Point Tunneling Protocol) — Áustria<br />

A configuração de uma conexão DSL baseada no PPPoE ou no PPTP exige que a placa<br />

de rede correspondente já esteja configurada de forma correta. Se isso ainda não foi<br />

feito, primeiro configure a placa, selecionan<strong>do</strong> Configurar Placas de Rede (consulte a<br />

Seção 18.4.1, “Configuran<strong>do</strong> a placa de rede com o YaST” (p 349)). No caso de um link<br />

DSL, os endereços podem ser designa<strong>do</strong>s automaticamente, mas não via DHCP, e é<br />

por isso que você não deve habilitar a opção Configuração Automática de Endereço<br />

(via DHCP). Em vez disso, digite um endereço estático simula<strong>do</strong> para a interface, como<br />

192.168.22.1. Em Máscara de Sub-rede, digite 255.255.255.0. Se estiver<br />

configuran<strong>do</strong> uma estação de trabalho independente, deixe a opção Gateway Padrão<br />

vazia.<br />

DICA<br />

358 Referência<br />

Os valores em Endereço IP e Máscara de Sub-rede são apenas marca<strong>do</strong>res. Eles<br />

são necessários apenas para inicializar a placa de rede e não representam o<br />

link DSL.<br />

Figura 18.7 Configuração DSL<br />

Para iniciar a configuração DSL (consulte a Figura 18.7, “Configuração DSL” (p 358)),<br />

primeiro selecione o mo<strong>do</strong> PPP e a placa ethernet à qual o modem DSL está conecta<strong>do</strong>


(normalmente, é a eth0). Então, use a opção Ativação <strong>do</strong> Dispositivo, para especificar<br />

se o link DSL deve ser estabeleci<strong>do</strong> durante o processo de inicialização. Clique em<br />

Controla<strong>do</strong> pelo Usuário, para autorizar o usuário normal sem permissões de root para<br />

ativar ou desativar a interface com o KInternet. A caixa de diálogo também permite<br />

que você selecione seu país e escolha um ISP entre os que nele operam. Os detalhes de<br />

quaisquer caixas de diálogo subseqüentes da configuração DSL dependem das opções<br />

configuradas até agora. É por essa razão que eles são apenas rapidamente menciona<strong>do</strong>s<br />

nos parágrafos a seguir. Para obter detalhes sobre as opções disponíveis, leia a ajuda<br />

detalhada disponível nas caixas de diálogo.<br />

Para usar Discagem sob Demanda em uma estação de trabalho independente, especifique<br />

também o servi<strong>do</strong>r de nomes (servi<strong>do</strong>r DNS). A maioria <strong>do</strong>s ISPs suporta DNS dinâmico<br />

— o endereço IP de um servi<strong>do</strong>r de nomes é envia<strong>do</strong> pelo ISP toda vez que você se<br />

conecta. Entretanto, para uma única estação de trabalho, é preciso fornecer um endereço<br />

marca<strong>do</strong>r, como 192.168.22.99. Se o ISP não suportar um DNS dinâmico,<br />

especifique o endereço IP <strong>do</strong> servi<strong>do</strong>r de nomes forneci<strong>do</strong> pelo ISP.<br />

Tempo Ocioso (em segun<strong>do</strong>s) define um perío<strong>do</strong> de inatividade da rede depois <strong>do</strong> qual<br />

a conexão é encerrada automaticamente. Um valor de tempo de espera razoável fica<br />

entre 60 e 300 segun<strong>do</strong>s. Se a opção Discagem sob Demanda estiver desabilitada, talvez<br />

seja útil configurar o tempo de espera como zero para evitar um desligamento<br />

automático.<br />

A configuração <strong>do</strong> T-DSL é muito parecida com a <strong>do</strong> DSL. Basta selecionar T-Online<br />

como seu prove<strong>do</strong>r e o YaST abrirá a caixa de diálogo de configuração <strong>do</strong> T-DSL.<br />

Nessa caixa de diálogo, forneça algumas informações adicionais necessárias para o T-<br />

DSL — o ID da linha, o número <strong>do</strong> T-Online, o código de usuário e sua senha. Tu<strong>do</strong><br />

isso deve estar incluí<strong>do</strong> nas informações que você recebeu após se inscrever no T-DSL.<br />

18.5 Gerencian<strong>do</strong> conexões de rede<br />

com o NetworkManager<br />

O NetworkManager é a solução ideal para uma estação de trabalho móvel. Com o<br />

NetworkManager, não é necessário preocupar-se em configurar interfaces de rede e<br />

alternar entre redes quan<strong>do</strong> você estiver em trânsito. Ele pode conectar-se<br />

automaticamente a redes WLAN conhecidas. Se houver duas ou mais possibilidades<br />

de conexão, ele pode conectar-se à mais rápida.<br />

Rede básica 359


360 Referência<br />

NOTA: NetworkManager e SCPM<br />

Não use o NetworkManager junto com o SCPM quan<strong>do</strong> perfis SCPM também<br />

mudarem configurações de rede. Para usar o SCPM e o NetworkManager ao<br />

mesmo tempo, desabilite o recurso de rede na configuração SCPM.<br />

O NetworkManager não é a solução adequada nos seguintes casos:<br />

• O computa<strong>do</strong>r tem um endereço estático.<br />

• Você deseja usar mais de um prove<strong>do</strong>r de discagem para uma interface.<br />

• Você deseja usar a criptografia WPA-EAP na sua conexão WLAN.<br />

• O computa<strong>do</strong>r é um rotea<strong>do</strong>r de sua rede.<br />

• O computa<strong>do</strong>r fornece serviços de rede para outros computa<strong>do</strong>res de sua rede, por<br />

exemplo, se ele for um servi<strong>do</strong>r DHCP ou DNS.<br />

18.5.1 Controlan<strong>do</strong> o NetworkManager<br />

Para iniciar o NetworkManager, habilite o NetworkManager no módulo YaST <strong>do</strong><br />

dispositivo de rede. Como o NetworkManager não requer uma configuração de rede<br />

padrão, a configuração <strong>do</strong> YaST torna-se inativa. O NetworkManager automaticamente<br />

escolhe a melhor rede disponível, mas ele pode conectar-se automaticamente apenas a<br />

uma rede conhecida. Na primeira conexão a uma rede, use o applet <strong>do</strong> NetworkManager.<br />

Se a rede exigir informações adicionais, como nome de usuário, senha ou chave de<br />

criptografia, o NetworkManager vai solicitá-las.<br />

O KDE e o GNOME têm seus próprios applets para o NetworkManager. Um applet<br />

apropria<strong>do</strong> deve ser inicia<strong>do</strong> automaticamente com o ambiente de área de trabalho. O<br />

applet é então mostra<strong>do</strong> como um ícone na bandeja <strong>do</strong> sistema. As funções de ambos<br />

os applets são semelhantes, mas as interfaces são diferentes. Eles podem ser usa<strong>do</strong>s em<br />

outros ambientes gráficos com suporte de bandeja de sistema padrão.<br />

O applet KNetworkManager<br />

O KNetworkManager é um applet KDE para controlar o NetworkManager. Se ele não<br />

estiver em execução, inicie-o com o coman<strong>do</strong> knetworkmanager. Quan<strong>do</strong> ele estiver


em execução, um ícone azul da Terra será exibi<strong>do</strong> na bandeja de sistema. Clicar o botão<br />

direito <strong>do</strong> mouse no ícone abre o menu <strong>do</strong> KNetworkManager com vários coman<strong>do</strong>s<br />

para gerenciar conexões de rede.<br />

O menu contém conexões de rede disponíveis, ambos dispositivos com e sem fio. Se<br />

você mantiver o cursor <strong>do</strong> mouse sobre eles, os detalhes serão exibi<strong>do</strong>s. A conexão<br />

atualmente usada está marcada no menu. A força <strong>do</strong> sinal de redes sem fio também é<br />

mostrada no menu. Redes sem fio criptografadas são marcadas com um ícone de cadea<strong>do</strong><br />

azul. Para conectar-se a uma rede criptografada, escolha-a no menu. Na caixa de diálogo<br />

exibida, escolha o tipo de Criptografia usada pela rede e digite a Frase secreta ou<br />

Chave apropriada.<br />

Para conectar-se a uma rede que não transmite seu identifica<strong>do</strong>r de conjunto de serviços<br />

(ESSID) e, assim, não pode ser detectada automaticamente, escolha Conectar-se a<br />

Outra Rede sem Fio. Na caixa de diálogo exibida, digite o ESSID e defina parâmetros<br />

de criptografia, se necessário.<br />

Para acessar conexões de discagem, escolha Conexões por Discagem. Quan<strong>do</strong> conexões<br />

de discagem já tiverem si<strong>do</strong> definidas, inicie a conexão clican<strong>do</strong> na conexão a ser usada.<br />

Configurar Conexões por Discagem abre o YaST, onde você pode definir uma nova<br />

conexão de discagem.<br />

Para desabilitar qualquer conexão de rede ativa, escolha Opções → Alternar para Mo<strong>do</strong><br />

Off-line no menu <strong>do</strong> KNetworkManager. Para habilitar novamente a conexão, escolha<br />

Opções → Alternar para Mo<strong>do</strong> On-line. Para desabilitar conexões de rede sem fio,<br />

escolha Opções → Desabilitar Conexão sem Fio no menu <strong>do</strong> KNetworkManager. Para<br />

habilitar novamente conexões sem fio, escolha Opções → Habilitar Conexão sem Fio.<br />

Habilitar a rede leva alguns segun<strong>do</strong>s.<br />

O Applet GNOME NetworkManager<br />

O GNOME também tem o seu próprio applet para o NetworkManager. Se ele não estiver<br />

em execução, inicie-o com o coman<strong>do</strong> nm-applet. Quan<strong>do</strong> ele estiver em execução,<br />

um ícone será exibi<strong>do</strong> na bandeja de sistema. A aparência <strong>do</strong> ícone dependerá <strong>do</strong> esta<strong>do</strong><br />

da conexão de rede. Se você não souber o que significa o ícone, mantenha o cursor <strong>do</strong><br />

mouse sobre ele até que uma explicação seja exibida.<br />

Clique o botão esquer<strong>do</strong> <strong>do</strong> mouse no ícone <strong>do</strong> applet para mostrar um menu com as<br />

redes disponíveis. A conexão atualmente usada está marcada no menu. A força <strong>do</strong> sinal<br />

de redes sem fio também é mostrada no menu. Redes sem fio criptografadas são<br />

Rede básica 361


362 Referência<br />

marcadas com um ícone de escu<strong>do</strong>. Para conectar-se a uma rede criptografada, escolhaa<br />

no menu. Na caixa de diálogo exibida, escolha o tipo de Criptografia usada pela rede<br />

e digite a Frase secreta ou Chave apropriada.<br />

Para conectar-se a uma rede que não transmite o seu identifica<strong>do</strong>r de conjunto de serviços<br />

(ESSID) e, assim, não pode ser detectada automaticamente, clique o botão esquer<strong>do</strong><br />

<strong>do</strong> mouse no ícone e escolha Conectar-se a Outra Rede sem Fio. Na caixa de diálogo<br />

exibida, digite o ESSID e defina parâmetros de criptografia se necessário.<br />

Para desabilitar a rede, clique o botão direito <strong>do</strong> mouse no ícone <strong>do</strong> applet e desmarque<br />

Habilitar Rede. Para desabilitar a rede sem fio, clique o botão direito <strong>do</strong> mouse no ícone<br />

<strong>do</strong> applet e desmarque Habilitar Conexão sem Fio.<br />

Para obter informações sobre a conexão atual (incluin<strong>do</strong> o endereço de hardware, o<br />

endereço IP e a interface usada), clique o botão direito <strong>do</strong> mouse no ícone <strong>do</strong> applet e<br />

escolha Informações de Conexão no menu.<br />

18.5.2 Mais informações<br />

Mais informações sobre o NetworkManager e o D-BUS podem ser encontradas nos<br />

seguintes sites e diretórios:<br />

• http://www.gnome.org/projects/NetworkManager/ — página de<br />

projeto <strong>do</strong> NetworkManager<br />

• http://www.freedesktop.org/S<strong>of</strong>tware/dbus — página de projeto<br />

<strong>do</strong> D-BUS<br />

• /usr/share/<strong>do</strong>c/packages/NetworkManager<br />

18.6 Configuran<strong>do</strong> uma conexão de<br />

rede manualmente<br />

A configuração manual <strong>do</strong> s<strong>of</strong>tware de rede deve ser sempre a última alternativa. É<br />

recomendável usar o YaST. Entretanto, essas informações de base sobre a configuração<br />

de rede também podem ajudar você na utilização <strong>do</strong> YaST.


Todas as placas de rede embutidas e hotplug (PCMCIA, USB e algumas PCI) são<br />

detectadas e configuradas através <strong>do</strong> hotplug. O sistema identifica uma placa de rede<br />

de duas formas diferentes: primeira, como um dispositivo físico e, segunda, como uma<br />

interface. A inserção ou detecção de um dispositivo aciona um evento hotplug. Esse<br />

evento de hotplug aciona a inicialização <strong>do</strong> dispositivo com o script hwup. Quan<strong>do</strong> a<br />

placa de rede é inicializada como uma nova interface de rede, o kernel gera outro evento<br />

de hotplug que aciona a configuração da interface com ifup.<br />

A interface de números kernel define nomes de acor<strong>do</strong> com a ordem temporal de seus<br />

registros. A seqüência de inicialização é decisiva para a designação de nomes. Se alguma<br />

das muitas placas de rede falhar, a numeração de todas as placas inicializadas<br />

subseqüentemente será deslocada. Para placas reais que aceitam hotplug, o que importa<br />

é a ordem em que os dispositivos são conecta<strong>do</strong>s.<br />

Para obter uma configuração flexível, a configuração <strong>do</strong> dispositivo (hardware) e a<br />

interface foram separadas e o mapeamento das configurações para dispositivos e<br />

interfaces não é mais gerencia<strong>do</strong> com base nos nomes de interface. As configurações<br />

de dispositivos estão localizadas em /etc/sysconfig/hardware/hwcfg-*.<br />

As configurações de interface estão localizadas em /etc/sysconfig/network/<br />

ifcfg-*. Os nomes das configurações são designa<strong>do</strong>s de forma que descrevam os<br />

dispositivos e as interfaces aos quais estão associa<strong>do</strong>s. Como o mapeamento de drivers<br />

anterior exigia nomes de interface estáticos, esse tipo de mapeamento não pode mais<br />

ocorrer em /etc/modprobe.conf. No novo conceito, as entradas de álias desse<br />

arquivo causariam efeitos colaterais indesejáveis.<br />

Os nomes de configuração — tu<strong>do</strong> depois de hwcfg- ou ifcfg- — podem descrever<br />

os dispositivos por meio <strong>do</strong> slot, de um ID específico de dispositivo ou <strong>do</strong> nome da<br />

interface. Por exemplo, o nome de configuração para uma placa PCI poderia ser<br />

bus-pci-0000:02:01.0 (slot PCI) ou vpid-0x8086-0x1014-0x0549 (ID<br />

<strong>do</strong> produto e fornece<strong>do</strong>r). O nome da interface associada poderia ser<br />

bus-pci-0000:02:01.0 ou wlan-id-00:05:4e:42:31:7a (endereço<br />

MAC).<br />

Para designar uma determinada configuração de rede a qualquer placa de determina<strong>do</strong><br />

tipo (em que apenas uma é inserida de cada vez), em vez de selecionar uma determinada<br />

placa, escolha nomes de configuração menos específicos. Por exemplo, bus-pcmcia<br />

seria usa<strong>do</strong> para todas as placas PCMCIA. Por outro la<strong>do</strong>, os nomes podem ser limita<strong>do</strong>s<br />

por um tipo de interface precedente. Por exemplo, wlan-bus-usb seria designa<strong>do</strong><br />

a placas WLAN conectadas a uma porta USB.<br />

Rede básica 363


364 Referência<br />

O sistema sempre usa a configuração que melhor descreve uma interface ou o dispositivo<br />

que a fornece. A pesquisa da configuração mais adequada é executada por getcfg.<br />

A saída de getcfg fornece todas as informações que podem ser usadas para descrever<br />

um dispositivo. Detalhes referentes à especificação <strong>do</strong>s nomes de configuração estão<br />

disponíveis na página de manual <strong>do</strong> getcfg.<br />

Com o méto<strong>do</strong> descrito, uma interface de rede é configurada corretamente, mesmo que<br />

os dispositivos da rede nem sempre sejam inicializa<strong>do</strong>s na mesma ordem. Entretanto,<br />

o nome da interface ainda dependerá da seqüência de inicialização. Há duas formas de<br />

garantir o acesso confiável à interface de uma determinada placa de rede:<br />

• getcfg-interface nome da configuração retorna o nome da interface<br />

de rede associada. Portanto, o nome de configuração, como firewall, dhcpd,<br />

roteamento ou várias interfaces de rede virtuais (túneis), pode ser digita<strong>do</strong> em<br />

alguns arquivos de configuração, em vez <strong>do</strong> nome da interface, que não é persistente.<br />

• Nomes de interface persistentes são atribuí<strong>do</strong>s automaticamente a cada interface.<br />

Você pode ajustá-los conforme suas necessidades. Quan<strong>do</strong> criar nomes de interface,<br />

proceda conforme descrito no /etc/udev/rules.d/30-net_persistent<br />

_names.rules. Entretanto, o nome persistente nomep não deve ser igual ao<br />

que será automaticamente designa<strong>do</strong> pelo kernel. Assim, eth*, tr*, wlan* e<br />

assim por diante não são permiti<strong>do</strong>s. Em vez disso, use net* ou nomes descritivos,<br />

como externo, interno ou dmz. Verifique se o mesmo nome de interface não<br />

está sen<strong>do</strong> usa<strong>do</strong> duas vezes. Os caracteres permiti<strong>do</strong>s em nomes de interface se<br />

restringem a [a-zA-Z0-9]. Um nome persistente só pode ser designa<strong>do</strong> a uma<br />

interface imediatamente depois de seu registro, o que significa que o driver da placa<br />

de rede precisa ser recarrega<strong>do</strong> ou a descrição <strong>do</strong> dispositivo hwup deve ser<br />

executada. O coman<strong>do</strong> rcnetwork restart não é suficiente para essa<br />

finalidade.<br />

IMPORTANTE: Usan<strong>do</strong> nomes de interface persistentes<br />

O uso de nomes de interface persistentes não foi testa<strong>do</strong> em todas as áreas.<br />

Portanto, alguns aplicativos talvez não sejam capazes de controlar nomes<br />

de interface seleciona<strong>do</strong>s livremente.<br />

ifup requer uma interface existente, pois não inicializa o hardware. A inicialização<br />

<strong>do</strong> hardware é controlada pelo coman<strong>do</strong> hwup (executa<strong>do</strong> por hotplug ou<br />

coldplug). Quan<strong>do</strong> um dispositivo for inicializa<strong>do</strong>, ifup será executa<strong>do</strong><br />

automaticamente para a nova interface, através <strong>do</strong> hotplug, e a interface será


configurada se o mo<strong>do</strong> de início for onboot, hotplug ou auto e o serviço de rede<br />

tiver si<strong>do</strong> inicia<strong>do</strong>. Anteriormente, o coman<strong>do</strong> ifup nomedainterface acionava<br />

a inicialização <strong>do</strong> hardware. Agora o procedimento foi inverti<strong>do</strong>. Primeiro, o componente<br />

de hardware é inicializa<strong>do</strong> e, depois, ocorrem todas as outras ações. Dessa forma, um<br />

número variável de dispositivos pode sempre ser configura<strong>do</strong> da melhor forma possível<br />

com um conjunto de configurações existente.<br />

A Tabela 18.5, “Scripts de configuração de rede manual” (p 365) resume os scripts mais<br />

importantes envolvi<strong>do</strong>s na configuração de rede. Onde for possível, os scripts são<br />

distingui<strong>do</strong>s pelo hardware e pela interface.<br />

Tabela 18.5 Scripts de configuração de rede manual<br />

Estágio da<br />

configuração<br />

Hardware<br />

Interface<br />

Interface<br />

Coman<strong>do</strong><br />

hw{up,<strong>do</strong>wn,status}<br />

getcfg<br />

if{up,<strong>do</strong>wn,status}<br />

Função<br />

Os scripts hw* são executa<strong>do</strong>s por um<br />

subsistema hotplug para inicializar um<br />

dispositivo, desfazer a inicialização ou<br />

consultar o status de um dispositivo.<br />

Há mais informações disponíveis na<br />

página de manual <strong>do</strong> hwup.<br />

getcfg pode ser usa<strong>do</strong> para consultar<br />

o nome da interface associa<strong>do</strong> a um<br />

nome de configuração ou a uma<br />

descrição de hardware. Há mais<br />

informações disponíveis na página de<br />

manual <strong>do</strong> getcfg.<br />

Os scripts if* iniciam interfaces de<br />

rede existentes ou retornam o status da<br />

interface especificada. Há mais<br />

informações disponíveis na página <strong>do</strong><br />

manual de ifup.<br />

Há mais informações disponíveis sobre hotplug e nomes de dispositivos persistentes<br />

no Capítulo 12, Gerenciamento de dispositivo de kernel dinâmico com udev (p 261).<br />

Rede básica 365


366 Referência<br />

18.6.1 Arquivos de configuração<br />

Esta seção fornece uma visão geral <strong>do</strong>s arquivos de configuração de rede e explica sua<br />

finalidade e formato usa<strong>do</strong>.<br />

/etc/syconfig/hardware/hwcfg-*<br />

Esses arquivos contêm as configurações de hardware de placas de rede e de outros<br />

dispositivos. Eles contêm os parâmetros necessários, como o módulo kernel, mo<strong>do</strong> de<br />

início e associações de script. Consulte a página de manual <strong>do</strong> hwup para obter mais<br />

detalhes. Independentemente <strong>do</strong> hardware existente, as configurações<br />

hwcfg-static-* são aplicadas quan<strong>do</strong> o coldplug é inicia<strong>do</strong>.<br />

/etc/sysconfig/network/ifcfg-*<br />

Esses arquivos contêm as configurações da interface de rede. Eles incluem informações,<br />

como o mo<strong>do</strong> de início e o endereço IP. Parâmetros possíveis são descritos na página<br />

de manual <strong>do</strong> ifup. Além disso, todas as variáveis <strong>do</strong>s arquivos dhcp, wireless<br />

e config podem ser usadas nos arquivos ifcfg-* se uma configuração geral for<br />

usada somente para uma interface.<br />

/etc/sysconfig/network/config, dhcp,<br />

wireless<br />

O arquivo config contém configurações gerais para o desempenho de ifup, if<strong>do</strong>wn<br />

e ifstatus. dhcp contém configurações para DHCP e wireless para placas LAN<br />

sem fio. As variáveis em to<strong>do</strong>s os três arquivos de configuração são comentadas e<br />

também podem ser usadas nos arquivos ifcfg-*, em que são tratadas com prioridade<br />

mais alta.<br />

/etc/sysconfig/network/routes,ifroute-*<br />

O roteamento estático <strong>do</strong>s pacotes TCP/IP é determina<strong>do</strong> aqui. Todas as rotas estáticas<br />

exigidas pelas várias tarefas <strong>do</strong> sistema podem ser inseridas no arquivo /etc/<br />

sysconfig/network/routes: rotas para um host, rotas para um host através de<br />

um gateway e rotas para uma rede. Para cada interface que necessite de um roteamento<br />

individual, defina um arquivo de configuração adicional: /etc/sysconfig/


network/ifroute-*. Substitua * pelo nome da interface. As entradas nos arquivos<br />

de configuração de roteamento terão esta aparência:<br />

# Destination Dummy/Gateway Netmask Device<br />

#<br />

127.0.0.0 0.0.0.0 255.255.255.0 lo<br />

204.127.235.0 0.0.0.0 255.255.255.0 eth0<br />

default 204.127.235.41 0.0.0.0 eth0<br />

207.68.156.51 207.68.145.45 255.255.255.255 eth1<br />

192.168.0.0 207.68.156.51 255.255.0.0 eth1<br />

O destino da rota está na primeira coluna. Essa coluna pode conter o endereço IP de<br />

uma rede ou host ou, no caso de servi<strong>do</strong>res de nomes acessíveis, a rede ou o nome de<br />

host totalmente qualifica<strong>do</strong>.<br />

A segunda coluna contém o gateway padrão ou um gateway através <strong>do</strong> qual um host<br />

ou uma rede pode ser acessada. A terceira coluna contém a máscara de rede para redes<br />

ou hosts atrás de um gateway. Por exemplo, a máscara em 255.255.255.255 para<br />

um host atrás de um gateway.<br />

A quarta coluna só é relevante para redes conectadas ao host local, como loopback,<br />

Ethernet, ISDN, PPP e dispositivo simula<strong>do</strong>. O nome <strong>do</strong> dispositivo deve ser digita<strong>do</strong><br />

aqui.<br />

Uma quinta coluna (opcional) pode ser usada para especificar o tipo de uma rota. As<br />

colunas desnecessárias devem conter um sinal de subtração - para garantir que o<br />

analisa<strong>do</strong>r interpretará o coman<strong>do</strong> corretamente. Para obter mais detalhes, consulte a<br />

página de manual das rotas(5).<br />

/etc/resolv.conf<br />

O <strong>do</strong>mínio ao qual o host pertence é especifica<strong>do</strong> neste arquivo (palavra-chave search).<br />

Também está lista<strong>do</strong> o status <strong>do</strong> endereço <strong>do</strong> servi<strong>do</strong>r de nomes para acesso (palavrachave<br />

nameserver). Vários nomes de <strong>do</strong>mínios podem ser especifica<strong>do</strong>s. Durante<br />

a resolução de um nome não totalmente qualifica<strong>do</strong>, uma tentativa de gerar um nome<br />

será feita, anexan<strong>do</strong> as entradas de pesquisa individuais. Use vários servi<strong>do</strong>res de<br />

nomes digitan<strong>do</strong> várias linhas, todas iniciadas pelo servi<strong>do</strong>r de nomes. Preceda<br />

os comentários com sinais #. O YaST insere o servi<strong>do</strong>r de nomes especifica<strong>do</strong> neste<br />

arquivo. O Exemplo 18.5, “/etc/resolv.conf” (p 368) mostra como a aparência<br />

de /etc/resolv.conf poderá ser.<br />

Rede básica 367


368 Referência<br />

Exemplo 18.5 /etc/resolv.conf<br />

# Our <strong>do</strong>main<br />

search example.com<br />

#<br />

# We use sun (192.168.0.20) as nameserver<br />

nameserver 192.168.0.20<br />

Alguns serviços, como pppd (wvdial), ipppd (isdn), dhcp (dhcpcd e<br />

dhclient), pcmcia e hotplug modificam o arquivo /etc/resolv.conf<br />

através <strong>do</strong> script modify_resolvconf. Se o arquivo /etc/resolv.conf tiver<br />

si<strong>do</strong> temporariamente modifica<strong>do</strong> por esse script, ele conterá um comentário predefini<strong>do</strong><br />

com informações sobre o serviço que o modificou, o local onde foi feito o backup <strong>do</strong><br />

arquivo original e como desligar o mecanismo de modificação automática. Se /etc/<br />

resolv.conf for modifica<strong>do</strong> várias vezes, o arquivo incluirá modificações de forma<br />

aninhada. Isso pode ser reverti<strong>do</strong> de forma completa, mesmo que essa reversão ocorra<br />

em uma ordem diferente da ordem em que as modificações foram introduzidas. Entre<br />

os serviços que talvez necessitem dessa flexibilidade, estão incluí<strong>do</strong>s isdn, pcmcia<br />

e hotplug.<br />

Se um serviço não tiver termina<strong>do</strong> de forma normal e limpa, modify_resolvconf<br />

poderá ser usa<strong>do</strong> para restaurar o arquivo original. Da mesma forma, na inicialização<br />

<strong>do</strong> sistema, uma verificação é feita para ver se há um resolv.conf modifica<strong>do</strong> que<br />

não esteja limpo. Por exemplo, após uma falha no sistema, o resolv.conf original<br />

(não modifica<strong>do</strong>) será restaura<strong>do</strong>.<br />

O YaST usa o coman<strong>do</strong> modify_resolvconf check para descobrir se o resolv<br />

.conf foi modifica<strong>do</strong> e, logo depois, avisa o usuário de que as modificações serão<br />

perdidas após a restauração <strong>do</strong> arquivo. Além disso, o YaST não se baseia no modify<br />

_resolvconf, o que significa que o impacto de modificar o resolv.conf através<br />

<strong>do</strong> YaST é o mesmo que o de qualquer mudança manual. Em ambos os casos, as<br />

mudanças têm um efeito permanente. As modificações solicitadas pelos serviços<br />

menciona<strong>do</strong>s são somente temporárias.<br />

/etc/hosts<br />

Nesse arquivo, mostra<strong>do</strong> no Exemplo 18.6, “/etc/hosts” (p 369), os endereços IP<br />

são designa<strong>do</strong>s a nomes de host. Se nenhum servi<strong>do</strong>r de nomes for implementa<strong>do</strong>, to<strong>do</strong>s<br />

os hosts nos quais uma conexão IP for configurada precisarão ser lista<strong>do</strong>s aqui. Para<br />

cada host, digite uma linha no arquivo com o endereço IP, o nome de host totalmente<br />

qualifica<strong>do</strong> e o nome de host. O endereço IP precisa estar no início da linha e as entradas


separadas por espaços vazios e guias. Comentários são sempre precedi<strong>do</strong>s pelo sinal<br />

#.<br />

Exemplo 18.6 /etc/hosts<br />

127.0.0.1 localhost<br />

192.168.0.20 sun.example.com sun<br />

192.168.0.0 earth.example.com earth<br />

/etc/networks<br />

Aqui, os nomes de rede são converti<strong>do</strong>s em endereços de rede. O formato é semelhante<br />

ao <strong>do</strong> arquivo hosts, exceto que os nomes de rede precedem os endereços. Consulte<br />

o Exemplo 18.7, “/etc/networks” (p 369).<br />

Exemplo 18.7 /etc/networks<br />

loopback 127.0.0.0<br />

localnet 192.168.0.0<br />

/etc/host.conf<br />

A resolução de nomes — conversão <strong>do</strong>s nomes de host e de rede através da biblioteca<br />

resolver— é controlada por esse arquivo. Esse arquivo é usa<strong>do</strong> somente para programas<br />

vincula<strong>do</strong>s a libc4 ou libc5. Para programas glibc atuais, consulte as configurações em<br />

/etc/nsswitch.conf. Um parâmetro precisa estar sempre independente em sua<br />

própria linha. Comentários são precedi<strong>do</strong>s pelo sinal #. A Tabela 18.6, “Parâmetros<br />

para /etc/host.conf” (p 369) mostra os parâmetros disponíveis. Uma amostra de /etc/<br />

host.conf é mostrada no Exemplo 18.8, “ /etc/host.conf ” (p 370).<br />

Tabela 18.6 Parâmetros para /etc/host.conf<br />

order hosts, bind<br />

Especifica em que ordem os serviços são acessa<strong>do</strong>s para a<br />

resolução de nomes. Os argumentos disponíveis são (separa<strong>do</strong>s<br />

por espaços vazios ou vírgulas):<br />

hosts: pesquisa o arquivo /etc/hosts<br />

bind: acessa um servi<strong>do</strong>r de nomes<br />

nis: usa o NIS<br />

Rede básica 369


370 Referência<br />

multi on/<strong>of</strong>f<br />

nospo<strong>of</strong> on<br />

spo<strong>of</strong>alert on/<strong>of</strong>f<br />

trim <strong>do</strong>mainname<br />

Exemplo 18.8 /etc/host.conf<br />

# We have named running<br />

order hosts bind<br />

# Allow multiple addrs<br />

multi on<br />

/etc/nsswitch.conf<br />

Define se um host digita<strong>do</strong> em /etc/hosts pode ter vários<br />

endereços IP.<br />

Esses parâmetros influenciam o spo<strong>of</strong>ing <strong>do</strong> servi<strong>do</strong>r de nomes,<br />

mas, além disso, não exercem qualquer influência na<br />

configuração da rede.<br />

O nome de <strong>do</strong>mínio especifica<strong>do</strong> é separa<strong>do</strong> <strong>do</strong> nome de host<br />

depois da resolução <strong>do</strong> nome de host (desde que o nome de host<br />

inclua o nome de <strong>do</strong>mínio). Essa opção será útil somente se os<br />

nomes de um <strong>do</strong>mínio local estiverem no arquivo /etc/<br />

hosts, mas ainda deverão ser reconheci<strong>do</strong>s com os nomes de<br />

<strong>do</strong>mínio anexa<strong>do</strong>s.<br />

O lançamento <strong>do</strong> GNU C Library 2.0 foi acompanha<strong>do</strong> pelo lançamento <strong>do</strong> NSS (Name<br />

Service Switch). Consulte a página de manual <strong>do</strong> nsswitch.conf(5) e The GNU<br />

C Library Reference Manual (Manual de Referência da Biblioteca GNU C) para obter<br />

mais detalhes.<br />

A ordem das consultas é definida no arquivo /etc/nsswitch.conf. Uma amostra<br />

<strong>do</strong> nsswitch.conf é exibida no Exemplo 18.9, “/etc/nsswitch.conf” (p 371).<br />

Comentários são introduzi<strong>do</strong>s pelo sinal #. Neste exemplo, a entrada no banco de da<strong>do</strong>s<br />

hosts significa que uma solicitação foi enviada para /etc/hosts (arquivos)<br />

através <strong>do</strong> DNS (consulte o Capítulo 20, Domain Name System (Sistema de Nomes de<br />

Domínio) (p 381)).


Exemplo 18.9 /etc/nsswitch.conf<br />

passwd: compat<br />

group: compat<br />

hosts: files dns<br />

networks: dns de arquivos<br />

services: db files<br />

protocols: db files<br />

netgroup: files<br />

automount: files nis<br />

Os “bancos de da<strong>do</strong>s” disponíveis em NSS estão lista<strong>do</strong>s na Tabela 18.7, “Bancos de<br />

da<strong>do</strong>s disponíveis através de /etc/nsswitch.conf” (p 371). Além disso, automount,<br />

bootparams, netmasks e publickey são aguarda<strong>do</strong>s em breve. As opções de<br />

configuração para bancos de da<strong>do</strong>s NSS estão listadas na Tabela 18.8, “Opções de<br />

Configuração para Bancos de Da<strong>do</strong>s “NSS”” (p 372).<br />

Tabela 18.7 Bancos de da<strong>do</strong>s disponíveis através de /etc/nsswitch.conf<br />

aliases<br />

ethers<br />

group<br />

hosts<br />

netgroup<br />

networks<br />

passwd<br />

Álias de correio implementa<strong>do</strong>s por sendmail; consulte<br />

man 5 aliases.<br />

Endereços de Ethernet.<br />

Para grupos de usuários, usa<strong>do</strong>s por getgrent. Consulte<br />

também a página de manual para group.<br />

Para nomes de hosts e endereços IP, usa<strong>do</strong>s por<br />

gethostbyname e funções similares.<br />

Listas de usuários e hosts váli<strong>do</strong>s na rede com a finalidade de<br />

controlar permissões de acesso, consulte a página de manual<br />

<strong>do</strong> netgroup(5).<br />

Nomes e endereços de redes, usa<strong>do</strong>s por getnetent.<br />

Senhas de usuários, usadas por getpwent; consulte a página<br />

de manual <strong>do</strong> passwd(5).<br />

Rede básica 371


protocols<br />

rpc<br />

services<br />

sha<strong>do</strong>w<br />

Protocolos de rede, usa<strong>do</strong>s por getprotoent; consulte a<br />

página de manual <strong>do</strong> protocols(5).<br />

Nomes e endereços de RPC (Remote Procedure Call) usa<strong>do</strong>s<br />

por getrpcbyname e funções similares.<br />

Serviços de rede, usa<strong>do</strong>s por getservent.<br />

Senhas transitórias de usuários, usadas por getspnam;<br />

consulte a página de manual <strong>do</strong> sha<strong>do</strong>w(5).<br />

Tabela 18.8 Opções de Configuração para Bancos de Da<strong>do</strong>s “NSS”<br />

arquivos<br />

db<br />

nis, nisplus<br />

dns<br />

compat<br />

372 Referência<br />

/etc/nscd.conf<br />

arquivos de acesso direto, por exemplo, /etc/aliases<br />

acesso através de um banco de da<strong>do</strong>s<br />

NIS, consulte também o Capítulo 21, Usan<strong>do</strong> o NIS (p 405)<br />

só pode ser usa<strong>do</strong> como uma extensão de hosts e<br />

networks<br />

só pode ser usa<strong>do</strong> como uma extensão de passwd, sha<strong>do</strong>w<br />

e group<br />

Esse arquivo é usa<strong>do</strong> para configurar o nscd (name service cache daemon). Consulte<br />

as páginas de manual de nscd(8) e nscd.conf(5). Por padrão, as entradas <strong>do</strong><br />

sistema de passwd e groups são armazenadas em cache pelo nscd. Isso é importante<br />

para o desempenho de serviços de diretório, como NIS e LDAP, pois, caso contrário,<br />

a conexão de rede precisaria ser usada para cada acesso a nomes ou grupos. hosts<br />

não é armazena<strong>do</strong> em cache por padrão, porque o mecanismo no nscd para armazenar<br />

hosts em cache impede o sistema local de confiar em verificações de pesquisa forward<br />

e reverse. Em vez de solicitar ao nscd para armazenar nomes em cache, configure um<br />

servi<strong>do</strong>r DNS para armazenamento em cache.


Se o armazenamento em cache de passwd estiver ativa<strong>do</strong>, normalmente levará quinze<br />

segun<strong>do</strong>s para que um usuário local recentemente adiciona<strong>do</strong> seja reconheci<strong>do</strong>. Reduza<br />

esse tempo de espera reinician<strong>do</strong> o nscd com o coman<strong>do</strong> rcnscd restart.<br />

/etc/HOSTNAME<br />

Contém o nome de host sem o nome de <strong>do</strong>mínio anexa<strong>do</strong>. Esse arquivo é li<strong>do</strong> por vários<br />

scripts durante a inicialização da máquina. Ele só pode conter uma linha na qual o nome<br />

de host é configura<strong>do</strong>.<br />

18.6.2 Scripts de Inicialização<br />

Além <strong>do</strong>s arquivos de configuração descritos acima, há também vários scripts que<br />

carregam os programas de rede durante a inicialização da máquina. Eles são inicia<strong>do</strong>s<br />

assim que o sistema é alterna<strong>do</strong> para um <strong>do</strong>s runlevels multiusuário. Alguns desses<br />

scripts são descritos na Tabela 18.9, “Alguns scripts de inicialização para programas<br />

de rede” (p 373).<br />

Tabela 18.9 Alguns scripts de inicialização para programas de rede<br />

/etc/init.d/network<br />

/etc/init.d/network<br />

/etc/init.d/portmap<br />

/etc/init.d/<br />

nfsserver<br />

Este script controla a configuração das interfaces de<br />

rede. O hardware já precisa ter si<strong>do</strong> inicializa<strong>do</strong> pelo<br />

/etc/init.d/coldplug (através <strong>do</strong> hotplug).<br />

Se o serviço de rede não tiver si<strong>do</strong> inicia<strong>do</strong>, nenhuma<br />

interface de rede será implementada quan<strong>do</strong> for<br />

inserida pelo hotplug.<br />

Inicia o xinetd. O xinetd pode ser usa<strong>do</strong> para<br />

disponibilizar os serviços <strong>do</strong> servi<strong>do</strong>r no sistema. Por<br />

exemplo, ele pode iniciar o vsftpd sempre que uma<br />

conexão FTP for inicializada.<br />

Inicia o portmapper necessário para o servi<strong>do</strong>r RPC,<br />

como um servi<strong>do</strong>r NFS.<br />

Inicia o servi<strong>do</strong>r NFS.<br />

Rede básica 373


374 Referência<br />

/etc/init.d/<br />

sendmail<br />

/etc/init.d/ypserv<br />

/etc/init.d/ypbind<br />

Controla o processo sendmail.<br />

Inicia o servi<strong>do</strong>r NIS.<br />

Inicia o cliente NIS.<br />

18.7 smpppd como Assistente de<br />

Discagem<br />

A maioria <strong>do</strong>s usuários <strong>do</strong>mésticos não possui uma linha dedicada de conexão à Internet.<br />

Em vez disso, usam conexões por discagem. Dependen<strong>do</strong> da forma de discagem (ISDN<br />

ou DSL), a conexão é controlada por ipppd ou pppd. Basicamente, tu<strong>do</strong> que precisa ser<br />

feito para estabelecer a conexão é iniciar esses programas corretamente.<br />

Se você tiver uma conexão com tarifa fixa que não gere custos adicionais para a conexão<br />

por discagem, basta iniciar o respectivo daemon. Controle a conexão por discagem com<br />

um applet KDE ou uma interface de linha de coman<strong>do</strong>. Se o portal de Internet não for<br />

o host que você estiver usan<strong>do</strong>, você poderá controlar a conexão por discagem por<br />

intermédio de um host de rede.<br />

É aí que entra o smpppd. Ele <strong>of</strong>erece uma interface uniforme para programas auxiliares<br />

e funciona nas duas direções. Primeiro, ele programa o pppd ou ipppd necessário e<br />

controla suas propriedades de discagem. Em segun<strong>do</strong> lugar, disponibiliza diversos<br />

prove<strong>do</strong>res aos programas <strong>do</strong> usuário e transmite informações sobre o atual status da<br />

conexão. Já que o smpppd também pode ser controla<strong>do</strong> por meio da rede, é adequa<strong>do</strong><br />

para controlar conexões por discagem à Internet a partir de uma estação de trabalho de<br />

uma sub-rede privada.<br />

18.7.1 Configuran<strong>do</strong> o smpppd<br />

As conexões fornecidas pelo smpppd são automaticamente configuradas pelo YaST.<br />

Os programas por discagem KInternet e cinternet propriamente ditos também são préconfigura<strong>do</strong>s.<br />

Configurações manuais somente são necessárias para configurar recursos<br />

adicionais <strong>do</strong> smpppd, como o controle remoto.


O arquivo de configuração <strong>do</strong> smpppd é o /etc/smpppd.conf. Por padrão, ele não<br />

habilita o controle remoto. As opções mais importantes desse arquivo de configuração<br />

são:<br />

open-inet-socket = yes|no<br />

Para controlar o smpppd por meio da rede, essa opção precisa ser definida como<br />

yes. A porta em que o smpppd realiza a escuta é a 3185. Se esse parâmetro for<br />

defini<strong>do</strong> como yes, os parâmetros bind-address, host-range e password<br />

deverão ser defini<strong>do</strong>s da mesma forma.<br />

bind-address = ip<br />

Se um host tiver diversos endereços IP, use esse parâmetro para determinar o<br />

endereço IP em que o smpppd deve aceitar conexões.<br />

host-range = min ip max ip<br />

O parâmetro host-range define uma faixa de rede. Os hosts cujos endereços<br />

IP se situam dentro dessa faixa recebem acesso ao smpppd. O acesso é recusa<strong>do</strong> a<br />

to<strong>do</strong>s os hosts localiza<strong>do</strong>s fora dessa faixa.<br />

password = senha<br />

Ao atribuir uma senha, limite os clientes a hosts autoriza<strong>do</strong>s. Como se trata de uma<br />

senha de texto simples, não é recomendável superestimar a segurança por <strong>of</strong>erecida.<br />

Se nenhuma senha for atribuída, to<strong>do</strong>s os clientes terão permissão para acessar o<br />

smpppd.<br />

slp-register = yes|no<br />

Com esse parâmetro, o serviço smpppd pode ser anuncia<strong>do</strong> na rede por meio <strong>do</strong><br />

SLP.<br />

Mais informações sobre o smpppd estão disponíveis nas páginas <strong>do</strong> manual smpppd(8)<br />

e smpppd.conf(5).<br />

18.7.2 Configuran<strong>do</strong> KInternet, cinternet e<br />

qinternet para Uso Remoto<br />

KInternet, cinternet e qinternet podem ser usa<strong>do</strong>s para controlar um smpppd local ou<br />

remoto. O cinternet é o equivalente da linha de coman<strong>do</strong> <strong>do</strong> KInternet gráfico. Em<br />

linhas gerais, como o qinternet é idêntico ao KInternet, mas não usa as bibliotecas <strong>do</strong><br />

KDE, pode ser usa<strong>do</strong> sem o KDE e deve ser instala<strong>do</strong> separadamente. Para preparar<br />

Rede básica 375


376 Referência<br />

esses utilitários para uso com um smpppd remoto, edite o arquivo de configuração<br />

/etc/smpppd-c.conf manualmente ou com o KInternet. Esse arquivo usa três<br />

opções apenas:<br />

sites = lista de sites<br />

Indique aos front ends onde procurar o smpppd. Os front ends testam as opções na<br />

ordem especificada. A opção local ordena o estabelecimento de uma conexão<br />

ao smpppd local. O gateway aponta para um smpppd no gateway. A conexão<br />

deve ser estabelecida conforme especificações contidas em server, em<br />

config-file. O slp ordena aos front ends que se conectem a um smpppd<br />

encontra<strong>do</strong> por meio <strong>do</strong> SLP.<br />

server = servi<strong>do</strong>r<br />

Especifique o host em que o smpppd deve ser executa<strong>do</strong>.<br />

password = senha<br />

Insira a senha selecionada para o smpppd.<br />

Se o smpppd estiver ativo, será possível acessá-lo, por exemplo, com cinternet<br />

--verbose --interface-list. Se você tiver dificuldades nesse ponto, consulte<br />

as páginas <strong>do</strong> manual smpppd-c.conf(5) e cinternet(8).


Serviços SLP na rede<br />

O SLP foi cria<strong>do</strong> para simplificar a configuração <strong>do</strong>s clientes em rede dentro de uma<br />

rede local. Para configurar um cliente em rede, inclusive to<strong>do</strong>s os serviços necessários,<br />

o administra<strong>do</strong>r normalmente precisa ter conhecimento detalha<strong>do</strong> <strong>do</strong>s servi<strong>do</strong>res<br />

disponíveis na rede. O SLP divulga a disponibilidade de serviços seleciona<strong>do</strong>s a to<strong>do</strong>s<br />

os clientes da rede local. Os aplicativos que dão suporte ao SLP podem usar as<br />

informações distribuídas e podem ser configura<strong>do</strong>s automaticamente.<br />

O <strong>SUSE</strong> Linux dá suporte à instalação com o uso de origens de instalação fornecidas<br />

via SLP e contém diversos serviços de sistema com suporte integra<strong>do</strong> para SLP. O<br />

YaST e o Konqueror possuem front ends apropria<strong>do</strong>s para SLP. Você pode usar o SLP<br />

para <strong>of</strong>erecer funções centrais aos clientes em rede, como um servi<strong>do</strong>r de instalação,<br />

servi<strong>do</strong>r YOU, servi<strong>do</strong>r de arquivos ou servi<strong>do</strong>r de impressão no <strong>SUSE</strong> Linux.<br />

19.1 Registran<strong>do</strong> seus próprios<br />

serviços<br />

Muitos aplicativos conti<strong>do</strong>s no <strong>SUSE</strong> Linux já possuem suporte integra<strong>do</strong> ao SLP com<br />

o uso da biblioteca libslp. Se um serviço não tiver si<strong>do</strong> compila<strong>do</strong> com o suporte<br />

ao SLP, use um <strong>do</strong>s méto<strong>do</strong>s a seguir para disponibilizá-lo com SLP:<br />

Registro estático com /etc/slp.reg.d<br />

Crie um arquivo de registro separa<strong>do</strong> para cada novo serviço. A seguir há um<br />

exemplo de arquivo para o registro de serviço de scanner:<br />

19<br />

Serviços SLP na rede 377


378 Referência<br />

## Register a saned service on this system<br />

## en means english language<br />

## 65535 disables the timeout, so the service registration <strong>do</strong>es<br />

## not need refreshes<br />

service:scanner.sane://$HOSTNAME:6566,en,65535<br />

watch-port-tcp=6566<br />

description=SANE scanner daemon<br />

A linha mais importante desse arquivo é a linha URL <strong>do</strong> serviço, que começa com<br />

service:. Essa linha contém o tipo de serviço (scanner.sane) e o endereço<br />

em que o serviço está disponível no servi<strong>do</strong>r. $HOSTNAME é automaticamente<br />

substituída pelo nome completo <strong>do</strong> host. Em seguida, vem o nome da porta TCP<br />

em que o serviço em questão pode ser encontra<strong>do</strong>, separa<strong>do</strong> por <strong>do</strong>is-pontos. A<br />

seguir, especifique o idioma em que o serviço deve ser exibi<strong>do</strong> e a duração <strong>do</strong><br />

registro em segun<strong>do</strong>s. Esses da<strong>do</strong>s devem ser separa<strong>do</strong>s <strong>do</strong> URL <strong>do</strong> serviço por<br />

vírgulas. Defina o valor da duração <strong>do</strong> registro entre 0 e 65535. O valor 0 impede<br />

o registro. O valor 65535 elimina todas as restrições.<br />

O arquivo de registro também contém as duas variáveis watch-tcp-port e<br />

description. watch-tcp-port associa o anúncio <strong>do</strong> serviço SLP à atividade<br />

<strong>do</strong> serviço em questão fazen<strong>do</strong> com que o slpd verifique o status <strong>do</strong> serviço. A<br />

segunda variável contém uma descrição mais precisa <strong>do</strong> serviço que é exibi<strong>do</strong> nos<br />

browsers apropria<strong>do</strong>s.<br />

Registro estático com /etc/slp.reg<br />

A única diferença em relação ao procedimento com /etc/slp.reg.d é o<br />

agrupamento de to<strong>do</strong>s os serviços em um arquivo central.<br />

Registro dinâmico com slptool<br />

Se um serviço tiver de ser registra<strong>do</strong> para o SLP a partir de scripts proprietários,<br />

use o front end de linha de coman<strong>do</strong> slptool.<br />

19.2 Front ends de SLP no <strong>SUSE</strong> Linux<br />

O <strong>SUSE</strong> Linux contém diversos front ends que permitem que as informações relativas<br />

ao SLP sejam verificadas e usadas por meio de uma rede:


slptool<br />

O slptool é um programa de linha de coman<strong>do</strong> simples que pode ser usa<strong>do</strong> para<br />

anunciar consultas SLP na rede ou anunciar serviços proprietários. O<br />

slptool --help relaciona todas as opções e funções disponíveis. O slptool<br />

também pode ser chama<strong>do</strong> a partir de scripts que processam informações relativas<br />

ao SLP.<br />

Browser SLP <strong>do</strong> YaST<br />

O YaST contém um browser SLP separa<strong>do</strong> que lista to<strong>do</strong>s os serviços da rede local<br />

anuncia<strong>do</strong>s via SLP em um diagrama em forma de árvore em Serviços de Rede →<br />

Browser SLP.<br />

Konqueror<br />

Quan<strong>do</strong> usa<strong>do</strong> como um browser de rede, o Konqueror pode exibir to<strong>do</strong>s os serviços<br />

SLP disponíveis na rede local em slp:/. Clique nos ícones da janela principal<br />

para obter mais informações detalhadas sobre o serviço em questão. Se você usar<br />

o Konqueror com service:/, clique no respectivo ícone uma vez na janela <strong>do</strong><br />

browser para configurar uma conexão com o serviço seleciona<strong>do</strong>.<br />

19.3 Ativan<strong>do</strong> o SLP<br />

O slpd deve ser executa<strong>do</strong> no seu sistema se você desejar <strong>of</strong>erecer serviços. Não é<br />

necessário iniciar esse daemon apenas para fazer consultas sobre serviços. Assim como<br />

a maioria <strong>do</strong>s serviços de sistema no <strong>SUSE</strong> Linux, o daemon slpd é controla<strong>do</strong> por<br />

intermédio de um script de inicialização separa<strong>do</strong>. O daemon fica inativo por padrão.<br />

Para ativá-lo durante uma sessão, execute rcslpd start como root para iniciálo<br />

e rcslpd stop para interrompê-lo. Efetue uma verificação de reinicialização ou<br />

status com restart ou status. Se o slpd tiver de ficar ativo por padrão, execute o<br />

coman<strong>do</strong> insserv slpd uma vez como root. Essa ação inclui automaticamente o<br />

slpd no conjunto de serviços a serem inicia<strong>do</strong>s durante a inicialização de um sistema.<br />

19.4 Mais informações<br />

As fontes a seguir fornecem informações adicionais sobre o SLP:<br />

Serviços SLP na rede 379


380 Referência<br />

RFC 2608, 2609, 2610<br />

O RFC 2608 geralmente trata da definição de SLP. O RFC 2609 trata da sintaxe<br />

<strong>do</strong>s URLs de serviço usa<strong>do</strong>s em maior detalhe e o RFC 2610 trata <strong>do</strong> DHCP via<br />

SLP.<br />

http://www.openslp.com<br />

A home page <strong>do</strong> projeto OpenSLP.<br />

/usr/share/<strong>do</strong>c/packages/openslp<br />

Esse diretório contém toda a <strong>do</strong>cumentação disponível sobre SLP, inclusive um<br />

arquivo README.SuSE conten<strong>do</strong> os detalhes sobre o <strong>SUSE</strong> Linux, os RFCs cita<strong>do</strong>s<br />

acima e <strong>do</strong>is <strong>do</strong>cumentos HTML introdutórios. Os programa<strong>do</strong>res que desejarem<br />

usar as funções SLP devem instalar o pacote openslp-devel para consultar o<br />

Programmers Guide (Guia de Programa<strong>do</strong>res) que o acompanha.


Domain Name System (Sistema de<br />

20<br />

Nomes de Domínio)<br />

O DNS (Domain Name System - Sistema de Nomes de Domínio) é necessário para<br />

resolver nomes de <strong>do</strong>mínio e nomes de host em endereços IP. Dessa forma, o endereço<br />

IP 192.168.0.0 é designa<strong>do</strong> ao nome de host earth, por exemplo. Antes de configurar<br />

o servi<strong>do</strong>r de nomes, leia as informações gerais sobre o DNS na Seção 18.3, “Resolução<br />

de nomes” (p 347). Os exemplos de configuração a seguir se referem ao BIND.<br />

20.1 Terminologia DNS<br />

Zona<br />

O namespace <strong>do</strong> <strong>do</strong>mínio é dividi<strong>do</strong> em regiões chamadas zonas. Por exemplo, se<br />

você tiver o opensuse.org, terá a seção opensuse, ou zona, <strong>do</strong> <strong>do</strong>mínio org.<br />

Servi<strong>do</strong>r DNS<br />

O servi<strong>do</strong>r DNS é um servi<strong>do</strong>r que mantém o nome e as informações de IP de um<br />

<strong>do</strong>mínio. Você pode ter um servi<strong>do</strong>r DNS primário para a zona master, um servi<strong>do</strong>r<br />

secundário para a zona escrava ou um servi<strong>do</strong>r escravo sem nenhuma zona para<br />

cache.<br />

Servi<strong>do</strong>r DNS de zona master<br />

A zona master inclui to<strong>do</strong>s os hosts da rede, e uma zona master de servi<strong>do</strong>r<br />

DNS armazena to<strong>do</strong>s os registros atualiza<strong>do</strong>s de to<strong>do</strong>s os hosts <strong>do</strong> seu <strong>do</strong>mínio.<br />

Servi<strong>do</strong>r DNS de zona escrava<br />

Uma zona escrava é uma cópia da zona master. O servi<strong>do</strong>r DNS da zona escrava<br />

obtém os da<strong>do</strong>s de zona sem operações de transferência da zona <strong>do</strong> servi<strong>do</strong>r<br />

Domain Name System (Sistema de Nomes de Domínio) 381


382 Referência<br />

master. O servi<strong>do</strong>r DNS de zona escrava responde com autoridade à zona<br />

contanto que tenha da<strong>do</strong>s de zona váli<strong>do</strong>s (não expira<strong>do</strong>s). Se o escravo não<br />

conseguir obter uma cópia nova <strong>do</strong>s da<strong>do</strong>s de zona, pára de responder à zona.<br />

Encaminha<strong>do</strong>r<br />

Encaminha<strong>do</strong>res são servi<strong>do</strong>res DNS para os quais o servi<strong>do</strong>r DNS deve enviar<br />

consultas que não consiga responder.<br />

Registro<br />

O registro contém informações sobre nome e endereço IP. Os registros com suporte<br />

e suas sintaxes são descritas na <strong>do</strong>cumentação <strong>do</strong> BIND. Alguns registros especiais<br />

são:<br />

Registro NS<br />

Um registro NS informa aos servi<strong>do</strong>res de nome quais máquinas são<br />

responsáveis por uma determinada zona de <strong>do</strong>mínio.<br />

Registro MX<br />

Os registros MX (servi<strong>do</strong>r de correio) descrevem quais máquinas devem ser<br />

contatadas para direcionar a correspondência pela Internet.<br />

Registro SOA<br />

O registro SOA (Start <strong>of</strong> Authority) é o primeiro registro em um arquivo de<br />

zona. O registro SOA é usa<strong>do</strong> quan<strong>do</strong> o DNS é usa<strong>do</strong> para sincronizar os da<strong>do</strong>s<br />

entre vários computa<strong>do</strong>res.<br />

20.2 Configuração com o YaST<br />

Você pode usar o módulo DNS <strong>do</strong> YaST para configurar um servi<strong>do</strong>r DNS em sua rede<br />

local. Quan<strong>do</strong> o módulo é inicia<strong>do</strong> pela primeira vez, um assistente é inicia<strong>do</strong>, solicitan<strong>do</strong><br />

que você tome algumas decisões básicas com relação à administração <strong>do</strong> servi<strong>do</strong>r. A<br />

conclusão dessa configuração inicial produz uma configuração de servi<strong>do</strong>r muito básica,<br />

que deve funcionar com aspectos essenciais. O mo<strong>do</strong> de especialista pode ser usa<strong>do</strong><br />

para lidar com tarefas de configuração mais avançadas.


20.2.1 Configuração <strong>do</strong> assistente<br />

O assistente consiste em três etapas ou caixas de diálogo. Nos locais apropria<strong>do</strong>s das<br />

caixas de diálogo, você terá a oportunidade de inserir o mo<strong>do</strong> de configuração de<br />

especialista.<br />

1 Quan<strong>do</strong> você inicia o módulo pela primeira vez, a caixa de diálogo Configurações<br />

<strong>do</strong> Encaminha<strong>do</strong>r, mostrada na Figura 20.1, “Instalação <strong>do</strong> servi<strong>do</strong>r DNS:<br />

configurações <strong>do</strong> encaminha<strong>do</strong>r” (p 383), é aberta. Decida se o daemon PPP deve<br />

fornecer uma lista de encaminha<strong>do</strong>res de chamada via DSL ou ISDN (O Daemon<br />

PPP Define os Encaminha<strong>do</strong>res) ou se você deseja fornecer a própria lista (Definir<br />

Encaminha<strong>do</strong>res Manualmente).<br />

Figura 20.1 Instalação <strong>do</strong> servi<strong>do</strong>r DNS: configurações <strong>do</strong> encaminha<strong>do</strong>r<br />

2 A caixa de diálogo Zonas DNS consiste em várias partes e é responsável pelo<br />

gerenciamento de arquivos de zona, descrito na Seção 20.5, “Arquivos de zona”<br />

(p 397). Forneça um nome para uma nova zona em Nome da Zona. Para adicionar<br />

uma zona reversa, o nome deve terminar em .in-addr.arpa. Finalmente,<br />

selecione o Tipo de Zona (master ou escrava). Consulte a Figura 20.2, “Instalação<br />

<strong>do</strong> servi<strong>do</strong>r DNS: Zonas <strong>do</strong> DNS” (p 384). Clique em Editar Zona para definir<br />

outras configurações em uma zona existente. Para remover uma zona, clique em<br />

Apagar Zona.<br />

Domain Name System (Sistema de Nomes de Domínio) 383


384 Referência<br />

Figura 20.2 Instalação <strong>do</strong> servi<strong>do</strong>r DNS: Zonas <strong>do</strong> DNS<br />

3 Na caixa de diálogo final, é possível abrir as portas <strong>do</strong> serviço DNS no firewall<br />

ativa<strong>do</strong> durante a instalação e decidir se o DNS deve ser inicia<strong>do</strong>. A configuração<br />

de especialista também pode ser acessada nessa caixa de diálogo. Consulte a<br />

Figura 20.3, “Instalação <strong>do</strong> servi<strong>do</strong>r DNS: Finalizar Assistente” (p 385).


Figura 20.3 Instalação <strong>do</strong> servi<strong>do</strong>r DNS: Finalizar Assistente<br />

20.2.2 Configuração de especialista<br />

Depois de iniciar o módulo, o YaST abre uma janela exibin<strong>do</strong> várias opções de<br />

configuração. A definição dessas opções resulta em uma configuração de servi<strong>do</strong>r DNS<br />

com as funções básicas estabelecidas:<br />

Inician<strong>do</strong> o servi<strong>do</strong>r DNS<br />

Em Inicializar, defina se o servi<strong>do</strong>r DNS deve ser inicializa<strong>do</strong> juntamente com a<br />

inicialização <strong>do</strong> sistema ou manualmente. Para iniciar o servi<strong>do</strong>r DNS imediatamente,<br />

selecione Iniciar Servi<strong>do</strong>r DNS Agora. Para encerrar o servi<strong>do</strong>r DNS, selecione Parar<br />

Servi<strong>do</strong>r DNS Agora. Para gravar as configurações atuais, selecione Salvar<br />

Configurações e Reiniciar Servi<strong>do</strong>r DNS Agora. É possível abrir a porta <strong>do</strong> DNS no<br />

firewall com a opção Abrir Porta no Firewall e modificar as configurações <strong>do</strong> firewall<br />

com Detalhes <strong>do</strong> Firewall.<br />

Domain Name System (Sistema de Nomes de Domínio) 385


386 Referência<br />

Registro<br />

Para definir o que o servi<strong>do</strong>r DNS deve registrar e como fazê-lo, selecione Registro.<br />

Em Tipo de Log, especifique o local em que o servi<strong>do</strong>r DNS deve gravar os da<strong>do</strong>s de<br />

registro. Use o arquivo de registro /var/log/messages de to<strong>do</strong> o sistema<br />

selecionan<strong>do</strong> Inserir no Registro <strong>do</strong> Sistema, ou especifique um arquivo diferente<br />

selecionan<strong>do</strong> Registrar em Arquivo. Nesse caso, especifique também o tamanho máximo<br />

<strong>do</strong> arquivo em megabytes e o número de arquivos de registro a serem armazena<strong>do</strong>s.<br />

Outras opções estão disponíveis em Registro Adicional. A habilitação <strong>do</strong> recurso<br />

Registrar Todas as Consultas de DNS faz com que todas as consultas sejam registradas,<br />

caso em que o arquivo de registro pode ficar extremamente grande. Por essa razão, não<br />

é uma boa idéia habilitar essa opção para fins que não sejam de depuração. Para registrar<br />

o tráfego de da<strong>do</strong>s durante as atualizações de zonas entre o DHCP e o servi<strong>do</strong>r DNS,<br />

habilite a opção Registrar Atualizações de Zona. Para registrar o tráfego de da<strong>do</strong>s<br />

durante uma transferência de zona de master para escrava, habilite a opção Registrar<br />

Transferência de Zonas. Consulte a Figura 20.4, “Servi<strong>do</strong>r DNS: Registro” (p 386).<br />

Figura 20.4 Servi<strong>do</strong>r DNS: Registro


Adicionan<strong>do</strong> uma Zona Escrava<br />

Para adicionar uma zona escrava, selecione Zonas DNS, escolha o tipo de zona Escrava<br />

e clique em Adicionar.<br />

Em Editor de Zona, em Servi<strong>do</strong>r DNS Master, especifique o master no qual o escravo<br />

deve pesquisar seus da<strong>do</strong>s. Para limitar acesso ao servi<strong>do</strong>r, selecione um <strong>do</strong>s ACLs da<br />

lista. Consulte a Figura 20.5, “Servi<strong>do</strong>r DNS: Editor de Zona Escrava” (p 387).<br />

Figura 20.5 Servi<strong>do</strong>r DNS: Editor de Zona Escrava<br />

Adicionan<strong>do</strong> uma Zona Master<br />

Para adicionar uma zona master, selecione Zonas DNS, escolha o tipo de zona Master,<br />

escreva o nome da nova zona e clique em Adicionar.<br />

Editan<strong>do</strong> uma Zona Master<br />

Para editar uma zona master, selecione Zonas DNS, escolha o tipo de zona Master,<br />

selecione a zona master na tabela e clique em Editar. A caixa de diálogo tem várias<br />

páginas: Básico (a aberta primeiro), Registros NS, Registros MX, SOA e Registros.<br />

Domain Name System (Sistema de Nomes de Domínio) 387


388 Referência<br />

Editor de Zona (Registros NS)<br />

Esta caixa de diálogo permite definir servi<strong>do</strong>res de nomes alternativos nas zonas<br />

especificadas. Verifique se o nome <strong>do</strong> seu próprio servi<strong>do</strong>r está incluí<strong>do</strong> na lista.<br />

Para adicionar um registro, digite o nome dele em Servi<strong>do</strong>r de Nome para Adicionar<br />

e, em seguida, confirme com Adicionar. Consulte a Figura 20.6, “Servi<strong>do</strong>r DNS:<br />

Editor de Zona (Registros NS)” (p 388).<br />

Figura 20.6 Servi<strong>do</strong>r DNS: Editor de Zona (Registros NS)<br />

Editor de Zona (Registros MX)<br />

Para adicionar á lista existente um servi<strong>do</strong>r de correio eletrônico para a zona atual,<br />

digite o endereço correspondente e o valor de prioridade. Depois disso, confirme<br />

a seleção em Adicionar. Consulte a Figura 20.7, “Servi<strong>do</strong>r DNS: Editor de Zona<br />

(Registros MX)” (p 389).


Figura 20.7 Servi<strong>do</strong>r DNS: Editor de Zona (Registros MX)<br />

Editor de Zona (SOA)<br />

Esta página permite criar registros de SOA (start <strong>of</strong> authority). Para obter uma<br />

explicação sobre opções específicas, consulte o Exemplo 20.6, “Arquivo<br />

/var/lib/named/world.zone” (p 397).<br />

Domain Name System (Sistema de Nomes de Domínio) 389


390 Referência<br />

Figura 20.8 Servi<strong>do</strong>r DNS: Editor de Zona (SOA)<br />

Editor de Zona (Registros)<br />

Esta caixa de diálogo gerencia a resolução de nomes. Em Chave de Registro, digite<br />

o nome de host e selecione seu tipo. A-Record representa a entrada principal. Seu<br />

valor deve ser um endereço IP. CNAME é um álias. Utilize os tipos NS e MX para<br />

obter registros detalha<strong>do</strong>s ou parciais que expandam as informações fornecidas nas<br />

guias Registros NS e Registros MX. Estes três tipos resolvem um registro A<br />

existente. PTR é para zonas reversas. É o oposto de um registro A.<br />

20.3 Inician<strong>do</strong> o BIND <strong>do</strong> servi<strong>do</strong>r de<br />

nomes<br />

Em um sistema <strong>SUSE</strong> Linux, o BIND (Berkeley Internet Name Domain - Domínio de<br />

Nomes Berkeley da Internet) <strong>do</strong> servi<strong>do</strong>r de nomes vem pré-configura<strong>do</strong>, de forma que<br />

ele pode ser inicia<strong>do</strong> logo após a instalação, sem problemas. Se você já tiver uma<br />

conexão de Internet em funcionamento e digitar 127.0.0.1 como endereço <strong>do</strong> servi<strong>do</strong>r<br />

de nomes para localhost, em /etc/resolv.conf, já terá uma resolução de<br />

nomes em funcionamento, sem que seja necessário conhecer o DNS <strong>do</strong> prove<strong>do</strong>r. O<br />

BIND realiza a resolução de nomes por meio <strong>do</strong> servi<strong>do</strong>r de nomes raiz, um processo<br />

notavelmente mais lento. Normalmente, o DNS <strong>do</strong> prove<strong>do</strong>r deve ser digita<strong>do</strong> com o


endereço IP no arquivo de configuração /etc/named.conf, em forwarders,<br />

para garantir uma resolução de nomes segura e eficaz. Se ele estiver funcionan<strong>do</strong> até<br />

agora, o servi<strong>do</strong>r de nomes será executa<strong>do</strong> como um servi<strong>do</strong>r de nomes apenas para<br />

cache. Somente quan<strong>do</strong> você configurar as zonas dele próprio, ele se tornará um DNS<br />

adequa<strong>do</strong>. Um exemplo simples disso está incluí<strong>do</strong> na <strong>do</strong>cumentação, em /usr/<br />

share/<strong>do</strong>c/packages/bind/sample-config.<br />

DICA: Adaptação automática das informações <strong>do</strong> servi<strong>do</strong>r de nomes<br />

Dependen<strong>do</strong> <strong>do</strong> tipo de conexão de Internet ou de conexão de rede, as<br />

informações <strong>do</strong> servi<strong>do</strong>r de nomes podem ser automaticamente adaptadas às<br />

condições atuais. Para isso, defina a variável<br />

MODIFY_NAMED_CONF_DYNAMICALLY no arquivo /etc/sysconfig/<br />

network/config como yes.<br />

Entretanto, não configure nenhum <strong>do</strong>mínio <strong>of</strong>icial antes de algum ser designa<strong>do</strong> pela<br />

instituição responsável. Mesmo que você tenha seu próprio <strong>do</strong>mínio e ele seja gerencia<strong>do</strong><br />

pelo prove<strong>do</strong>r, é melhor não utilizá-lo, pois o BIND não encaminharia solicitações para<br />

esse <strong>do</strong>mínio. O servi<strong>do</strong>r Web no prove<strong>do</strong>r, por exemplo, poderia não ficar acessível<br />

para esse <strong>do</strong>mínio.<br />

Para iniciar o servi<strong>do</strong>r de nomes, digite o coman<strong>do</strong> rcnamed start como root. Se<br />

“<strong>do</strong>ne” for exibi<strong>do</strong> à direita, em verde, e com o mesmo nome <strong>do</strong> processo <strong>do</strong> servi<strong>do</strong>r<br />

de nomes, esse servi<strong>do</strong>r terá si<strong>do</strong> inicia<strong>do</strong> com êxito. Teste o servi<strong>do</strong>r de nomes<br />

imediatamente no sistema local com os programas host ou dig, que devem retornar<br />

localhost como servi<strong>do</strong>r padrão, com o endereço 127.0.0.1. Se esse não é o<br />

caso, o arquivo /etc/resolv.conf provavelmente contém uma entrada de servi<strong>do</strong>r<br />

de nomes incorreta ou não existe. No primeiro teste, digite host 127.0.0.1, o que<br />

sempre funciona. Se receber uma mensagem de erro, use rcnamed status para<br />

verificar se o servi<strong>do</strong>r está sen<strong>do</strong> realmente executa<strong>do</strong>. Se o servi<strong>do</strong>r de nomes não for<br />

inicia<strong>do</strong> ou agir de forma inesperada, você poderá encontrar a causa no arquivo de<br />

registro /var/log/messages.<br />

Para usar o servi<strong>do</strong>r de nomes <strong>do</strong> prove<strong>do</strong>r ou um servi<strong>do</strong>r de nomes que já esteja em<br />

execução na rede como encaminha<strong>do</strong>r, digite o endereço IP ou os endereços<br />

correspondentes na seção options, em forwarders. Os endereços incluí<strong>do</strong>s no<br />

Exemplo 20.1, “Opções de encaminhamento no named.conf” (p 392) são apenas<br />

exemplos. Ajuste essas entradas de acor<strong>do</strong> com sua própria configuração.<br />

Domain Name System (Sistema de Nomes de Domínio) 391


392 Referência<br />

Exemplo 20.1 Opções de encaminhamento no named.conf<br />

options {<br />

directory "/var/lib/named";<br />

forwarders { 10.11.12.13; 10.11.12.14; };<br />

listen-on { 127.0.0.1; 192.168.0.99; };<br />

allow-query { 127/8; 192.168.0/24; };<br />

notify no;<br />

};<br />

A entrada options é seguida de entradas para a zona, localhost e<br />

0.0.127.in-addr.arpa. A entrada type hint em “.” deve estar sempre<br />

presente. Os arquivos correspondentes não precisam ser modifica<strong>do</strong>s e devem funcionar<br />

como estão. Verifique também se cada entrada está fechada com um “;” e se as chaves<br />

estão nos locais corretos. Depois de mudar o arquivo de configuração /etc/named<br />

.conf ou os arquivos de zona, solicite ao BIND que os releia com o coman<strong>do</strong><br />

rcnamed reload. Faça o mesmo interrompen<strong>do</strong> e reinician<strong>do</strong> o servi<strong>do</strong>r de nomes<br />

com rcnamed restart. Pare o servi<strong>do</strong>r a qualquer momento digitan<strong>do</strong><br />

rcnamed stop.<br />

20.4 O arquivo de configuração<br />

/etc/named.conf<br />

Todas as configurações <strong>do</strong> servi<strong>do</strong>r de nomes BIND são armazenadas no arquivo /etc/<br />

named.conf. Entretanto, os da<strong>do</strong>s de zona que os <strong>do</strong>mínios devem gerenciar,<br />

consistin<strong>do</strong> em nomes de host, endereços IP etc, são armazena<strong>do</strong>s em arquivos separa<strong>do</strong>s,<br />

no diretório /var/lib/named. Os detalhes serão descritos posteriormente.<br />

/etc/named.conf é dividi<strong>do</strong> em aproximadamente duas áreas. Uma é a seção<br />

options para configurações gerais, e a outra consiste nas entradas da zone <strong>do</strong>s<br />

<strong>do</strong>mínios específicos. Uma seção logging e entradas de acl (access control list -<br />

lista de controles de acesso) são opcionais. Linhas de comentário começam com um<br />

sinal de # ou //. Um arquivo /etc/named.conf mínimo é exibi<strong>do</strong> no Exemplo 20.2,<br />

“Um arquivo /etc/named.conf básico” (p 393).


Exemplo 20.2 Um arquivo /etc/named.conf básico<br />

options {<br />

directory "/var/lib/named";<br />

forwarders { 10.0.0.1; };<br />

notify no;<br />

};<br />

zone "localhost" in {<br />

type master;<br />

file "localhost.zone";<br />

};<br />

zone "0.0.127.in-addr.arpa" in {<br />

type master;<br />

file "127.0.0.zone";<br />

};<br />

zone "." in {<br />

type hint;<br />

file "root.hint";<br />

};<br />

20.4.1 Opções importantes de configuração<br />

diretório "nome<strong>do</strong>arquivo";<br />

Especifica o diretório no qual o BIND pode encontrar os arquivos conten<strong>do</strong> os<br />

da<strong>do</strong>s da zona. Normalmente, é o /var/lib/named.<br />

forwarders { endereço-ip; };<br />

Especifica os servi<strong>do</strong>res de nomes (principalmente <strong>do</strong> prove<strong>do</strong>r) para os quais as<br />

solicitações <strong>do</strong> DNS devem ser encaminhadas se não puderem ser resolvidas<br />

diretamente. Substitua endereço-ip por um endereço IP como 10.0.0.1.<br />

forward first;<br />

Faz com que solicitações <strong>do</strong> DNS sejam encaminhadas antes de uma tentativa ser<br />

feita para resolvê-las por meio <strong>do</strong>s servi<strong>do</strong>res de nomes raiz. Em vez de forward<br />

first, é possível escrever forward only para que todas as solicitações sejam<br />

encaminhadas e nenhuma delas seja enviada para os servi<strong>do</strong>res de nomes raiz. Isso<br />

faz senti<strong>do</strong> para configurações de firewall.<br />

listen-on port 53 { 127.0.0.1; endereço ip; };<br />

Comunique ao BIND em que interfaces de rede e porta ele deve aceitar consultas<br />

de cliente. A porta 53 não precisa ser especificada explicitamente, pois 53 é a<br />

Domain Name System (Sistema de Nomes de Domínio) 393


394 Referência<br />

porta padrão. Digite 127.0.0.1 para permitir solicitações <strong>do</strong> host local. Se você<br />

omitir totalmente essa entrada, todas as interfaces serão usadas por padrão.<br />

listen-on-v6 port 53 {any; };<br />

Comunique ao BIND qual porta ele deve escutar para solicitações de clientes IPv6.<br />

A única alternativa para any é none. Até onde o IPv6 está envolvi<strong>do</strong>, o servi<strong>do</strong>r<br />

só aceita um endereço curinga.<br />

query-source address * port 53;<br />

Esta entrada será necessária se um firewall estiver bloquean<strong>do</strong> as solicitações de<br />

saída <strong>do</strong> DNS. Assim o BIND é avisa<strong>do</strong> para publicar as solicitações externamente<br />

à porta 53, e não de qualquer outra porta superior acima da 1024.<br />

query-source-v6 address * port 53;<br />

Comunica ao BIND qual porta deve ser usada para consultas <strong>do</strong> IPv6.<br />

allow-query { 127.0.0.1; rede; };<br />

Define as redes a partir das quais os clientes podem publicar solicitações de DNS.<br />

Substitua rede pelas informações de endereço, como 192.168.1/24. /24, no<br />

fim, é uma expressão de abreviação para uma máscara de rede, neste caso,<br />

255.255.255.0.<br />

allow-transfer ! *;;<br />

Controla quais hosts podem solicitar transferências de zona. No exemplo, tais<br />

solicitações são completamente negadas com ! *. Sem essa entrada, as<br />

transferências de zona podem ser solicitadas de qualquer local, sem restrições.<br />

statistics-interval 0;<br />

Na ausência desta entrada, o BIND gera várias linhas de informações estatísticas<br />

por hora em /var/log/messages. Defina-a como 0 para suprimir totalmente<br />

estas estatísticas ou definir um intervalo em minutos.<br />

cleaning-interval 720;<br />

Esta opção define os intervalos de tempo em que o BIND limpa seu cache. Ela<br />

aciona uma entrada em /var/log/messages sempre que isso ocorre. A<br />

especificação de tempo é em minutos. O padrão é de 60 minutos<br />

interface-interval 0;<br />

O BIND pesquisa regularmente as interfaces de rede em busca de interfaces novas<br />

ou não existentes. Se seu valor for defini<strong>do</strong> como 0, isso não será feito, e o BIND


escutará apenas as interfaces detectadas na inicialização. Caso contrário, o intervalo<br />

poderá ser defini<strong>do</strong> em minutos. O padrão é de 60 minutos<br />

notify no;<br />

no evita que outros servi<strong>do</strong>res de nomes sejam informa<strong>do</strong>s sobre a ocorrência de<br />

mudanças nos da<strong>do</strong>s da zona ou sobre quan<strong>do</strong> o servi<strong>do</strong>r de nomes foi reinicia<strong>do</strong>.<br />

20.4.2 Registro<br />

O BIND pode ser extensivamente configura<strong>do</strong> para que se determine qual registro está<br />

sen<strong>do</strong> usa<strong>do</strong>, como e onde. Normalmente, as configurações padrão devem ser suficientes.<br />

O Exemplo 20.3, “Entrada para desabilitar o registro” (p 395) mostra a forma mais<br />

simples de uma entrada como esta e suprime totalmente qualquer registro.<br />

Exemplo 20.3 Entrada para desabilitar o registro<br />

logging {<br />

category default { null; };<br />

};<br />

20.4.3 Entradas das zonas<br />

Exemplo 20.4 Entrada da zona para my-<strong>do</strong>main.de<br />

zone "my-<strong>do</strong>main.de" in {<br />

type master;<br />

file "my-<strong>do</strong>main.zone";<br />

notify no;<br />

};<br />

Depois de zone, especifique o nome <strong>do</strong> <strong>do</strong>mínio para o administra<strong>do</strong>r<br />

(my-<strong>do</strong>main.de), segui<strong>do</strong> de in e um bloco de opções relevantes incluídas entre<br />

chaves, como mostra<strong>do</strong> no Exemplo 20.4, “Entrada da zona para my-<strong>do</strong>main.de” (p 395).<br />

Para definir uma zona escrava, altere type para slave e especifique um servi<strong>do</strong>r de<br />

nomes que administre essa zona como master (que, por sua vez, pode ser uma escrava<br />

de outra master), como mostra<strong>do</strong> no Exemplo 20.5, “Entrada da zona para other<strong>do</strong>main.de”<br />

(p 396).<br />

Domain Name System (Sistema de Nomes de Domínio) 395


396 Referência<br />

Exemplo 20.5 Entrada da zona para other-<strong>do</strong>main.de<br />

zone "other-<strong>do</strong>main.de" in {<br />

type slave;<br />

file "slave/other-<strong>do</strong>main.zone";<br />

masters { 10.0.0.1; };<br />

};<br />

As opções de zona:<br />

type master;<br />

Ao especificar master, comunique ao BIND que a zona é gerenciada pelo servi<strong>do</strong>r<br />

de nomes local. Esse procedimento pressupõe que um arquivo de zona tenha si<strong>do</strong><br />

cria<strong>do</strong> no formato correto.<br />

type slave;<br />

Esta zona é transferida de outro servi<strong>do</strong>r de nomes. Ela deve ser usada juntamente<br />

com masters.<br />

type hint;<br />

A zona . <strong>do</strong> tipo hint é usada para definir os servi<strong>do</strong>res de nomes raiz. Essa<br />

definição de zona pode ser deixada assim.<br />

arquivo my-<strong>do</strong>main.zone ou arquivo “slave/other-<strong>do</strong>main.zone”;<br />

Esta entrada especifica o arquivo em que os da<strong>do</strong>s da zona para o <strong>do</strong>mínio estão<br />

localiza<strong>do</strong>s. Este arquivo não é necessário para uma escrava, pois os da<strong>do</strong>s são<br />

busca<strong>do</strong>s em outro servi<strong>do</strong>r de nomes. Para diferenciar arquivos master de escravos,<br />

use o diretório slave para os arquivos escravos.<br />

masters { endereço-ip-servi<strong>do</strong>r; };<br />

Esta entrada só é necessária para zonas escravas. Ela especifica o servi<strong>do</strong>r de nomes<br />

<strong>do</strong> qual o arquivo da zona deve ser transferi<strong>do</strong>.<br />

allow-update {! *; };<br />

Esta opção controla o acesso de gravação externo, permitin<strong>do</strong> que os clientes façam<br />

uma entrada no DNS, o que normalmente não é desejável por razões de segurança.<br />

Sem essa entrada, as atualizações da zona não são permitidas. A entrada acima<br />

obtém o mesmo porque ! * proíbe efetivamente qualquer atividade afim.


20.5 Arquivos de zona<br />

São necessários <strong>do</strong>is tipos de arquivos de zona. Um designa endereços IP a nomes de<br />

hosts e o outro faz o oposto: fornece um nome de host a um endereço IP.<br />

DICA: Usan<strong>do</strong> o ponto em arquivos de zona<br />

O . tem um significa<strong>do</strong> importante nos arquivos de zona. Se os nomes de host<br />

forem designa<strong>do</strong>s sem um . final, a zona será anexada. Nomes de host<br />

completos especifica<strong>do</strong>s sem um nome de <strong>do</strong>mínio completo devem terminar<br />

com um . para evitar que o <strong>do</strong>mínio seja adiciona<strong>do</strong> a eles novamente. Pontos<br />

ausentes ou coloca<strong>do</strong>s erradamente são provavelmente a causa mais freqüente<br />

de erros de configuração <strong>do</strong> servi<strong>do</strong>r de nomes.<br />

O primeiro caso a considerar é o arquivo de zona world.zone, responsável pelo<br />

<strong>do</strong>mínio world.cosmos, exibi<strong>do</strong> no Exemplo 20.6, “Arquivo<br />

/var/lib/named/world.zone” (p 397).<br />

Exemplo 20.6 Arquivo /var/lib/named/world.zone<br />

$TTL 2D<br />

world.cosmos. IN SOA gateway root.world.cosmos. (<br />

2003072441 ; serial<br />

1D ; refresh<br />

2H ; retry<br />

1W ; expiry<br />

2D ) ; minimum<br />

IN NS gateway<br />

IN MX 10 sun<br />

gateway IN A 192.168.0.1<br />

IN A 192.168.1.1<br />

sun IN A 192.168.0.2<br />

moon IN A 192.168.0.3<br />

earth IN A 192.168.1.2<br />

mars IN A 192.168.1.3<br />

www IN CNAME moon<br />

Linha 1:<br />

$TTL define o tempo padrão de operação a ser aplica<strong>do</strong> em todas as entradas deste<br />

arquivo. Neste exemplo, as entradas são válidas por um perío<strong>do</strong> de <strong>do</strong>is dias (2 D).<br />

Domain Name System (Sistema de Nomes de Domínio) 397


398 Referência<br />

Linha 2:<br />

Onde o registro de controle SOA (start <strong>of</strong> authority) é inicia<strong>do</strong>:<br />

• O nome <strong>do</strong> <strong>do</strong>mínio a ser administra<strong>do</strong> é world.cosmos na primeira posição.<br />

Ele termina com um ., caso contrário a zona seria anexada outra vez. Como<br />

alternativa, é possível inserir uma @ aqui, caso em que a zona seria extraída da<br />

entrada correspondente em /etc/named.conf.<br />

• Depois, IN SOA será o nome <strong>do</strong> servi<strong>do</strong>r de nomes master dessa zona. O nome<br />

é expandi<strong>do</strong> de gateway para gateway.world.cosmos, pois ele não termina<br />

com um ..<br />

• Depois, é exibi<strong>do</strong> o endereço de e-mail da pessoa responsável por esse servi<strong>do</strong>r<br />

de nomes. Como o sinal de @ já tem um significa<strong>do</strong> especial, o . é inseri<strong>do</strong> aqui,<br />

no lugar dele. Para root@world.cosmos, a entrada deve ser lida como<br />

root.world.cosmos.. O . deve ser incluí<strong>do</strong> no fim para evitar que a zona<br />

seja adicionada.<br />

• O ( inclui todas as linhas até ), no registro <strong>do</strong> SOA.<br />

Linha 3:<br />

O serial number é um número arbitrário que é aumenta<strong>do</strong> sempre que o<br />

arquivo é muda<strong>do</strong>. Ele é necessário para informar os servi<strong>do</strong>res de nomes<br />

secundários (servi<strong>do</strong>res escravos) sobre as mudanças. Para isso, um número de 10<br />

dígitos com a data e um número de execução, escrito como YYYYMMDDNN , é<br />

o formato mais usa<strong>do</strong>.<br />

Linha 4:<br />

A refresh rate especifica o intervalo de tempo no qual os servi<strong>do</strong>res de nomes<br />

secundários verificam o serial number da zona. Neste caso, um dia:<br />

Linha 5:<br />

A retry rate especifica o intervalo de tempo no qual um servi<strong>do</strong>r de nomes<br />

secundário tenta entrar em contato com o servi<strong>do</strong>r primário novamente, no caso<br />

de erro. Aqui, duas horas.<br />

Linha 6:<br />

O expiration time especifica o intervalo de tempo no qual um servi<strong>do</strong>r de<br />

nomes secundário descarta os da<strong>do</strong>s em cache, caso não tenha consegui<strong>do</strong><br />

restabelecer contato com o servi<strong>do</strong>r primário. Aqui, uma semana.


Linha 7:<br />

A última entrada <strong>do</strong> registro SOA especifica o negative caching TTL — o<br />

tempo em que resulta<strong>do</strong>s de consultas não resolvidas <strong>do</strong> DNS de outros servi<strong>do</strong>res<br />

podem ser armazena<strong>do</strong>s em cache.<br />

Linha 9:<br />

O IN NS especifica o servi<strong>do</strong>r de nomes responsável por este <strong>do</strong>mínio. gateway<br />

é estendi<strong>do</strong> para gateway.world.cosmos, pois não termina com um .. Pode<br />

haver várias linhas como esta: uma para o servi<strong>do</strong>r de nomes primário e outra para<br />

o secundário. Se notify não for envia<strong>do</strong> para no em /etc/named.conf,<br />

to<strong>do</strong>s os servi<strong>do</strong>res de nomes lista<strong>do</strong>s aqui serão informa<strong>do</strong>s sobre as mudanças<br />

feitas nos da<strong>do</strong>s da zona.<br />

Linha 10:<br />

O registro MX especifica o servi<strong>do</strong>r de correio eletrônico que aceita, processa e<br />

encaminha e-mails para o <strong>do</strong>mínio world.cosmos. Neste exemplo, o host é<br />

sun.world.cosmos. O número na frente <strong>do</strong> nome <strong>do</strong> host é o valor de<br />

preferência. Se houver várias entradas de MX, o servi<strong>do</strong>r de correio eletrônico com<br />

menor valor será pego primeiro e se houver falha na entrega de mensagens, será<br />

feita uma nova tentativa com o próximo valor mais alto.<br />

Linhas 12 a 17:<br />

Estes são os registros reais em que um ou mais endereços IP são atribuí<strong>do</strong>s a nomes<br />

de host. Os nomes são lista<strong>do</strong>s aqui sem um ., pois eles não incluem seus <strong>do</strong>mínios,<br />

então world.cosmos é adiciona<strong>do</strong> a to<strong>do</strong>s. Dois endereços IP são designa<strong>do</strong>s<br />

ao host gateway, pois ele tem duas placas de rede. Em to<strong>do</strong>s os locais em que o<br />

endereço de host for tradicional (IPv4), o registro será marca<strong>do</strong> com A. Se o<br />

endereço for um endereço IPv6, a entrada será marcada com A6. O token anterior<br />

para os endereços IPv6 era AAAA, agora obsoleto.<br />

NOTA: Sintaxe A6<br />

O registro A6 tem uma ligeira diferença de sintaxe em relação ao AAAA.<br />

Devi<strong>do</strong> à possibilidade de fragmentação, é necessário fornecer informações<br />

sobre as partes ausentes antes <strong>do</strong> endereço. Você deve fornecer essas<br />

informações mesmo se quiser usar um endereço completamente<br />

desfragmenta<strong>do</strong>. Para o antigo registro AAAA com a sintaxe<br />

pluto IN AAAA 2345:00C1:CA11:0001:1234:5678:9ABC:DEF0<br />

pluto IN AAAA 2345:00D2:DA11:0001:1234:5678:9ABC:DEF0<br />

Domain Name System (Sistema de Nomes de Domínio) 399


400 Referência<br />

É necessário adicionar as informações sobre as partes ausentes no formato<br />

A6. Como o exemplo acima está completo (não há nenhum bit ausente),<br />

o formato A6 deste registro é:<br />

pluto IN AAAA 2345:00C1:CA11:0001:1234:5678:9ABC:DEF0<br />

pluto IN AAAA 2345:00D2:DA11:0001:1234:5678:9ABC:DEF0<br />

Não use endereços IPv4 com mapeamento IPv6. Se um host tiver um<br />

endereço IPv4, ele usará um registro A, não um A6.<br />

Linha 18:<br />

O álias www pode ser usa<strong>do</strong> como endereço mond (CNAME significa nome canônico).<br />

O pseu<strong>do</strong><strong>do</strong>mínio in-addr.arpa é usa<strong>do</strong> para a pesquisa reversa de endereços IP<br />

em nomes de hosts. Ele é anexa<strong>do</strong> à parte de rede <strong>do</strong> endereço, em notação reversa.<br />

Então, 192.168.1 é resolvi<strong>do</strong> como 1.168.192.in-addr.arpa. Consulte o<br />

Exemplo 20.7, “Pesquisa reversa” (p 400).<br />

Exemplo 20.7 Pesquisa reversa<br />

$TTL 2D<br />

1.168.192.in-addr.arpa. IN SOA gateway.world.cosmos. root.world.cosmos. (<br />

2003072441 ; serial<br />

1D ; refresh<br />

2H ; retry<br />

1W ; expiry<br />

2D ) ; minimum<br />

IN NS gateway.world.cosmos.<br />

1 IN PTR gateway.world.cosmos.<br />

2 IN PTR earth.world.cosmos.<br />

3 IN PTR mars.world.cosmos.<br />

Linha 1:<br />

STLL define o TTL padrão aplica<strong>do</strong> a todas as entradas aqui.<br />

Linha 2:<br />

O arquivo de configuração deve ativar a pesquisa reversa para a rede<br />

192.168.1.0. Supon<strong>do</strong> que a zona seja chamada de<br />

1.168.192.in-addr.arpa, ela não deve ser adicionada a nomes de hosts.<br />

Portanto, to<strong>do</strong>s os nomes de host são digita<strong>do</strong>s na forma completa, com seu <strong>do</strong>mínio


e um . no fim. As entradas restantes correspondem às descritas no exemplo de<br />

world.cosmos anterior.<br />

Linhas 3 a 7:<br />

Consulte o exemplo anterior para world.cosmos.<br />

Linha 9:<br />

Novamente, esta linha especifica o servi<strong>do</strong>r de nomes responsável pela zona. No<br />

entanto, dessa vez o nome é digita<strong>do</strong> na forma completa, com o <strong>do</strong>mínio e um .<br />

no fim.<br />

Linhas 11 a 13:<br />

Estas são as dicas <strong>do</strong>s registros <strong>do</strong> indica<strong>do</strong>r nos endereços IP <strong>do</strong>s respectivos hosts.<br />

Somente a última parte <strong>do</strong> endereço IP é digitada no começo da linha, sem o . no<br />

fim. Anexar a zona a ele (sem .in-addr.arpa) resulta na ordem reversa de<br />

to<strong>do</strong> o endereço IP.<br />

Normalmente, as transferências de zona entre versões diferentes <strong>do</strong> BIND devem ser<br />

possíveis sem problemas.<br />

20.6 Atualização dinâmica <strong>do</strong>s da<strong>do</strong>s<br />

da zona<br />

O termo atualização dinâmica se refere a operações pelas quais as entradas <strong>do</strong>s arquivos<br />

de zona de um servi<strong>do</strong>r master são adicionadas, mudadas ou apagadas. Esse mecanismo<br />

é descrito no RFC 2136. A atualização dinâmica é configurada individualmente para<br />

cada entrada de zona se você adicionar uma regra allow-update ou<br />

update-policy opcional. As zonas a serem atualizadas dinamicamente não devem<br />

ser editadas manualmente.<br />

Transmita as entradas a serem atualizadas para o servi<strong>do</strong>r com o coman<strong>do</strong> nsupdate.<br />

Para obter a sintaxe exata desse coman<strong>do</strong>, verifique a página de manual correspondente<br />

a nsupdate (man 8 nsupdate). Por razões de segurança, qualquer atualização desse<br />

tipo deve ser executada com chaves TSIC, conforme descrito na Seção 20.7, “Transações<br />

de segurança” (p 402).<br />

Domain Name System (Sistema de Nomes de Domínio) 401


402 Referência<br />

20.7 Transações de segurança<br />

Transações seguras podem ser feitas com a ajuda de TSIGs (Transaction Signatures,<br />

Assinaturas de Transação), baseadas em chaves secretas compartilhadas (também<br />

chamadas de chaves TSIGs). Esta seção descreve como gerar e usar tais chaves.<br />

Transações seguras são necessárias para a comunicação entre servi<strong>do</strong>res diferentes e<br />

para a atualização dinâmica <strong>do</strong>s da<strong>do</strong>s de zona. Tornar o controle de acesso dependente<br />

de chaves é muito mais seguro <strong>do</strong> que meramente confiar em endereços IP.<br />

Gere uma chave TSIG com o seguinte coman<strong>do</strong> (para obter detalhes, consulte<br />

man dnssec-keygen):<br />

dnssec-keygen -a hmac-md5 -b 128 -n HOST host1-host2<br />

Serão cria<strong>do</strong>s <strong>do</strong>is arquivos com nomes similares a:<br />

Khost1-host2.+157+34265.private Khost1-host2.+157+34265.key<br />

A chave (uma string como ejIkuCyyGJwwuN3xAteKgg==) é encontrada nos <strong>do</strong>is<br />

arquivos. Para usá-la em transações, o segun<strong>do</strong> arquivo (Khost1-host2.+157<br />

+34265.key) deve ser transferi<strong>do</strong> para o host remoto, de preferência de forma segura<br />

(usan<strong>do</strong> scp, por exemplo). No servi<strong>do</strong>r remoto, a chave deve ser incluída no arquivo<br />

/etc/named.conf para permitir uma comunicação segura entre host1 e host2:<br />

key host1-host2. {<br />

algorithm hmac-md5;<br />

secret ";ejIkuCyyGJwwuN3xAteKgg==;<br />

};<br />

ATENÇÃO: Permissões de arquivo de /etc/named.conf<br />

Verifique se as permissões <strong>do</strong> arquivo /etc/named.conf foram restringidas<br />

adequadamente. O padrão para esse arquivo é 0640, com o proprietário sen<strong>do</strong><br />

root e o grupo, named. Como alternativa, mova as chaves para um outro<br />

arquivo com permissões especialmente limitadas, que então será incluí<strong>do</strong> de<br />

/etc/named.conf.<br />

Para permitir que o servi<strong>do</strong>r host1 use a chave para host2 (que tem o endereço<br />

192.168.2.3 neste exemplo), o arquivo /etc/named.conf <strong>do</strong> servi<strong>do</strong>r deve<br />

incluir a seguinte regra:


server 192.168.2.3 {<br />

keys { host1-host2. ;};<br />

};<br />

Entradas análogas devem ser incluídas nos arquivos de configuração de host2.<br />

Adicione chaves TSIG a quaisquer ACLs (listas de controle de acesso, não confundir<br />

com as ACLs <strong>do</strong> sistema de arquivos) definidas por endereços IP e intervalos de endereço<br />

para possibilitar a segurança da transação. A entrada correspondente deve ter esta<br />

aparência:<br />

allow-update { key host1-host2. ;};<br />

Este tópico é discuti<strong>do</strong> com mais detalhes no BIND Administrator Reference Manual<br />

(Manual de Referência <strong>do</strong> Administra<strong>do</strong>r BIND), em update-policy.<br />

20.8 Segurança <strong>do</strong> DNS<br />

A DNSSEC, ou segurança <strong>do</strong> DNS, é descrita no RFC 2535. As ferramentas disponíveis<br />

para a DNSSEC serão discutidas no Manual <strong>do</strong> BIND.<br />

Uma zona considerada segura deve ter uma ou mais chaves associadas a ela. Elas são<br />

geradas com o coman<strong>do</strong> dnssec-keygen, assim como as chaves <strong>do</strong> host. O algoritmo<br />

de criptografia de DSA é usa<strong>do</strong> atualmente para gerar essas chaves. As chaves públicas<br />

geradas devem ser incluídas no arquivo de zona correspondente, com uma regra<br />

$INCLUDE.<br />

Com o coman<strong>do</strong> dnssec-makekeyset, todas as chaves geradas são empacotadas<br />

em um conjunto, que deve ser transferi<strong>do</strong> para a zona-pai de forma segura. Na zonapai,<br />

o conjunto é assina<strong>do</strong> com dnssec-signkey. Os arquivos gera<strong>do</strong>s por esse<br />

coman<strong>do</strong> são usa<strong>do</strong>s para assinar as zonas com o coman<strong>do</strong> dnssec-signzone, que<br />

por sua vez gera os arquivos a serem incluí<strong>do</strong>s em cada zona de /etc/named.conf.<br />

20.9 Mais informações<br />

Para obter mais informações, consulte o BIND Administrator Reference Manual (Manual<br />

de Referência <strong>do</strong> Administra<strong>do</strong>r <strong>do</strong> BIND) <strong>do</strong> pacote bind-<strong>do</strong>c, instala<strong>do</strong> em /usr/<br />

share/<strong>do</strong>c/packages/bind/. Considere ainda consultar os RFCs cita<strong>do</strong>s pelo<br />

manual e as páginas de manual incluídas no BIND. O arquivo /usr/share/<strong>do</strong>c/<br />

Domain Name System (Sistema de Nomes de Domínio) 403


404 Referência<br />

packages/bind/README.SuSE contém informações atualizadas sobre o BIND<br />

no <strong>SUSE</strong> Linux.


Usan<strong>do</strong> o NIS<br />

Assim que vários sistemas UNIX em uma rede desejam acessar recursos comuns, tornase<br />

muito importante que todas as identidades de usuário e grupo sejam a mesma para<br />

todas as máquinas nessa rede. A rede deve ser transparente para os usuários: qualquer<br />

que seja a máquina que estiverem usan<strong>do</strong>, sempre se encontrarão exatamente no mesmo<br />

ambiente. Isso é possível através <strong>do</strong>s serviços <strong>do</strong> NIS e <strong>do</strong> NFS. O NFS distribui sistemas<br />

de arquivos em uma rede e é discuti<strong>do</strong> no Capítulo 22, Compartilhan<strong>do</strong> sistemas de<br />

arquivos com o NFS (p 415).<br />

O NIS (Network Information Service - Serviço de Informações de Rede) pode ser<br />

descrito como um serviço pareci<strong>do</strong> com um banco de da<strong>do</strong>s que fornece acesso ao<br />

conteú<strong>do</strong> de /etc/passwd, /etc/sha<strong>do</strong>w e /etc/group através de redes. O<br />

NIS também pode ser usa<strong>do</strong> para outros fins (disponibilizar o conteú<strong>do</strong> de arquivos<br />

como /etc/hosts ou /etc/services, por exemplo), mas isso está além <strong>do</strong><br />

escopo dessa introdução. As pessoas, normalmente, referem-se ao NIS como YP (Yellow<br />

Pages - Páginas Amarelas), pois ele funciona como se fosse as “páginas amarelas” da<br />

rede.<br />

21.1 Configuran<strong>do</strong> servi<strong>do</strong>res NIS<br />

Para distribuir as informações NIS pelas redes, você pode ter um servi<strong>do</strong>r único (um<br />

master) que atenda to<strong>do</strong>s os clientes ou servi<strong>do</strong>res NIS escravos que solicitem essas<br />

informações <strong>do</strong> master e depois retransmitam as informações a seus respectivos clientes.<br />

• Para configurar apenas um servi<strong>do</strong>r NIS para a rede, prossiga com a Seção 21.1.1,<br />

“Configuran<strong>do</strong> um servi<strong>do</strong>r NIS master” (p 406).<br />

21<br />

Usan<strong>do</strong> o NIS 405


406 Referência<br />

• Se o servi<strong>do</strong>r NIS master tiver que exportar os da<strong>do</strong>s para servi<strong>do</strong>res escravos em<br />

outras sub-redes, configure o servi<strong>do</strong>r master conforme descrito na Seção 21.1.1,<br />

“Configuran<strong>do</strong> um servi<strong>do</strong>r NIS master” (p 406) e configure os servi<strong>do</strong>res escravos<br />

das sub-redes conforme descrito na Seção 21.1.2, “Configuran<strong>do</strong> um servi<strong>do</strong>r NIS<br />

escravo” (p 411).<br />

21.1.1 Configuran<strong>do</strong> um servi<strong>do</strong>r NIS master<br />

Para configurar um servi<strong>do</strong>r NIS master para sua rede, proceda da seguinte maneira:<br />

1 Inicie o YaST → Serviços de Rede → Servi<strong>do</strong>r NIS.<br />

2 Se precisar somente de um servi<strong>do</strong>r NIS em sua rede ou se for necessário que<br />

esse servi<strong>do</strong>r funcione como master para outros servi<strong>do</strong>res NIS escravos, selecione<br />

Instalar e configurar Servi<strong>do</strong>r Master NIS. O YaST instala os pacotes necessários.<br />

DICA<br />

Se o s<strong>of</strong>tware <strong>do</strong> servi<strong>do</strong>r NIS já estiver instala<strong>do</strong> na sua máquina, clique<br />

em Criar um servi<strong>do</strong>r NIS mestre para iniciar a criação de um servi<strong>do</strong>r<br />

NIS.<br />

Figura 21.1 Configuração <strong>do</strong> servi<strong>do</strong>r NIS


3 Determine opções de configuração NIS básicas:<br />

a Digite o nome <strong>do</strong> <strong>do</strong>mínio NIS.<br />

b Defina se o host também deve ser um cliente NIS, possibilitan<strong>do</strong> que os<br />

usuários efetuem login e acessem os da<strong>do</strong>s <strong>do</strong> servi<strong>do</strong>r NIS. Para isso,<br />

selecione Este host também é um cliente NIS.<br />

Selecione Mudança de senhas para permitir que os usuários da sua rede<br />

(usuários locais e aqueles gerencia<strong>do</strong>s pelo servi<strong>do</strong>r NIS) troquem suas<br />

senhas no servi<strong>do</strong>r NIS (com o coman<strong>do</strong> yppasswd).<br />

Isso disponibiliza as opções Permitir mudanças no campo GECOS e Permitir<br />

mudanças no shell de login. “GECOS” significa que os usuários também<br />

podem mudar suas configurações de endereço e nomes com o coman<strong>do</strong><br />

ypchfn. “SHELL” permite que os usuários alterem seu shell padrão com<br />

o coman<strong>do</strong> ypchsh, por exemplo, para mudar de bash para sh. O shell<br />

novo deve ser uma das entradas predefinidas em /etc/shells.<br />

c Se o seu servi<strong>do</strong>r NIS tiver que atuar como servi<strong>do</strong>r master para servi<strong>do</strong>res<br />

escravos NIS em outras sub-redes, selecione Existe um Servi<strong>do</strong>r Escravo<br />

NIS ativo.<br />

d Selecione Abrir Portas no Firewall para fazer com que o YaST adapte as<br />

configurações <strong>do</strong> firewall para o servi<strong>do</strong>r NIS.<br />

Usan<strong>do</strong> o NIS 407


408 Referência<br />

Figura 21.2 Configuração de servi<strong>do</strong>r master<br />

e Saia dessa caixa de diálogo com Próximo ou clique em Outras configurações<br />

globais para fazer configurações extras. Outras configurações globais inclui<br />

a opção para mudar o diretório de origem <strong>do</strong> servi<strong>do</strong>r NIS (/etc por<br />

padrão). Além disso, é possível mesclar senhas aqui. A configuração deve<br />

ser Sim para que os arquivos (/etc/passwd, /etc/sha<strong>do</strong>w e /etc/<br />

group) sejam usa<strong>do</strong>s para criar o banco de da<strong>do</strong>s <strong>do</strong> usuário. Também<br />

determine o menor ID de grupo e usuário que deve ser <strong>of</strong>ereci<strong>do</strong> pelo NIS.<br />

Clique em OK para confirmar as configurações e voltar à tela anterior.


Figura 21.3 Mudan<strong>do</strong> o diretório e sincronizan<strong>do</strong> arquivos para um servi<strong>do</strong>r NIS<br />

4 Se você habilitou anteriormente a opção Existe um servi<strong>do</strong>r de NIS escravo ativo,<br />

digite os nomes de host usa<strong>do</strong>s como escravos e clique em Próximo.<br />

5 Se você não usa servi<strong>do</strong>res escravos, a configuração escrava é ignorada e você<br />

continuará diretamente na caixa de diálogo para a configuração <strong>do</strong> banco de<br />

da<strong>do</strong>s. Aqui, especifique os mapas, os bancos de da<strong>do</strong>s parciais a serem<br />

transferi<strong>do</strong>s <strong>do</strong> servi<strong>do</strong>r NIS para o cliente. As configurações padrão geralmente<br />

são adequadas. Para sair dessa caixa de diálogo, clique em Próximo.<br />

6 Marque que mapas devem estar disponíveis e clique em Próximo para continuar.<br />

Usan<strong>do</strong> o NIS 409


410 Referência<br />

Figura 21.4 Configuração de mapas <strong>do</strong> servi<strong>do</strong>r NIS<br />

7 Digite os hosts que têm permissão para fazer consultas ao servi<strong>do</strong>r NIS. Clique<br />

no botão apropria<strong>do</strong> para adicionar, editar ou apagar hosts. Especifique de quais<br />

redes as solicitações podem ser enviadas para o servi<strong>do</strong>r NIS. Normalmente, esta<br />

é sua rede interna. Nesse caso, deve haver as duas entradas a seguir:<br />

255.0.0.0 127.0.0.0<br />

0.0.0.0 0.0.0.0<br />

A primeira entrada habilita conexões <strong>do</strong> seu próprio host, que é o servi<strong>do</strong>r NIS.<br />

A segunda permite que to<strong>do</strong>s os hosts enviem as solicitações ao servi<strong>do</strong>r.


Figura 21.5 Configuran<strong>do</strong> permissões de solicitação para um servi<strong>do</strong>r NIS<br />

8 Clique em Concluir para gravar as mudanças e sair da configuração.<br />

21.1.2 Configuran<strong>do</strong> um servi<strong>do</strong>r NIS<br />

escravo<br />

Para configurar outros servi<strong>do</strong>res escravos NIS na rede, proceda da seguinte forma:<br />

1 Inicie o YaST → Serviços de Rede → Servi<strong>do</strong>r NIS.<br />

2 Selecione Instalar e configurar Servi<strong>do</strong>r Escravo NIS e clique em Próximo.<br />

DICA<br />

Se o s<strong>of</strong>tware <strong>do</strong> servi<strong>do</strong>r NIS já estiver instala<strong>do</strong> na sua máquina, clique<br />

em Criar um servi<strong>do</strong>r NIS escravo para iniciar a criação de um servi<strong>do</strong>r<br />

NIS escravo.<br />

3 Conclua a configuração básica <strong>do</strong> servi<strong>do</strong>r NIS escravo:<br />

Usan<strong>do</strong> o NIS 411


412 Referência<br />

a Digite o <strong>do</strong>mínio NIS.<br />

b Digite o nome <strong>do</strong> host ou endereço IP <strong>do</strong> servi<strong>do</strong>r master.<br />

c Selecione Este host também é um cliente NIS para habilitar logins de usuário<br />

nesse servi<strong>do</strong>r.<br />

d Adapte as configurações <strong>do</strong> firewall com Abrir Portas no Firewall.<br />

e Clique em Próximo.<br />

4 Digite os hosts que têm permissão para fazer consultas ao servi<strong>do</strong>r NIS. Clique<br />

no botão apropria<strong>do</strong> para adicionar, editar ou apagar hosts. Especifique de quais<br />

redes as solicitações podem ser enviadas para o servi<strong>do</strong>r NIS. Normalmente, isso<br />

se refere a to<strong>do</strong>s os hosts. Nesse caso, deve haver as duas entradas a seguir:<br />

255.0.0.0 127.0.0.0<br />

0.0.0.0 0.0.0.0<br />

A primeira entrada habilita conexões <strong>do</strong> seu próprio host, que é o servi<strong>do</strong>r NIS.<br />

A segunda permite que to<strong>do</strong>s os hosts com acesso à mesma rede enviem<br />

solicitações ao servi<strong>do</strong>r.<br />

5 Clique em Concluir para gravar as mudanças e sair da configuração.<br />

21.2 Configuran<strong>do</strong> clientes NIS<br />

Use o módulo Cliente NIS para configurar uma estação de trabalho para usar o NIS.<br />

Selecione se o host possui um endereço IP estático ou se recebe um emiti<strong>do</strong> pelo DHCP.<br />

O DHCP também pode fornecer o <strong>do</strong>mínio NIS e o servi<strong>do</strong>r NIS. Para obter mais<br />

informações sobre o DHCP, consulte o Capítulo 23, DHCP (p 421). Se um endereço IP<br />

estático for usa<strong>do</strong>, especifique o <strong>do</strong>mínio NIS e o servi<strong>do</strong>r NIS manualmente. Consulte<br />

a Figura 21.6, “Definin<strong>do</strong> o <strong>do</strong>mínio e o endereço de um servi<strong>do</strong>r NIS” (p 413). Procurar<br />

faz o YaST procurar um servi<strong>do</strong>r NIS ativo em toda a rede. Dependen<strong>do</strong> <strong>do</strong> tamanho<br />

da rede local, esse pode ser um processo demora<strong>do</strong>. Broadcast solicita um servi<strong>do</strong>r na<br />

rede local quan<strong>do</strong> não há resposta <strong>do</strong>s servi<strong>do</strong>res especifica<strong>do</strong>s.<br />

Você também pode especificar vários servi<strong>do</strong>res, digitan<strong>do</strong> seus endereços em Endereços<br />

IP <strong>do</strong>s servi<strong>do</strong>res NIS e separan<strong>do</strong>-os com espaços.


Dependen<strong>do</strong> da instalação local, você também poderá ativar o automounter. Essa opção<br />

também instala s<strong>of</strong>twares adicionais, se necessário.<br />

Nas configurações avançadas, desabilite a opção Responder aos Hosts Remotos para<br />

que outros hosts não possam consultar o servi<strong>do</strong>r usa<strong>do</strong> pelo seu cliente. Ao marcar a<br />

opção Servi<strong>do</strong>r Estraga<strong>do</strong>, o cliente poderá receber respostas de um servi<strong>do</strong>r que se<br />

comunica por uma porta sem privilégio. Para obter mais informações, consulte<br />

man ypbind.<br />

Ao terminar suas configurações, clique em Concluir para gravá-las e retornar ao centro<br />

de controle <strong>do</strong> YaST.<br />

Figura 21.6 Definin<strong>do</strong> o <strong>do</strong>mínio e o endereço de um servi<strong>do</strong>r NIS<br />

Usan<strong>do</strong> o NIS 413


Compartilhan<strong>do</strong> sistemas de<br />

arquivos com o NFS<br />

Como menciona<strong>do</strong> no Capítulo 21, Usan<strong>do</strong> o NIS (p 405), o NFS funciona com o NIS<br />

para tornar uma rede transparente para o usuário. Com o NFS, é possível distribuir<br />

sistemas de arquivos pela rede. Não importa em qual terminal os usuários estão<br />

conecta<strong>do</strong>s. Eles sempre se encontram no mesmo ambiente.<br />

Assim como o NIS, o NFS é um sistema cliente/servi<strong>do</strong>r. Uma máquina pode ser ambos<br />

— pode fornecer sistemas de arquivos pela rede (exportar) e montar sistemas de arquivos<br />

a partir de outros hosts (importar).<br />

IMPORTANTE: Necessidade <strong>do</strong> DNS<br />

A princípio, todas as exportações podem ser feitas usan<strong>do</strong> somente endereços<br />

IP. Para evitar tempos de espera, você deve ter um sistema DNS em<br />

funcionamento. Isso é necessário pelo menos para fins de registro, pois o<br />

daemon monta<strong>do</strong> inverte pesquisas.<br />

22.1 Importan<strong>do</strong> sistemas de arquivos<br />

com o YaST<br />

Usuários autoriza<strong>do</strong>s para fazer isso podem montar diretórios NFS a partir de um<br />

servi<strong>do</strong>r NFS em suas próprias árvores de arquivos. Isso pode ser feito mais facilmente<br />

usan<strong>do</strong> o módulo YaST Cliente NFS. Basta digitar o nome de host <strong>do</strong> servi<strong>do</strong>r NFS, o<br />

diretório a ser importa<strong>do</strong> e o ponto de montagem no qual esse diretório deve ser monta<strong>do</strong><br />

localmente. Tu<strong>do</strong> isso é feito depois que você clica em Adicionar na primeira caixa de<br />

22<br />

Compartilhan<strong>do</strong> sistemas de arquivos com o NFS 415


416 Referência<br />

diálogo. Clique em Abrir Porta no Firewall para abrir o firewall e permitir que<br />

computa<strong>do</strong>res remotos acessem o serviço. O status <strong>do</strong> firewall é mostra<strong>do</strong> próximo à<br />

caixa de seleção. Ao clicar em OK, você grava suas mudanças. Consulte a Figura 22.1,<br />

“Configuração <strong>do</strong> cliente NFS com o YaST” (p 416).<br />

Figura 22.1 Configuração <strong>do</strong> cliente NFS com o YaST<br />

22.2 Importan<strong>do</strong> sistemas de arquivos<br />

manualmente<br />

Os sistemas de arquivos podem ser facilmente importa<strong>do</strong>s manualmente de um servi<strong>do</strong>r<br />

NFS. O único pré-requisito é executar um mapea<strong>do</strong>r de porta RPC, que pode ser inicia<strong>do</strong><br />

com a digitação <strong>do</strong> coman<strong>do</strong> rcportmap start como root. Depois que esse prérequisito<br />

é executa<strong>do</strong>, os sistemas de arquivos remotos exporta<strong>do</strong>s nas respectivas<br />

máquinas podem ser monta<strong>do</strong>s no sistema de arquivos da mesma forma que discos<br />

rígi<strong>do</strong>s locais, usan<strong>do</strong> o coman<strong>do</strong> mount com a seguinte sintaxe:<br />

mount host:remote-path local-path<br />

Se os diretórios de usuário da máquina sun, por exemplo, precisarem ser importa<strong>do</strong>s,<br />

use o seguinte coman<strong>do</strong>:


mount sun:/home /home<br />

22.3 Exportan<strong>do</strong> sistemas de arquivos<br />

com o YaST<br />

Com o YaST, transforme um host de sua rede em um servi<strong>do</strong>r NFS — um servi<strong>do</strong>r que<br />

exporta diretórios e arquivos para to<strong>do</strong>s os hosts aos quais ele concede acesso. Isso<br />

poderia ser feito para fornecer aplicativos a to<strong>do</strong>s os membros de um grupo, sem instalálos<br />

localmente em cada um <strong>do</strong>s hosts. Para instalar um servi<strong>do</strong>r como esse, inicie o<br />

YaST e selecione Serviços de Rede → Servi<strong>do</strong>r NFS. Uma caixa de diálogo como a da<br />

Figura 22.2, “Ferramenta de configuração <strong>do</strong> servi<strong>do</strong>r NFS” (p 417) é exibida.<br />

Figura 22.2 Ferramenta de configuração <strong>do</strong> servi<strong>do</strong>r NFS<br />

Em seguida, ative Iniciar Servi<strong>do</strong>r NFS e clique em Próximo. No campo de texto<br />

superior, digite os diretórios a serem exporta<strong>do</strong>s. Abaixo, digite os hosts que devem ter<br />

acesso a eles. Essa caixa de diálogo é mostrada na Figura 22.3, “Configuran<strong>do</strong> um<br />

servi<strong>do</strong>r NFS com o YaST” (p 418). Há quatro opções que podem ser configuradas para<br />

cada host: host único, grupos de rede, curingas e redes IP. Uma<br />

explicação mais detalhada dessas opções é fornecida por man exports. Sair conclui<br />

a configuração.<br />

Compartilhan<strong>do</strong> sistemas de arquivos com o NFS 417


418 Referência<br />

Figura 22.3 Configuran<strong>do</strong> um servi<strong>do</strong>r NFS com o YaST<br />

IMPORTANTE: Configuração automática de firewall<br />

Se um firewall estiver ativo no seu sistema (SuSEfirewall2), o YaST adaptará sua<br />

configuração para o servi<strong>do</strong>r NFS habilitan<strong>do</strong> o serviço nfs quan<strong>do</strong> Abrir Portas<br />

no Firewall for seleciona<strong>do</strong>.<br />

22.4 Exportan<strong>do</strong> sistemas de arquivos<br />

manualmente<br />

Se não você deseja usar o YaST, verifique se os sistemas a seguir podem ser executa<strong>do</strong>s<br />

no servi<strong>do</strong>r NFS:<br />

• portmapper RPC (portmap)<br />

• daemon de montagem <strong>do</strong> RPC (rpc.mountd)<br />

• daemon NFS <strong>do</strong> RPC (rpc.nfsd)


Para que esses serviços sejam inicia<strong>do</strong>s pelos scripts /etc/init.d/portmap e<br />

/etc/init.d/nfsserver quan<strong>do</strong> o sistema for inicializa<strong>do</strong>, digite os coman<strong>do</strong>s<br />

insserv /etc/init.d/nfsserver e insserv /etc/init.d/portmap.<br />

Defina também quais sistemas de arquivos devem ser exporta<strong>do</strong>s para quais hosts <strong>do</strong><br />

arquivo de configuração /etc/exports.<br />

Para que cada diretório possa exportar, uma linha é necessária para configurar as<br />

máquinas que podem acessar esse diretório com determinadas permissões. To<strong>do</strong>s os<br />

subdiretórios desse diretório também são automaticamente exporta<strong>do</strong>s. As máquinas<br />

autorizadas são normalmente especificadas com seus nomes completos (incluin<strong>do</strong> o<br />

nome de <strong>do</strong>mínio), mas é possível usar curingas como * ou ? (que se expandem da<br />

mesma forma que o shell Bash). Se nenhuma máquina for especificada aqui, qualquer<br />

máquina poderá importar esse sistema de arquivos com as permissões fornecidas.<br />

Configure as permissões entre colchetes após o nome da máquina para o sistema de<br />

arquivos a ser exporta<strong>do</strong>. As opções mais importantes são mostradas na Tabela 22.1,<br />

“Permissões para sistema de arquivos exporta<strong>do</strong>s” (p 419).<br />

Tabela 22.1 Permissões para sistema de arquivos exporta<strong>do</strong>s<br />

opção<br />

ro<br />

rw<br />

root_squash<br />

no_root_squash<br />

link_relative<br />

significa<strong>do</strong><br />

O sistema de arquivos é exporta<strong>do</strong> com permissão Apenas<br />

Leitura (padrão).<br />

O sistema de arquivos é exporta<strong>do</strong> com permissão leituragravação.<br />

Isso garante que o usuário root de uma máquina importada<br />

não possua permissões root nesse sistema de arquivos. Isso<br />

pode ser feito designan<strong>do</strong> o ID de usuário 65534 a usuários<br />

com o ID 0 (root). Esse ID de usuário deve ser configura<strong>do</strong><br />

como nobody (que é o padrão).<br />

Não designa o ID de usuário 0 ao ID de usuário 65534,<br />

manten<strong>do</strong> as permissões de root válidas.<br />

Converte links absolutos (os que iniciam com /) em uma<br />

seqüência de ../. Isso só terá utilidade se to<strong>do</strong> o sistema de<br />

arquivos de uma máquina estiver monta<strong>do</strong> (padrão).<br />

Compartilhan<strong>do</strong> sistemas de arquivos com o NFS 419


opção<br />

420 Referência<br />

link_absolute<br />

map_identity<br />

map_daemon<br />

significa<strong>do</strong><br />

Os links simbólicos permanecem intactos.<br />

Os IDs de usuário são exatamente os mesmos no cliente e no<br />

servi<strong>do</strong>r (padrão).<br />

Cliente e servi<strong>do</strong>r não possuem IDs de usuário<br />

correspondentes. Isso faz com que o nfsd crie uma tabela de<br />

conversão para IDs de usuário. O daemon ugidd é necessário<br />

para que isso funcione.<br />

Seu arquivo exportações talvez fique pareci<strong>do</strong> com o Exemplo 22.1, “/etc/exports”<br />

(p 420). /etc/exports é li<strong>do</strong> por mountd e nfsd. Se você fizer mudanças nesse<br />

arquivo, reinicie mountd e nfsd para que elas sejam efetivadas. Isso pode ser feito<br />

facilmente com o rcnfsserver restart.<br />

Exemplo 22.1 /etc/exports<br />

#<br />

# /etc/exports<br />

#<br />

/home sun(rw) venus(rw)<br />

/usr/X11 sun(ro) venus(ro)<br />

/usr/lib/texmf sun(ro) venus(rw)<br />

/ earth(ro,root_squash)<br />

/home/ftp (ro)<br />

# End <strong>of</strong> exports<br />

22.5 Mais informações<br />

Informações sobre como configurar um servi<strong>do</strong>r NFS estão disponíveis em /usr/<br />

share/<strong>do</strong>c/packages/nfs-utils/README e nos <strong>do</strong>cumentos lista<strong>do</strong>s. A<br />

<strong>do</strong>cumentação técnica detalhada está disponível online em http://nfs<br />

.sourceforge.net/.


DHCP<br />

A finalidade <strong>do</strong> DHCP é designar configurações de redes de forma central, a partir de<br />

um servi<strong>do</strong>r, em vez de defini-las localmente em cada estação de trabalho. Um host<br />

configura<strong>do</strong> para usar o DHCP não tem controle sobre seu próprio endereço estático.<br />

Ele é habilita<strong>do</strong> para configurar a si mesmo de forma completa e automática, de acor<strong>do</strong><br />

com as direções <strong>do</strong> servi<strong>do</strong>r. Se você usar o NetworkManager no la<strong>do</strong> cliente, não será<br />

necessário configurar o cliente. Isto é útil caso haja ambientes variáveis e apenas uma<br />

interface ativa de cada vez. Nunca use o NetworkManager em uma máquina que execute<br />

um servi<strong>do</strong>r DHCP.<br />

Uma forma de configurar um servi<strong>do</strong>r DHCP é identificar cada cliente através <strong>do</strong><br />

endereço de hardware de sua respectiva placa de rede (na maioria <strong>do</strong>s casos, fixa) e,<br />

então, fornecer a esse cliente configurações idênticas toda vez que ele se conectar ao<br />

servi<strong>do</strong>r. O DHCP também pode ser configura<strong>do</strong> para designar endereços a cada cliente<br />

interessa<strong>do</strong> de forma dinâmica, a partir de um pool de endereços configura<strong>do</strong> para isso.<br />

No último caso, o servi<strong>do</strong>r DHCP tenta designar o mesmo endereço ao cliente toda vez<br />

que ele recebe uma solicitação, mesmo durante perío<strong>do</strong>s mais longos. Isso só funciona<br />

enquanto a rede não tiver mais clientes <strong>do</strong> que endereços.<br />

O DHCP facilita a vida <strong>do</strong>s administra<strong>do</strong>res <strong>do</strong> sistema. Quaisquer mudanças, mesmo<br />

as maiores, relacionadas a endereços e à configuração de rede, geralmente podem ser<br />

implementadas de forma centralizada, editan<strong>do</strong> o arquivo de configuração <strong>do</strong> servi<strong>do</strong>r.<br />

Isso é mais conveniente <strong>do</strong> que reconfigurar inúmeras estações de trabalho. Também<br />

é muito mais fácil integrar máquinas, especialmente as mais novas, na rede, pois podem<br />

receber um endereço IP <strong>do</strong> pool. A recuperação de configurações de rede apropriadas<br />

de um servi<strong>do</strong>r DHCP é útil principalmente no caso de laptops regularmente usa<strong>do</strong>s<br />

em redes diferentes.<br />

23<br />

DHCP 421


422 Referência<br />

Um servi<strong>do</strong>r DHCP não só fornece o endereço IP e a máscara de rede, como também<br />

os endereços <strong>do</strong> servi<strong>do</strong>r de nomes, o nome de host, o nome de <strong>do</strong>mínio e o gateway a<br />

ser usa<strong>do</strong> pelo cliente. Além disso, o DHCP permite que vários outros parâmetros sejam<br />

configura<strong>do</strong>s de forma centralizada, por exemplo, um servi<strong>do</strong>r de horários <strong>do</strong> qual<br />

clientes possam fazer poll <strong>do</strong> horário atual ou até mesmo um servi<strong>do</strong>r de impressão.<br />

23.1 Configuran<strong>do</strong> um servi<strong>do</strong>r DHCP<br />

com o YaST<br />

Quan<strong>do</strong> o módulo é inicia<strong>do</strong> pela primeira vez, um assistente é inicia<strong>do</strong>, solicitan<strong>do</strong><br />

que você tome algumas decisões básicas referentes à administração <strong>do</strong> servi<strong>do</strong>r. A<br />

conclusão dessa configuração inicial produz uma configuração de servi<strong>do</strong>r muito básica,<br />

que deve funcionar com aspectos essenciais. O mo<strong>do</strong> de especialista pode ser usa<strong>do</strong><br />

para lidar com tarefas de configuração mais avançadas.<br />

seleção de placa<br />

Na primeira etapa, o YaST procura interfaces de rede disponíveis no sistema e,<br />

depois, mostra-as em uma lista. Na lista, selecione a interface em que o servi<strong>do</strong>r<br />

DHCP deve escutar e clique em Adicionar. Em seguida, selecione Abrir Firewall<br />

para Interfaces Selecionadas para abrir o firewall para essa interface. Consulte a<br />

Figura 23.1, “Servi<strong>do</strong>r DHCP: seleção de placa” (p 423).


Figura 23.1 Servi<strong>do</strong>r DHCP: seleção de placa<br />

configurações globais<br />

Nos campos de entrada, forneça os detalhes da rede para to<strong>do</strong>s os clientes que o<br />

servi<strong>do</strong>r DHCP deve gerenciar. Esses detalhes são o nome de <strong>do</strong>mínio, o endereço<br />

de um servi<strong>do</strong>r de horário, os endereços <strong>do</strong> servi<strong>do</strong>r de nomes primário e secundário,<br />

os endereços de um servi<strong>do</strong>r WINS e de impressão (para uma rede mista com os<br />

clientes Win<strong>do</strong>ws e Linux), o endereço de gateway e o tempo de aluguel. Consulte<br />

a Figura 23.2, “Servi<strong>do</strong>r DHCP: configurações globais” (p 424).<br />

DHCP 423


424 Referência<br />

Figura 23.2 Servi<strong>do</strong>r DHCP: configurações globais<br />

DHCP dinâmico<br />

Nessa etapa, configure o nível de dinamismo <strong>do</strong>s endereços IP designa<strong>do</strong>s aos<br />

clientes. Para fazer isso, especifique uma faixa IP a partir da qual o servi<strong>do</strong>r pode<br />

designar endereços a clientes DHCP. To<strong>do</strong>s esses endereços precisam ser cobertos<br />

pela mesma máscara de rede. Especifique também o tempo de aluguel durante o<br />

qual um cliente pode manter seu endereço IP sem precisar solicitar uma extensão<br />

<strong>do</strong> aluguel. Outra opção é especificar o tempo de aluguel máximo, que é o perío<strong>do</strong><br />

durante o qual o servi<strong>do</strong>r reserva um endereço IP para um cliente específico.<br />

Consulte a Figura 23.3, “Servi<strong>do</strong>r DHCP: DHCP dinâmico” (p 425).


Figura 23.3 Servi<strong>do</strong>r DHCP: DHCP dinâmico<br />

Concluin<strong>do</strong> a configuração e definin<strong>do</strong> o mo<strong>do</strong> de início<br />

Depois da terceira parte <strong>do</strong> assistente de configuração, uma última caixa de diálogo<br />

é mostrada, na qual você pode definir como o servi<strong>do</strong>r DHCP deve ser inicializa<strong>do</strong>.<br />

Aqui, especifique se o servi<strong>do</strong>r DHCP deve iniciar automaticamente quan<strong>do</strong> o<br />

sistema for inicializa<strong>do</strong> ou iniciar manualmente (por exemplo, para fins de teste)<br />

quan<strong>do</strong> necessário. Clique em Concluir para concluir a configuração <strong>do</strong> servi<strong>do</strong>r.<br />

Consulte a Figura 23.4, “Servi<strong>do</strong>r DHCP: Inicialização” (p 426).<br />

DHCP 425


426 Referência<br />

Figura 23.4 Servi<strong>do</strong>r DHCP: Inicialização<br />

23.2 Pacotes de s<strong>of</strong>tware DHCP<br />

Tanto um servi<strong>do</strong>r DHCP quanto clientes DHCP estão disponíveis para o <strong>SUSE</strong> Linux.<br />

O servi<strong>do</strong>r DHCP disponível é o dhcpd (publica<strong>do</strong> pelo Internet S<strong>of</strong>tware Consortium).<br />

No la<strong>do</strong> <strong>do</strong> cliente, escolha entre <strong>do</strong>is programas clientes DHCP: dhclient (também <strong>do</strong><br />

ISC) e daemon cliente <strong>do</strong> DHCP no pacote dhcpcd.<br />

O <strong>SUSE</strong> Linux instala o dhcpcd por padrão. O programa é muito fácil de manusear e<br />

é inicia<strong>do</strong> automaticamente em cada inicialização <strong>do</strong> sistema para monitorar um servi<strong>do</strong>r<br />

DHCP. Ele não precisa de um arquivo de configuração para fazer seu trabalho e funciona<br />

assim que é instala<strong>do</strong> na maioria das configurações padrão. Em situações mais<br />

complexas, use o dhclient ISC, que é controla<strong>do</strong> por meio de um arquivo de configuração<br />

/etc/dhclient.conf.<br />

23.3 O dhcpd <strong>do</strong> servi<strong>do</strong>r DHCP<br />

O núcleo de qualquer sistema DHCP é o daemon <strong>do</strong> protocolo de configuração <strong>do</strong> host<br />

dinâmico. Esse servi<strong>do</strong>r aluga endereços e observa como são usa<strong>do</strong>s, de acor<strong>do</strong> com


as configurações definidas no arquivo de configuração /etc/dhcpd.conf. Ao<br />

mudar os parâmetros e valores desse arquivo, um administra<strong>do</strong>r de sistemas pode<br />

influenciar o comportamento <strong>do</strong> programa de várias formas. Observe o arquivo de<br />

amostra básica /etc/dhcpd.conf no Exemplo 23.1, “Arquivo de configuração<br />

/etc/dhcpd.conf” (p 427).<br />

Exemplo 23.1 Arquivo de configuração /etc/dhcpd.conf<br />

default-lease-time 600; # 10 minutes<br />

max-lease-time 7200; # 2 hours<br />

opção nome de <strong>do</strong>mínio "cosmos.all";<br />

opção servi<strong>do</strong>res de nomes de <strong>do</strong>mínio 192.168.1.1, 192.168.1.2;<br />

opção endereço de broadcast 192.168.1.255;<br />

opção rotea<strong>do</strong>res 192.168.1.254;<br />

opção máscara de sub-rede 255.255.255.0;<br />

sub-rede 192.168.1.0 máscara de rede 255.255.255.0<br />

{<br />

intervalo 192.168.1.10 192.168.1.20;<br />

intervalo 192.168.1.100 192.168.1.200;<br />

}<br />

Esse arquivo de configuração simples deve ser suficiente para que o servi<strong>do</strong>r DHCP<br />

designe endereços IP à rede. Verifique se um ponto-e-vírgula foi inseri<strong>do</strong> no final de<br />

cada linha, caso contrário, o dhcpd não será inicia<strong>do</strong>.<br />

O arquivo de exemplo pode ser dividi<strong>do</strong> em três seções. A primeira define quantos<br />

segun<strong>do</strong>s um endereço IP é aluga<strong>do</strong> para um cliente que o solicitou por padrão (tempo<br />

de aluguel padrão) antes de solicitar uma renovação. Essa parte também inclui<br />

uma declaração <strong>do</strong> perío<strong>do</strong> máximo em que uma máquina pode manter um endereço<br />

IP designa<strong>do</strong> pelo servi<strong>do</strong>r DHCP sem solicitar uma renovação (max-lease-time).<br />

Na segunda parte, alguns parâmetros de rede básicos são defini<strong>do</strong>s em um nível global:<br />

• A linha option <strong>do</strong>main-name define o <strong>do</strong>mínio padrão da sua rede.<br />

• Com a entrada option <strong>do</strong>main-name-servers, especifique até três valores<br />

para os servi<strong>do</strong>res DNS usa<strong>do</strong>s para resolver endereços IP em nomes de host e<br />

vice-versa. Preferencialmente, configure um servi<strong>do</strong>r de nomes em sua máquina<br />

ou em qualquer outra da rede antes de configurar o DHCP. Esse servi<strong>do</strong>r de nomes<br />

deve também definir um nome de host para cada endereço dinâmico e vice-versa.<br />

Para aprender a configurar o seu próprio servi<strong>do</strong>r de nomes, leia o Capítulo 20,<br />

Domain Name System (Sistema de Nomes de Domínio) (p 381).<br />

DHCP 427


428 Referência<br />

• A linha option broadcast-address define o endereço de broadcast a ser<br />

usa<strong>do</strong> pelo cliente solicitante.<br />

• Com option routers, defina para onde o servi<strong>do</strong>r deve enviar pacotes de<br />

da<strong>do</strong>s que não puderem ser envia<strong>do</strong>s para um host da rede local (de acor<strong>do</strong> com o<br />

endereço de host de origem e de destino e a máscara de sub-rede forneci<strong>do</strong>s). Na<br />

maioria <strong>do</strong>s casos, especialmente em redes menores, esse rotea<strong>do</strong>r é idêntico ao<br />

gateway da Internet.<br />

• Com option subnet-mask, especifique a máscara de rede designada a clientes.<br />

A última seção <strong>do</strong> arquivo define uma rede, incluin<strong>do</strong> uma máscara de sub-rede. Para<br />

concluir, especifique a faixa de endereços que o daemon <strong>do</strong> DHCP deve usar para<br />

designar endereços IP a clientes interessa<strong>do</strong>s. No Exemplo 23.1, “Arquivo de<br />

configuração /etc/dhcpd.conf” (p 427), os clientes podem receber qualquer endereço<br />

entre 192.168.1.10 e 192.168.1.20, assim como 192.168.1.100 e<br />

192.168.1.200.<br />

Depois de editar essas poucas linhas, você conseguirá ativar o daemon <strong>do</strong> DHCP com<br />

o coman<strong>do</strong> rcdhcpd start. Ele poderá ser usa<strong>do</strong> imediatamente. Use o coman<strong>do</strong><br />

rcdhcpd check-syntax para executar uma rápida verificação de sintaxe. Se houver<br />

problemas inespera<strong>do</strong>s em sua configuração (o servi<strong>do</strong>r for interrompi<strong>do</strong> com um erro<br />

ou não retornar <strong>do</strong>ne na inicialização), você deverá descobrir o que aconteceu de<br />

erra<strong>do</strong>, procuran<strong>do</strong> informações no registro <strong>do</strong> sistema principal /var/log/<br />

messages ou no console 10 ( Ctrl + Alt + F10 ).<br />

Em um sistema <strong>SUSE</strong> Linux padrão, o daemon <strong>do</strong> DHCP é inicia<strong>do</strong> em um ambiente<br />

chroot por razões de segurança. Os arquivos de configuração precisam ser copia<strong>do</strong>s<br />

para o ambiente chroot para que o daemon possa localizá-los. Normalmente, não é<br />

preciso se preocupar com isso, pois o coman<strong>do</strong> rcdhcpd start copia automaticamente<br />

os arquivos.<br />

23.3.1 Clientes com endereços IP fixos<br />

O DHCP também pode ser usa<strong>do</strong> para designar um endereço estático predefini<strong>do</strong> a um<br />

cliente específico. Endereços designa<strong>do</strong>s explicitamente sempre têm prioridade sobre<br />

endereços dinâmicos <strong>do</strong> pool. Um endereço estático nunca expira da mesma forma que<br />

o dinâmico, por exemplo, se não houver endereços suficientes disponíveis, o servi<strong>do</strong>r<br />

precisará redistribuí-los entre clientes.


Para identificar um cliente configura<strong>do</strong> com um endereço estático, o dhcpd usa o<br />

endereço de hardware, que é um código numérico fixo, globalmente exclusivo, que<br />

consiste em seis pares de octetos para a identificação de to<strong>do</strong>s os dispositivos da rede<br />

(por exemplo, 00:00:45:12:EE:F4). Se as respectivas linhas, como as <strong>do</strong><br />

Exemplo 23.2, “Adições ao arquivo de configuração” (p 429), forem adicionadas ao<br />

arquivo de configuração <strong>do</strong> Exemplo 23.1, “Arquivo de configuração /etc/dhcpd.conf”<br />

(p 427), o daemon <strong>do</strong> DHCP sempre designará o mesmo conjunto de da<strong>do</strong>s ao cliente<br />

correspondente.<br />

Exemplo 23.2 Adições ao arquivo de configuração<br />

host earth {<br />

hardware ethernet 00:00:45:12:EE:F4;<br />

fixed-address 192.168.1.21;<br />

}<br />

O nome <strong>do</strong> respectivo cliente (host nome <strong>do</strong> host, aqui earth) é digita<strong>do</strong> na<br />

primeira linha e o endereço MAC na segunda linha. Em hosts Linux, encontre o endereço<br />

MAC com o coman<strong>do</strong> ip link show, segui<strong>do</strong> <strong>do</strong> dispositivo de rede (por exemplo,<br />

eth0). A saída deve conter algo como<br />

link/ether 00:00:45:12:EE:F4<br />

No exemplo anterior, um cliente com uma placa de rede, cujo endereço MAC é<br />

00:00:45:12:EE:F4, adquire o endereço IP 192.168.1.21 e o nome de host<br />

earth automaticamente. O tipo de hardware a ser inseri<strong>do</strong> é ethernet em quase to<strong>do</strong>s<br />

os casos, embora token-ring, utiliza<strong>do</strong> freqüentemente em sistemas IBM, também<br />

seja suporta<strong>do</strong>.<br />

23.3.2 Versão <strong>SUSE</strong> Linux<br />

Para aprimorar a segurança, a versão <strong>SUSE</strong> <strong>do</strong> servi<strong>do</strong>r DHCP <strong>do</strong> ISC vem com o patch<br />

não-raiz/chroot de Ari Edelkind aplica<strong>do</strong>. Isso permite que o dhcpd seja executa<strong>do</strong> com<br />

o ID de usuário nobody e em um ambiente chroot (/var/lib/dhcp). Para que isso<br />

seja possível, o arquivo de configuração dhcpd.conf precisa estar localiza<strong>do</strong> em<br />

/var/lib/dhcp/etc. O script init copia automaticamente o arquivo para esse<br />

diretório na inicialização.<br />

Controle o comportamento <strong>do</strong> servi<strong>do</strong>r em relação a esse recurso, por meio de entradas<br />

no arquivo /etc/sysconfig/dhcpd. Para executar o dhcpd sem o ambiente chroot,<br />

DHCP 429


430 Referência<br />

configure a variável DHCPD_RUN_CHROOTED em /etc/sysconfig/dhcpd para<br />

“não”.<br />

Para permitir que o dhcpd resolva nomes de host, mesmo de dentro <strong>do</strong> ambiente chroot,<br />

alguns outros arquivos de configuração também precisam ser copia<strong>do</strong>s:<br />

• /etc/localtime<br />

• /etc/host.conf<br />

• /etc/hosts<br />

• /etc/resolv.conf<br />

Esses arquivos são copia<strong>do</strong>s para /var/lib/dhcp/etc/ quan<strong>do</strong> o script init é<br />

inicia<strong>do</strong>. Faça as mudanças necessárias nessas cópias, caso sejam modificadas<br />

dinamicamente por scripts como /etc/ppp/ip-up. Entretanto, você não precisará<br />

se preocupar com isso se o arquivo de configuração especificar somente endereços IP<br />

(em vez de nomes de host).<br />

Se a configuração incluir arquivos adicionais que devem ser copia<strong>do</strong>s para o ambiente<br />

chroot, defina-os na variável DHCPD_CONF_INCLUDE_FILES <strong>do</strong> arquivo /etc/<br />

sysconfig/dhcpd. Para garantir que o recurso de registro DHCP continue<br />

funcionan<strong>do</strong> mesmo depois de uma reinicialização <strong>do</strong> daemon <strong>do</strong> syslog-ng, há a entrada<br />

adicional SYSLOGD_ADDITIONAL_SOCKET_DHCP no arquivo /etc/sysconfig/<br />

syslog.<br />

23.4 Mais informações<br />

Há mais informações disponíveis sobre o DHCP no site <strong>do</strong> Internet S<strong>of</strong>tware Consortium<br />

(http://www.isc.org/products/DHCP/). Também é possível encontrar<br />

informações nas páginas de manual <strong>do</strong> dhcpd, dhcpd.conf, dhcpd.leases e<br />

dhcp-options.


24<br />

Sincronização de horário com NTP<br />

O mecanismo NTP (network time protocol) é um protocolo para sincronizar a hora <strong>do</strong><br />

sistema na rede. Primeiro, uma máquina pode obter a hora de um servi<strong>do</strong>r, que é uma<br />

fonte de tempo confiável. Segun<strong>do</strong>, a máquina pode agir como uma fonte de horário<br />

para outros computa<strong>do</strong>res na rede. O objetivo é duplo — manter o tempo absoluto e a<br />

sincronização <strong>do</strong> horário <strong>do</strong> sistema de todas as máquinas na rede.<br />

Manter uma hora de sistema exata é importante em várias situações. O relógio <strong>do</strong><br />

hardware interno (BIOS) não atende aos requisitos de aplicativos como bancos de da<strong>do</strong>s.<br />

A correção manual da hora <strong>do</strong> sistema levaria a problemas severos pois, por exemplo,<br />

um pulo inverso pode causar o mau funcionamento de aplicativos críticos. Em uma<br />

rede, em geral é necessário sincronizar a hora <strong>do</strong> sistema em todas as máquinas, mas<br />

o ajuste de hora manual não é uma boa abordagem. O xntp fornece um mecanismo para<br />

resolver esses problemas. Ele ajusta continuamente a hora <strong>do</strong> sistema com a ajuda de<br />

servi<strong>do</strong>res de horário confiáveis na rede. Ele habilita também o gerenciamento de<br />

relógios de referência local como relógios controla<strong>do</strong>s pelo rádio.<br />

24.1 Configuran<strong>do</strong> um cliente NTP<br />

com YaST<br />

O xntp está predefini<strong>do</strong> para usar o relógio <strong>do</strong> computa<strong>do</strong>r local como referência de<br />

horário. Usar o relógio (BIOS), porém, serve somente como uma alternativa caso não<br />

haja uma fonte de horário de precisão maior disponível. O <strong>SUSE</strong> Linux facilita a<br />

configuração de um cliente NTP com YaST. Use a configuração rápida ou complexa<br />

Sincronização de horário com NTP 431


432 Referência<br />

em clientes que não executam o <strong>SUSE</strong>firewall porque esses clientes pertencem a uma<br />

intranet protegida. Ambas estão descritas no seguinte.<br />

24.1.1 Configuração de cliente NTP rápida<br />

A configuração de cliente NTP fácil (Serviços de Rede → Cliente NTP) consiste em<br />

duas caixas de diálogo. Defina o mo<strong>do</strong> de inicialização <strong>do</strong> xntpd e <strong>do</strong> servi<strong>do</strong>r para<br />

consultar a primeira caixa de diálogo. Para iniciar o xntpd automaticamente quan<strong>do</strong> o<br />

sistema for inicializa<strong>do</strong>, clique em Durante a Inicialização. Especifique a Configuração<br />

<strong>do</strong> Servi<strong>do</strong>r NTP. Clique em Usar Servi<strong>do</strong>r Aleatório... se não puder usar um servi<strong>do</strong>r<br />

de horário local, ou clique em Selecionar para acessar uma segunda caixa de diálogo<br />

e selecionar um servi<strong>do</strong>r de horário adequa<strong>do</strong> para sua rede.<br />

Figura 24.1 YaST: Configuran<strong>do</strong> um cliente NTP<br />

Na caixa de diálogo de servi<strong>do</strong>r detalhada, determine se você implementará a<br />

sincronização de horário usan<strong>do</strong> um servi<strong>do</strong>r de horário a partir da rede local (Servi<strong>do</strong>r<br />

NTP Local) ou um servi<strong>do</strong>r de horário basea<strong>do</strong> na Internet que lida com o seu fuso<br />

horário (Servi<strong>do</strong>r NTP Público). Para um servi<strong>do</strong>r de horário local, clique em Busca<br />

para iniciar uma consulta SLP por servi<strong>do</strong>res de horário disponíveis na sua rede.<br />

Selecione o servi<strong>do</strong>r de horário mais adequa<strong>do</strong> a partir da lista de resulta<strong>do</strong>s de pesquisa<br />

e saia da caixa de diálogo com OK. Para um servi<strong>do</strong>r de horário público, selecione o


país (fuso horário) e um servi<strong>do</strong>r adequa<strong>do</strong> da lista sob Servi<strong>do</strong>r NTP Público, em<br />

seguida, saia da caixa de diálogo com OK. Na caixa de diálogo principal, teste a<br />

disponibilidade <strong>do</strong> servi<strong>do</strong>r seleciona<strong>do</strong> com Testar e saia da caixa de diálogo com<br />

Concluir.<br />

24.1.2 Configuração de Cliente NTP<br />

Complexa<br />

A configuração complexa de um cliente NTP pode ser acessada sob Configuração<br />

Complexa na caixa de diálogo principal <strong>do</strong> módulo Cliente NTP, mostra<strong>do</strong> na<br />

Figura 24.1, “YaST: Configuran<strong>do</strong> um cliente NTP” (p 432), após selecionar o mo<strong>do</strong><br />

de inicialização conforme descrito na configuração rápida.<br />

Figura 24.2 YaST: Configuração de Cliente NTP Complexa<br />

Em Configuração de Cliente NTP Complexa, determine se xntpd deve ser inicia<strong>do</strong> em<br />

uma cadeia chroot. Isso aumenta a segurança caso ocorra um ataque em xntpd, pois<br />

isso evita que o invasor comprometa to<strong>do</strong> o sistema. Configurar o Daemon NTP via<br />

DHCP configura o cliente NTP para obter uma lista <strong>do</strong>s servi<strong>do</strong>res NTP disponíveis<br />

na rede via DHCP.<br />

Sincronização de horário com NTP 433


434 Referência<br />

Os servi<strong>do</strong>res e outras fontes de horário para cliente a serem consulta<strong>do</strong>s estão lista<strong>do</strong>s<br />

na parte inferior. Modifique esta lista conforme necessário com Adicionar, Editar e<br />

Apagar. Exibir Registro fornece a possibilidade de exibir os arquivos de registro <strong>do</strong><br />

seu cliente.<br />

Clique em Adicionar para adicionar uma nova fonte de informação de horário. Na caixa<br />

de diálogo seguinte, selecione o tipo de fonte com a qual a sincronização de horário<br />

deve ser realizada. As seguintes opções estão disponíveis:<br />

Servi<strong>do</strong>r<br />

Outra caixa de diálogo permite selecionar um servi<strong>do</strong>r NTP (conforme descrito na<br />

Seção 24.1.1, “Configuração de cliente NTP rápida” (p 432)). Ative Usar para<br />

Sincronização Inicial para acionar a sincronização da informação de horário entre<br />

o servi<strong>do</strong>r e o cliente quan<strong>do</strong> o sistema é inicializa<strong>do</strong>. Um campo de entrada permite<br />

especificar opções adicionais para xntpd. Consulte /usr/share/<strong>do</strong>c/<br />

packages/xntp-<strong>do</strong>c (parte <strong>do</strong> pacote xntp-<strong>do</strong>c) para obter informações<br />

detalhadas.<br />

Parceiro<br />

Um parceiro é uma máquina à qual uma relação simétrica é estabelecida: ele age<br />

como um servi<strong>do</strong>r de horário e como cliente. Para usar um parceiro na mesma rede<br />

em vez de um servi<strong>do</strong>r, insira o endereço <strong>do</strong> sistema. O restante da caixa de diálogo<br />

é igual à caixa de diálogo Servi<strong>do</strong>r.<br />

Relógio controla<strong>do</strong> pelo rádio<br />

Para usar um relógio controla<strong>do</strong> pelo rádio no seu sistema para a sincronização de<br />

horário, insira o tipo de relógio, o número da unidade, o nome <strong>do</strong> dispositivo e<br />

outras opções nesta caixa de diálogo. Clique em Calibração <strong>do</strong> Driver para ajustar<br />

o driver. Informações detalhadas sobre a operação de um relógio controla<strong>do</strong> por<br />

rádio local estão disponíveis em /usr/share/<strong>do</strong>c/packages/xntp-<strong>do</strong>c/<br />

html/refclock.htm.<br />

Transmissão de saída<br />

Consultas e informações sobre horário também podem ser transmitidas na rede.<br />

Nesta caixa de diálogo, insira o endereço ao qual estas transmissões devem ser<br />

enviadas. Não ative a transmissão a menos que você tenha uma fonte de horário<br />

confiável como um relógio controla<strong>do</strong> por rádio.


Transmissão de entrada<br />

Se você deseja que o seu cliente receba suas informações através de transmissão,<br />

insira o endereço <strong>do</strong> qual os respectivos pacotes devem ser aceitos nestes campos.<br />

24.2 Configuran<strong>do</strong> o xntp na rede<br />

A forma mais fácil de usar um servi<strong>do</strong>r de horário na rede é definir parâmetros de<br />

servi<strong>do</strong>r. Por exemplo, se um servi<strong>do</strong>r de horário chama<strong>do</strong> ntp.example.com for<br />

alcançável a partir da rede, adicione seu nome ao arquivo /etc/ntp.conf<br />

adicionan<strong>do</strong> a linha server ntp.example.com. Para adicionar mais servi<strong>do</strong>res<br />

de horário, insira linhas adicionais com o servi<strong>do</strong>r de palavras-chave. Após inicializar<br />

o xntpd com o coman<strong>do</strong> rcntpd start, leva aproximadamente uma hora até que o<br />

horário esteja estabiliza<strong>do</strong> e o arquivo de registro para corrigir o relógio <strong>do</strong> computa<strong>do</strong>r<br />

local seja cria<strong>do</strong>. Com o arquivo de registro, o erro sistemático <strong>do</strong> relógio <strong>do</strong> hardware<br />

pode ser computa<strong>do</strong> assim que o computa<strong>do</strong>r for liga<strong>do</strong>. A correção é usada<br />

imediatamente, resultan<strong>do</strong> em uma estabilidade maior <strong>do</strong> horário <strong>do</strong> sistema.<br />

Há duas maneiras possíveis de usar o mecanismo NTP como um cliente: Primeiro, o<br />

cliente pode consultar o horário a partir de um servi<strong>do</strong>r conheci<strong>do</strong> em intervalos<br />

regulares. Com vários clientes, esta abordagem pode causar uma carga alta no servi<strong>do</strong>r.<br />

Segun<strong>do</strong>, o cliente pode esperar por transmissões de NTP enviadas por servi<strong>do</strong>res de<br />

horário de transmissão na rede. Esta abordagem tem a desvantagem de que a qualidade<br />

<strong>do</strong> servi<strong>do</strong>r é desconhecida e um servi<strong>do</strong>r transmitin<strong>do</strong> a informação errada pode causar<br />

problemas graves.<br />

Se o horário for obti<strong>do</strong> através de uma transmissão, você não precisará <strong>do</strong> nome <strong>do</strong><br />

servi<strong>do</strong>r. Neste caso, insira a linha broadcastclient no arquivo de configuração<br />

/etc/ntp.conf. Para usar um ou mais servi<strong>do</strong>res de horário conheci<strong>do</strong>s<br />

exclusivamente, insira seus nomes na linha inician<strong>do</strong> com servers.<br />

24.3 Configuran<strong>do</strong> um relógio de<br />

referência local<br />

O pacote de s<strong>of</strong>tware xntp contém drivers para conectar relógios de referência local.<br />

Uma lista de relógios suporta<strong>do</strong>s está disponível no pacote xntp-<strong>do</strong>c no arquivo<br />

/usr/share/<strong>do</strong>c/packages/xntp-<strong>do</strong>c/html/refclock.htm. Cada driver<br />

Sincronização de horário com NTP 435


436 Referência<br />

está associa<strong>do</strong> a um número. No xntp, a configuração real ocorre através de pseu<strong>do</strong> IPs.<br />

Os relógios são inseri<strong>do</strong>s no arquivo /etc/ntp.conf como se existissem na rede.<br />

Para este propósito, endereços IP especiais são atribuí<strong>do</strong>s a eles na forma<br />

127.127.t.u. Aqui, t representa o tipo de relógio e determina o driver a ser usa<strong>do</strong><br />

e u para unidade, que determina a interface usada.<br />

Normalmente, os drivers individuais têm parâmetros especiais que descrevem detalhes<br />

de configuração. O arquivo /usr/share/<strong>do</strong>c/packages/xntp-<strong>do</strong>c/html/<br />

driverNN.htm (onde NN é o número <strong>do</strong> driver) fornece informações sobre o tipo<br />

específico de relógio. Por exemplo, o relógio “type 8” (relógio controla<strong>do</strong> por rádio na<br />

interface serial) exige um mo<strong>do</strong> adicional que especifica o relógio de forma mais precisa.<br />

O módulo de recebimento Conrad DCF77, por exemplo, tem o mo<strong>do</strong> 5. Para usar este<br />

relógio como referência preferida, especifique a palavra-chave prefer. A linha <strong>do</strong><br />

servi<strong>do</strong>r completa para um módulo de recebimento Conrad DCF77 seria:<br />

server 127.127.8.0 mode 5 prefer<br />

Outros relógios seguem o mesmo padrão. Seguin<strong>do</strong> a instalação <strong>do</strong> pacote xntp-<strong>do</strong>c,<br />

a <strong>do</strong>cumentação para o xntp está disponível no diretório /usr/share/<strong>do</strong>c/<br />

packages/xntp-<strong>do</strong>c/html. O arquivo /usr/share/<strong>do</strong>c/packages/<br />

xntp-<strong>do</strong>c/html/refclock.htm fornece links para as páginas <strong>do</strong> driver<br />

descreven<strong>do</strong> os parâmetros <strong>do</strong> driver.


LDAP — Um serviço de diretório<br />

O LDAP é um conjunto de protocolos cria<strong>do</strong> para acessar e manter diretórios de<br />

informações. O LDAP pode ser usa<strong>do</strong> para vários propósitos, como gerenciamento de<br />

grupos e usuários, gerenciamento de configuração de sistema ou gerenciamento de<br />

endereços. Este capítulo fornece uma compreensão básica sobre como o OpenLDAP<br />

funciona e como gerenciar da<strong>do</strong>s <strong>do</strong> LDAP com o YaST. Embora haja várias<br />

implementações <strong>do</strong> protocolo LDAP, este capítulo concentra-se inteiramente na<br />

implementação <strong>do</strong> OpenLDAP.<br />

É crucial em um ambiente de rede manter informações importantes estruturadas e<br />

rapidamente disponíveis. Isso pode ser realiza<strong>do</strong> com um serviço de diretório que, como<br />

as páginas amarelas comuns, mantém informações disponíveis em uma forma bem<br />

estruturada e rapidamente pesquisável.<br />

No caso ideal, um servi<strong>do</strong>r central mantém os da<strong>do</strong>s em um diretório e os distribui a<br />

to<strong>do</strong>s os clientes usan<strong>do</strong> um determina<strong>do</strong> protocolo. Os da<strong>do</strong>s são estrutura<strong>do</strong>s de forma<br />

a permitir que uma ampla variedades de aplicativos os acessem. Desta forma, não é<br />

necessário para cada ferramenta de calendário e cliente de e-mail manter seu próprio<br />

banco de da<strong>do</strong>s — um repositório central pode ser acessa<strong>do</strong> em vez disso. Isso reduz<br />

bastante o esforço de administração para as informações. O uso de um protocolo<br />

padroniza<strong>do</strong> e aberto como o LDAP garante que muitos aplicativos de cliente diferentes<br />

possam acessar tais informações.<br />

Um diretório neste contexto é um tipo de banco de da<strong>do</strong>s otimiza<strong>do</strong> para pesquisa e<br />

leitura rápida e efetiva:<br />

• Para possibilitar vários acessos de leitura (simultâneos), o acesso de gravação está<br />

limita<strong>do</strong> a um pequeno número de atualizações pelo administra<strong>do</strong>r. Bancos de<br />

25<br />

LDAP — Um serviço de diretório 437


438 Referência<br />

da<strong>do</strong>s convencionais são otimiza<strong>do</strong>s para aceitar o mais amplo volume de da<strong>do</strong>s<br />

possível em um perío<strong>do</strong> curto de tempo.<br />

• Como acessos de gravação só podem ser executa<strong>do</strong>s de forma restrita, um serviço<br />

de diretório é usa<strong>do</strong> para administrar, em sua maioria, informações estáticas, sem<br />

alterações. Da<strong>do</strong>s em um banco de da<strong>do</strong>s convencional normalmente são altera<strong>do</strong>s<br />

com freqüência (da<strong>do</strong>s dinâmicos). Números de telefone em um diretório de empresa<br />

não são altera<strong>do</strong>s com tanta freqüência como, por exemplo, os números<br />

administra<strong>do</strong>s em contabilidade.<br />

• Quan<strong>do</strong> da<strong>do</strong>s estáticos são administra<strong>do</strong>s, atualizações <strong>do</strong>s conjuntos de da<strong>do</strong>s<br />

existentes são muito raras. Ao trabalhar com da<strong>do</strong>s dinâmicos, especialmente<br />

relativos a conjuntos de da<strong>do</strong>s como contas de banco ou contabilidade, a consistência<br />

<strong>do</strong>s da<strong>do</strong>s é de importância fundamental. Se um valor deve ser subtraí<strong>do</strong> de um<br />

local para ser adiciona<strong>do</strong> a outro, ambas as operações devem ocorrer<br />

simultaneamente, em uma transação, para garantir o equilíbrio sobre o estoque de<br />

da<strong>do</strong>s. Bancos de da<strong>do</strong>s suportam estas transações. Diretórios não suportam estas<br />

transações. Inconsistências de curto prazo <strong>do</strong>s da<strong>do</strong>s são aceitáveis em diretórios.<br />

O design de um serviço de diretório como o LDAP não é cria<strong>do</strong> para suportar<br />

mecanismos de consulta ou atualização complexa. To<strong>do</strong>s os aplicativos acessan<strong>do</strong> este<br />

serviço devem obter acesso de forma rápida e fácil.<br />

Vários serviços de diretório existiram previamente e ainda existem no Unix e fora dele.<br />

Novell NDS, Micros<strong>of</strong>t ADS, Banyan's Street Talk e o OSI standard X.500 são apenas<br />

alguns exemplos. O LDAP foi originalmente planeja<strong>do</strong> como uma versão menor <strong>do</strong><br />

DAP, o protocolo de acesso de diretório, que foi desenvolvi<strong>do</strong> para acessar o X.500.<br />

O padrão <strong>do</strong> X.500 regula a organização hierárquica de entradas de diretório.<br />

O LDAP é uma versão menor <strong>do</strong> DAP. Sem perder a hierarquia de entrada <strong>do</strong> X.500,<br />

beneficie-se das capacidades de plataforma cruzada <strong>do</strong> LDAP e salve recursos. O uso<br />

de TCP/IP facilita o estabelecimento de interfaces entre um aplicativo de acoplagem e<br />

o serviço LDAP.<br />

O LDAP, enquanto isso, evoluiu e é usa<strong>do</strong> cada vez mais como uma solução<br />

independente sem o suporte <strong>do</strong> X.500. O LDAP suporta referências com o LDAPv3<br />

(a versão de protocolo no pacote openldap2), possibilitan<strong>do</strong> ter bancos de da<strong>do</strong>s<br />

distribuí<strong>do</strong>s. O uso de SASL (autenticação simples e camada de segurança) também é<br />

novo.


O LDAP não está limita<strong>do</strong> a consultar da<strong>do</strong>s <strong>do</strong>s servi<strong>do</strong>res X.500, como foi planeja<strong>do</strong><br />

originalmente. Há um servi<strong>do</strong>r de código aberto slapd, que pode armazenar informações<br />

de objetos em um banco de da<strong>do</strong>s local. Há também uma extensão chamada slurpd,<br />

que é responsável por replicar vários servi<strong>do</strong>res LDAP.<br />

O pacote openldap2 consiste em:<br />

slapd<br />

Um servi<strong>do</strong>r LDAPv3 independente que administra informações de objeto em um<br />

banco de da<strong>do</strong>s basea<strong>do</strong> em BerkeleyDB.<br />

slurpd<br />

Este programa habilita a replicação de modificações aos da<strong>do</strong>s no servi<strong>do</strong>r LDAP<br />

local para outros servi<strong>do</strong>res LDAP instala<strong>do</strong>s na rede.<br />

ferramentas adicionais para manutenção <strong>do</strong> sistema<br />

slapcat, slapadd, slapindex<br />

25.1 LDAP versus NIS<br />

O administra<strong>do</strong>r <strong>do</strong> sistema Unix tradicionalmente usa o serviço NIS para resolução<br />

de nomes e distribuição de da<strong>do</strong>s em uma rede. Os da<strong>do</strong>s de configuração conti<strong>do</strong>s nos<br />

arquivos em /etc e os diretórios group, hosts, mail, netgroup, networks,<br />

passwd, printcap, protocols, rpc e services são distribuí<strong>do</strong>s por clientes<br />

em toda a rede. Estes arquivos podem ser manti<strong>do</strong>s sem maior esforço pois são arquivos<br />

de texto simples. O tratamento de grandes quantidades de da<strong>do</strong>s, porém, torna-se mais<br />

difícil devi<strong>do</strong> a estrutura não existente. O NIS é projeta<strong>do</strong> apenas para plataformas<br />

Unix. Isso significa que sua utilização como uma ferramenta de administração de da<strong>do</strong>s<br />

centralizada em redes heterogêneas não é apropriada.<br />

Ao contrário <strong>do</strong> NIS, o serviço LDAP não está restrito a redes Unix puras. Servi<strong>do</strong>res<br />

<strong>do</strong> Win<strong>do</strong>ws (<strong>do</strong> 2000) suportam o LDAP como um serviço de diretório. A Novell<br />

também <strong>of</strong>erece um serviço LDAP. Tarefas de aplicativo mencionadas acima são<br />

suportadas adicionalmente em sistemas não-Unix.<br />

O princípio LDAP pode ser aplica<strong>do</strong> a qualquer estrutura de da<strong>do</strong>s que deva ser<br />

administra<strong>do</strong> de forma central. Alguns exemplos de aplicativos são:<br />

• Utilização como substituto <strong>do</strong> serviço NIS<br />

LDAP — Um serviço de diretório 439


440 Referência<br />

• Rota de correio (postfix, sendmail)<br />

• Blocos de endereços para clientes de correio, como Mozilla, Evolution e Outlook<br />

• Administração de descrições de zona para um servi<strong>do</strong>r de nomes BIND9<br />

• Autenticação <strong>do</strong> usuário com Samba em redes heterogêneas<br />

Esta lista pode ser estendida pois o LDAP é extensível, ao contrário <strong>do</strong> NIS. A estrutura<br />

hierárquica claramente definida <strong>do</strong>s da<strong>do</strong>s facilita a administração de grandes<br />

quantidades de da<strong>do</strong>s, pois pode ser pesquisada de forma melhor.<br />

25.2 Estrutura de uma árvore de<br />

diretórios LDAP<br />

Um diretório LDAP tem uma estrutura de árvores. Todas as entradas (chamadas objetos)<br />

<strong>do</strong> diretório têm uma posição definida nesta hierarquia. Esta hierarquia é chamada de<br />

árvore de informação de diretórios (DIT). O caminho completo à entrada desejada,<br />

que a identifica de forma clara, é chama<strong>do</strong> nome distinto ou DN. Um único nó no<br />

caminho para esta entrada é chama<strong>do</strong> nome distinto relativo ou RDN. Objetos podem<br />

geralmente ser atribuí<strong>do</strong>s a um ou <strong>do</strong>is tipos possíveis:<br />

container<br />

Estes objetos podem conter outros objetos. Tais classes de objetos são root (o<br />

elemento root da árvore de diretórios, que não existe realmente), c (país) ou<br />

(unidade organizacional) e dc (componente <strong>do</strong> <strong>do</strong>mínio). Este modelo é comparável<br />

aos diretórios (pastas) em um sistema de arquivos.<br />

folha<br />

Estes objetos estão no final de uma ramificação e não têm objetos subordina<strong>do</strong>s.<br />

Exemplos: person, InetOrgPerson ou group<strong>of</strong>Names.<br />

O topo da hierarquia de diretório tem um elemento root. Isso pode conter c (país),<br />

dc (componente de <strong>do</strong>mínio) ou o (organização) como elementos subordina<strong>do</strong>s. As<br />

relações em uma árvore de diretórios LDAP tornam-se mais evidentes no exemplo<br />

seguinte, mostra<strong>do</strong> na Figura 25.1, “Estrutura de um diretório LDAP” (p 441).


Figura 25.1 Estrutura de um diretório LDAP<br />

O diagrama completo compreende uma árvore de informações de diretório ficcional.<br />

As entradas em três níveis estão apresentadas. Cada entrada corresponde a uma caixa<br />

na figura. O nome distinto váli<strong>do</strong> e completo para o funcionário <strong>SUSE</strong> ficcional Geeko<br />

Linux, neste caso é cn=Geeko Linux,ou=<strong>do</strong>c,dc=suse,dc=de. Ele é<br />

composto através da adição <strong>do</strong> RDN cn=Geeko Linux ao DN da entrada anterior<br />

ou=<strong>do</strong>c,dc=suse,dc=de.<br />

A determinação global <strong>do</strong>s tipos de objetos que devem ser armazena<strong>do</strong>s no DIT é<br />

realizada segun<strong>do</strong> um esquema. O tipo de um objeto é determina<strong>do</strong> pela classe de<br />

objeto. A classe de objeto determina quais atributos podem ou devem ser atribuí<strong>do</strong>s ao<br />

objeto em questão. Portanto, um esquema deve conter definições de to<strong>do</strong>s atributos e<br />

classes de objetos usa<strong>do</strong>s no cenário <strong>do</strong> aplicativo deseja<strong>do</strong>. Há alguns esquemas comuns<br />

(consulte RFC 2252 e 2256). Porém, é possível criar esquemas personaliza<strong>do</strong>s ou usar<br />

vários esquemas complementan<strong>do</strong> um ao outro se isso for exigi<strong>do</strong> pelo ambiente no<br />

qual o servi<strong>do</strong>r LDAP deve operar.<br />

A Tabela 25.1, “Atributos e classes de objeto usa<strong>do</strong>s comumente” (p 442) <strong>of</strong>erece uma<br />

pequena visão geral das classes de objeto de core.schema e inetorgperson<br />

.schema usadas no exemplo, incluin<strong>do</strong> atributos necessários e valores de atributos<br />

váli<strong>do</strong>s.<br />

LDAP — Um serviço de diretório 441


Tabela 25.1 Atributos e classes de objeto usa<strong>do</strong>s comumente<br />

Classe de objeto<br />

dcObject<br />

442 Referência<br />

organizationalUnit<br />

inetOrgPerson<br />

Significa<strong>do</strong><br />

<strong>do</strong>mainComponent (nomeie<br />

componentes <strong>do</strong> <strong>do</strong>mínio)<br />

organizationalUnit (unidade<br />

organizacional)<br />

inetOrgPerson (da<strong>do</strong>s<br />

relativos a pessoas para a<br />

intranet ou Internet)<br />

Entrada de<br />

exemplo<br />

suse<br />

<strong>do</strong>c<br />

Geeko Linux<br />

Atributos<br />

compulsórios<br />

dc<br />

ou<br />

sn e cn<br />

O Exemplo 25.1, “Exemplo de schema.core ” (p 442) mostra um exemplo de uma diretiva<br />

de esquemas com explicações (numeração de linha para motivos explanatórios).<br />

Exemplo 25.1 Exemplo de schema.core<br />

#1 attributetype (2.5.4.11 NAME ( 'ou' 'organizationalUnitName')<br />

#2 DESC 'RFC2256: unidade organizacional à qual este objeto pertence'<br />

#3 nome SUP )<br />

...<br />

#4 objectclass ( 2.5.6.5 NAME 'organizationalUnit'<br />

#5 DESC 'RFC2256: an organizational unit'<br />

#6 SUP top STRUCTURAL<br />

#7 MUST ou<br />

#8 MAY (userPassword $ searchGuide $ seeAlso $ businessCategory<br />

$ x121Address $ registeredAddress $ destinationIndicator<br />

$ preferredDeliveryMethod $ telexNumber<br />

$ teletexTerminalIdentifier $ telephoneNumber<br />

$ internationaliSDNNumber $ facsimileTelephoneNumber<br />

$ street $ postOfficeBox $ postalCode $ postalAddress<br />

$ physicalDeliveryOfficeName<br />

$ st $ l $ description) )<br />

...<br />

O tipo de atributo organizationalUnitName e a classe de objeto correspondente<br />

organizationalUnit servem como um exemplo aqui. A linha 1 apresenta o nome<br />

<strong>do</strong> atributo, seu OID exclusivo (identifica<strong>do</strong>r de objeto) (numérico) e a abreviação <strong>do</strong><br />

atributo.


A linha 2 fornece uma descrição breve <strong>do</strong> atributo com DESC. O RFC correspondente<br />

na qual a definição é baseada também é menciona<strong>do</strong> aqui. SUP na linha 3 indica um<br />

tipo de atributo super ordena<strong>do</strong> ao qual este atributo pertence.<br />

A definição da classe de objeto organizationalUnit começa na linha 4, como<br />

na definição <strong>do</strong> atributo, com um OID e o nome da classe de objeto. A linha 5 apresenta<br />

uma breve descrição da classe de objeto. A linha 6, com esta entrada SUP top, indica<br />

que esta classe de objeto não está subordinada a outra classe de objeto. A linha 7,<br />

começan<strong>do</strong> com MUST, lista to<strong>do</strong>s os tipos de atributo que devem ser usa<strong>do</strong>s em conjunto<br />

com um objeto <strong>do</strong> tipo organizationalUnit. A linha 8, começan<strong>do</strong> com MAY,<br />

lista to<strong>do</strong>s os tipos de atributos que são permiti<strong>do</strong>s em conjunto com esta classe de<br />

objeto.<br />

Uma boa introdução para o uso de esquemas pode ser encontrada na <strong>do</strong>cumentação de<br />

OpenLDAP. Quan<strong>do</strong> instalada, encontre-a em /usr/share/<strong>do</strong>c/packages/<br />

openldap2/admin-guide/index.html.<br />

25.3 Configuração <strong>do</strong> servi<strong>do</strong>r com<br />

slapd.conf<br />

O seu sistema instala<strong>do</strong> contém um arquivo de configuração completo para o seu servi<strong>do</strong>r<br />

LDAP em /etc/openldap/slapd.conf. As únicas entradas estão descritas<br />

brevemente aqui e os ajustes necessários são explica<strong>do</strong>s. Entradas com prefixo de hash<br />

(#) são inativas. Este caractere de comentário deve ser removi<strong>do</strong> para ativá-las.<br />

25.3.1 Diretivas globais em slapd.conf<br />

Exemplo 25.2 slapd.conf: Incluir diretiva para esquemas<br />

include /etc/openldap/schema/core.schema<br />

include /etc/openldap/schema/cosine.schema<br />

include /etc/openldap/schema/inetorgperson.schema<br />

include /etc/openldap/schema/rfc2307bis.schema<br />

include /etc/openldap/schema/yast.schema<br />

A primeira diretiva em slapd.conf, mostrada no Exemplo 25.2, “slapd.conf: Incluir<br />

diretiva para esquemas” (p 443), specifica o esquema através <strong>do</strong> qual o diretório LDAP<br />

é organiza<strong>do</strong>. A entrada core.schema é compulsória. Esquemas necessários adicionais<br />

LDAP — Um serviço de diretório 443


444 Referência<br />

estão anexa<strong>do</strong>s a esta diretiva. Informações podem ser encontradas na <strong>do</strong>cumentação<br />

<strong>do</strong> OpenLDAP incluída.<br />

Exemplo 25.3 slapd.conf: pidfile e argsfile<br />

pidfile /var/run/slapd/slapd.pid<br />

argsfile /var/run/slapd/slapd.args<br />

Estes <strong>do</strong>is arquivos contêm o PID (ID de processo) e alguns <strong>do</strong>s argumentos com os<br />

quais o processo slapd é inicia<strong>do</strong>. Não há necessidade para modificações aqui.<br />

Exemplo 25.4 slapd.conf: Controle de acesso<br />

# Sample Access Control<br />

# Allow read access <strong>of</strong> root DSE<br />

# Allow self write access<br />

# Allow authenticated users read access<br />

# Allow anonymous users to authenticate<br />

# access to dn="" by * read<br />

access to * by self write<br />

by users read<br />

by anonymous auth<br />

#<br />

# if no access controls are present, the default is:<br />

# Allow read by all<br />

#<br />

# rootdn can always write!<br />

O Exemplo 25.4, “slapd.conf: Controle de acesso” (p 444) é o exemplo de slapd.conf<br />

que regula as permissões de acesso para o diretório LDAP no servi<strong>do</strong>r. As configurações<br />

realizadas aqui na seção global de slapd.conf são válidas desde que nenhuma regra<br />

de acesso personalizada seja declarada na seção específica ao banco de da<strong>do</strong>s. Estas<br />

devem sobrescrever as declarações globais. Conforme apresenta<strong>do</strong> aqui, to<strong>do</strong>s os<br />

usuários têm acesso de leitura ao diretório, mas somente o administra<strong>do</strong>r (rootdn)<br />

pode gravar para este diretório. O regulamento de controle de acesso no LDAP é um<br />

processo altamente complexo. As dicas a seguir podem ajudar:<br />

• Toda regra de acesso tem a seguinte estrutura:<br />

acesso a por <br />

• what é um marca<strong>do</strong>r para o objeto ou atributo ao qual acesso é concedi<strong>do</strong>.<br />

Ramificações de diretório individuais podem ser protegidas explicitamente com<br />

regras separadas. Também é possível processar regiões da árvore de diretórios com<br />

uma única regra usan<strong>do</strong> expressões regulares. slapd avalia todas as regras na<br />

ordem em que elas estão listadas no arquivo de configuração. Mais regras gerais


devem estar listadas após outras mais específicas — a primeira regra slapd<br />

considerada válida é avaliada e todas as entradas seguintes são ignoradas.<br />

• who determina a quem deve ser concedi<strong>do</strong> acesso às áreas determinadas com what.<br />

Expressões regulares podem ser usadas. slapd novamente anula a avaliação de<br />

who após a primeira correspondência, por isso regras mais específicas devem ser<br />

listadas antes das mais gerais. As entradas mostradas na Tabela 25.2, “Grupos de<br />

usuários e suas concessões de acesso” (p 445) são possíveis.<br />

Tabela 25.2 Grupos de usuários e suas concessões de acesso<br />

Tag<br />

*<br />

anônimos<br />

usuários<br />

próprio<br />

dn.regex=<br />

Escopo<br />

To<strong>do</strong>s os usuários sem exceção<br />

Usuários (“anônimos”) não autentica<strong>do</strong>s<br />

Usuários autentica<strong>do</strong>s<br />

Usuários conecta<strong>do</strong>s com o objeto de destino<br />

To<strong>do</strong>s os usuários que correspondem à expressão<br />

regular<br />

• acesso especifica o tipo de acesso. Use as opções listadas na Tabela 25.3, “Tipos<br />

de acesso” (p 445).<br />

Tabela 25.3 Tipos de acesso<br />

Tag<br />

nenhum<br />

autenticação<br />

comparar<br />

busca<br />

Escopo <strong>do</strong> acesso<br />

Sem acesso<br />

Para entrar em contato com o servi<strong>do</strong>r<br />

Para objetos para acesso de comparação<br />

Para a utilização de filtros de busca<br />

LDAP — Um serviço de diretório 445


446 Referência<br />

Tag<br />

ler<br />

gravar<br />

Escopo <strong>do</strong> acesso<br />

Acesso de leitura<br />

Acesso de gravação<br />

slapd compara o direito de acesso solicita<strong>do</strong> pelo cliente com os concedi<strong>do</strong>s em<br />

slapd.conf. Acesso é concedi<strong>do</strong> ao cliente se as regras permitirem um direito<br />

igual ou maior <strong>do</strong> que o solicita<strong>do</strong>. Se o cliente solicitar direitos maiores <strong>do</strong> que os<br />

declara<strong>do</strong>s nas regras, o acesso é nega<strong>do</strong>.<br />

O Exemplo 25.5, “slapd.conf: Exemplo de controle de acesso” (p 446) mostra um<br />

exemplo de um simples controle de acesso que pode ser desenvolvi<strong>do</strong> arbitrariamente<br />

usan<strong>do</strong> expressões regulares.<br />

Exemplo 25.5 slapd.conf: Exemplo de controle de acesso<br />

access to dn.regex="ou=([^,]+),dc=suse,dc=de"<br />

by dn.regex="cn=administrator,ou=$1,dc=suse,dc=de" write<br />

by user read<br />

by * none<br />

Esta regra declara que somente o seu respectivo administra<strong>do</strong>r tem acesso de gravação<br />

a uma entrada ou individual. To<strong>do</strong>s os outros usuários autentica<strong>do</strong>s têm acesso de<br />

leitura e o restante <strong>do</strong> mun<strong>do</strong> não tem acesso.<br />

DICA: Estabelecen<strong>do</strong> regras de acesso<br />

Se não houver acesso a uma regra ou nenhuma correspondência por diretiva,<br />

o acesso é nega<strong>do</strong>. Somente direitos de acesso explicitamente declara<strong>do</strong>s são<br />

concedi<strong>do</strong>s. Se nenhuma regra for declarada, o princípio padrão é o acesso de<br />

gravação para o administra<strong>do</strong>r e o acesso de leitura para o restante <strong>do</strong> mun<strong>do</strong>.<br />

Encontre informações detalhadas e uma configuração de exemplo para direitos de acesso<br />

LDAP na <strong>do</strong>cumentação online <strong>do</strong> pacote openldap2 instala<strong>do</strong>.<br />

Fora a possibilidade de administrar permissões de acesso com o arquivo de configuração<br />

<strong>do</strong> servi<strong>do</strong>r central (slapd.conf), não há informações de controle de acesso (ACI).<br />

A ACI permite o armazenamento das informações de acesso para objetos individuais<br />

na árvore LDAP. Este tipo de controle de acesso ainda não é comum e é considera<strong>do</strong>


experimental pelos desenvolve<strong>do</strong>res. Consulte http://www.openldap.org/<br />

faq/data/cache/758.html para obter informações.<br />

25.3.2 Diretivas específicas de bancos de<br />

da<strong>do</strong>s em slapd.conf<br />

Exemplo 25.6 slapd.conf: Diretivas específicas de bancos de da<strong>do</strong>s<br />

database bdb<br />

checkpoint 1024 5<br />

cachesize 10000<br />

suffix "dc=suse,dc=de"<br />

rootdn "cn=admin,dc=suse,dc=de"<br />

# Cleartext passwords, especially for the rootdn, should<br />

# be avoided. Consulte slappasswd(8) e slapd.conf(5) para obter detalhes.<br />

# O uso de autenticação forte é encoraja<strong>do</strong>.<br />

rootpw secret<br />

# O diretório de banco de da<strong>do</strong>s DEVE existir antes da execução de slapd E<br />

# deve estar acessível somente pelas slapd/tools. Mode 700 recommended.<br />

directory /var/lib/ldap<br />

# Indices to maintain index objectClass eq<br />

O tipo de banco de da<strong>do</strong>s, um banco de da<strong>do</strong>s Berkeley neste caso, é determina<strong>do</strong> na<br />

primeira linha desta seção (consulte o Exemplo 25.6, “slapd.conf: Diretivas específicas<br />

de bancos de da<strong>do</strong>s” (p 447)). checkpoint determina a quantidade de da<strong>do</strong>s (em kb)<br />

mantida no registro de transação antes que seja gravada no banco de da<strong>do</strong>s real e o<br />

tempo (em minutos) entre as duas ações de gravação. cachesize define o número<br />

de objetos manti<strong>do</strong>s no cache <strong>do</strong> banco de da<strong>do</strong>s. suffix determina por qual parte<br />

da árvore LDAP este servi<strong>do</strong>r deve ser responsável. O rootdn seguinte determina<br />

quem possui direitos de administra<strong>do</strong>r para este servi<strong>do</strong>r. O usuário declara<strong>do</strong> aqui não<br />

precisa ter uma entrada LDAP ou existir como um usuário regular. A senha <strong>do</strong><br />

administra<strong>do</strong>r é definida com rootpw. Em vez de usar secret aqui, é possível inserir<br />

o hash da senha <strong>do</strong> administra<strong>do</strong>r cria<strong>do</strong> por slappasswd. A diretiva directory<br />

indica o diretório (no sistema de arquivos) onde os diretórios de bancos de da<strong>do</strong>s estão<br />

armazena<strong>do</strong>s no servi<strong>do</strong>r. A última diretiva, index objectClass eq, resulta na<br />

manutenção de um índice de todas as classes de objetos. Atributos para os quais os<br />

usuários pesquisam com freqüência podem ser adiciona<strong>do</strong>s aqui de acor<strong>do</strong> com a<br />

experiência. Regras de acesso personaliza<strong>do</strong> definidas aqui para o banco de da<strong>do</strong>s<br />

são usadas em vez de regras de acesso global.<br />

LDAP — Um serviço de diretório 447


448 Referência<br />

25.3.3 Inician<strong>do</strong> e interrompen<strong>do</strong> os<br />

servi<strong>do</strong>res<br />

Depois que o servi<strong>do</strong>r LDAP estiver totalmente configura<strong>do</strong> e todas as entradas desejadas<br />

tiverem si<strong>do</strong> realizadas de acor<strong>do</strong> com o padrão descrito na Seção 25.4, “Tratamento<br />

de da<strong>do</strong>s no diretório LDAP” (p 448), inicie o servi<strong>do</strong>r LDAP como root inserin<strong>do</strong><br />

rcldap start. Para interromper o servi<strong>do</strong>r manualmente, insira o coman<strong>do</strong> rcldap<br />

stop. Solicite o status <strong>do</strong> servi<strong>do</strong>r LDAP em execução com o rcldap status.<br />

O editor de níveis de execução YaST, descrito na Seção 8.2.3, “Configuran<strong>do</strong> serviços<br />

<strong>do</strong> sistema (runlevel) com o YaST” (p 196), pode ser usa<strong>do</strong> para que o servi<strong>do</strong>r seja<br />

inicia<strong>do</strong> e interrompi<strong>do</strong> automaticamente na inicialização e na pausa <strong>do</strong> sistema. Também<br />

é possível criar os links correspondentes aos scripts de início e interrupção com o<br />

coman<strong>do</strong> insserv de um prompt de coman<strong>do</strong>, conforme descrito na Seção 8.2.2,<br />

“Scripts Init” (p 192).<br />

25.4 Tratamento de da<strong>do</strong>s no<br />

diretório LDAP<br />

O OpenLDAP <strong>of</strong>erece uma série de ferramentas para a administração de da<strong>do</strong>s no<br />

diretório LDAP. A quatro ferramentas mais importantes para adicionar, apagar, pesquisar<br />

e modificar o estoque de da<strong>do</strong>s são explicadas abaixo.<br />

25.4.1 Inserin<strong>do</strong> da<strong>do</strong>s em um diretório<br />

LDAP<br />

Depois que a configuração <strong>do</strong> seu servi<strong>do</strong>r LDAP em /etc/openldap/lsapd<br />

.conf estiver correta e pronta (ela apresenta entradas apropriadas para suffix,<br />

directory, rootdn, rootpw e index), continue a inserir registros. OpenLDAP<br />

<strong>of</strong>erece o coman<strong>do</strong> ldapadd para esta tarefa. Se possível, adicione os objetos ao banco<br />

de da<strong>do</strong>s em pacotes por razões práticas. O LDAP é capaz de processar o formato LDIF<br />

(formato intercambiável de da<strong>do</strong>s LDAP) para isso. Um arquivo LDIF é um arquivo<br />

de texto simples que pode conter um número arbitrário de pares de atributo e valor.<br />

Consulte os arquivos de esquema declara<strong>do</strong>s em slapd.conf para os atributos e as


classes de objeto disponíveis. O arquivo LDIF para criar uma estrutura bruta para o<br />

exemplo na Figura 25.1, “Estrutura de um diretório LDAP” (p 441) teria a mesma<br />

aparência que no Exemplo 25.7, “Exemplo de um arquivo LDIF” (p 449).<br />

Exemplo 25.7 Exemplo de um arquivo LDIF<br />

# The <strong>SUSE</strong> Organization<br />

dn: dc=suse,dc=de<br />

objectClass: dcObject<br />

objectClass: organization<br />

o: <strong>SUSE</strong> AG dc: suse<br />

# The organizational unit development (devel)<br />

dn: ou=devel,dc=suse,dc=de<br />

objectClass: organizationalUnit<br />

ou: devel<br />

# The organizational unit <strong>do</strong>cumentation (<strong>do</strong>c)<br />

dn: ou=<strong>do</strong>c,dc=suse,dc=de<br />

objectClass: organizationalUnit<br />

ou: <strong>do</strong>c<br />

# The organizational unit internal IT (it)<br />

dn: ou=it,dc=suse,dc=de<br />

objectClass: organizationalUnit<br />

ou: it<br />

IMPORTANTE: Codificação de arquivos LDIF<br />

O LDAP funciona com o UTF-8 (Unicode). Umlauts deve ser codifica<strong>do</strong><br />

corretamente. Use um editor que suporte UTF-8, como o Kate ou versões<br />

recentes de Emacs. De outra forma, evite umlauts e outros caracteres especiais<br />

ou use recode para registrar a entrada em UTF-8.<br />

Salve o arquivo com o sufixo .ldif, em seguida, transmita-o ao servi<strong>do</strong>r com o<br />

seguinte coman<strong>do</strong>:<br />

ldapadd -x -D -W -f .ldif<br />

-x desliga a autenticação com o SASL neste caso. -D declara o usuário que chama a<br />

operação. O DN váli<strong>do</strong> <strong>do</strong> administra<strong>do</strong>r é inseri<strong>do</strong> aqui como foi configura<strong>do</strong> em<br />

slapd.conf. No exemplo atual, há cn=admin,dc=suse,dc=de. -W evita a<br />

inserção de senha na linha de coman<strong>do</strong> (em texto claro) e ativa um prompt de senha<br />

separa<strong>do</strong>. Esta senha foi determinada previamente em slapd.conf com rootpw.<br />

-f transmite o nome de arquivo. Consulte os detalhes da execução de ldapadd no<br />

Exemplo 25.8, “ldapadd com example.ldif” (p 450).<br />

LDAP — Um serviço de diretório 449


450 Referência<br />

Exemplo 25.8 ldapadd com example.ldif<br />

ldapadd -x -D cn=admin,dc=suse,dc=de -W -f example.ldif<br />

Insira a senha <strong>do</strong> LDAP:<br />

adding new entry "dc=suse,dc=de"<br />

adding new entry "ou=devel,dc=suse,dc=de"<br />

adding new entry "ou=<strong>do</strong>c,dc=suse,dc=de"<br />

adding new entry "ou=it,dc=suse,dc=de"<br />

Os da<strong>do</strong>s de usuário de indivíduos podem ser prepara<strong>do</strong>s em arquivos LDIF separa<strong>do</strong>s.<br />

O Exemplo 25.9, “Da<strong>do</strong>s LDIF para Tux” (p 450) adiciona Tux ao novo diretório LDAP.<br />

Exemplo 25.9 Da<strong>do</strong>s LDIF para Tux<br />

# coworker Tux<br />

dn: cn=Tux Linux,ou=devel,dc=suse,dc=de<br />

objectClass: inetOrgPerson<br />

cn: Tux Linux<br />

givenName: Tux<br />

sn: Linux<br />

mail: tux@suse.de<br />

uid: tux<br />

telephoneNumber: +49 1234 567-8<br />

Um arquivo LDIF pode conter um número arbitrário de objetos. É possível transmitir<br />

ramificações de to<strong>do</strong> o diretório ao servi<strong>do</strong>r de uma vez ou somente partes como<br />

mostra<strong>do</strong> no exemplo de objetos individuais. Se for necessário modificar alguns da<strong>do</strong>s<br />

com freqüência, uma subdivisão de objetos únicos é recomendável.<br />

25.4.2 Modifican<strong>do</strong> da<strong>do</strong>s no diretório LDAP<br />

A ferramenta ldapmodify é fornecida para modificar o estoque de da<strong>do</strong>s. A forma<br />

mais fácil de fazer isso é modificar o arquivo LDIF correspondente e, em seguida,<br />

transmitir este arquivo modifica<strong>do</strong> ao servi<strong>do</strong>r LDAP. Para alterar o número de telefone<br />

<strong>do</strong> colega Tux de +49 1234 567-8 para +49 1234 567-10, edite o arquivo<br />

LDIF como no Exemplo 25.10, “Arquivo LDIF modifica<strong>do</strong> tux.ldif” (p 450).<br />

Exemplo 25.10 Arquivo LDIF modifica<strong>do</strong> tux.ldif<br />

# coworker Tux<br />

dn: cn=Tux Linux,ou=devel,dc=suse,dc=de<br />

changetype: modify<br />

replace: telephoneNumber<br />

telephoneNumber: +49 1234 567-10


Importe o arquivo modifica<strong>do</strong> no diretório LDAP com o seguinte coman<strong>do</strong>:<br />

ldapmodify -x -D cn=admin,dc=suse,dc=de -W -f tux.ldif<br />

Alternativamente, transmita os atributos para alterar diretamente para ldapmodify.<br />

O procedimento para isto está descrito abaixo:<br />

1. Inicie ldapmodify e insira sua senha:<br />

ldapmodify -x -D cn=admin,dc=suse,dc=de -W<br />

Enter LDAP password:<br />

2. Insira as modificações e siga cuida<strong>do</strong>samente a sintaxe na ordem apresentada<br />

abaixo:<br />

dn: cn=Tux Linux,ou=devel,dc=suse,dc=de<br />

changetype: modify<br />

replace: telephoneNumber<br />

telephoneNumber: +49 1234 567-10<br />

Informações detalhadas sobre ldapmodify e sua sintaxe podem ser encontradas na<br />

página de manual de ldapmodify(1).<br />

25.4.3 Buscan<strong>do</strong> ou len<strong>do</strong> da<strong>do</strong>s de um<br />

diretório LDAP<br />

OpenLDAP fornece, com ldapsearch, uma ferramenta de linha de coman<strong>do</strong> para<br />

pesquisar da<strong>do</strong>s em um diretório LDAP e ler da<strong>do</strong>s a partir dele. Uma consulta simples<br />

teria a seguinte sintaxe:<br />

ldapsearch -x -b dc=suse,dc=de "(objectClass=*)"<br />

A opção -b determina a base de busca — a seção da árvore dentro da qual a busca deve<br />

ser executada. No caso atual, isto é dc=suse,dc=de. Para realizar uma busca mais<br />

detalhada em subseções específicas <strong>do</strong> diretório LDAP (por exemplo, somente no<br />

departamento devel), transmita esta seção para ldapsearch com -b. -x solicita<br />

a ativação da autenticação simples. (objectClass=*) declara que to<strong>do</strong>s os objetos<br />

conti<strong>do</strong>s no diretório devem ser li<strong>do</strong>s. Esta opção de coman<strong>do</strong> pode ser usada após a<br />

criação de uma nova árvore de diretório para verificar se todas as entradas foram<br />

registradas corretamente e se o servi<strong>do</strong>r responde como deseja<strong>do</strong>. Mais informações<br />

sobre o uso de ldapsearch podem ser encontradas na página de manual<br />

correspondente (ldapsearch(1)).<br />

LDAP — Um serviço de diretório 451


452 Referência<br />

25.4.4 Apagan<strong>do</strong> da<strong>do</strong>s de um diretório<br />

LDAP<br />

Apague entradas indesejadas com ldapdelete. A sintaxe é similar àquela <strong>do</strong>s<br />

coman<strong>do</strong>s descritos acima. Para apagar, por exemplo, a entrada completa para Tux<br />

Linux, emita o seguinte coman<strong>do</strong>:<br />

ldapdelete -x -D cn=admin,dc=suse,dc=de -W cn=Tux \<br />

Linux,ou=devel,dc=suse,dc=de<br />

25.5 O cliente LDAP <strong>do</strong> YaST<br />

O YaST inclui um módulo para configurar o gerenciamento de usuário basea<strong>do</strong> em<br />

LDAP. Se você não habilitou este recurso durante a instalação, inicie o módulo<br />

selecionan<strong>do</strong> Serviços de Rede → Cliente LDAP. O YaST habilita automaticamente<br />

quaisquer alterações relacionadas a PAM e NSS conforme exigi<strong>do</strong> por LDAP (descrito<br />

abaixo) e instala os arquivos necessários.<br />

25.5.1 Procedimento padrão<br />

Conhecimento básico sobre os processos agin<strong>do</strong> no segun<strong>do</strong> plano de uma máquina<br />

cliente ajudam você a compreender como o módulo <strong>do</strong> cliente LDAP <strong>do</strong> YaST funciona.<br />

Se o LDAP for ativa<strong>do</strong> para autenticação de rede ou o módulo YaST for chama<strong>do</strong>, os<br />

pacotes pam_ldap e nss_ldap serão instala<strong>do</strong>s e os <strong>do</strong>is arquivos de configuração<br />

correspondentes serão adapta<strong>do</strong>s. pam_ldap é o módulo PAM responsável pela<br />

negociação entre processos de login e o diretório LDAP como a fonte de da<strong>do</strong>s de<br />

autenticação. O módulo dedica<strong>do</strong> pam_ldap.so é instala<strong>do</strong> e a configuração PAM,<br />

adaptada (consulte o Exemplo 25.11, “pam_unix2.conf adapta<strong>do</strong> para LDAP” (p 452)).<br />

Exemplo 25.11 pam_unix2.conf adapta<strong>do</strong> para LDAP<br />

auth: use_ldap<br />

account: use_ldap<br />

password: use_ldap<br />

session: none<br />

Ao configurar manualmente serviços adicionais para usar o LDAP, inclua o módulo<br />

LDAP <strong>do</strong> PAM no arquivo de configuração PAM correspondente ao serviço em /etc/<br />

pam.d. Arquivos de configuração já adapta<strong>do</strong>s a serviços individuais podem ser


encontra<strong>do</strong>s em /usr/share/<strong>do</strong>c/packages/pam_ldap/pam.d/. Copie os<br />

arquivos apropria<strong>do</strong>s para /etc/pam.d.<br />

A resolução de nome glibc através <strong>do</strong> mecanismo nsswitch é adapta<strong>do</strong> ao uso <strong>do</strong><br />

LDAP com nss_ldap. Um arquivo nsswitch.conf novo, adapta<strong>do</strong> é cria<strong>do</strong> em<br />

/etc/ com a instalação deste pacote. Mais informações sobre o funcionamento de<br />

nsswitch.conf podem ser encontradas na Seção 18.6.1, “Arquivos de configuração”<br />

(p 366). As linhas a seguir devem estar presentes em nsswitch.conf para a<br />

administração <strong>do</strong> usuário e autenticação com LDAP. Consulte o Exemplo 25.12,<br />

“Adaptações em nsswitch.conf” (p 453).<br />

Exemplo 25.12 Adaptações em nsswitch.conf<br />

passwd: compat<br />

group: compat<br />

passwd_compat: ldap<br />

group_compat: ldap<br />

Estas linhas ordenam a biblioteca de resolução de glibc primeiro para avaliar os<br />

arquivos correspondentes em /etc e adicionalmente acessar o servi<strong>do</strong>r LDAP como<br />

fontes para da<strong>do</strong>s de usuário e autenticação. Teste este mecanismo, por exemplo, len<strong>do</strong><br />

o conteú<strong>do</strong> <strong>do</strong> banco de da<strong>do</strong>s de usuário com o coman<strong>do</strong> getent passwd. O<br />

conjunto retorna<strong>do</strong> deve conter uma pesquisa <strong>do</strong>s usuários locais <strong>do</strong> seu sistema e to<strong>do</strong>s<br />

os usuários armazena<strong>do</strong>s no servi<strong>do</strong>r LDAP.<br />

Para evitar que usuários regulares gerencia<strong>do</strong>s através de LDAP efetuem login no<br />

servi<strong>do</strong>r com ssh ou login, os arquivos /etc/passwd e /etc/group cada<br />

precisam incluir uma linha adicional. Esta é a linha +::::::/sbin/nologin em<br />

/etc/passwd e +::: em /etc/group.<br />

25.5.2 Configuração <strong>do</strong> cliente LDAP<br />

Após os ajustes iniciais de nss_ldap, pam_ldap, /etc/passwd e /etc/group<br />

terem si<strong>do</strong> trata<strong>do</strong>s pelo YaST, você pode simplesmente conectar o cliente ao servi<strong>do</strong>r<br />

e deixar que o YaST faça o gerenciamento de usuários via LDAP. A configuração<br />

básica é descrita em “Configuração Básica” (p 454).<br />

Use o cliente LDAP <strong>do</strong> YaST para configurar mais os módulos de configuração de<br />

usuário e grupo <strong>do</strong> YaST. Isso inclui manipular as configurações padrão para novos<br />

usuários e grupos e o número e a natureza <strong>do</strong>s atributos atribuí<strong>do</strong>s a um usuário ou<br />

LDAP — Um serviço de diretório 453


454 Referência<br />

grupo. O gerenciamento de usuários LDAP permite atribuir mais atributos e diferentes<br />

a usuários e grupos <strong>do</strong> que as soluções de gerenciamento de grupos ou usuários<br />

tradicionais. Isso está descrito em “Configuran<strong>do</strong> os módulos de administração de<br />

usuários e grupos <strong>do</strong> YaST” (p 457).<br />

Configuração Básica<br />

A caixa de diálogo de configuração básica <strong>do</strong> cliente LDAP (Figura 25.2, “YaST:<br />

Configuração <strong>do</strong> cliente LDAP” (p 454)) abre durante a instalação se você escolher o<br />

gerenciamento de usuários LDAP ou quan<strong>do</strong> selecionar Serviços de Rede → Cliente<br />

LDAP no Centro de Controle <strong>do</strong> YaST no sistema instala<strong>do</strong>.<br />

Figura 25.2 YaST: Configuração <strong>do</strong> cliente LDAP<br />

Para autenticar usuários da sua máquina em um servi<strong>do</strong>r OpenLDAP e habilitar o<br />

gerenciamento de usuários via OpenLDAP, proceda da seguinte maneira:<br />

1 Clique em Usar LDAP para habilitar o uso de LDAP. Selecione Usar LDAP mas<br />

Desabilitar Logins se você deseja usar o LDAP para autenticação, mas não deseja<br />

que outros usuários efetuem login neste cliente.<br />

2 Insira o endereço IP <strong>do</strong> servi<strong>do</strong>r LDAP para uso.


3 Insira a Base LDAP DN para selecionar a base de busca no servi<strong>do</strong>r LDAP.<br />

Para recuperar o DN base automaticamente, clique em Pesquisar DN. Em seguida,<br />

o YaST verifica se há algum banco de da<strong>do</strong>s LDAP no endereço de servi<strong>do</strong>r<br />

especifica<strong>do</strong> acima. Escolha o DN base apropria<strong>do</strong> nos resulta<strong>do</strong>s de pesquisa<br />

forneci<strong>do</strong>s pelo YaST.<br />

4 Se a comunicação protegida por TLS ou SSL com o servi<strong>do</strong>r for necessária,<br />

selecione LDAP TLS/SSL.<br />

5 Se o servi<strong>do</strong>r LDAP ainda usar LDAPv2, habilite explicitamente o uso desta<br />

versão de protocolo selecionan<strong>do</strong> LDAP Versão 2.<br />

6 Selecione Iniciar Automounter para montar diretórios remotos no seu cliente<br />

como um /home gerencia<strong>do</strong> remotamente.<br />

7 Clique em Concluir para aplicar suas configurações.<br />

Figura 25.3 YaST: Configuração Avançada<br />

Para modificar da<strong>do</strong>s no servi<strong>do</strong>r como administra<strong>do</strong>r, clique em Configuração<br />

Avançada. A caixa de diálogo seguinte é dividida em duas guias. Consulte a<br />

Figura 25.3, “YaST: Configuração Avançada” (p 455):<br />

LDAP — Um serviço de diretório 455


456 Referência<br />

1 Na guia Configurações <strong>do</strong> Cliente, ajuste as seguintes configurações às suas<br />

necessidades:<br />

a Se a base de busca para usuários, senhas e grupos diferir da base de busca<br />

global especificada em Base LDAP DN, insira esses contextos de nomeação<br />

diferentes em Mapa <strong>do</strong> Usuário, Mapa da Senha e Mapa <strong>do</strong> Grupo.<br />

b Especifique o protocolo de alteração de senha. O méto<strong>do</strong> padrão a ser usa<strong>do</strong><br />

sempre que uma senha é alterada é crypt, significan<strong>do</strong> que os hashes de<br />

senha gera<strong>do</strong>s por crypt são usa<strong>do</strong>s. Para obter detalhes sobre esta e outras<br />

opções, consulte a página de manual de pam_ldap.<br />

c Especifique o grupo LDAP a ser usa<strong>do</strong> com Atributo de Membro de Grupo.<br />

O valor padrão para isso é membro.<br />

2 Em Configurações da Administração, ajuste as seguintes configurações:<br />

a Defina a base para armazenar os da<strong>do</strong>s <strong>do</strong> gerenciamento de usuários via<br />

Base de Configuração DN.<br />

b Insira o valor apropria<strong>do</strong> para DN <strong>do</strong> Administra<strong>do</strong>r. Este DN deve ser<br />

idêntico ao valor rootdn especifica<strong>do</strong> em /etc/openldap/slapd<br />

.conf para habilitar este usuário específico a manipular da<strong>do</strong>s armazena<strong>do</strong>s<br />

no servi<strong>do</strong>r LDAP. Digite o DN completo (como<br />

cn=admin,dc=suse,dc=de) ou ative Adicionar DN Base para adicionar<br />

automaticamente o DN base quan<strong>do</strong> você digitar cn=admin.<br />

c Marque Criar Objetos de Configuração Padrão para criar os objetos de<br />

configuração básica no servi<strong>do</strong>r para habilitar o gerenciamento de usuários<br />

via LDAP.<br />

d Se a máquina <strong>do</strong> cliente deve agir como um servi<strong>do</strong>r de arquivos para<br />

diretórios pessoais na rede, marque Diretórios Pessoais nesta Máquina.<br />

e Clique em Aceitar para sair de Configuração Avançada e em Concluir para<br />

aplicar suas configurações.<br />

Use Definir Configurações de Gerenciamento de Usuários para editar entradas no<br />

servi<strong>do</strong>r LDAP. Acesso aos módulos de configuração no servi<strong>do</strong>r é então concedi<strong>do</strong>


de acor<strong>do</strong> com os ACLs e ACIs armazena<strong>do</strong>s no servi<strong>do</strong>r. Siga os procedimentos<br />

apresenta<strong>do</strong>s em “Configuran<strong>do</strong> os módulos de administração de usuários e grupos <strong>do</strong><br />

YaST” (p 457).<br />

Configuran<strong>do</strong> os módulos de administração de<br />

usuários e grupos <strong>do</strong> YaST<br />

Use o cliente LDAP <strong>do</strong> YaST para adaptar os módulos YaST para administração de<br />

grupo e usuários e estendê-los conforme necessário. Defina modelos com valores padrão<br />

para os atributos individuais para simplificar o registro de da<strong>do</strong>s. As predefinições<br />

criadas aqui são armazenadas como objetos LDAP no diretório LDAP. O registro de<br />

da<strong>do</strong>s de usuários ainda é realiza<strong>do</strong> com módulos YaST regulares para o gerenciamento<br />

de grupos e usuários. Os da<strong>do</strong>s registra<strong>do</strong>s são armazena<strong>do</strong>s como objetos LDAP no<br />

servi<strong>do</strong>r.<br />

Figura 25.4 YaST: Configuração <strong>do</strong> módulo<br />

A caixa de diálogo para configuração <strong>do</strong> módulo (Figura 25.4, “YaST: Configuração<br />

<strong>do</strong> módulo” (p 457)) permite a criação de novos módulos, a seleção e modificação de<br />

módulos de configuração existentes e o design e a modificação de modelos para estes<br />

módulos.<br />

LDAP — Um serviço de diretório 457


458 Referência<br />

Para criar um novo módulo de configuração, proceda da seguinte maneira:<br />

1 Clique em Novo e selecione o tipo de módulo a ser cria<strong>do</strong>. Para um módulo de<br />

configuração de usuários, selecione suseuserconfiguration e para<br />

configuração de grupos, selecione susegroupconfiguration.<br />

2 Escolha um nome para o novo modelo.<br />

A visão de conteú<strong>do</strong> apresenta uma tabela listan<strong>do</strong> to<strong>do</strong>s os atributos permiti<strong>do</strong>s<br />

neste módulo com seus valores atribuí<strong>do</strong>s. Fora <strong>do</strong>s atributos defini<strong>do</strong>s, a lista<br />

também contém to<strong>do</strong>s os outros atributos permiti<strong>do</strong>s pelo esquema atual, mas<br />

que não são usa<strong>do</strong>s atualmente.<br />

3 Aceite os valores predefini<strong>do</strong>s ou ajuste os padrões para usar na configuração de<br />

usuários e grupos selecionan<strong>do</strong> o respectivo atributo, pressionan<strong>do</strong> Editar e<br />

inserin<strong>do</strong> o novo valor. Renomeie um módulo alteran<strong>do</strong> o atributo cn <strong>do</strong> módulo.<br />

Clicar em Apagar apaga o módulo atualmente seleciona<strong>do</strong>.<br />

4 Após clicar em OK, o novo módulo será adiciona<strong>do</strong> ao menu de seleção.<br />

Os módulos YaST para a administração de usuários e grupos embute modelos com<br />

valores padrão sensíveis. Para editar um modelo associa<strong>do</strong> a um módulo de<br />

configuração, proceda da seguinte maneira:<br />

1 Na caixa de diálogo Configuração <strong>do</strong> Módulo, clique em Configurar Modelo.<br />

2 Determine os valores <strong>do</strong>s atributos gerais atribuí<strong>do</strong>s a este modelo de acor<strong>do</strong><br />

com suas necessidades ou deixe alguns vazios. Atributos vazios são apaga<strong>do</strong>s<br />

no servi<strong>do</strong>r LDAP.<br />

3 Modifique, apague ou adicione novos valores padrão para novos objetos (objetos<br />

de configuração de grupos ou usuários na árvore LDAP).


Figura 25.5 YaST: Configuração de um modelo de objeto<br />

Conecte o modelo ao seu módulo definin<strong>do</strong> o valor de atributo<br />

susedefaulttemplate <strong>do</strong> módulo ao DN <strong>do</strong> módulo adapta<strong>do</strong>.<br />

DICA<br />

Os valores padrão para um atributo podem ser cria<strong>do</strong>s de outros atributos<br />

com o uso de uma variável em vez de um valor absoluto. Por exemplo, ao criar<br />

um novo usuário, cn=%sn %givenName é cria<strong>do</strong> automaticamente <strong>do</strong>s valores<br />

de atributos para sn e givenName.<br />

Após to<strong>do</strong>s os módulos e modelos terem si<strong>do</strong> configura<strong>do</strong>s corretamente e estarem<br />

prontos para execução, novos grupos e usuários podem ser registra<strong>do</strong>s da maneira usual<br />

com o YaST.<br />

LDAP — Um serviço de diretório 459


460 Referência<br />

25.6 Configuran<strong>do</strong> grupos e usuários<br />

LDAP no YaST<br />

O registro atual de da<strong>do</strong>s de grupos e usuários difere apenas um pouco <strong>do</strong> procedimento<br />

quan<strong>do</strong> LDAP não está sen<strong>do</strong> usa<strong>do</strong>. As seguintes instruções breves estão relacionadas<br />

à administração <strong>do</strong>s usuários. O procedimento para administrar grupos é análogo.<br />

1 Acesse a administração <strong>do</strong> usuário YaST com Segurança & Usuários →<br />

Administração de Usuário.<br />

2 Use Definir Filtros para limitar a exibição de usuários aos usuários LDAP e insira<br />

a senha para DN raiz.<br />

3 Clique em Adicionar e insira a configuração de um novo usuário. Uma caixa de<br />

diálogo com quatro guias é aberta:<br />

a Especifique nome de usuário, login e senha na guia Da<strong>do</strong>s <strong>do</strong> Usuário.<br />

b Marque a guia Detalhes para a participação de grupo, shell de login e<br />

diretório pessoal <strong>do</strong> novo usuário. Se necessário, altere o padrão para valores<br />

que melhor atendem suas necessidades. Os valores padrão e as configurações<br />

de senha podem ser defini<strong>do</strong>s com o procedimento descrito em<br />

“Configuran<strong>do</strong> os módulos de administração de usuários e grupos <strong>do</strong> YaST”<br />

(p 457).<br />

c Modifique ou aceite as Configurações de Senha padrão.<br />

d Vá para a guia Plug-Ins, selecione o plug-in <strong>do</strong> LDAP e clique em Iniciar<br />

para configurar atributos LDAP adicionais atribuí<strong>do</strong>s ao novo usuário<br />

(consulte a Figura 25.6, “YaST: Configurações LDAP adicionais” (p 461)).<br />

4 Clique em Aceitar para aplicar suas configurações e saia da configuração <strong>do</strong><br />

usuário.


Figura 25.6 YaST: Configurações LDAP adicionais<br />

A forma de entrada inicial da administração <strong>do</strong> usuário <strong>of</strong>erece Opções <strong>do</strong> LDAP. Isso<br />

fornece a possibilidade de aplicar filtros de busca <strong>do</strong> LDAP para o conjunto de usuários<br />

disponíveis ou ir para o módulo para a configuração de grupos e usuários LDAP<br />

selecionan<strong>do</strong> Configuração de Grupos e Usuários LDAP.<br />

25.7 Mais informações<br />

Assuntos mais complexos, como a configuração de SASL ou o estabelecimento de um<br />

servi<strong>do</strong>r LDAP de replicação que distribui a carga de trabalho entre vários escravos,<br />

intencionalmente não foi incluída neste capítulo. Informações detalhadas sobre ambos<br />

os assuntos podem ser encontradas no Guia <strong>do</strong> Administra<strong>do</strong>r <strong>do</strong> OpenLDAP 2.2<br />

(referências a seguir).<br />

O website <strong>do</strong> projeto OpenLDAP <strong>of</strong>erece <strong>do</strong>cumentação exaustiva para usuários LDAP<br />

iniciantes e avança<strong>do</strong>s:<br />

LDAP — Um serviço de diretório 461


462 Referência<br />

OpenLDAP Faq-O-Matic<br />

Uma coleção abrangente de perguntas e respostas referentes à instalação,<br />

configuração e ao uso <strong>do</strong> OpenLDAP. Encontre-o em http://www.openldap<br />

.org/faq/data/cache/1.html.<br />

Guia Rápi<strong>do</strong> de Início<br />

Instruções breves etapa por etapa para instalar o seu primeiro servi<strong>do</strong>r LDAP.<br />

Encontre-o em http://www.openldap.org/<strong>do</strong>c/admin22/quickstart<br />

.html ou em um sistema instala<strong>do</strong> em /usr/share/<strong>do</strong>c/packages/<br />

openldap2/admin-guide/quickstart.html.<br />

Guia <strong>do</strong> Administra<strong>do</strong>r <strong>do</strong> OpenLDAP 2.2<br />

Uma introdução detalhada para to<strong>do</strong>s os aspectos importantes da configuração <strong>do</strong><br />

LDAP, incluin<strong>do</strong> criptografia e controles de acesso. Consulte http://www<br />

.openldap.org/<strong>do</strong>c/admin22/ ou, em um sistema instala<strong>do</strong>, /usr/<br />

share/<strong>do</strong>c/packages/openldap2/admin-guide/index.html.<br />

Compreenden<strong>do</strong> o LDAP<br />

Uma introdução geral detalhada para os princípios básicos <strong>do</strong> LDAP: http://<br />

www.redbooks.ibm.com/redbooks/pdfs/sg244986.pdf.<br />

Literatura impressa sobre o LDAP:<br />

• LDAP System Administration por Gerald Carter (ISBN 1-56592-491-6)<br />

• Understanding and Deploying LDAP Directory Services por Howes, Smith e Good<br />

(ISBN 0-672-32316-8)<br />

O material de referência mais importante sobre o LDAP são os RFCs (request for<br />

comments) correspondentes, 2251 a 2256.


Servi<strong>do</strong>r HTTP Apache<br />

Com uma cota de mais de 70%, o Apache é o servi<strong>do</strong>r Web mais usa<strong>do</strong> mundialmente<br />

de acor<strong>do</strong> com a pesquisa da http://www.netcraft.com/ em novembro de<br />

2005. O Apache, desenvolvi<strong>do</strong> pela Apache S<strong>of</strong>tware Foundation (http://www<br />

.apache.org/), está disponível para a maioria <strong>do</strong>s sistemas operacionais. O <strong>SUSE</strong><br />

Linux inclui o Apache versão 2.2. Neste capítulo, aprenda como instalar, configurar e<br />

ajustar um servi<strong>do</strong>r Web; como usar SSL, CGI e módulos adicionais; e como solucionar<br />

problemas <strong>do</strong> Apache.<br />

26.1 Inicialização Rápida<br />

Com o auxílio desta seção, configure e inicie o Apache. É necessário usar a conta de<br />

usuário Root para instalar e configurar o Apache.<br />

26.1.1 Requisitos<br />

Certifique-se de que os requisitos sejam atendi<strong>do</strong>s antes de tentar configurar o servi<strong>do</strong>r<br />

Web Apache:<br />

1. A rede da máquina é configurada corretamente. Para obter mais informações<br />

sobre este tópico, consulte o Capítulo 18, Rede básica (p 331).<br />

2. A hora exata <strong>do</strong> sistema da máquina é mantida por meio da sincronização com<br />

um servi<strong>do</strong>r de horário. Isso é necessário porque as partes <strong>do</strong> protocolo HTTP<br />

26<br />

Servi<strong>do</strong>r HTTP Apache 463


464 Referência<br />

dependem da hora certa. Consulte o Capítulo 24, Sincronização de horário com<br />

NTP (p 431) para saber mais sobre este tópico.<br />

3. As atualizações de segurança mais recentes são instaladas. Em caso de dúvida,<br />

execute uma Atualização Online <strong>do</strong> YaST.<br />

4. A porta <strong>do</strong> servi<strong>do</strong>r Web padrão (porta 80) é aberta no firewall. Para isso,<br />

configure o <strong>SUSE</strong>Firewall2 para permitir o serviço Servi<strong>do</strong>r HTTP na zona<br />

externa. Isso pode ser feito com o YaST. “Configuran<strong>do</strong> com o YaST” (p 110)<br />

fornece os detalhes.<br />

26.1.2 Instalação<br />

O Apache no <strong>SUSE</strong> Linux não é instala<strong>do</strong> por padrão. Para instalá-lo, inicie o YaST e<br />

selecione S<strong>of</strong>tware → Gerenciamento de S<strong>of</strong>tware. Agora escolha Filtros → Seleções<br />

e selecione Servi<strong>do</strong>r da Web Simples com Apache2. Confirme a instalação <strong>do</strong>s pacotes<br />

dependentes para concluir o processo de instalação.<br />

O Apache é instala<strong>do</strong> com uma configuração padrão e predefinida que é executada<br />

instantaneamente. A instalação inclui o módulo de multiprocessamento<br />

apache2-prefork, além <strong>do</strong> módulo PHP5. Consulte a Seção 26.4, “Instalan<strong>do</strong>,<br />

ativan<strong>do</strong> e configuran<strong>do</strong> módulos” (p 482) para obter mais informações sobre módulos.<br />

26.1.3 Inicialização<br />

Para iniciar o Apache e assegurar que seja inicia<strong>do</strong> automaticamente durante a<br />

inicialização da máquina, inicie o YaST e selecione Sistema → Serviços <strong>do</strong> Sistema<br />

(Nível de Execução). Procure apache2 e Habilite o serviço. O servi<strong>do</strong>r Web é inicia<strong>do</strong><br />

imediatamente. Quan<strong>do</strong> você grava suas mudanças com Concluir, o sistema é<br />

configura<strong>do</strong> para iniciar o Apache automaticamente nos níveis de execução 3 e 5 durante<br />

a inicialização. Para obter mais informações sobre os níveis de execução no <strong>SUSE</strong><br />

Linux e uma descrição <strong>do</strong> editor de nível de execução <strong>do</strong> YaST, consulte a Seção 8.2.3,<br />

“Configuran<strong>do</strong> serviços <strong>do</strong> sistema (runlevel) com o YaST” (p 196).<br />

Para iniciar o Apache usan<strong>do</strong> o shell, execute rcapache2 start. Para assegurar<br />

que o Apache seja inicia<strong>do</strong> automaticamente durante a inicialização da máquina nos<br />

níveis de execução 3 e 5, use chkconfig -a apache2.


Se você não tiver recebi<strong>do</strong> mensagens de erro ao iniciar o Apache, o servi<strong>do</strong>r Web<br />

deverá estar em execução. Inicie um browser e abra http://localhost/. Deverá<br />

ser exibida uma página de teste <strong>do</strong> Apache iniciada por “If you can see this, it means<br />

that the installation <strong>of</strong> the Apache Web server s<strong>of</strong>tware on this system was successful”<br />

(Se você estiver ven<strong>do</strong> isso, significa que a instalação <strong>do</strong> servi<strong>do</strong>r Web Apache neste<br />

sistema foi bem-sucedida). Se você não ver essa página, consulte a Seção 26.8, “Solução<br />

de problemas” (p 501).<br />

Agora que o servi<strong>do</strong>r Web está em execução, é possível adicionar seus próprios<br />

<strong>do</strong>cumentos, ajustar a configuração de acor<strong>do</strong> com suas necessidades ou adicionar<br />

funcionalidade instalan<strong>do</strong> módulos.<br />

26.2 Configuran<strong>do</strong> o Apache<br />

O Apache no <strong>SUSE</strong> Linux pode ser configura<strong>do</strong> de duas maneiras diferentes: com o<br />

YaST ou manualmente. A configuração manual <strong>of</strong>erece um nível maior de detalhes,<br />

mas não tem a conveniência da interface gráfica de usuário <strong>do</strong> YaST.<br />

IMPORTANTE: Mudanças de configuração<br />

As mudanças em quase to<strong>do</strong>s os valores de configuração <strong>do</strong> Apache somente<br />

são efetuadas depois que o Apache é reinicia<strong>do</strong> ou recarrega<strong>do</strong>. Isso ocorre<br />

automaticamente ao usar o YaST e concluir a configuração com a opção<br />

Habilita<strong>do</strong> selecionada para o Serviço HTTP. O reinício manual é descrito na<br />

Seção 26.3, “Inician<strong>do</strong> e paran<strong>do</strong> o Apache” (p 480). A maioria das mudanças<br />

de configuração somente requerem um recarregamento com rcapache2<br />

reload.<br />

26.2.1 Configuran<strong>do</strong> o Apache manualmente<br />

A configuração manual <strong>do</strong> Apache requer a edição <strong>do</strong>s arquivos de configuração de<br />

texto simples como o usuário Root.<br />

Servi<strong>do</strong>r HTTP Apache 465


466 Referência<br />

Arquivos de configuração<br />

Os arquivos de configuração <strong>do</strong> Apache podem ser encontra<strong>do</strong>s em duas localizações<br />

diferentes:<br />

• /etc/sysconfig/apache2<br />

• /etc/apache2/<br />

/etc/sysconfig/apache2<br />

O /etc/sysconfig/apache2 controla algumas configurações globais <strong>do</strong> Apache,<br />

como módulos para carregar, arquivos de configuração adicionais para incluir, flags<br />

com os quais o servi<strong>do</strong>r deve ser inicia<strong>do</strong> e flags que devem ser adiciona<strong>do</strong>s à linha de<br />

coman<strong>do</strong>. Como toda opção de configuração desse arquivo está amplamente<br />

<strong>do</strong>cumentada, não são citadas aqui. No caso de um servi<strong>do</strong>r Web de finalidade geral,<br />

as configurações em /etc/sysconfig/apache2 devem bastar para as necessidades<br />

de configuração.<br />

IMPORTANTE: Nenhum módulo SuSEconfig <strong>do</strong> Apache<br />

O módulo SuSEconfig <strong>do</strong> Apache foi removi<strong>do</strong> <strong>do</strong> <strong>SUSE</strong> Linux. Ele deixou de<br />

ser necessário para a execução <strong>do</strong> SuSEconfig após a mudança de /etc/<br />

sysconfig/apache2.<br />

/etc/apache2/<br />

/etc/apache2/ hospeda to<strong>do</strong>s os arquivos de configuração <strong>do</strong> Apache. O propósito<br />

de cada arquivo é explica<strong>do</strong> a seguir. Cada um deles inclui várias opções de configuração<br />

(também chamadas de diretivas). Como todas as opções de configuração desses arquivos<br />

estão amplamente <strong>do</strong>cumentadas, não são citadas aqui.<br />

Os arquivos de configuração <strong>do</strong> Apache são organiza<strong>do</strong>s da seguinte maneira:<br />

/etc/apache2/<br />

|<br />

|- charset.conv<br />

|- conf.d/<br />

| |<br />

| |- *.conf<br />

|<br />

|- default-server.conf


|- errors.conf<br />

|- httpd.conf<br />

|- listen.conf<br />

|- magic<br />

|- mime.types<br />

|- mod_*.conf<br />

|- server-tuning.conf<br />

|- ssl-global.conf<br />

|- ssl.*<br />

|- sysconfig.d<br />

| |<br />

| |- global.conf<br />

| |- include.conf<br />

| |- loadmodule.conf . .<br />

|<br />

|- uid.conf<br />

|- vhosts.d<br />

| |- *.conf<br />

Arquivos de configuração <strong>do</strong> Apache em /etc/apache2/<br />

charset.conv<br />

Especifica os conjuntos de caracteres usa<strong>do</strong>s para idiomas diferentes. Não editar.<br />

conf.d/*.conf<br />

Arquivos de configuração adiciona<strong>do</strong>s por outros módulos. Esses arquivos podem<br />

ser incluí<strong>do</strong>s na configuração <strong>do</strong> host virtual quan<strong>do</strong> necessário. Consulte exemplos<br />

em vhosts.d/vhost.template. Com isso, você pode fornecer diferentes<br />

conjuntos de módulos para hosts virtuais diferentes.<br />

default-server.conf<br />

Configuração global para to<strong>do</strong>s os hosts virtuais com padrões aceitáveis. Em vez<br />

de mudar os valores, sobregrave-os com uma configuração de host virtual.<br />

errors.conf<br />

Define como o Apache responde a erros. Para personalizar essas mensagens em<br />

to<strong>do</strong>s os hosts virtuais, edite esse arquivo. Senão, sobregrave essas diretivas nas<br />

configurações <strong>do</strong> seu host virtual.<br />

httpd.conf<br />

Principal arquivo de configuração <strong>do</strong> servi<strong>do</strong>r Apache. Evite mudar esse arquivo.<br />

Ele contém essencialmente declarações e configurações globais. Sobregrave as<br />

configurações globais nos respectivos arquivos de configuração relaciona<strong>do</strong>s aqui.<br />

Mude as configurações específicas de host (como a raiz de <strong>do</strong>cumento) na<br />

configuração <strong>do</strong> host virtual.<br />

Servi<strong>do</strong>r HTTP Apache 467


468 Referência<br />

listen.conf<br />

Vincula o Apache a endereços IP e portas específicos. A hospedagem virtual baseada<br />

em nomes (consulte “Hosts virtuais identifica<strong>do</strong>s por nome” (p 470) também é<br />

configurada nesse arquivo.<br />

magic<br />

Da<strong>do</strong>s <strong>do</strong> módulo mime_magic que ajudam o Apache a determinar automaticamente<br />

o tipo MIME de um arquivo desconheci<strong>do</strong>. Não mudar.<br />

mime.types<br />

Tipos MIME conheci<strong>do</strong>s pelo sistema (é um link para /etc/mime.types). Não<br />

editar. Se for preciso adicionar tipos MIME não relaciona<strong>do</strong>s aqui, adicione-os a<br />

mod_mime-defaults.conf.<br />

mod_*.conf<br />

Arquivos de configuração <strong>do</strong>s módulos instala<strong>do</strong>s por padrão. Consulte a Seção 26.4,<br />

“Instalan<strong>do</strong>, ativan<strong>do</strong> e configuran<strong>do</strong> módulos” (p 482) para obter detalhes. Observe<br />

que os arquivos de configuração <strong>do</strong>s módulos opcionais residem no diretório conf<br />

.d.<br />

server-tuning.conf<br />

Contém diretivas de configuração para os diferentes MPMs (consulte a Seção 26.4.4,<br />

“Módulos de multiprocessamento” (p 486)), bem como opções de configuração<br />

geral que controlam o desempenho <strong>do</strong> Apache. Teste o servi<strong>do</strong>r Web adequadamente<br />

ao fazer mudanças nesse arquivo.<br />

ssl-global.conf e ssl.*<br />

Configuração SSL global e da<strong>do</strong>s de certifica<strong>do</strong> SSL. Consulte a Seção 26.6,<br />

“Configuran<strong>do</strong> um servi<strong>do</strong>r Web seguro com SSL” (p 493) para obter detalhes.<br />

sysconfig.d/*.conf<br />

Arquivos de configuração gera<strong>do</strong>s automaticamente de /etc/sysconfig/<br />

apache2. Não mude nenhum desses arquivos. De preferência, edite /etc/<br />

sysconfig/apache2. Não coloque outros arquivos de configuração nesse<br />

diretório.<br />

uid.conf<br />

Especifica o usuário e o ID <strong>do</strong> grupo com que o Apache é executa<strong>do</strong>. Não mudar.


vhosts.d/*.conf<br />

Deverá conter a configuração <strong>do</strong> seu host virtual. O diretório contém arquivos de<br />

modelo para hosts virtuais com e sem SSL. To<strong>do</strong>s os arquivos deste diretório que<br />

terminam com .conf são incluí<strong>do</strong>s automaticamente na configuração <strong>do</strong> Apache.<br />

Consulte “Configuração <strong>do</strong> host virtual” (p 469) para obter detalhes.<br />

Configuração <strong>do</strong> host virtual<br />

O termo host virtual refere-se à habilidade <strong>do</strong> Apache de servir vários URIs (universal<br />

resource identifiers) a partir da mesma máquina física. Isso significa que vários <strong>do</strong>mínios,<br />

como www.exemplo.com e www.exemplo.net, são executa<strong>do</strong>s por um servi<strong>do</strong>r Web<br />

único em uma máquina física.<br />

É prática comum usar hosts virtuais para evitar esforços administrativos (somente um<br />

servi<strong>do</strong>r Web único precisa ser manti<strong>do</strong>) e despesas de hardware (não é necessário ter<br />

um servi<strong>do</strong>r dedica<strong>do</strong> para cada <strong>do</strong>mínio). Os hosts virtuais podem ser identifica<strong>do</strong>s<br />

por nome, IP ou porta.<br />

Os hosts virtuais podem ser configura<strong>do</strong>s através <strong>do</strong> YaST (consulte “Hosts Virtuais”<br />

(p 477)) ou através da edição manual da se um arquivo de configuração. Por padrão, o<br />

Apache no <strong>SUSE</strong> Linux está prepara<strong>do</strong> para um arquivo de configuração por host virtual<br />

em /etc/apache2/vhosts.d/. To<strong>do</strong>s os arquivos deste diretório com a extensão<br />

.conf são incluí<strong>do</strong>s automaticamente na configuração. Um modelo básico para um<br />

host virtual é forneci<strong>do</strong> neste diretório (vhost.template ou vhost-ssl<br />

.template para um host virtual com suporte SSL).<br />

DICA: Sempre crie uma configuração de host virtual<br />

É recomendável criar sempre um arquivo de configuração de host virtual,<br />

mesmo que o seu servi<strong>do</strong>r Web hospede somente um <strong>do</strong>mínio. Com isso, além<br />

de ter a configuração específica de <strong>do</strong>mínio em um arquivo, você poderá<br />

sempre retroceder a uma configuração básica de trabalho, bastan<strong>do</strong> mover,<br />

apagar ou renomear o arquivo de configuração <strong>do</strong> host virtual. Pelo mesmo<br />

motivo, você também deverá criar arquivos de configuração separa<strong>do</strong>s para<br />

cada host virtual.<br />

O bloco contém as informações que se aplicam<br />

a um <strong>do</strong>mínio específico. Quan<strong>do</strong> o Apache recebe uma solicitação de cliente para um<br />

host virtual defini<strong>do</strong>, ele usa as diretivas fornecidas nesta seção. Quase todas as diretivas<br />

Servi<strong>do</strong>r HTTP Apache 469


470 Referência<br />

podem ser usadas em um contexto de host virtual. Consulte http://httpd.apache<br />

.org/<strong>do</strong>cs/2.0/mod/quickreference.html para obter mais informações<br />

sobre as diretivas de configuração <strong>do</strong> Apache.<br />

Hosts virtuais identifica<strong>do</strong>s por nome<br />

No caso de hosts virtuais identifica<strong>do</strong>s por nome, cada endereço IP atende mais de um<br />

site da Web. O Apache usa o campo host no cabeçalho HTTP envia<strong>do</strong> pelo cliente para<br />

conectar a solicitação a uma entrada ServerName correspondente de uma das<br />

declarações <strong>do</strong> host virtual. Se não for encontrada nenhuma entrada ServerName, o<br />

primeiro host virtual especifica<strong>do</strong> será usa<strong>do</strong> como padrão.<br />

A diretiva NameVirtualHost informa o Apache em qual endereço IP e,<br />

opcionalmente, em qual porta escutar solicitações de clientes que contêm o nome de<br />

<strong>do</strong>mínio no cabeçalho HTTP. Essa opção é definida no arquivo de configuração /etc/<br />

apache2/listen.conf.<br />

O primeiro argumento pode ser um nome de <strong>do</strong>mínio completo, mas é recomendável<br />

usar o endereço IP. O segun<strong>do</strong> argumento é a porta (opcional). Por padrão, a porta 80<br />

é usada e configurada através da diretiva Listen.<br />

O curinga * pode ser usa<strong>do</strong> para que o endereço IP e o número da porta recebam<br />

solicitações em todas as interfaces. Os endereços IPv6 devem ser coloca<strong>do</strong>s entre<br />

colchetes.<br />

Exemplo 26.1 Variações de entradas VirtualHost identificadas por nome<br />

# NameVirtualHost Endereço IP[:Porta] NameVirtualHost 192.168.1.100:80<br />

NameVirtualHost 192.168.1.100<br />

NameVirtualHost *:80<br />

NameVirtualHost *<br />

NameVirtualHost [2002:c0a8:164::]:80<br />

A tag VirtualHost de abertura usa o endereço IP (ou nome de <strong>do</strong>mínio completo)<br />

declara<strong>do</strong> anteriormente com NameVirtualHost como um argumento na<br />

configuração de host virtual identifica<strong>do</strong> por nome. Um número de porta anteriormente<br />

declara<strong>do</strong> com a diretiva NameVirtualHost é opcional.<br />

O curinga * também é permiti<strong>do</strong> como substituto <strong>do</strong> endereço IP. Esta sintaxe somente<br />

é válida quan<strong>do</strong> combinada ao curinga em NameVirtualHost *. Ao usar endereços<br />

IPv6, inclua o endereço entre colchetes.


Exemplo 26.2 Diretivas VirtualHost identificadas por nome<br />

... <br />

... <br />

... <br />

... <br />

... <br />

Hosts virtuais identifica<strong>do</strong>s por IP<br />

Esta configuração de host virtual alternativa requer a configuração de vários IPs para<br />

uma máquina. Uma instância <strong>do</strong> Apache hospeda vários <strong>do</strong>mínios, a cada qual é atribuí<strong>do</strong><br />

um IP diferente.<br />

O servi<strong>do</strong>r físico deve ter um endereço IP para cada host virtual identifica<strong>do</strong> por IP. Se<br />

a máquina não tiver várias placas de rede, interfaces de rede virtuais (álias de IP) também<br />

poderão ser usadas.<br />

O seguinte exemplo mostra o Apache em execução em uma máquina com o IP<br />

192.168.0.10, hospedan<strong>do</strong> <strong>do</strong>is <strong>do</strong>mínios nos IPs adicionais 192.168.0.20 e<br />

192.168.0.30. É necessário um bloco VirtualHost separa<strong>do</strong> para cada servi<strong>do</strong>r<br />

virtual.<br />

Exemplo 26.3 Diretivas VirtualHost identificadas por IP<br />

... <br />

... <br />

Aqui, as diretivas VirtualHost somente são especificadas para interfaces que não<br />

sejam 192.168.0.10. Quan<strong>do</strong> uma diretiva Listen também é configurada para<br />

192.168.0.10, é necessário criar um host virtual identifica<strong>do</strong> por IP separa<strong>do</strong> para<br />

responder aos pedi<strong>do</strong>s HTTP àquela interface, caso contrário, serão aplicadas as diretivas<br />

encontradas na configuração <strong>do</strong> servi<strong>do</strong>r padrão (/etc/apache2/default-server<br />

.conf).<br />

Servi<strong>do</strong>r HTTP Apache 471


472 Referência<br />

Configuração básica <strong>do</strong> host virtual<br />

É preciso que pelo menos as diretivas a seguir estejam presentes na configuração de<br />

cada host virtual para compor um host virtual. Consulte /etc/apache2/vhosts<br />

.d/vhost.template para conhecer mais opções.<br />

ServerName<br />

Nome de <strong>do</strong>mínio completo com o qual o host deverá ser intitula<strong>do</strong>.<br />

DocumentRoot<br />

Caminho para o diretório <strong>do</strong> qual o Apache deverá atender a arquivos deste host.<br />

Por motivos de segurança, é proibi<strong>do</strong> o acesso ao sistema de arquivos inteiro por<br />

padrão, por isso, você deve desbloquear explicitamente esse diretório dentro de<br />

um container Directory.<br />

ServerAdmin<br />

Endereço de e-mail <strong>do</strong> administra<strong>do</strong>r de servi<strong>do</strong>r. Este endereço, por exemplo, é<br />

mostra<strong>do</strong> nas páginas de erro criadas pelo Apache.<br />

ErrorLog<br />

Arquivo de registro de erros deste host virtual. Embora não seja necessário, costumase<br />

criar arquivos de registro de erros separa<strong>do</strong>s para cada host virtual, visto que<br />

facilita bastante a depuração de erros. /var/log/apache2/ é o diretório padrão<br />

no qual devem ser manti<strong>do</strong>s os arquivos de registro <strong>do</strong> Apache.<br />

CustomLog<br />

Arquivo de registro de acessos deste host virtual. Embora não seja necessário,<br />

costuma-se criar arquivos de registro de acessos separa<strong>do</strong>s para cada host virtual,<br />

visto que permite a análise das estatísticas de acesso de cada host individualmente.<br />

/var/log/apache2/ é o diretório padrão no qual devem ser manti<strong>do</strong>s os<br />

arquivos de registro <strong>do</strong> Apache.<br />

Conforme menciona<strong>do</strong> acima, devi<strong>do</strong> a motivos de segurança, é proibi<strong>do</strong> o acesso ao<br />

sistema de arquivos inteiro por padrão. Portanto, desbloqueie explicitamente o diretório<br />

DocumentRoot no qual você colocou os arquivos a serem atendi<strong>do</strong>s pelo Apache:<br />

Order allow,deny Allow from all<br />

<br />

O arquivo de configuração completo tem a seguinte aparência:


Exemplo 26.4 Configuração básica de VirtualHost<br />

<br />

ServerName www.exemplo.com<br />

DocumentRoot /srv/www/exemplo.com_ht<strong>do</strong>cs<br />

ServerAdmin webmaster@exemplo.com<br />

ErrorLog /var/log/apache2/www.exemplo.com_log<br />

CustomLog /var/log/apache2/www.exemplo.com-access_log common<br />

<br />

Order allow,deny<br />

Allow from all<br />

<br />

<br />

26.2.2 Configuran<strong>do</strong> o Apache com o YaST<br />

Para configurar o servi<strong>do</strong>r Web com o YaST, inicie o YaST e selecione Serviços de<br />

Rede → Servi<strong>do</strong>r HTTP. Quan<strong>do</strong> o módulo é inicia<strong>do</strong> pela primeira vez, o Assistente<br />

de Servi<strong>do</strong>r HTTP é inicia<strong>do</strong>, solicitan<strong>do</strong> que você tome algumas decisões básicas<br />

em relação à administração <strong>do</strong> servi<strong>do</strong>r. Após concluir o assistente, a caixa de diálogo<br />

em “Configuração de Servi<strong>do</strong>r HTTP” (p 478) é iniciada toda vez que você chama o<br />

módulo Servi<strong>do</strong>r HTTP.<br />

Assistente de Servi<strong>do</strong>r HTTP<br />

O Assistente de Servi<strong>do</strong>r HTTP consiste em cinco etapas. Na última etapa da caixa de<br />

diálogo, você tem a oportunidade de entrar no mo<strong>do</strong> de configuração de especialista<br />

para realizar configurações ainda mais específicas.<br />

Seleção de Dispositivo de Rede<br />

Especifique aqui as interfaces e portas de rede usadas pelo Apache para escutar as<br />

solicitações recebidas. Você pode selecionar qualquer combinação de interfaces de rede<br />

existentes e seus respectivos endereços IP. As portas de todas as três faixas (portas<br />

conhecidas, portas registradas e portas dinâmicas ou privadas) que não forem reservadas<br />

por outros serviços poderão ser usadas. A configuração padrão é escutar em todas as<br />

interfaces de rede (endereços IP) pela porta 80.<br />

Marque Abrir Firewall nas Portas Selecionadas para abrir as portas no firewall em que<br />

o servi<strong>do</strong>r Web escuta. É necessário disponibilizar um servi<strong>do</strong>r Web na rede, que pode<br />

Servi<strong>do</strong>r HTTP Apache 473


ser uma LAN, uma WAN ou a Internet. Manter a porta fechada é útil somente nas<br />

situações de teste em que não é necessário nenhum acesso externo ao servi<strong>do</strong>r Web.<br />

Clique em Próximo para continuar a configuração.<br />

Módulos<br />

474 Referência<br />

A opção de configuração Módulos propicia a ativação ou desativação das linguagens<br />

de script para as quais o servi<strong>do</strong>r Web deverá ter suporte. Para obter informações sobre<br />

a ativação ou desativação de outros módulos, consulte “Módulos <strong>do</strong> Servi<strong>do</strong>r” (p 479).<br />

Clique em Próximo para avançar para a caixa de diálogo seguinte.<br />

Host Padrão<br />

Esta opção pertence ao servi<strong>do</strong>r Web padrão. Como explica<strong>do</strong> na “Configuração <strong>do</strong><br />

host virtual” (p 469), o Apache pode atender a vários hosts virtuais a partir de uma única<br />

máquina física. O primeiro host virtual declara<strong>do</strong> no arquivo de configuração é<br />

normalmente conheci<strong>do</strong> como host padrão. Cada host virtual herda a configuração <strong>do</strong><br />

host padrão.<br />

Para editar as configurações <strong>do</strong> host (também chamadas de diretivas), escolha a entrada<br />

adequada na tabela e clique em Editar. Para adicionar novas diretivas, clique em<br />

Adicionar. Para apagar uma diretiva, selecione-a e clique em Excluir.


Figura 26.1 Assistente de Servi<strong>do</strong>r HTTP: Host Padrão<br />

Esta é a lista das configurações padrão <strong>do</strong> servi<strong>do</strong>r:<br />

Raiz de Documento<br />

Caminho para o diretório <strong>do</strong> qual o Apache atende a arquivos deste host. /srv/<br />

www/ht<strong>do</strong>cs é o local padrão.<br />

Alias<br />

Com a ajuda das diretivas Alias, os URLs podem ser mapea<strong>do</strong>s para localizações<br />

físicas <strong>do</strong> sistema de arquivos. Isso significa que determina<strong>do</strong> caminho mesmo fora<br />

da Raiz de Documento no sistema de arquivos pode ser acessa<strong>do</strong> por meio<br />

de um URL que serve de álias para esse caminho.<br />

O diretório padrão Alias /icons <strong>do</strong> <strong>SUSE</strong> Linux aponta para /usr/share/<br />

apache2/icons para os ícones <strong>do</strong> Apache exibi<strong>do</strong>s na tela de índice de diretório.<br />

ScriptAlias<br />

Semelhante à diretiva Alias, a diretiva ScriptAlias mapeia um URL para a<br />

localização <strong>do</strong> sistema de arquivos. A diferença é que ScriptAlias designa o<br />

Servi<strong>do</strong>r HTTP Apache 475


476 Referência<br />

diretório de destino como localização CGI, significan<strong>do</strong> que os scripts CGI devem<br />

ser executa<strong>do</strong>s nessa localização.<br />

Diretório<br />

Com a configuração Diretório, você pode incluir um grupo de opções de<br />

configuração que se aplicarão somente ao diretório especifica<strong>do</strong>.<br />

As opções de acesso e exibição <strong>do</strong>s diretórios /usr/share/apache2/icons<br />

e /srv/www/cgi-bin são configuradas aqui. Não deverá ser necessário mudar<br />

os padrões.<br />

Inclusão<br />

Com a inclusão é possível especificar arquivos de configuração adicionais. /etc/<br />

apache2/conf.d/ é o diretório que contém os arquivos de configuração que<br />

acompanham os módulos externos. Por padrão, estão incluí<strong>do</strong>s to<strong>do</strong>s os arquivos<br />

neste diretório (*.conf). /etc/apache2/conf.d/apache2-manual<br />

?conf é o diretório que contém to<strong>do</strong>s os arquivos de configuração<br />

apache2-manual.<br />

Nome <strong>do</strong> Servi<strong>do</strong>r<br />

Especifica o URL padrão usa<strong>do</strong> por clientes para contatar o servi<strong>do</strong>r Web. Use um<br />

nome completo de <strong>do</strong>mínio (FQDN) para acessar o servi<strong>do</strong>r Web em<br />

http://FQDN/ ou em seu endereço IP. Não é possível escolher um nome<br />

arbitrário aqui; o servi<strong>do</strong>r deverá ser “conheci<strong>do</strong>” por este nome.<br />

E-Mail <strong>do</strong> Administra<strong>do</strong>r <strong>do</strong> Servi<strong>do</strong>r<br />

Endereço de e-mail <strong>do</strong> administra<strong>do</strong>r de servi<strong>do</strong>r. Este endereço, por exemplo, é<br />

mostra<strong>do</strong> nas páginas de erro criadas pelo Apache.<br />

Resolução <strong>do</strong> Servi<strong>do</strong>r<br />

Esta opção refere-se à “Configuração <strong>do</strong> host virtual” (p 469). Determinar Servi<strong>do</strong>r<br />

que Solicita por Cabeçalhos HTTP permite uma resposta <strong>do</strong> VirtualHost para<br />

uma solicitação a seu nome de servi<strong>do</strong>r (consulte “Hosts virtuais identifica<strong>do</strong>s por<br />

nome” (p 470)). Determinar Servi<strong>do</strong>r que Solicita por Endereço IP faz com que o<br />

Apache selecione o host solicita<strong>do</strong>, de acor<strong>do</strong> com as informações de cabeçalho<br />

HTTP enviadas pelo cliente. Consulte “Hosts virtuais identifica<strong>do</strong>s por IP” (p 471)<br />

para obter mais detalhes sobre hosts virtuais identifica<strong>do</strong>s por IP.<br />

Após concluir a etapa <strong>do</strong> Host Padrão, clique em Próximo para continuar a configuração.


Hosts Virtuais<br />

Nesta etapa, o assistente exibe uma lista <strong>do</strong>s hosts virtuais já configura<strong>do</strong>s (consulte<br />

“Configuração <strong>do</strong> host virtual” (p 469)). Se você não tiver feito mudanças manualmente<br />

antes de iniciar o assistente de HTTP <strong>do</strong> YaST, somente um host virtual estará presente<br />

(idêntico ao host padrão configura<strong>do</strong> na etapa anterior). Ele está marca<strong>do</strong> como padrão<br />

(com um asterisco ao la<strong>do</strong> <strong>do</strong> nome <strong>do</strong> servi<strong>do</strong>r).<br />

Para adicionar um host, clique em Adicionar para abrir uma caixa de diálogo na qual<br />

inserir informações básicas sobre o host. Identificação de Servi<strong>do</strong>r contém o nome <strong>do</strong><br />

servi<strong>do</strong>r, a raiz <strong>do</strong> conteú<strong>do</strong> <strong>do</strong> servi<strong>do</strong>r (DocumentRoot) e o e-mail <strong>do</strong> administra<strong>do</strong>r.<br />

Resolução <strong>do</strong> Servi<strong>do</strong>r é usa<strong>do</strong> para determinar como um host é identifica<strong>do</strong> (por nome<br />

ou por IP). Essas opções são explicadas em “Host Padrão” (p 474).<br />

Clique em Próximo para avançar para a segunda parte da caixa de diálogo de<br />

configuração <strong>do</strong> host virtual.<br />

Na parte 2 da configuração <strong>do</strong> host virtual especifique se os scripts CGI serão habilita<strong>do</strong>s<br />

e os diretórios a serem usa<strong>do</strong>s para eles. Também é possível habilitar SSL. Para isso,<br />

é necessário especificar também o caminho para o certifica<strong>do</strong>. Consulte a Seção 26.6.2,<br />

“Configuran<strong>do</strong> o Apache com SSL” (p 498) para obter detalhes sobre SSL e certifica<strong>do</strong>s.<br />

Com a opção Índice de Diretório, você pode especificar o arquivo a exibir quan<strong>do</strong> o<br />

cliente solicita um diretório (por padrão, index.html). Adicione um ou mais nomes de<br />

arquivos (separa<strong>do</strong>s por espaços) se desejar mudar essa definição. Com a opção Habilitar<br />

HTML Público, o conteú<strong>do</strong> <strong>do</strong>s diretórios públicos <strong>do</strong>s usuários (~user/public<br />

_html/) é disponibiliza<strong>do</strong> no servi<strong>do</strong>r em http://www.example.com/~user.<br />

IMPORTANTE: Crian<strong>do</strong> hosts virtuais<br />

Não é possível adicionar hosts virtuais à vontade. Quan<strong>do</strong> se usa hosts virtuais<br />

identifica<strong>do</strong>s por nome, cada nome de host deverá ser resolvi<strong>do</strong> na rede. No<br />

caso de hosts virtuais identifica<strong>do</strong>s por IP, você só pode designar um host para<br />

cada endereço IP disponível.<br />

Resumo<br />

Esta é a etapa final <strong>do</strong> assistente. Determine como e quan<strong>do</strong> o servi<strong>do</strong>r Apache deve<br />

ser inicia<strong>do</strong>: durante a inicialização ou manualmente. Consulte também um breve resumo<br />

sobre a configuração feita até o momento. Se você estiver satisfeito com as<br />

configurações, clique em Concluir para concluir a configuração. Para mudar algo, clique<br />

Servi<strong>do</strong>r HTTP Apache 477


478 Referência<br />

em Anterior até chegar à caixa de diálogo desejada. Clique em Configuração Especialista<br />

de Servi<strong>do</strong>r HTTP para abrir a caixa de diálogo descrita em “Configuração de Servi<strong>do</strong>r<br />

HTTP” (p 478).<br />

Figura 26.2 Assistente de Servi<strong>do</strong>r HTTP: Resumo<br />

Configuração de Servi<strong>do</strong>r HTTP<br />

A caixa de diálogo Configuração de Servi<strong>do</strong>r HTTP permite também fazer mais ajustes<br />

à configuração <strong>do</strong> que o assistente (executa<strong>do</strong> somente quan<strong>do</strong> você configura o servi<strong>do</strong>r<br />

Web pela primeira vez). Ela consiste em quatro guias descritas a seguir. Nenhuma<br />

opção de configuração mudada será efetivada imediatamente — você sempre precisará<br />

confirmar as mudanças com Concluir para torná-las efetivas. Ao clicar em Cancelar,<br />

você sai <strong>do</strong> módulo de configuração e descarta suas mudanças.<br />

Escutar Portas e Endereços<br />

Em Serviço HTTP, defina se o Apache deverá estar em execução (Habilita<strong>do</strong>) ou para<strong>do</strong><br />

(Desabilita<strong>do</strong>). Em Escutar nas Portas, Adicione, Edite, ou Apague endereços e portas<br />

nos quais o servi<strong>do</strong>r deverá estar disponível. O padrão é escutar em todas as interfaces


pela porta 80. Sempre marque a opção Abrir Firewall nas Portas Selecionadas, senão<br />

o servi<strong>do</strong>r Web não poderá ser alcança<strong>do</strong> <strong>do</strong> exterior. Manter a porta fechada é útil<br />

somente nas situações de teste em que não é necessário nenhum acesso externo ao<br />

servi<strong>do</strong>r Web.<br />

Com Arquivos de Registro, observe o registro de acesso ou o registro de erros. Isso é<br />

útil para testar a configuração. O arquivo de registro abre uma janela separada, na qual<br />

você também pode reiniciar ou recarregar o servi<strong>do</strong>r Web (consulte a Seção 26.3,<br />

“Inician<strong>do</strong> e paran<strong>do</strong> o Apache” (p 480) para obter detalhes). Esses coman<strong>do</strong>s são<br />

efetiva<strong>do</strong>s imediatamente.<br />

Figura 26.3 Configuração de Servi<strong>do</strong>r HTTP: Escutar Portas e Endereços<br />

Módulos <strong>do</strong> Servi<strong>do</strong>r<br />

Você pode mudar o status (habilita<strong>do</strong> ou desabilita<strong>do</strong>) <strong>do</strong>s módulos <strong>do</strong> Apache2 clican<strong>do</strong><br />

em Toggle Status. Clique em Adicionar Módulo para adicionar um novo módulo que<br />

já esteja instala<strong>do</strong> mas não relaciona<strong>do</strong>. Saiba mais sobre módulos na Seção 26.4,<br />

“Instalan<strong>do</strong>, ativan<strong>do</strong> e configuran<strong>do</strong> módulos” (p 482).<br />

Servi<strong>do</strong>r HTTP Apache 479


480 Referência<br />

Figura 26.4 Configuração de Servi<strong>do</strong>r HTTP: Módulos <strong>do</strong> Servi<strong>do</strong>r<br />

Host Padrão ou Hosts<br />

Essas caixas de diálogo são idênticas às que já foram descritas. Consulte “Host Padrão”<br />

(p 474) e “Hosts Virtuais” (p 477).<br />

26.3 Inician<strong>do</strong> e paran<strong>do</strong> o Apache<br />

Se tiver si<strong>do</strong> configura<strong>do</strong> com o YaST (consulte a Seção 26.2.2, “Configuran<strong>do</strong> o<br />

Apache com o YaST” (p 473)), o Apache será inicia<strong>do</strong> durante o tempo de inicialização<br />

nos níveis de execução 3 e 5 e para<strong>do</strong> nos níveis de execução 0, 1, 2 e 6. Você poderá<br />

mudar esse comportamento usan<strong>do</strong> o editor de nível de execução <strong>do</strong> YaST ou a<br />

ferramenta de linha de coman<strong>do</strong> chkconfig.<br />

Para iniciar, parar ou manipular o Apache em um sistema em execução, use o script<br />

init /usr/sbin/rcapache2 (consulte a Seção 8.2.2, “Scripts Init” (p 192) para<br />

obter informações gerais sobre os scripts init). O coman<strong>do</strong> rcapache2 usa os seguintes<br />

parâmetros:


start<br />

Inicia o Apache caso ainda não esteja em execução.<br />

startssl<br />

Inicia o Apache com suporte SSL caso ainda não esteja em execução. Para obter<br />

mais informações sobre o suporte SSL, consulte a Seção 26.6, “Configuran<strong>do</strong> um<br />

servi<strong>do</strong>r Web seguro com SSL” (p 493).<br />

restart<br />

Pára e reinicia o Apache. Inicia o servi<strong>do</strong>r Web caso ele não estivesse em execução<br />

antes.<br />

try-restart<br />

Pára e reinicia o Apache somente se estivesse em execução antes.<br />

reload or graceful<br />

Pára o servi<strong>do</strong>r Web instruin<strong>do</strong> to<strong>do</strong>s os processos bifurca<strong>do</strong>s <strong>do</strong> Apache para<br />

concluir suas solicitações antes de encerrar. Com o término de cada processo, ele<br />

é substituí<strong>do</strong> por um processo recém-inicia<strong>do</strong>, o que resulta no “reinício” completo<br />

<strong>do</strong> Apache.<br />

DICA<br />

rcapache2 reload é o méto<strong>do</strong> preferencial para reiniciar o Apache em<br />

ambientes de produção (por exemplo, para ativar uma mudança na<br />

configuração), pois permite que to<strong>do</strong>s os clientes sejam atendi<strong>do</strong>s sem<br />

provocar interrupções na conexão.<br />

configtest<br />

Verifica a sintaxe <strong>do</strong>s arquivos de configuração sem afetar um servi<strong>do</strong>r Web em<br />

execução. Como essa verificação é forçada toda vez que o servi<strong>do</strong>r é inicia<strong>do</strong>,<br />

recarrega<strong>do</strong> ou reinicia<strong>do</strong>, normalmente não é necessário executar o teste<br />

explicitamente (se houver um erro de configuração, o servi<strong>do</strong>r Web não será<br />

inicia<strong>do</strong>, recarrega<strong>do</strong> nem reinicia<strong>do</strong>).<br />

probe<br />

Examina a necessidade de um recarregamento (verifica se a configuração mu<strong>do</strong>u)<br />

e sugere os argumentos necessários para o coman<strong>do</strong> rcapache2.<br />

Servi<strong>do</strong>r HTTP Apache 481


482 Referência<br />

server-status e full-server-status<br />

Descarta uma tela de status breve ou completa, respectivamente. Requer lynx ou<br />

w3m instala<strong>do</strong> e o módulo mod_status habilita<strong>do</strong>. Além disso, adicione status<br />

a APACHE_SERVER_FLAGS no arquivo /etc/sysconfig/apache2.<br />

DICA: Flags adicionais<br />

Se você especificar flags adicionais a rcapache2, eles serão transferi<strong>do</strong>s<br />

diretamente para o servi<strong>do</strong>r Web.<br />

26.4 Instalan<strong>do</strong>, ativan<strong>do</strong> e<br />

configuran<strong>do</strong> módulos<br />

O s<strong>of</strong>tware <strong>do</strong> Apache é cria<strong>do</strong> de maneira modular: toda a funcionalidade, exceto<br />

algumas tarefas centrais, são manipuladas por módulos. Isso progrediu tanto que até o<br />

HTTP é processa<strong>do</strong> por um módulo (http_core).<br />

Os módulos <strong>do</strong> Apache podem ser incorpora<strong>do</strong>s ao binário <strong>do</strong> Apache durante a<br />

compilação ou carrega<strong>do</strong>s dinamicamente durante a execução. Consulte a Seção 26.4.2,<br />

“Ativação e desativação” (p 483) para obter detalhes sobre como carregar os módulos<br />

de maneira dinâmica.<br />

Os módulos <strong>do</strong> Apache podem ser dividi<strong>do</strong>s em quatro categorias diferentes:<br />

Módulos de base<br />

Os módulos de base são compila<strong>do</strong>s no Apache por padrão. O Apache <strong>do</strong> <strong>SUSE</strong><br />

Linux possui somente a compilação de mod_so (necessário para carregar outros<br />

módulos) e http_core. To<strong>do</strong>s os outros estão disponíveis como objetos<br />

compartilha<strong>do</strong>s: em vez de serem incluí<strong>do</strong>s no binário <strong>do</strong> servi<strong>do</strong>r, eles podem ser<br />

incluí<strong>do</strong>s durante a execução.<br />

Módulos de extensão<br />

Em geral, os módulos chama<strong>do</strong>s de extensões vêm no pacote de s<strong>of</strong>tware <strong>do</strong> Apache,<br />

mas normalmente não são compila<strong>do</strong>s estaticamente no servi<strong>do</strong>r. No <strong>SUSE</strong> Linux,<br />

esses módulos estão disponíveis como objetos compartilha<strong>do</strong>s que podem ser<br />

carrega<strong>do</strong>s no Apache durante a execução.


Módulos externos<br />

Os módulos rotula<strong>do</strong>s como externos não estão incluí<strong>do</strong>s na distribuição <strong>of</strong>icial <strong>do</strong><br />

Apache. O <strong>SUSE</strong> Linux <strong>of</strong>erece vários deles já disponíveis para uso.<br />

Módulos de multiprocessamento<br />

Os MPMs são responsáveis pela aceitação e manipulação de solicitações ao servi<strong>do</strong>r<br />

Web, representan<strong>do</strong> o centro <strong>do</strong> s<strong>of</strong>tware <strong>do</strong> servi<strong>do</strong>r Web.<br />

26.4.1 Instalação <strong>do</strong>s módulos<br />

Se você seguiu a maneira padrão de instalar o Apache (descrita na Seção 26.1.2,<br />

“Instalação” (p 464)), ele será instala<strong>do</strong> com to<strong>do</strong>s os módulos de base e de extensão,<br />

o módulo de multiprocessamento Prefork MPM e o módulo externo PHP5.<br />

Você pode instalar módulos externos adicionais inician<strong>do</strong> o YaST e escolhen<strong>do</strong> S<strong>of</strong>tware<br />

→ Gerenciamento de S<strong>of</strong>tware. Agora escolha Filtro → Pesquisa e procure apache.<br />

Entre outros pacotes, a lista resultante contém to<strong>do</strong>s os módulos externos disponíveis<br />

<strong>do</strong> Apache.<br />

26.4.2 Ativação e desativação<br />

Ao usar o YaST, você pode ativar ou desativar os módulos da linguagem de script<br />

(PHP5, Perl, Python e Ruby) com a configuração de módulo descrita em “Assistente<br />

de Servi<strong>do</strong>r HTTP” (p 473). To<strong>do</strong>s os outros módulos podem ser habilita<strong>do</strong>s ou<br />

desabilita<strong>do</strong>s conforme descrição em “Módulos <strong>do</strong> Servi<strong>do</strong>r” (p 479).<br />

Se preferir ativar ou desativar os módulos manualmente, use os coman<strong>do</strong>s a2enmod<br />

mod_foo ou a2dismod mod_foo respectivamente. a2enmod -l gera uma lista<br />

de to<strong>do</strong>s os módulos ativos no momento.<br />

IMPORTANTE: Incluin<strong>do</strong> arquivos de configuração para módulos externos<br />

Se você ativou os módulos externos manualmente, certifique-se de carregar<br />

seus arquivos de configuração em todas as configurações de host virtual. Os<br />

arquivos de configuração para módulos externos localizam-se em /etc/<br />

apache2/conf.d/ e não são carrega<strong>do</strong>s por padrão. Se você precisar <strong>do</strong>s<br />

mesmos módulos em cada host virtual, poderá incluir *.conf a partir desse<br />

Servi<strong>do</strong>r HTTP Apache 483


484 Referência<br />

diretório. Caso contrário, inclua os arquivos individuais. Consulte /etc/<br />

apache2/vhost.d/vhost.template para obter exemplos.<br />

26.4.3 Módulos de base e de extensão<br />

To<strong>do</strong>s os módulos de base e de extensão são descritos detalhadamente na <strong>do</strong>cumentação<br />

<strong>do</strong> Apache. Somente uma descrição breve <strong>do</strong>s módulos mais importantes está disponível<br />

aqui. Consulte http://httpd.apache.org/<strong>do</strong>cs/2.2/mod/ para saber<br />

detalhes sobre cada módulo.<br />

mod_alias<br />

Fornece as diretivas Alias e Redirect, com as quais é possível mapear um<br />

URl para um diretório específico (Alias) ou redirecionar um URL solicita<strong>do</strong> para<br />

outra localização. Esse módulo é habilita<strong>do</strong> por padrão.<br />

mod_auth*<br />

Os módulos de autenticação <strong>of</strong>erecem diferentes méto<strong>do</strong>s de autenticação:<br />

autenticação básica com mod_auth_basic ou autenticação sintetizada com<br />

mod_auth_digest. A autenticação sintetizada é considerada experimental no Apache<br />

2.2.<br />

mod_auth_basic e mod_auth_digest devem ser combina<strong>do</strong>s com um módulo<br />

prove<strong>do</strong>r de autenticação, mod_authn_* (por exemplo, mod_authn_file para<br />

autenticação baseada em arquivo de texto) e com um módulo de autorização<br />

mod_authz_* (por exemplo, mod_authz_user para autorização de usuário).<br />

Mais informações sobre este tópico estão disponíveis nas instruções “Como fazer<br />

autenticação” em http://httpd.apache.org/<strong>do</strong>cs/2.2/howto/auth<br />

.html<br />

mod_autoindex<br />

Autoindex gera listagens de diretório quan<strong>do</strong> não há nenhum arquivo de índice<br />

(por exemplo, index.html). A aparência desses índices é configurável. Esse<br />

módulo é habilita<strong>do</strong> por padrão. No entanto, as listagens de diretório são<br />

desabilitadas por padrão por meio da diretiva Options — sobregrave essa<br />

definição na configuração <strong>do</strong> seu host virtual. O arquivo de configuração padrão<br />

desse módulo está localiza<strong>do</strong> em /etc/apache2/mod<br />

_autoindex-defaults.conf.


mod_cgi<br />

mod_cgi é necessário para executar scripts CGI. Esse módulo é habilita<strong>do</strong> por<br />

padrão.<br />

mod_deflate<br />

Quan<strong>do</strong> se usa esse módulo, o Apache pode ser configura<strong>do</strong> para compactar<br />

dinamicamente determina<strong>do</strong>s tipos de arquivos antes de entregá-los.<br />

mod_dir<br />

mod_dir fornece a diretiva Directory<strong>Index</strong>, com a qual você pode configurar<br />

os arquivos que serão entregues automaticamente quan<strong>do</strong> for solicita<strong>do</strong> um diretório<br />

(index.html por padrão). Ele também faz o redirecionamento automático para<br />

o URl correto quan<strong>do</strong> uma solicitação de diretório não contém uma barra no fim.<br />

Esse módulo é habilita<strong>do</strong> por padrão.<br />

mod_expires<br />

Com mod_expires, você pode controlar a freqüência com que os caches de proxy<br />

e browser atualizam seus <strong>do</strong>cumentos envian<strong>do</strong> um cabeçalho Expires. Esse<br />

módulo é habilita<strong>do</strong> por padrão.<br />

mod_include<br />

mod_include permite usar SSI (Server Side Includes), que fornece uma<br />

funcionalidade básica para gerar páginas HTML de forma dinâmica. Esse módulo<br />

é habilita<strong>do</strong> por padrão.<br />

mod_info<br />

Fornece uma visão geral abrangente da configuração <strong>do</strong> servi<strong>do</strong>r em<br />

http://localhost/server-info/. Por motivos de segurança, você deve sempre limitar<br />

o acesso a esse URL. Por padrão, somente localhost possui permissão para<br />

acessar esse URL. mod_info está configura<strong>do</strong> em /etc/apache2/mod_info<br />

.conf<br />

mod_log_config<br />

Com este módulo, é possível configurar a aparência <strong>do</strong>s arquivos de registro <strong>do</strong><br />

Apache. Esse módulo é habilita<strong>do</strong> por padrão.<br />

mod_mime<br />

O módulo mime assegura-se de que um arquivo seja entregue com o cabeçalho<br />

MIME correto de acor<strong>do</strong> com a extensão <strong>do</strong> nome <strong>do</strong> arquivo (por exemplo<br />

text/html para <strong>do</strong>cumentos HTML). Esse módulo é habilita<strong>do</strong> por padrão.<br />

Servi<strong>do</strong>r HTTP Apache 485


486 Referência<br />

mod_negotiation<br />

Necessário para negociação de conteú<strong>do</strong>. Consulte<br />

http://httpd.apache.org/<strong>do</strong>cs/2.2/content-negotiation.html<br />

para obter mais informações. Esse módulo é habilita<strong>do</strong> por padrão.<br />

mod_rewrite<br />

Fornece a funcionalidade <strong>do</strong> mod_alias, porém, <strong>of</strong>erece mais recursos e flexibilidade.<br />

Com mod_rewrite, você pode redirecionar URLs de acor<strong>do</strong> com regras múltiplas,<br />

cabeçalhos de solicitação e outros.<br />

mod_speling<br />

mod_speling tenta corrigir automaticamente erros tipográficos em URLs, como<br />

erros de maiúscula/minúscula.<br />

mod_ssl<br />

Habilita as conexões criptografadas entre o servi<strong>do</strong>r Web e os clientes. Consulte a<br />

Seção 26.6, “Configuran<strong>do</strong> um servi<strong>do</strong>r Web seguro com SSL” (p 493) para obter<br />

detalhes. Esse módulo é habilita<strong>do</strong> por padrão.<br />

mod_status<br />

Fornece informações sobre a atividade e o desempenho <strong>do</strong> servi<strong>do</strong>r em<br />

http://localhost/server-status/. Por motivos de segurança, você deve sempre limitar<br />

o acesso a esse URL. Por padrão, somente localhost possui permissão para<br />

acessar esse URI. mod_status está configura<strong>do</strong> em /etc/apache2/mod<br />

_status.conf<br />

mod_suexec<br />

mod_suexec permite executar scripts CGI para outro usuário e grupo. Esse módulo<br />

é habilita<strong>do</strong> por padrão.<br />

mod_userdir<br />

Habilita diretórios específicos de usuário disponíveis em ~user/. A diretiva<br />

UserDir deve ser especificada na configuração. Esse módulo é habilita<strong>do</strong> por<br />

padrão.<br />

26.4.4 Módulos de multiprocessamento<br />

O <strong>SUSE</strong> Linux <strong>of</strong>erece <strong>do</strong>is módulos de multiprocessamento (MPMs) diferentes para<br />

uso com o Apache.


MPM prefork<br />

O MPM prefork implementa um servi<strong>do</strong>r Web de pré-bifurcação sem threads. Ele faz<br />

o servi<strong>do</strong>r Web comportar-se de maneira semelhante ao Apache versão 1.x, no senti<strong>do</strong><br />

de isolar as solicitações e as manipular através da bifurcação de um processo filho<br />

separa<strong>do</strong>. Dessa forma, solicitações problemáticas não podem afetar outras, evitan<strong>do</strong><br />

um bloqueio <strong>do</strong> servi<strong>do</strong>r Web.<br />

Embora o MPM prefork <strong>of</strong>ereça estabilidade com este méto<strong>do</strong> processual, ele consome<br />

mais recursos <strong>do</strong> sistema <strong>do</strong> que o seu equivalente, o MPM worker. O MPM prefork é<br />

considera<strong>do</strong> o MPM padrão para sistemas operacionais basea<strong>do</strong>s em Unix.<br />

IMPORTANTE: MPMs neste <strong>do</strong>cumento<br />

Este <strong>do</strong>cumento pressupõe que o Apache é usa<strong>do</strong> com o MPM prefork.<br />

MPM worker<br />

O MPM worker <strong>of</strong>erece um servi<strong>do</strong>r Web de vários threads. Thread é a forma “mais<br />

simples” de um processo. A vantagem de um thread em relação a um processo é o<br />

menor consumo de recursos. Em vez de somente bifurcar processos filhos, o MPM<br />

worker atende solicitações usan<strong>do</strong> threads com processos <strong>do</strong> servi<strong>do</strong>r. Os processos<br />

filhos pré-bifurca<strong>do</strong>s possuem vários threads. Esse méto<strong>do</strong> melhora o desempenho <strong>do</strong><br />

Apache por consumir menos recursos <strong>do</strong> sistema <strong>do</strong> que o MPM prefork.<br />

Uma grande desvantagem é a estabilidade <strong>do</strong> MPM worker: se um thread for corrompi<strong>do</strong>,<br />

to<strong>do</strong>s os threads de um processo podem ser afeta<strong>do</strong>s. No pior <strong>do</strong>s casos, isso poderá<br />

resultar em falha <strong>do</strong> servi<strong>do</strong>r. Talvez ocorram erros internos <strong>do</strong> servi<strong>do</strong>r devi<strong>do</strong> a threads<br />

que não podem se comunicar com recursos <strong>do</strong> sistema, sobretu<strong>do</strong> ao usar CGI (Common<br />

Gateway Interface) com o Apache em situação de sobrecarga. Outro argumento contra<br />

o uso <strong>do</strong> MPM worker com o Apache é que nem to<strong>do</strong>s os módulos disponíveis <strong>do</strong><br />

Apache são seguros para o thread e, portanto, não podem ser usa<strong>do</strong>s em conjunto com<br />

o MPM worker.<br />

ATENÇÃO: Usan<strong>do</strong> módulos PHP com MPMs<br />

Nem to<strong>do</strong>s os módulos PHP disponíveis são seguros para o thread. O uso <strong>do</strong><br />

MPM worker com mod_php é bastante desaconselhável.<br />

Servi<strong>do</strong>r HTTP Apache 487


488 Referência<br />

26.4.5 Módulos externos<br />

Veja aqui uma lista de to<strong>do</strong>s os módulos externos forneci<strong>do</strong>s com o <strong>SUSE</strong> Linux. Veja<br />

a <strong>do</strong>cumentação <strong>do</strong> módulo no diretório indica<strong>do</strong>.<br />

FastCGI<br />

FastCGI é uma extensão ao CGI independente de linguagem, escalável e aberta<br />

que <strong>of</strong>erece alto desempenho sem as limitações de APIs específicas de servi<strong>do</strong>r.<br />

Os aplicativos FastCGI são muito rápi<strong>do</strong>s por serem persistentes. Não há overhead<br />

de inicialização por solicitação.<br />

Nome <strong>do</strong> pacote: apache2-mod_fastcgi<br />

Arquivo de configuração: /etc/apache2/conf.d/mod_fastcgi.conf<br />

Mais informações: /usr/share/<strong>do</strong>c/packages/apache2-mod_fastcgi<br />

mod_perl<br />

mod_perl o habilita a executar scripts Perl em um interpreta<strong>do</strong>r embuti<strong>do</strong>. O<br />

interpreta<strong>do</strong>r persistente embuti<strong>do</strong> no servi<strong>do</strong>r evita o overhead de iniciar um<br />

interpreta<strong>do</strong>r externo e a desvantagem <strong>do</strong> tempo de inicialização <strong>do</strong> Perl.<br />

Nome <strong>do</strong> pacote: apache2-mod_perl<br />

Arquivo de configuração: /etc/apache2/conf.d/mod_perl.conf<br />

Mais informações: /usr/share/<strong>do</strong>c/packages/apache2-mod_perl<br />

mod_php5<br />

PHP é uma linguagem de script embutida em HTML para várias plataformas no<br />

servi<strong>do</strong>r.<br />

Nome <strong>do</strong> pacote: apache2-mod_php5<br />

Arquivo de configuração: /etc/apache2/conf.d/php5.conf<br />

Mais informações: /usr/share/<strong>do</strong>c/packages/apache2-mod_php5<br />

mod_python<br />

mod_python permite embutir o Python no servi<strong>do</strong>r HTTP Apache visan<strong>do</strong> um<br />

impulso considerável no desempenho e maior flexibilidade ao desenvolver<br />

aplicativos basea<strong>do</strong>s na Web.<br />

Nome <strong>do</strong> pacote: apache2-mod_python<br />

Mais informações: /usr/share/<strong>do</strong>c/packages/apache2-mod_python


mod_ruby<br />

O mod_ruby embute o interpreta<strong>do</strong>r Ruby no servi<strong>do</strong>r Web Apache, permitin<strong>do</strong><br />

que os scripts CGI <strong>do</strong> Ruby sejam executa<strong>do</strong>s de forma nativa. Eles são inicia<strong>do</strong>s<br />

muito mais rapidamente <strong>do</strong> que sem mod_ruby.<br />

Nome <strong>do</strong> pacote: apache2-mod_ruby<br />

Mais informações: /usr/share/<strong>do</strong>c/packages/apache2-mod_ruby<br />

mod_jk-ap20<br />

Esse módulo fornece conectores entre o Apache e um container <strong>do</strong> servlet Tomcat.<br />

Nome <strong>do</strong> pacote: mod_jk-ap20<br />

Mais informações: /usr/share/<strong>do</strong>c/packages/mod_jk-ap20<br />

26.4.6 Compilação<br />

O Apache pode ser estendi<strong>do</strong> por usuários avança<strong>do</strong>s através da gravação de módulos<br />

personaliza<strong>do</strong>s. Para desenvolver módulos para o Apache ou compilar módulos de<br />

terceiros, é necessário o pacote apache2-devel e as ferramentas de desenvolvimento<br />

correspondentes. O apache2-devel também contém as ferramentas apxs2, que<br />

são necessárias para a compilação de módulos adicionais para o Apache.<br />

O apxs2 permite a compilação e instalação de módulos <strong>do</strong> código-fonte (inclusive as<br />

mudanças necessárias nos arquivos de configuração), que cria objetos compartilha<strong>do</strong>s<br />

dinâmicos (DSOs) que podem ser carrega<strong>do</strong>s no Apache durante a execução.<br />

Os binários <strong>do</strong> apxs2 ficam localiza<strong>do</strong>s em /usr/sbin:<br />

• /usr/sbin/apxs2 — apropria<strong>do</strong> para a criação de um módulo de extensão que<br />

funciona com qualquer MPM. A instalação fica localizada em /usr/lib/<br />

apache2.<br />

• /usr/sbin/apxs2-prefork — apropria<strong>do</strong> para os módulos MPM prébifurcação.<br />

A instalação fica localizada em /usr/lib/apache2-prefork.<br />

• /usr/sbin/apxs2-worker — apropria<strong>do</strong> para os módulos MPM prébifurcação.<br />

O apxs2 instala os módulos de mo<strong>do</strong> que possam ser usa<strong>do</strong>s em to<strong>do</strong>s os MPMs. Os<br />

outros <strong>do</strong>is programas instalam os módulos para que possam ser usa<strong>do</strong>s somente nos<br />

Servi<strong>do</strong>r HTTP Apache 489


490 Referência<br />

respectivos MPMs. O apxs2 instala os módulos em /usr/lib/apache2, enquanto<br />

que o apxs2-prefork e o apxs2-worker instalam os módulos em /usr/lib/<br />

apache2-prefork ou /usr/lib/apache2-worker.<br />

Instale e ative um módulo a partir <strong>do</strong> código-fonte usan<strong>do</strong> os coman<strong>do</strong>s cd<br />

/path/to/module/source; apxs2 -cia mod_foo.c (-c compila, -i<br />

instala e -a ativa o módulo). Outras opções <strong>do</strong> apxs2 são descritas na página de<br />

manual apxs2(1).<br />

26.5 Obten<strong>do</strong> scripts CGI para<br />

trabalhar<br />

A CGI (Common Gateway Interface, interface de gateway comum) <strong>do</strong> Apache permite<br />

a criação de conteú<strong>do</strong> dinâmico usan<strong>do</strong> programas ou scripts geralmente chama<strong>do</strong>s de<br />

scripts CGI. Os scripts CGI podem ser escritos em qualquer linguagem de programação.<br />

Em geral, são usadas linguagens de script como Perl ou PHP.<br />

Para habilitar o Apache a fornecer conteú<strong>do</strong> cria<strong>do</strong> por scripts CGI, é necessário ativar<br />

mod_cgi. mod_alias também é necessário. Ambos são habilita<strong>do</strong>s por padrão. Consulte<br />

a Seção 26.4.2, “Ativação e desativação” (p 483) para obter detalhes sobre a ativação<br />

de módulos.<br />

ATENÇÃO: Segurança de CGI<br />

A permissão concedida ao servi<strong>do</strong>r para executar scripts CGI constitui uma<br />

potencial falha de segurança. Consulte a Seção 26.7, “Evitan<strong>do</strong> problemas de<br />

segurança” (p 499) para obter informações adicionais.<br />

26.5.1 Configuração <strong>do</strong> Apache<br />

No <strong>SUSE</strong> Linux, a execução de scripts CGI é permitida somente no diretório /srv/<br />

www/cgi-bin/. A localização já está configurada para executar scripts CGI. Se você<br />

criou uma configuração de host virtual (consulte “Configuração <strong>do</strong> host virtual” (p 469))<br />

e deseja colocar seus scripts em um diretório específico de host, deverá desbloquear e<br />

configurar esse diretório.


Exemplo 26.5 Configuração de CGI para VirtualHost<br />

ScriptAlias /cgi-bin/ "/srv/www/exemplo.com_cgi-bin/"❶<br />

<br />

Options +ExecCGI❷<br />

AddHandler cgi-script .cgi .pl❸<br />

Order allow,deny❹<br />

Allow from all<br />

<br />

❶ Instrui o Apache a tratar to<strong>do</strong>s os arquivos dentro desse diretório como scripts<br />

CGI.<br />

❷ Habilita a execução de scripts CGI.<br />

❸ Instrui o servi<strong>do</strong>r a tratar os arquivos com extensões .pl e .cgi como scripts CGI.<br />

Ajuste de acor<strong>do</strong> com as suas necessidades.<br />

❹ As diretivas Order e Allow controlam o esta<strong>do</strong> de acesso padrão e a ordem<br />

em que as diretivas Allow e Deny são avaliadas. Neste caso, as declarações “deny”<br />

são avaliadas antes das declarações “allow”, e o acesso de to<strong>do</strong>s os lugares é<br />

habilita<strong>do</strong>.<br />

26.5.2 Executan<strong>do</strong> um script de exemplo<br />

A programação CGI difere da programação "normal" no senti<strong>do</strong> de que os programas<br />

e scripts CGI precisam ser precedi<strong>do</strong>s por um cabeçalho de tipo MIME como<br />

Content-type: text/html. Esse cabeçalho é envia<strong>do</strong> ao cliente, para que ele<br />

identifique o tipo de conteú<strong>do</strong> que está receben<strong>do</strong>. Além disso, a saída <strong>do</strong> script deve<br />

ser compreensível pelo cliente, geralmente um browser da Web (HTML na maioria <strong>do</strong>s<br />

casos, texto simples ou imagens, por exemplo).<br />

Um script de teste simples, disponível em /usr/share/<strong>do</strong>c/packages/<br />

apache2/test-cgi, faz parte <strong>do</strong> pacote <strong>do</strong> Apache. Ele gera o conteú<strong>do</strong> de algumas<br />

variáveis de ambiente como texto simples. Copie-o para /srv/www/cgi-bin/ ou<br />

para o diretório de script <strong>do</strong> seu host virtual (/srv/www/exemplo.com_cgi-bin/) e nomeieo<br />

como teste.cgi.<br />

Os arquivos acessíveis pelo servi<strong>do</strong>r Web devem ser de propriedade <strong>do</strong> usuário Root<br />

(consulte a Seção 26.7, “Evitan<strong>do</strong> problemas de segurança” (p 499) para obter<br />

Servi<strong>do</strong>r HTTP Apache 491


492 Referência<br />

informações adicionais). Como os servi<strong>do</strong>res Web são executa<strong>do</strong>s com outro usuário,<br />

os scripts CGI devem ser passíveis de execução e leitura universais. Passe para o diretório<br />

CGI e use o coman<strong>do</strong> chmod 755 teste.cgi para aplicar as permissões<br />

apropriadas.<br />

Agora chame http://localhost/cgi-bin/teste.cgi ou<br />

http://exemplo.com/cgi-bin/teste.cgi. Você deverá ver o “relatório <strong>do</strong><br />

script de teste CGI/1.0”.<br />

26.5.3 Solução de problemas<br />

Se em vez de da saída <strong>do</strong> programa de teste for exibida uma mensagem de erro, verifique<br />

o seguinte:<br />

Solução de problemas de CGI<br />

• Você recarregou o servi<strong>do</strong>r após mudar a configuração? Verifique com rcapache2<br />

probe.<br />

• Se você configurou seu diretório CGI personaliza<strong>do</strong>, ele está configura<strong>do</strong><br />

corretamente? Em caso de dúvida, experimente o script dentro <strong>do</strong> diretório CGI<br />

padrão /srv/www/cgi-bin/ e chame-o com<br />

http://localhost/cgi-bin/teste.cgi.<br />

• As permissões de arquivo estão corretas? Passe para o diretório CGI e execute o<br />

coman<strong>do</strong> ls -l teste.cgi. A saída deverá começar com<br />

-rwxr-xr-x 1 root root<br />

• Verifique se o script não contém erros de programação. Se você não tiver muda<strong>do</strong><br />

o teste.cgi, talvez não seja essa a questão. Porém, se você estiver usan<strong>do</strong> seus<br />

próprios programas, sempre verifique se eles não contêm erros de programação.


26.6 Configuran<strong>do</strong> um servi<strong>do</strong>r Web<br />

seguro com SSL<br />

Sempre que há transferência de da<strong>do</strong>s confidenciais (como informações de cartão de<br />

crédito) entre o servi<strong>do</strong>r Web e o cliente, é desejável ter uma conexão criptografada<br />

segura com autenticação. O mod_ssl <strong>of</strong>erece uma criptografia forte usan<strong>do</strong> os protocolos<br />

SSL (Secure Sockets Layer) e TLS (Transport Layer Security) na comunicação HTTP<br />

entre um cliente e o servi<strong>do</strong>r Web. Com SSL/TSL, é estabelecida uma conexão privada<br />

entre o servi<strong>do</strong>r Web e o cliente. Com a integridade <strong>do</strong>s da<strong>do</strong>s garantida, cliente e<br />

servi<strong>do</strong>r são capazes de autenticar-se um ao outro.<br />

Para isso, o servi<strong>do</strong>r envia um certifica<strong>do</strong> SSL conten<strong>do</strong> informações que comprovam<br />

a validade da identidade <strong>do</strong> servi<strong>do</strong>r antes que solicitações a um URL sejam respondidas.<br />

Por sua vez, isso garante que o servi<strong>do</strong>r é o único ponto de terminação correto para essa<br />

comunicação. Além disso, o certifica<strong>do</strong> gera uma conexão criptografada entre o cliente<br />

e o servi<strong>do</strong>r capaz de transmitir informações sem o risco de exposição de conteú<strong>do</strong><br />

confidencial em texto simples.<br />

Em vez de implementar os protocolos SSL/TSL por conta própria, o mod_ssl atua como<br />

interface entre o Apache e uma biblioteca SSL. A biblioteca OpenSSL é usada no <strong>SUSE</strong><br />

Linux. Ela é instalada automaticamente com o Apache.<br />

O efeito mais visível <strong>do</strong> uso de mod_ssl com o Apache é que os URLs aparecem com<br />

o prefixo https:// em vez de http://.<br />

26.6.1 Crian<strong>do</strong> um certifica<strong>do</strong> SSL<br />

Para usar SSL/TSL com o servi<strong>do</strong>r Web, você deve criar um certifica<strong>do</strong> SSL. Esse<br />

certifica<strong>do</strong>, necessário para a autorização entre o servi<strong>do</strong>r Web e o cliente, possibilita<br />

a cada parte identificar claramente a outra. Para garantir a integridade <strong>do</strong> certifica<strong>do</strong>,<br />

ele deve ser assina<strong>do</strong> por uma entidade em que to<strong>do</strong>s os usuários confiem.<br />

Há três tipos de certifica<strong>do</strong>s que você pode criar: um certifica<strong>do</strong> “simula<strong>do</strong>” somente<br />

para teste, um certifica<strong>do</strong> auto-assina<strong>do</strong> para um círculo defini<strong>do</strong> de usuários que<br />

confiam em você e um certifica<strong>do</strong> assina<strong>do</strong> por uma autoridade de certificação (CA)<br />

notória e independente.<br />

Servi<strong>do</strong>r HTTP Apache 493


494 Referência<br />

A criação de um certifica<strong>do</strong> se resume em um processo de duas etapas. Primeiro é<br />

gerada uma chave privada para a autoridade de certificação, em seguida, o certifica<strong>do</strong><br />

<strong>do</strong> servi<strong>do</strong>r é assina<strong>do</strong> com essa chave.<br />

DICA: Mais informações<br />

Para saber mais sobre conceitos e definições sobre SSL/TSL, consulte<br />

http://httpd.apache.org/<strong>do</strong>cs/2.2/ssl/ssl_intro.html.<br />

Crian<strong>do</strong> um certifica<strong>do</strong> “simula<strong>do</strong>”<br />

Gerar um certifica<strong>do</strong> simula<strong>do</strong> é simples. Basta chamar o script<br />

/usr/bin/gensslcert. Ele cria ou sobregrava os seguintes arquivos:<br />

• /etc/apache2/ssl.crt/ca.crt<br />

• /etc/apache2/ssl.crt/server.crt<br />

• /etc/apache2/ssl.key/server.key<br />

• /etc/apache2/ssl.csr/server.csr<br />

Uma cópia de ca.crt também é colocada em /srv/www/ht<strong>do</strong>cs/CA.crt para<br />

<strong>do</strong>wnload.<br />

IMPORTANTE<br />

Um certifica<strong>do</strong> simula<strong>do</strong> nunca deve ser usa<strong>do</strong> em um sistema de produção.<br />

Use-o somente para teste.<br />

Crian<strong>do</strong> um certifica<strong>do</strong> auto-assina<strong>do</strong><br />

Se você estiver configuran<strong>do</strong> um servi<strong>do</strong>r Web seguro para uma Intranet ou para um<br />

círculo defini<strong>do</strong> de usuários, talvez seja suficiente assinar um certifica<strong>do</strong> com sua própria<br />

autoridade de certificação (CA).<br />

A criação de um certifica<strong>do</strong> auto-assina<strong>do</strong> é um processo interativo de nove etapas.<br />

Passe para o diretório /usr/share/<strong>do</strong>c/packages/apache2 e execute o seguinte<br />

coman<strong>do</strong>: ./mkcert.sh make --no-print-directory


usr/bin/openssl /usr/sbin/ custom. Não tente executar esse coman<strong>do</strong><br />

fora desse diretório. O programa apresenta uma série de prompts, <strong>do</strong>s quais alguns<br />

precisam de entrada <strong>do</strong> usuário.<br />

Procedimento 26.1 Criação de um certifica<strong>do</strong> auto-assina<strong>do</strong> com mkcert.sh<br />

1 Decide the signature algorithm used for certificates<br />

(Defina o algoritmo de assinatura usa<strong>do</strong> para<br />

certifica<strong>do</strong>s)<br />

Escolha RSA ( R , o padrão), pois alguns browsers mais antigos têm problema<br />

com DSA.<br />

2 Generating RSA private key for CA (1024 bit) (Geran<strong>do</strong><br />

chave privada RSA para CA - 1024 bits)<br />

Nenhuma interação necessária.<br />

3 Generating X.509 certificate signing request for CA<br />

(Geran<strong>do</strong> solicitação de assinatura de certifica<strong>do</strong> X.509<br />

para CA)<br />

Crie aqui o nome exclusivo da CA. Para isso você terá que responder a algumas<br />

perguntas, como nome <strong>do</strong> país ou da organização. Digite da<strong>do</strong>s váli<strong>do</strong>s, pois<br />

tu<strong>do</strong> que você digitar aqui aparecerá depois no certifica<strong>do</strong>. Você não precisa<br />

responder a todas as perguntas. Se alguma não lhe diz respeito ou se você quer<br />

deixá-la em branco, use “.”. Nome comum é o nome da própria CA — escolha<br />

um nome significativo, como CA Minha empresa.<br />

4 Generating X.509 certificate for CA signed by itself<br />

(Geran<strong>do</strong> certifica<strong>do</strong> X.509 para CA assina<strong>do</strong> por ele<br />

próprio)<br />

Escolha a versão 3 <strong>do</strong> certifica<strong>do</strong> (padrão).<br />

5 Generating RSA private key for SERVER (1024 bit)<br />

(Geran<strong>do</strong> chave privada RSA para servi<strong>do</strong>r - 1024 bits)<br />

Nenhuma interação necessária.<br />

Servi<strong>do</strong>r HTTP Apache 495


496 Referência<br />

6 Generating X.509 certificate signing request for SERVER<br />

(Geran<strong>do</strong> solicitação de assinatura de certifica<strong>do</strong> X.509<br />

para servi<strong>do</strong>r)<br />

Crie aqui o nome exclusivo da chave <strong>do</strong> servi<strong>do</strong>r. As perguntas são quase idênticas<br />

às que já foram respondidas para o nome exclusivo da CA. Os da<strong>do</strong>s digita<strong>do</strong>s<br />

aqui se aplicam ao servi<strong>do</strong>r Web e não precisam ser idênticos aos da<strong>do</strong>s da CA<br />

(por exemplo, se o servi<strong>do</strong>r estiver em outro lugar).<br />

IMPORTANTE: Selecionan<strong>do</strong> um nome comum<br />

O nome comum digita<strong>do</strong> aqui deverá ser o nome de host completo <strong>do</strong><br />

servi<strong>do</strong>r seguro (por exemplo, www.exemplo.com). De outra forma,<br />

quan<strong>do</strong> o browser acessar o servi<strong>do</strong>r Web, ele emitirá aviso de que o<br />

certifica<strong>do</strong> não corresponde ao servi<strong>do</strong>r.<br />

7 Generating X.509 certificate signed by own CA (Geran<strong>do</strong><br />

certifica<strong>do</strong> X.509 assina<strong>do</strong> pela própria CA)<br />

Escolha a versão 3 <strong>do</strong> certifica<strong>do</strong> (padrão).<br />

8 Encrypting RSA private key <strong>of</strong> CA with a pass phrase<br />

for security (Criptografan<strong>do</strong> chave privada RSA da CA<br />

com frase secreta por segurança)<br />

É altamente recomendável criptografar a chave privada da CA com uma senha,<br />

por isso, escolha Y e digite uma senha.<br />

9 Encrypting RSA private key <strong>of</strong> SERVER with a pass phrase<br />

for security (Criptografan<strong>do</strong> chave privada RSA <strong>do</strong><br />

servi<strong>do</strong>r com frase secreta por segurança)<br />

Criptografar a chave <strong>do</strong> servi<strong>do</strong>r com senha significa digitar essa senha todas as<br />

vezes que o servi<strong>do</strong>r Web for inicia<strong>do</strong>. Isso dificulta o início automático <strong>do</strong><br />

servi<strong>do</strong>r na inicialização da máquina ou a reinicialização <strong>do</strong> servi<strong>do</strong>r Web.<br />

Portanto, é razoável responder N a essa pergunta. Lembre-se de que a sua chave<br />

fica desprotegida quan<strong>do</strong> não criptografada com senha e assegure-se de que<br />

somente pessoas autorizadas tenham acesso à chave.


IMPORTANTE: Criptografan<strong>do</strong> a chave <strong>do</strong> servi<strong>do</strong>r<br />

Se você escolher criptografar a chave <strong>do</strong> servi<strong>do</strong>r com senha, aumente<br />

o valor de APACHE_TIMEOUT em /etc/sysconfig/apache2. Caso<br />

contrário, você não haverá tempo suficiente para você digitar a frase<br />

secreta antes que a tentativa de iniciar o servi<strong>do</strong>r fracasse.<br />

A página de resulta<strong>do</strong>s <strong>do</strong> script contém uma lista com certifica<strong>do</strong>s e chaves gera<strong>do</strong>s<br />

por ele. Ao contrário da saída <strong>do</strong> script, os arquivos não foram gera<strong>do</strong>s no diretório<br />

local conf, mas nas localizações corretas em /etc/apache2/.<br />

A última etapa é copiar o arquivo <strong>do</strong> certifica<strong>do</strong> da CA de /etc/apache2/ssl<br />

.crt/ca.crt em uma localização em que os usuários possam acessá-lo para<br />

incorporá-lo à lista de CAs conhecidas e confiáveis em seus browsers da Web. Caso<br />

contrário, o browser acusará que o certifica<strong>do</strong> foi emiti<strong>do</strong> por uma autoridade<br />

desconhecida. O certifica<strong>do</strong> é váli<strong>do</strong> por um ano.<br />

IMPORTANTE: Certifica<strong>do</strong>s auto-assina<strong>do</strong>s<br />

Somente use um certifica<strong>do</strong> auto-assina<strong>do</strong> em um servi<strong>do</strong>r Web que seja<br />

acessa<strong>do</strong> pelas pessoas que o reconhecem e confiam em você como autoridade<br />

de certificação. Não é recomenda<strong>do</strong> usar esse tipo de certifica<strong>do</strong> em uma loja<br />

aberta ao público, por exemplo.<br />

Obten<strong>do</strong> certifica<strong>do</strong> assina<strong>do</strong> <strong>of</strong>icialmente<br />

Existem autoridades de certificação <strong>of</strong>iciais que assinam seus certifica<strong>do</strong>s. O certifica<strong>do</strong>,<br />

assina<strong>do</strong> por uma terceira parte confiável, pode ser confia<strong>do</strong> inteiramente. Os servi<strong>do</strong>res<br />

Web que funcionam para o público geralmente têm um certifica<strong>do</strong> <strong>of</strong>icialmente assina<strong>do</strong>.<br />

As CAs <strong>of</strong>iciais mais conhecidas são Thawte (http://www.thawte.com/ ou<br />

Verisign (www.verisign.com). Essas e outras CAs já são compiladas em to<strong>do</strong>s os<br />

browsers, de mo<strong>do</strong> que os certifica<strong>do</strong>s assina<strong>do</strong>s por elas sejam aceitos automaticamente<br />

pelos browsers.<br />

Ao solicitar um certifica<strong>do</strong> <strong>of</strong>icialmente assina<strong>do</strong>, em vez de enviar um certifica<strong>do</strong> à<br />

CA, você emite uma CSR (Certificate Signing Request - solicitação de assinatura de<br />

certifica<strong>do</strong>). Para criá-la, chame o script /usr/share/ssl/misc/CA.sh<br />

-newreq.<br />

Servi<strong>do</strong>r HTTP Apache 497


498 Referência<br />

Em primeiro lugar, o script pede uma senha, com a qual a CSR deve ser criptografada.<br />

Em seguida, você é solicita<strong>do</strong> a digitar um nome exclusivo. Para isso você terá que<br />

responder a algumas perguntas, como nome <strong>do</strong> país ou da organização. Digite da<strong>do</strong>s<br />

váli<strong>do</strong>s — tu<strong>do</strong> que você digitar aqui aparecerá depois no certifica<strong>do</strong> e será verifica<strong>do</strong>.<br />

Você não precisa responder a todas as perguntas. Se você não tiver resposta para alguma<br />

pergunta ou quiser deixá-la em branco, use “.”. Nome comum é o nome da própria CA<br />

— escolha um nome significativo, como CA Minha empresa. Por fim, é necessário<br />

digitar uma senha de verificação e um nome de empresa alternativo.<br />

Localize a CSR no diretório em que você chamou o script. O nome <strong>do</strong> arquivo é newreq<br />

.pem.<br />

26.6.2 Configuran<strong>do</strong> o Apache com SSL<br />

A porta padrão das solicitações SSL e TLS no servi<strong>do</strong>r Web é a 443. Não há conflito<br />

entre uma recepção “normal” <strong>do</strong> Apache na porta 80 e uma recepção habilitada por<br />

SSL/TLS <strong>do</strong> Apache na porta 443. Na verdade, HTTP e HTTPS podem ser executa<strong>do</strong>s<br />

na mesma instância <strong>do</strong> Apache. Geralmente os hosts virtuais separa<strong>do</strong>s são usa<strong>do</strong>s para<br />

despachar solicitações à porta 80 e à porta 443 para servi<strong>do</strong>res virtuais separa<strong>do</strong>s.<br />

IMPORTANTE: Configuração de firewall<br />

Não se esqueça de abrir o firewall <strong>do</strong> Apache habilita<strong>do</strong> por SSL na porta 443.<br />

Isso pode ser feito com o YaST, conforme descrito em “Configuran<strong>do</strong> com o<br />

YaST” (p 110).<br />

Para usar SSL, ele deve ser ativa<strong>do</strong> na configuração global <strong>do</strong> servi<strong>do</strong>r. Abra /etc/<br />

sysconfig/apache2 em um editor e procure APACHE_MODULES. Adicione “ssl”<br />

à lista de módulos, caso ele ainda não esteja presente (mod_ssl é ativa<strong>do</strong> por padrão).<br />

Em seguida, procure APACHE_SERVER_FLAGS e adicione “SSL”. Se você decidiu<br />

criptografar com senha seu certifica<strong>do</strong> de servi<strong>do</strong>r, deverá também aumentar o valor<br />

de APACHE_TIMEOUT para que tenha tempo suficiente de digitar a frase secreta quan<strong>do</strong><br />

o Apache for inicia<strong>do</strong>. Reinicie o servi<strong>do</strong>r para ativar essas mudanças. Não basta<br />

recarregar.<br />

O diretório da configuração de host virtual contém um modelo /etc/apache2/<br />

vhosts.d/vhost-ssl.template com diretivas específicas de SSL amplamente<br />

<strong>do</strong>cumentadas. Consulte a configuração geral de host virtual na “Configuração <strong>do</strong> host<br />

virtual” (p 469).


Comece apenas ajustan<strong>do</strong> os valores das seguintes diretivas:<br />

• DocumentRoot<br />

• ServerName<br />

• ServerAdmin<br />

• ErrorLog<br />

• TransferLog<br />

IMPORTANTE: Hosts virtuais identifica<strong>do</strong>s por nome e SSL<br />

É impossível executar vários hosts virtuais habilita<strong>do</strong>s para SSL em um servi<strong>do</strong>r<br />

<strong>do</strong>ta<strong>do</strong> de apenas um endereço IP. Os usuários que se conectam a uma<br />

configuração assim recebem uma mensagem de aviso informan<strong>do</strong> que o<br />

certifica<strong>do</strong> não corresponde ao nome <strong>do</strong> servi<strong>do</strong>r toda vez que eles visitam o<br />

URL. Um endereço IP ou porta separa<strong>do</strong>(a) é necessário a to<strong>do</strong> <strong>do</strong>mínio<br />

habilita<strong>do</strong> para SSL para efetivar a comunicação baseada em um certifica<strong>do</strong><br />

SSL váli<strong>do</strong>.<br />

26.7 Evitan<strong>do</strong> problemas de<br />

segurança<br />

Um servi<strong>do</strong>r Web exposto à Internet pública requer um esforço administrativo contínuo.<br />

É inevitável que sejam levantadas questões de segurança, relacionadas tanto ao s<strong>of</strong>tware<br />

como à configuração incorreta acidental. Aqui vão algumas dicas sobre como lidar com<br />

elas.<br />

26.7.1 S<strong>of</strong>tware atualiza<strong>do</strong><br />

Se forem encontradas vulnerabilidades no s<strong>of</strong>tware <strong>do</strong> Apache, um aviso de segurança<br />

será emiti<strong>do</strong> pelo <strong>SUSE</strong>. Ele contém instruções para a correção de vulnerabilidades,<br />

que devem ser aplicadas o mais rápi<strong>do</strong> possível. As notificações de segurança <strong>do</strong> <strong>SUSE</strong><br />

estão disponíveis nas seguintes localizações:<br />

Servi<strong>do</strong>r HTTP Apache 499


500 Referência<br />

• Página da Web http://www.suse.com/us/private/support/<br />

online_help/mailinglists/<br />

• Lista de discussão http://www.suse.com/us/private/support/<br />

online_help/mailinglists/<br />

• Fonte RSS http://www.novell.com/linux/security/suse<br />

_security.xml<br />

26.7.2 Permissões de DocumentRoot<br />

Por padrão, no <strong>SUSE</strong> Linux, o diretório de DocumentRoot /srv/www/ht<strong>do</strong>cs e<br />

o diretório CGI /srv/www/cgi-bin pertencem ao usuário e grupo Root. Não mude<br />

essas permissões. Se os diretórios fossem graváveis para to<strong>do</strong>s, qualquer usuário poderia<br />

colocar arquivos neles. Esses arquivos seriam então executa<strong>do</strong>s pelo Apache com as<br />

permissões de wwwrun, que poderiam dar ao usuário acesso não deseja<strong>do</strong> a recursos<br />

<strong>do</strong> sistema de arquivos. Use os subdiretórios de /srv/www para colocar os diretórios<br />

de DocumentRoot e CGI para seus hosts virtuais e certifique-se de que esses diretórios<br />

e arquivos pertencem ao usuário e grupo Root.<br />

26.7.3 Acesso ao sistema de arquivos<br />

Por padrão, o acesso a to<strong>do</strong> o sistema de arquivos é nega<strong>do</strong> em /etc/apache2/<br />

httpd.conf. Nunca sobregrave essas diretivas, mas habilite o acesso especificamente<br />

a to<strong>do</strong>s os diretórios que o Apache deverá ler (consulte “Configuração básica <strong>do</strong> host<br />

virtual” (p 472) para obter detalhes). Nesse processo, verifique se nenhum arquivo crítico<br />

(como arquivos de senhas ou de configuração <strong>do</strong> sistema) possam ser li<strong>do</strong>s de um ponto<br />

externo.<br />

26.7.4 Scripts CGI<br />

Os scripts interativos em Perl, PHP, SSI ou qualquer outra linguagem de programação<br />

podem essencialmente executar coman<strong>do</strong>s arbitrários e, portanto, apresentam um<br />

problema geral de segurança. Os scripts a serem executa<strong>do</strong>s a partir <strong>do</strong> servi<strong>do</strong>r devem<br />

ser instala<strong>do</strong>s somente a partir de fontes em que o administra<strong>do</strong>r <strong>do</strong> servi<strong>do</strong>r confia.<br />

Permitir que os usuários executem seus próprios scripts, em geral não é uma boa prática.<br />

Outra recomendação é realizar auditorias de segurança para to<strong>do</strong>s os scripts.


Para facilitar ao máximo a administração de scripts, costuma-se limitar a execução <strong>do</strong>s<br />

scripts CGI a diretórios específicos em vez de permiti-los globalmente. As diretivas<br />

ScriptAlias e Option ExecCGI são usadas para configuração. A configuração<br />

padrão <strong>do</strong> <strong>SUSE</strong> Linux não permite a execução de scripts CGI a partir de qualquer<br />

lugar.<br />

Como to<strong>do</strong>s os scripts CGI são executa<strong>do</strong>s como o mesmo usuário, pode haver conflito<br />

entre scripts diferentes. O módulo suEXEC permite executar scripts CGI para outro<br />

usuário e grupo.<br />

26.7.5 Diretórios <strong>do</strong> usuário<br />

Ao habilitar os diretórios <strong>do</strong> usuário (com mod_userdir ou mod_rewrite), você não deve<br />

permitir os arquivos .htaccess, o que permitiria aos usuários sobregravar as<br />

configurações de segurança. Se isso não for possível, ao menos limite o envolvimento<br />

<strong>do</strong> usuário usan<strong>do</strong> a diretiva AllowOverRide. No <strong>SUSE</strong> Linux, os arquivos<br />

.htaccess são habilita<strong>do</strong>s por padrão, mas o usuário não tem permissão de<br />

sobregravar nenhuma diretiva Option ao usar mod_userdir (consulte o arquivo de<br />

configuração /etc/apache2/mod_userdir.conf).<br />

26.8 Solução de problemas<br />

Se o Apache não for inicia<strong>do</strong>, a página da Web não estiver acessível ou os usuários não<br />

puderem se conectar ao servi<strong>do</strong>r Web, é importante encontrar a causa <strong>do</strong> problema. A<br />

seguir, estão alguns locais típicos para procurar explicações de erros e coisas importantes<br />

a serem verificadas.<br />

Primeiro, o rcapache2 (descrito na Seção 26.3, “Inician<strong>do</strong> e paran<strong>do</strong> o Apache”<br />

(p 480)) mostra detalhes sobre erros, portanto, pode ser bastante útil se for realmente<br />

usa<strong>do</strong> para operar o Apache. Algumas vezes, é tenta<strong>do</strong>r usar o /usr/sbin/httpd2<br />

binário para iniciar ou interromper o servi<strong>do</strong>r Web. Evite fazer isso e use o script<br />

rcapache2. O rcapache2 fornece até dicas sobre como resolver erros de<br />

configuração.<br />

Além disso, a importância de arquivos de registro não pode ser demasiadamente<br />

enfatizada. No caso de erros fatais e não fatais, deve-se procurar as causas nos arquivos<br />

de registro <strong>do</strong> Apache, especialmente no arquivo de registro de erros. Você também<br />

pode controlar o detalhamento das mensagens registradas com a diretiva LogLevel<br />

Servi<strong>do</strong>r HTTP Apache 501


502 Referência<br />

se forem necessários mais detalhes nos arquivos de registro. Por padrão, o arquivo de<br />

registro de erros está localiza<strong>do</strong> em /var/log/apache2/error_log.<br />

DICA: Um teste simples<br />

Observe as mensagens de registro <strong>do</strong> Apache com o coman<strong>do</strong> tail -F<br />

/var/log/apache2/meu_reg_erros. A seguir, execute rcapache2<br />

restart. Agora, tente conectar-se a um browser e verifique a saída.<br />

Um erro comum é não abrir as portas <strong>do</strong> Apache na configuração de firewall <strong>do</strong> servi<strong>do</strong>r.<br />

Se você configura o Apache com o YaST, existe uma opção separada disponível que<br />

cuida desta questão específica (consulte a Seção 26.2.2, “Configuran<strong>do</strong> o Apache com<br />

o YaST” (p 473)). Se você estiver configuran<strong>do</strong> o Apache manualmente, abra as portas<br />

de firewall para HTTP e HTTPS através <strong>do</strong> módulo de firewall <strong>do</strong> YaST.<br />

Se o erro não puder ser descoberto com a ajuda de qualquer desses meios, verifique o<br />

banco de da<strong>do</strong>s de erros <strong>do</strong> Apache online em http://httpd.apache.org/bug<br />

_report.html. A comunidade de usuários <strong>do</strong> Apache também pode ser acessada<br />

através de uma lista de discussão disponível em http://httpd.apache.org/<br />

userslist.html. Um grupo de discussão recomenda<strong>do</strong> é comp.infosystems<br />

.www.servers.unix.<br />

26.9 Mais informações<br />

O pacote apache2-<strong>do</strong>c contém o manual completo <strong>do</strong> Apache em vários idiomas<br />

para instalação e referência local. Ele não é instala<strong>do</strong> por padrão, e a maneira mais<br />

rápida de fazê-lo é usan<strong>do</strong> o coman<strong>do</strong> yast -i apache2-<strong>do</strong>c. Depois de instala<strong>do</strong>,<br />

o manual <strong>do</strong> Apache fica disponível em http://localhost/manual/. Você<br />

também poderá acessá-lo na Web em http://httpd.apache.org/<strong>do</strong>cs-2.2/.<br />

Dicas de configuração específicas <strong>do</strong> <strong>SUSE</strong> estão disponíveis no diretório /usr/<br />

share/<strong>do</strong>c/packages/apache2/README.*.<br />

26.9.1 Apache 2.2<br />

Para obter uma lista <strong>do</strong>s novos recursos <strong>do</strong> Apache 2.2, consulte http://httpd<br />

.apache.org/<strong>do</strong>cs/2.2/new_features_2_2.html. As informações sobre


o upgrade da versão 2.0 para a versão 2.2 estão disponíveis em http://httpd<br />

.apache.org/<strong>do</strong>cs-2.2/upgrading.html.<br />

26.9.2 Módulos <strong>do</strong> Apache<br />

Mais informações sobre os módulos externos <strong>do</strong> Apache da Seção 26.4.5, “Módulos<br />

externos” (p 488) estão disponíveis nas seguintes localizações:<br />

FastCGI<br />

http://www.fastcgi.com/<br />

mod_perl<br />

http://perl.apache.org/<br />

mod_php5<br />

http://www.php.net/manual/en/install.unix.apache2.php<br />

mod_python<br />

http://www.modpython.org/<br />

mod_ruby<br />

http://www.modruby.net/<br />

26.9.3 Desenvolvimento<br />

Mais informações sobre o desenvolvimento <strong>do</strong>s módulos <strong>do</strong> Apache ou sobre o<br />

envolvimento no projeto <strong>do</strong> servi<strong>do</strong>r Web Apache estão disponíveis nas seguintes<br />

localizações:<br />

Informações para desenvolve<strong>do</strong>res <strong>do</strong> Apache<br />

http://httpd.apache.org/dev/<br />

<strong>Documentação</strong> <strong>do</strong> desenvolve<strong>do</strong>r <strong>do</strong> Apache<br />

http://httpd.apache.org/<strong>do</strong>cs/2.2/developer/<br />

Escreven<strong>do</strong> módulos <strong>do</strong> Apache com Perl e C<br />

http://www.modperl.com/<br />

Servi<strong>do</strong>r HTTP Apache 503


504 Referência<br />

26.9.4 Fontes diversas<br />

Se você tiver dificuldades específicas ao Apache no <strong>SUSE</strong> Linux, consulte o Banco de<br />

Da<strong>do</strong>s de Suporte <strong>do</strong> <strong>SUSE</strong> em http://portal.suse.com/sdb/en/index<br />

.html. O histórico <strong>do</strong> Apache pode ser encontra<strong>do</strong> em http://httpd.apache<br />

.org/ABOUT_APACHE.html. Essa página também explica porque o servi<strong>do</strong>r é<br />

chama<strong>do</strong> de Apache.


Sincronização de arquivos<br />

Atualmente, muitas pessoas usam vários computa<strong>do</strong>res; um computa<strong>do</strong>r em casa, um<br />

ou mais no trabalho e possivelmente um laptop ou PDA quan<strong>do</strong> viajam. Vários arquivos<br />

são necessários em to<strong>do</strong>s esses computa<strong>do</strong>res. Talvez você queira trabalhar com to<strong>do</strong>s<br />

os computa<strong>do</strong>res e modificar os arquivos, conseqüentemente ten<strong>do</strong> a versão mais recente<br />

<strong>do</strong>s da<strong>do</strong>s disponíveis em to<strong>do</strong>s os computa<strong>do</strong>res.<br />

27.1 S<strong>of</strong>tware de sincronização de<br />

da<strong>do</strong>s disponível<br />

A sincronização de da<strong>do</strong>s não é um problema para computa<strong>do</strong>res permanentemente<br />

conecta<strong>do</strong>s por uma rede rápida. Nesse caso, use um sistema de arquivos de rede, como<br />

o NFS, e armazene os arquivos em um servi<strong>do</strong>r para que to<strong>do</strong>s os hosts acessem os<br />

mesmos da<strong>do</strong>s via rede. Essa abordagem será impossível se a conexão de rede for<br />

instável ou não permanente. Quan<strong>do</strong> você viaja com um laptop, precisa ter cópias de<br />

to<strong>do</strong>s os arquivos necessários no disco rígi<strong>do</strong> local. Entretanto, é necessário sincronizar<br />

os arquivos modifica<strong>do</strong>s. Quan<strong>do</strong> você modificar um arquivo em um computa<strong>do</strong>r,<br />

verifique se uma cópia dele foi atualizada em to<strong>do</strong>s os outros computa<strong>do</strong>res. No caso<br />

de cópias ocasionais, elas podem ser feitas manualmente com o scp ou o rsync.<br />

Entretanto, se vários arquivos forem envolvi<strong>do</strong>s, o procedimento poderá ser complica<strong>do</strong><br />

e demandar muito cuida<strong>do</strong> para evitar erros, como a sobregravação de um arquivo novo<br />

por um antigo.<br />

27<br />

Sincronização de arquivos 505


506 Referência<br />

ATENÇÃO: Risco de perda de da<strong>do</strong>s<br />

Antes de começar a gerenciar seus da<strong>do</strong>s com um sistema de sincronização,<br />

você deve se informar sobre o programa usa<strong>do</strong> e testar sua funcionalidade. É<br />

indispensável ter um backup de arquivos importantes.<br />

A tarefa prolongada e sujeita a erros de sincronizar da<strong>do</strong>s manualmente pode ser evitada<br />

se você usar um <strong>do</strong>s programas que utilizam vários méto<strong>do</strong>s para automatizá-la. Os<br />

resumos a seguir têm o simples objetivo de dar uma visão geral sobre como esses<br />

programas funcionam e como podem ser usa<strong>do</strong>s. Se você planeja usá-los, leia a<br />

<strong>do</strong>cumentação <strong>do</strong> programa.<br />

27.1.1 Unison<br />

O Unison não é um sistema de arquivos de rede. Em vez disso, os arquivos são<br />

simplesmente grava<strong>do</strong>s e edita<strong>do</strong>s localmente. O programa Unison pode ser executa<strong>do</strong><br />

manualmente para sincronizar arquivos. Quan<strong>do</strong> a sincronização é executada pela<br />

primeira vez, um banco de da<strong>do</strong>s é cria<strong>do</strong> nos <strong>do</strong>is hosts, conten<strong>do</strong> checksums,<br />

marcações de horários e permissões <strong>do</strong>s arquivos seleciona<strong>do</strong>s. Na próxima vez em<br />

que for executa<strong>do</strong>, o Unison poderá reconhecer quais arquivos foram muda<strong>do</strong>s e propor<br />

que a transmissão seja feita <strong>do</strong> outro host ou para ele. Normalmente, todas as sugestões<br />

podem ser aceitas.<br />

27.1.2 CVS<br />

O CVS, que é mais usa<strong>do</strong> para gerenciar versões de origem de programas, <strong>of</strong>erece a<br />

possibilidade de manter cópias <strong>do</strong>s arquivos em vários computa<strong>do</strong>res. Dessa forma, ele<br />

também é adequa<strong>do</strong> para sincronização de da<strong>do</strong>s. O CVS mantém um repositório central<br />

no servi<strong>do</strong>r, no qual os arquivos e as mudanças feitas neles são grava<strong>do</strong>s. As mudanças<br />

realizadas localmente são enviadas para o repositório e podem ser recuperadas de outros<br />

computa<strong>do</strong>res por meio de uma atualização. To<strong>do</strong>s os procedimentos devem ser inicia<strong>do</strong>s<br />

pelo usuário.<br />

O CVS é muito suscetível a erros quan<strong>do</strong> ocorrem mudanças em vários computa<strong>do</strong>res.<br />

As mudanças são fundidas e, se elas forem feitas nas mesmas linhas, um conflito será<br />

reporta<strong>do</strong>. Quan<strong>do</strong> ocorre um conflito, o banco de da<strong>do</strong>s permanece em esta<strong>do</strong><br />

consistente. O conflito só fica visível para resolução no host cliente.


27.1.3 Subversion<br />

Ao contrário <strong>do</strong> CVS, que “evoluiu”, o Subversion (SVN) é um projeto de design<br />

consistente. O Subversion foi desenvolvi<strong>do</strong> como sucessor tecnicamente aprimora<strong>do</strong><br />

<strong>do</strong> CVS.<br />

O Subversion foi aprimora<strong>do</strong> em vários aspectos com relação ao seu antecessor. Devi<strong>do</strong><br />

ao seu histórico, o CVS mantém apenas arquivos e não lida com diretórios. Os diretórios<br />

também têm um histórico de versão no Subversion e podem ser copia<strong>do</strong>s e renomea<strong>do</strong>s,<br />

assim como os arquivos. Também é possível adicionar metada<strong>do</strong>s a to<strong>do</strong>s os arquivos<br />

e to<strong>do</strong>s os diretórios. Esses metada<strong>do</strong>s podem ser totalmente manti<strong>do</strong>s com o controle<br />

de versão. Em oposição ao CVS, o Subversion tem suporte para acesso transparente à<br />

rede por protocolos dedica<strong>do</strong>s, como o WebDAV. O WebDAV estende a funcionalidade<br />

<strong>do</strong> protocolo HTTP para permitir acesso de gravação colaborativo a arquivos em<br />

servi<strong>do</strong>res Web remotos.<br />

O Subversion foi monta<strong>do</strong> principalmente com base em pacotes de s<strong>of</strong>tware existentes.<br />

Portanto, o servi<strong>do</strong>r Web <strong>do</strong> Apache e a extensão WebDAV sempre são executa<strong>do</strong>s<br />

junto com o Subversion.<br />

27.1.4 mailsync<br />

Diferentemente das ferramentas de sincronização abordadas nas seções anteriores, o<br />

mailsync sincroniza somente e-mails entre caixas de correio. O procedimento pode ser<br />

aplica<strong>do</strong> em arquivos de caixas de correio locais, bem como em caixas de correio de<br />

um servi<strong>do</strong>r IMAP.<br />

Com base no ID da mensagem conti<strong>do</strong> no cabeçalho <strong>do</strong> e-mail, as mensagens específicas<br />

são sincronizadas ou apagadas. A sincronização é possível entre caixas de correio<br />

específicas e entre hierarquias de caixas de correio.<br />

27.1.5 rsync<br />

Quan<strong>do</strong> o controle de versão não é necessário, mas grandes estruturas de diretório<br />

precisam ser sincronizadas em conexões de rede lentas, a ferramenta rsync <strong>of</strong>erece<br />

mecanismos avança<strong>do</strong>s para a transmissão apenas de mudanças entre arquivos. Isso<br />

não diz respeito somente a arquivos de texto, mas também a arquivos binários. Para<br />

Sincronização de arquivos 507


508 Referência<br />

detectar as diferenças entre os arquivos, o rsync os subdivide em blocos e realiza<br />

checksums neles.<br />

O esforço dedica<strong>do</strong> à detecção das mudanças tem um preço. Os sistemas a serem<br />

sincroniza<strong>do</strong>s devem ser dimensiona<strong>do</strong>s generosamente para uso <strong>do</strong> rsync. A RAM é<br />

especialmente importante.<br />

27.1.6 Novell iFolder<br />

O Novell iFolder permite acessar seus arquivos de qualquer local e a qualquer momento.<br />

Se você colocar os arquivos no diretório <strong>do</strong> iFolder, ele será sincroniza<strong>do</strong><br />

instantaneamente com o servi<strong>do</strong>r. Com esse méto<strong>do</strong>, é possível trabalhar de qualquer<br />

lugar.<br />

O Novell iFolder também permite trabalhar <strong>of</strong>fline. Isso é muito conveniente se você<br />

não tiver uma conexão com a Internet, por exemplo, e estiver trabalhan<strong>do</strong> com um<br />

laptop durante viagens. Assim que você conseguir conectar-se com a Internet, as<br />

mudanças <strong>do</strong> seu trabalho serão enviadas para o servi<strong>do</strong>r.<br />

Trabalhar com o iFolder envolve estas etapas:<br />

1. Efetue login antes de trabalhar com o iFolder.<br />

2. Mude suas preferências com relação à freqüência de sincronização.<br />

3. Sincronize os arquivos e exiba a atividade entre o seu cliente e o servi<strong>do</strong>r iFolder.<br />

4. Solucione to<strong>do</strong>s os conflitos durante a sincronização. Os conflitos ocorrem<br />

quan<strong>do</strong> você altera o mesmo arquivo em <strong>do</strong>is computa<strong>do</strong>res diferentes. O iFolder<br />

armazena arquivos em conflito em um diretório separa<strong>do</strong> para impedir a perda<br />

de da<strong>do</strong>s.<br />

Para obter mais informações sobre o iFolder, consulte http://www.novell.com/<br />

en-en/<strong>do</strong>cumentation/. Encontre dicas e truques úteis sobre o iFolder em<br />

http://www.novell.com/coolsolutions/ifmag/.


27.2 Determinan<strong>do</strong> fatores para<br />

selecionar um programa<br />

Há alguns fatores importantes a serem considera<strong>do</strong>s ao decidir que programa será usa<strong>do</strong>.<br />

27.2.1 Cliente-servi<strong>do</strong>r versus ponto a ponto<br />

Dois modelos diferentes são comumente usa<strong>do</strong>s para distribuir da<strong>do</strong>s. No primeiro<br />

modelo, to<strong>do</strong>s os clientes sincronizam seus arquivos com um servi<strong>do</strong>r central. O servi<strong>do</strong>r<br />

deve ser acessível a to<strong>do</strong>s os clientes pelo menos ocasionalmente. Esse modelo é usa<strong>do</strong><br />

pelo Subversion, CVS e WebDAV.<br />

A outra possibilidade é deixar to<strong>do</strong>s os hosts liga<strong>do</strong>s em rede sincronizarem seus da<strong>do</strong>s<br />

entre os pontos uns <strong>do</strong>s outros. Esse é o conceito segui<strong>do</strong> pelo unison. O rsync, na<br />

realidade, funciona no mo<strong>do</strong> de cliente, mas qualquer cliente também pode atuar como<br />

um servi<strong>do</strong>r.<br />

27.2.2 Portabilidade<br />

O Subversion, o CVS e o unison também estão disponíveis para muitos outros sistemas<br />

operacionais, incluin<strong>do</strong> vários sistemas Unix e Win<strong>do</strong>ws.<br />

27.2.3 Interativo versus automático<br />

No Subversion, no CVS, no WebDAV e no Unison, o usuário inicia manualmente a<br />

sincronização de da<strong>do</strong>s. Isso permite um controle fino <strong>do</strong>s da<strong>do</strong>s a serem sincroniza<strong>do</strong>s<br />

e um fácil gerenciamento de conflitos. No entanto, se os intervalos de sincronização<br />

forem muito longos, será mais provável que ocorram conflitos.<br />

27.2.4 Conflitos: incidência e solução<br />

Conflitos só ocorrem raramente no Subversion ou no CVS, mesmo quan<strong>do</strong> muitas<br />

pessoas trabalham em um grande projeto de programa. Isso ocorre porque os <strong>do</strong>cumentos<br />

são fundi<strong>do</strong>s na base de linhas individuais. Quan<strong>do</strong> ocorre um conflito, somente um<br />

Sincronização de arquivos 509


510 Referência<br />

cliente é afeta<strong>do</strong>. Normalmente, os conflitos no Subversion ou no CVS podem ser<br />

facilmente resolvi<strong>do</strong>s.<br />

O Unison reporta conflitos, permitin<strong>do</strong> que os arquivos afeta<strong>do</strong>s sejam excluí<strong>do</strong>s da<br />

sincronização. Entretanto, as mudanças não podem ser fundidas tão facilmente quanto<br />

no Subversion ou no CVS.<br />

Em oposição ao Subversion ou ao CVS, em que é possível aceitar parcialmente as<br />

mudanças em caso de conflito, o WebDAV só executa o registro da entrada quan<strong>do</strong><br />

toda a modificação é considerada bem-sucedida.<br />

Não há gerenciamento de conflitos no rsync. O usuário é responsável por não sobregravar<br />

acidentalmente arquivos e resolver manualmente to<strong>do</strong>s os possíveis conflitos. Para<br />

obter segurança, é possível empregar adicionalmente um sistema de controle de versão<br />

como o RCS.<br />

27.2.5 Selecionan<strong>do</strong> e adicionan<strong>do</strong> arquivos<br />

Em sua configuração padrão, o Unison sincroniza toda uma árvore de diretórios. Novos<br />

arquivos que aparecem na árvore são incluí<strong>do</strong>s automaticamente na sincronização.<br />

No Subversion ou no CVS, novos diretórios e arquivos devem ser adiciona<strong>do</strong>s<br />

explicitamente por meio <strong>do</strong> coman<strong>do</strong> svn add ou o cvs add, respectivamente. Esse<br />

procedimento resulta em um maior controle <strong>do</strong> usuário sobre os arquivos a serem<br />

sincroniza<strong>do</strong>s. Por outro la<strong>do</strong>, novos arquivos são sempre ignora<strong>do</strong>s, especialmente<br />

quan<strong>do</strong> os pontos de interrogação na saída de svn update e svn status ou<br />

cvs update são ignora<strong>do</strong>s devi<strong>do</strong> ao grande número de arquivos.<br />

27.2.6 Histórico<br />

Um recurso adicional <strong>do</strong> Subversion ou <strong>do</strong> CVS é a possibilidade de reconstrução de<br />

versões antigas de arquivos. Um breve comentário de edição pode ser inseri<strong>do</strong> em cada<br />

mudança, e o desenvolvimento <strong>do</strong>s arquivos pode ser facilmente rastrea<strong>do</strong> posteriormente<br />

com base no conteú<strong>do</strong> <strong>do</strong>s comentários. Essa é uma ajuda valiosa para textos de teses<br />

e de programas.


27.2.7 Volume de da<strong>do</strong>s e requisitos <strong>do</strong><br />

disco rígi<strong>do</strong><br />

Os discos rígi<strong>do</strong>s de to<strong>do</strong>s os hosts envolvi<strong>do</strong>s devem ter espaço em disco suficiente<br />

para to<strong>do</strong>s os da<strong>do</strong>s distribuí<strong>do</strong>s. O Subversion e o CVS requerem espaço adicional<br />

para o banco de da<strong>do</strong>s repositório no servi<strong>do</strong>r. O histórico <strong>do</strong> arquivo também é<br />

armazena<strong>do</strong> no servi<strong>do</strong>r, requeren<strong>do</strong> ainda mais espaço. Quan<strong>do</strong> arquivos em formato<br />

de texto são muda<strong>do</strong>s, somente as linhas modificadas são gravadas. Arquivos binários<br />

requerem espaço em disco adicional relativo ao tamanho <strong>do</strong> arquivo sempre que ele<br />

for muda<strong>do</strong>.<br />

27.2.8 Interface gráfica <strong>do</strong> usuário (GUI)<br />

O Unison <strong>of</strong>erece uma interface gráfica <strong>do</strong> usuário que exibe os procedimentos de<br />

sincronização a serem realiza<strong>do</strong>s. Aceite a proposta ou exclua arquivos específicos da<br />

sincronização. No mo<strong>do</strong> de texto, confirme de forma interativa os procedimentos<br />

específicos.<br />

Usuários experientes normalmente executam o Subversion ou o CVS a partir da linha<br />

de coman<strong>do</strong>. Entretanto, as interfaces gráficas <strong>do</strong> usuário estão disponíveis para Linux,<br />

como a cervisia, e para outros sistemas operacionais, como a wincvs. Muitas ferramentas<br />

de desenvolvimento, como a kdevelop, e editores de texto, como o emacs, fornecem<br />

suporte para o CVS ou o Subversion. É sempre mais fácil realizar a resolução de conflitos<br />

com esses front ends.<br />

27.2.9 Facilidade de uso<br />

O Unison e o rsync são mais fáceis de usar e também mais adequa<strong>do</strong>s a usuários<br />

inexperientes. De certa forma, é mais difícil operar o CVS e o Subversion. Os usuários<br />

devem entender a interação entre o repositório e os da<strong>do</strong>s locais. As mudanças <strong>do</strong>s<br />

da<strong>do</strong>s devem ser primeiro fundidas localmente no repositório. Esse procedimento é<br />

executa<strong>do</strong> com o coman<strong>do</strong> cvs update ou svn update. Em seguida, os da<strong>do</strong>s<br />

devem ser envia<strong>do</strong>s de volta ao repositório com o coman<strong>do</strong> cvs commit ou<br />

svn commit. Depois de compreender esse procedimento, os usuários inexperientes<br />

também serão capazes de usar o CVS e o Subversion com facilidade.<br />

Sincronização de arquivos 511


27.2.10 Segurança contra ataques<br />

Durante a transmissão, o ideal é proteger os da<strong>do</strong>s contra interceptação e manipulação.<br />

O Unison, o CVS, o rsync e o Subversion podem ser facilmente usa<strong>do</strong>s via ssh (secure<br />

shell - shell seguro), fornecen<strong>do</strong> segurança contra ataques deste tipo. A execução <strong>do</strong><br />

CVS ou <strong>do</strong> Unison via rsh (remote shell - shell remoto) deve ser evitada. O acesso ao<br />

CVS com o mecanismo pserver em redes desprotegidas também não é recomendável.<br />

O Subversion já fornece as medidas de segurança necessárias ao ser executa<strong>do</strong> com o<br />

Apache.<br />

27.2.11 Proteção contra perda de da<strong>do</strong>s<br />

O CVS tem si<strong>do</strong> usa<strong>do</strong> por desenvolve<strong>do</strong>res por um longo tempo para gerenciar projetos<br />

de programas e é extremamente estável. Como o histórico <strong>do</strong> desenvolvimento é grava<strong>do</strong>,<br />

o CVS fornece proteção até mesmo contra certos erros <strong>do</strong> usuário, como uma exclusão<br />

não intencional de um arquivo. Apesar de não ser tão comum quanto o CVS, o<br />

Subversion já está sen<strong>do</strong> emprega<strong>do</strong> em ambientes de produção, como no próprio<br />

projeto <strong>do</strong> Subversion.<br />

O Unison ainda é relativamente novo, mas ostenta um alto nível de estabilidade.<br />

Entretanto, ele é mais sensível a erros <strong>do</strong> usuário. Depois que a sincronização da exclusão<br />

de um arquivo é confirmada, não há como restaurar o arquivo.<br />

Tabela 27.1 Recursos das ferramentas de sincronização de arquivos: -- = muito<br />

ruim, - = ruim ou não disponível, o = médio, + = bom, ++ = excelente,<br />

x = disponível<br />

Cliente/Servi<strong>do</strong>r<br />

Portabilidade<br />

Interatividade<br />

Velocidade<br />

Conflitos<br />

512 Referência<br />

unison<br />

igual<br />

Lin,Un*x,Win<br />

x<br />

-<br />

o<br />

CVS/SVN<br />

C-S/C-S<br />

Lin,Un*x,Win<br />

x/x<br />

o/+<br />

++/++<br />

rsync<br />

C-S<br />

Lin,Un*x,Win<br />

x<br />

+<br />

o<br />

mailsync<br />

igual<br />

Lin,Un*x<br />

-<br />

+<br />

+


Sel. de arquivos<br />

Histórico<br />

Espaço em disco<br />

rígi<strong>do</strong><br />

Interface gráfica<br />

<strong>do</strong> usuário (GUI)<br />

Dificuldade<br />

Ataques<br />

Perda de da<strong>do</strong>s<br />

unison<br />

Dir.<br />

-<br />

o<br />

+<br />

+<br />

+(ssh)<br />

+<br />

CVS/SVN<br />

Sel/arq., dir.<br />

x/x<br />

--<br />

o/o<br />

o/o<br />

+/+(ssh)<br />

++/++<br />

rsync<br />

Dir.<br />

-<br />

o<br />

-<br />

+<br />

+(ssh)<br />

27.3 Introdução ao Unison<br />

+<br />

mailsync<br />

Caixa de<br />

Correio<br />

-<br />

+<br />

-<br />

o<br />

+(SSL)<br />

O Unison é uma excelente solução para sincronizar e transferir árvores inteiras de<br />

diretórios. A sincronização é executada nas duas direções e pode ser controlada por<br />

meio de um front end gráfico intuitivo. Também é possível usar uma versão de console.<br />

A sincronização pode ser automatizada, de forma que a interação com o usuário não<br />

seja necessária, mas é preciso ter experiência.<br />

27.3.1 Requisitos<br />

O Unison deve ser instala<strong>do</strong> no cliente e no servi<strong>do</strong>r. Nesse contexto, o termo servi<strong>do</strong>r<br />

se refere a um segun<strong>do</strong> host, o host remoto (diferente <strong>do</strong> CVS, explica<strong>do</strong> na Seção 27.1.2,<br />

“CVS” (p 506)).<br />

Na seção a seguir, o Unison será usa<strong>do</strong> com o ssh. Nesse caso, um cliente SSH deve<br />

ser instala<strong>do</strong> no cliente e um servi<strong>do</strong>r SSH deve ser instala<strong>do</strong> no servi<strong>do</strong>r.<br />

+<br />

Sincronização de arquivos 513


27.3.2 Usan<strong>do</strong> o Unison<br />

A abordagem usada pelo Unison é a associação de <strong>do</strong>is diretórios (roots). Essa associação<br />

é simbólica; não se trata de uma conexão online. Neste exemplo, o layout <strong>do</strong> diretório<br />

é o seguinte:<br />

Cliente:<br />

Servi<strong>do</strong>r:<br />

514 Referência<br />

/home/tux/dir1<br />

/home/geeko/dir2<br />

Você deseja sincronizar esses <strong>do</strong>is diretórios. O usuário é conheci<strong>do</strong> como tux no cliente<br />

e como geeko no servi<strong>do</strong>r. A primeira coisa a fazer é testar se a comunicação entre<br />

cliente e servi<strong>do</strong>r funciona:<br />

unison -testserver /home/tux/dir1 ssh://geeko@server//homes/geeko/dir2<br />

Os problemas encontra<strong>do</strong>s com mais freqüência são:<br />

• As versões <strong>do</strong> Unison usadas no cliente e no servi<strong>do</strong>r não são compatíveis.<br />

• O servi<strong>do</strong>r não permite conexões com SSH.<br />

• Nenhum <strong>do</strong>s <strong>do</strong>is caminhos especifica<strong>do</strong>s existe.<br />

Se tu<strong>do</strong> funcionar, omita a opção -testserver. Durante a primeira sincronização,<br />

o Unison ainda não conhece a relação entre os <strong>do</strong>is diretórios e envia sugestões para a<br />

direção da transferência <strong>do</strong>s arquivos e diretórios específicos. As setas da coluna Ação<br />

indicam a direção da transferência. Um ponto de interrogação significa que o Unison<br />

não é capaz de fazer uma sugestão com relação à direção da transferência, pois as duas<br />

versões foram mudadas ou são novas.<br />

As teclas de seta podem ser usadas para definir a direção da transferência de entradas<br />

específicas. Se as direções de transferência estiverem corretas para todas as entradas<br />

exibidas, simplesmente clique em Ir.<br />

As características <strong>do</strong> Unison (por exemplo, se ele executa a sincronização<br />

automaticamente em casos de limpeza) podem ser controladas por meio de parâmetros<br />

de linha de coman<strong>do</strong> especifica<strong>do</strong>s quan<strong>do</strong> o programa é inicia<strong>do</strong>. Veja a lista completa<br />

de to<strong>do</strong>s os parâmetros com unison --help.


Exemplo 27.1 O arquivo ~/.unison/example.prefs<br />

root=/home/tux/dir1<br />

root=ssh://wilber@server//homes/wilber/dir2<br />

batch=true<br />

Para cada par é manti<strong>do</strong> um registro de sincronização no diretório <strong>do</strong> usuário ~/<br />

.unison. Definições de configuração, como ~/.unison/example.prefs,<br />

também podem ser armazenadas neste diretório. Para iniciar a sincronização, especifique<br />

esse arquivo como parâmetro da linha de coman<strong>do</strong>, como em<br />

unison example.prefs.<br />

27.3.3 Mais informações<br />

A <strong>do</strong>cumentação <strong>of</strong>icial <strong>do</strong> Unison é extremamente útil. Por essa razão, esta seção<br />

simplesmente fornece uma breve introdução. O manual completo está disponível em<br />

http://www.cis.upenn.edu/~bcpierce/unison/ e no unison <strong>do</strong> pacote<br />

<strong>SUSE</strong>.<br />

27.4 Introdução ao CVS<br />

O CVS é adequa<strong>do</strong> para fins de sincronização, caso arquivos específicos sejam edita<strong>do</strong>s<br />

com freqüência e sejam armazena<strong>do</strong>s em um formato de arquivo, como texto ASCII,<br />

ou como texto de origem de programa. O uso <strong>do</strong> CVS para sincronizar da<strong>do</strong>s em outros<br />

formatos, como arquivos JPEG, é possível, mas lida com grandes quantidades de da<strong>do</strong>s,<br />

pois todas as variantes de um arquivo são armazenadas permanentemente no servi<strong>do</strong>r<br />

CVS. Nesses casos, não é possível usar a maioria <strong>do</strong>s recursos <strong>do</strong> CVS. O uso <strong>do</strong> CVS<br />

para sincronizar arquivos só será possível se todas as estações de trabalho puderem<br />

acessar o mesmo servi<strong>do</strong>r.<br />

27.4.1 Configuran<strong>do</strong> um servi<strong>do</strong>r CVS<br />

O servi<strong>do</strong>r é o host em que to<strong>do</strong>s os arquivos váli<strong>do</strong>s se localizam, incluin<strong>do</strong> as versões<br />

mais recentes de to<strong>do</strong>s os arquivos. Qualquer estação de trabalho estacionária pode ser<br />

usada como um servi<strong>do</strong>r. Se possível, os da<strong>do</strong>s <strong>do</strong> repositório <strong>do</strong> CVS devem ser<br />

incluí<strong>do</strong>s em backups regulares.<br />

Sincronização de arquivos 515


516 Referência<br />

Durante a configuração de um servi<strong>do</strong>r CVS, é uma boa idéia conceder aos usuários o<br />

acesso ao servi<strong>do</strong>r via SSH. Se o usuário for conheci<strong>do</strong> pelo servi<strong>do</strong>r como tux e o<br />

s<strong>of</strong>tware <strong>do</strong> CVS estiver instala<strong>do</strong> tanto no servi<strong>do</strong>r quanto no cliente, as variáveis de<br />

ambiente a seguir deverão ser definidas no la<strong>do</strong> <strong>do</strong> cliente:<br />

CVS_RSH=ssh CVS_ROOT=tux@server:/serverdir<br />

O coman<strong>do</strong> cvs init pode ser usa<strong>do</strong> para inicializar o servi<strong>do</strong>r CVS no la<strong>do</strong> cliente.<br />

Esse procedimento deve ser executa<strong>do</strong> apenas uma vez.<br />

Finalmente, é necessário designar um nome à sincronização. Selecione ou crie um<br />

diretório no cliente exclusivamente para conter arquivos a serem gerencia<strong>do</strong>s com o<br />

CVS (o diretório também pode ficar vazio). O nome <strong>do</strong> diretório também será o nome<br />

da sincronização. Neste exemplo, o diretório é chama<strong>do</strong> de synchome. Vá para esse<br />

diretório e digite o coman<strong>do</strong> a seguir para definir o nome de sincronização como<br />

synchome:<br />

cvs import synchome tux wilber<br />

Vários coman<strong>do</strong>s <strong>do</strong> CVS requerem um comentário. Para essa finalidade, o CVS inicia<br />

um editor (o editor defini<strong>do</strong> na variável <strong>do</strong> ambiente $EDITOR ou vi, se nenhum editor<br />

tiver si<strong>do</strong> defini<strong>do</strong>). A chamada <strong>do</strong> editor pode ser evitada se você inserir o comentário<br />

antes na linha de coman<strong>do</strong>, como no exemplo a seguir:<br />

cvs import -m 'this is a test' synchome tux wilber<br />

27.4.2 Usan<strong>do</strong> o CVS<br />

O repositório de sincronização agora pode ter a saída registrada de to<strong>do</strong>s os hosts com<br />

cvs co synchome. Esse procedimento cria um novo subdiretório synchome no<br />

cliente. Para enviar suas mudanças para o servi<strong>do</strong>r, vá para o diretório synchome (ou<br />

um de seus subdiretórios) e digite cvs commit.<br />

Por padrão, to<strong>do</strong>s os arquivos (incluin<strong>do</strong> subdiretórios) são envia<strong>do</strong>s para o servi<strong>do</strong>r.<br />

Para enviar somente determina<strong>do</strong>s arquivos ou diretórios, especifique-os em<br />

cvs commit file1 directory1. É necessário adicionar novos arquivos e<br />

diretórios ao repositório com um coman<strong>do</strong> como cvs add file1 directory1<br />

antes de enviá-los para o servi<strong>do</strong>r. Depois disso, envie arquivos e diretórios adiciona<strong>do</strong>s<br />

recentemente com cvs commit file1 directory1.


Se você for para outra estação de trabalho, registre a saída <strong>do</strong> repositório de<br />

sincronização, caso isso não tenha si<strong>do</strong> feito em uma sessão anterior na mesma estação<br />

de trabalho (veja acima).<br />

Inicie a sincronização com o servi<strong>do</strong>r com cvs update. Atualize arquivos ou diretórios<br />

específicos como em cvs update file1 directory1. Para ver a diferença entre<br />

os arquivos atuais e versões armazenadas no servi<strong>do</strong>r, use o coman<strong>do</strong> cvs diff ou<br />

cvs diff file1 directory1. Use cvs -nq update para ver quais arquivos<br />

seriam afeta<strong>do</strong>s por uma atualização.<br />

Estes são alguns símbolos de status exibi<strong>do</strong>s durante uma atualização:<br />

U<br />

S<br />

P<br />

C<br />

?<br />

A versão local foi atualizada. Isso afeta to<strong>do</strong>s os arquivos forneci<strong>do</strong>s pelo servi<strong>do</strong>r<br />

e ausentes no sistema local.<br />

A versão local foi modificada. Se havia mudanças no servi<strong>do</strong>r, foi possível fundir<br />

as diferenças na cópia local.<br />

A versão local foi corrigida com a versão <strong>do</strong> servi<strong>do</strong>r.<br />

O arquivo local está em conflito com a versão atual <strong>do</strong> repositório.<br />

Este arquivo não existe no CVS.<br />

O status M indica um arquivo modifica<strong>do</strong> localmente. Envie a cópia local para o servi<strong>do</strong>r<br />

ou remova o arquivo local e execute a atualização novamente. Nesse caso, o arquivo<br />

ausente será recupera<strong>do</strong> <strong>do</strong> servi<strong>do</strong>r. Se você enviar um arquivo modifica<strong>do</strong> localmente<br />

e ele tiver si<strong>do</strong> muda<strong>do</strong> na mesma linha de coman<strong>do</strong> e envia<strong>do</strong>, poderá haver um conflito,<br />

indica<strong>do</strong> por C.<br />

Nesse caso, observe as marcas de conflito (»> e «


518 Referência<br />

27.4.3 Mais informações<br />

Esta seção simplesmente <strong>of</strong>erece uma breve introdução sobre as várias possibilidades<br />

<strong>do</strong> CVS. Uma <strong>do</strong>cumentação mais abrangente está disponível no seguinte URL:<br />

http://www.cvshome.org/<br />

http://www.gnu.org/manual/<br />

27.5 Introdução ao Subversion<br />

O Subversion é um sistema de controle de versão de código-fonte aberto gratuito e<br />

amplamente considera<strong>do</strong> como sucessor <strong>do</strong> CVS, o que quer dizer que os recursos<br />

apresenta<strong>do</strong>s pelo CVS normalmente também estão presentes no Subversion. Ele é<br />

especialmente recomendável quan<strong>do</strong> as vantagens <strong>do</strong> CVS são almejadas sem que seja<br />

necessário tolerar as desvantagens. Muitos desses recursos já foram apresenta<strong>do</strong>s<br />

brevemente na Seção 27.1.3, “Subversion” (p 507).<br />

27.5.1 Instalan<strong>do</strong> um servi<strong>do</strong>r Subversion<br />

A instalação de um banco de da<strong>do</strong>s repositório em um servi<strong>do</strong>r é um procedimento<br />

relativamente simples. O Subversion fornece uma ferramenta de administração dedicada<br />

para essa finalidade. Digite o coman<strong>do</strong> a seguir para criar um novo repositório:<br />

svnadmin create /path/to/repository<br />

Outras opções podem ser relacionadas com svnadmin help. Em oposição ao CVS,<br />

o Subversion não é basea<strong>do</strong> no RCS, mas em tipos diferentes de repositório. O Banco<br />

de Da<strong>do</strong>s Berkeley ou FSFS (um repositório que utiliza o sistema de arquivos<br />

diretamente) é usa<strong>do</strong> normalmente. Não instale um repositório em sistemas de arquivos<br />

remotos, como NFS, AFS ou Win<strong>do</strong>ws SMB. O banco de da<strong>do</strong>s requer mecanismos<br />

de bloqueio POSIX, não suporta<strong>do</strong>s por esses sistemas de arquivos.<br />

O coman<strong>do</strong> svnlook fornece informações sobre um repositório existente.<br />

svnlook info /path/to/repository<br />

É necessário configurar um servi<strong>do</strong>r para permitir que usuários diferentes acessem o<br />

repositório. Use o servi<strong>do</strong>r Web <strong>do</strong> Apache com o WebDAV para fazer isso, ou use o<br />

svnserve, o servi<strong>do</strong>r forneci<strong>do</strong> com o Subversion. Quan<strong>do</strong> o svnserve estiver em<br />

execução, o repositório poderá ser acessa<strong>do</strong> com um URL com svn:// ou


svn+ssh://. Usuários que podem se autenticar chaman<strong>do</strong> svn podem ser defini<strong>do</strong>s<br />

em /etc/svnserve.conf.<br />

A decisão sobre o uso <strong>do</strong> Apache ou <strong>do</strong> svnserce depende de vários fatores. É<br />

recomendável pesquisar o manual <strong>do</strong> Subversion. Mais informações sobre o assunto<br />

podem ser encontradas na Seção 27.5.3, “Mais informações” (p 521).<br />

27.5.2 Utilização e operação<br />

Use o coman<strong>do</strong> svn (similar ao cvs) para acessar um repositório <strong>do</strong> Subversion. Use<br />

o coman<strong>do</strong> svn help para obter a descrição de um parâmetro de um coman<strong>do</strong>:<br />

checkout (co): Check out a working copy from a repository.<br />

usage: checkout URL[@REV]... [CAMINHO]<br />

If specified, REV determines in which revision the URL is first<br />

looked up.<br />

If PATH is omitted, the basename <strong>of</strong> the URL will be used as<br />

the destination. If multiple URLs are given each will be checked<br />

out into a sub-directory <strong>of</strong> PATH, with the name <strong>of</strong> the sub-directory<br />

being the basename <strong>of</strong> the URL.<br />

...<br />

O conteú<strong>do</strong> forneci<strong>do</strong> por um servi<strong>do</strong>r configura<strong>do</strong> corretamente correspondente a<br />

determina<strong>do</strong> repositório pode ser acessa<strong>do</strong> por qualquer cliente com um <strong>do</strong>s seguintes<br />

coman<strong>do</strong>s:<br />

svn list http://svn.example.com/path/to/project<br />

ou<br />

svn list svn://svn.example.com/path/to/project<br />

Grave um projeto existente no diretório atual (registre a saída) com o coman<strong>do</strong><br />

svn checkout:<br />

svn checkout http://svn.example.com/path/to/project name<strong>of</strong>project<br />

O registro da saída cria um novo subdiretório name<strong>of</strong>project no cliente. Operações<br />

(adição, cópia, renomeação, exclusão) podem ser executadas em:<br />

svn add file<br />

svn copy oldfile newfile<br />

svn move oldfile newfile<br />

svn delete file<br />

Sincronização de arquivos 519


Esses coman<strong>do</strong>s também podem ser usa<strong>do</strong>s em diretórios. Além disso, o Subversion<br />

pode registrar as propriedades de um arquivo ou diretório:<br />

svn propset license GPL foo.txt<br />

O exemplo anterior define o valor GPL para a propriedade license. Exiba propriedades<br />

com svn proplist:<br />

svn proplist --verbose foo.txt<br />

Properties on 'foo.txt':<br />

license : GPL<br />

Grave as mudanças no servi<strong>do</strong>r com svn commit. Outro usuário pode incorporar suas<br />

mudanças no diretório de trabalho dele sincronizan<strong>do</strong> com o servi<strong>do</strong>r e usan<strong>do</strong><br />

svn update.<br />

Diferentemente <strong>do</strong> CVS, o status de um diretório em operação no Subversion pode ser<br />

exibi<strong>do</strong> sem acesso ao repositório com svn status. Mudanças locais são exibidas<br />

em cinco colunas, sen<strong>do</strong> a primeira a mais importante:<br />

' '<br />

'A'<br />

'D'<br />

'M'<br />

'C'<br />

'I'<br />

'?'<br />

520 Referência<br />

Nenhuma mudança.<br />

O objeto é marca<strong>do</strong> para adição.<br />

O objeto é marca<strong>do</strong> para exclusão.<br />

O objeto foi modifica<strong>do</strong>.<br />

O objeto está em conflito.<br />

O objeto foi ignora<strong>do</strong>.<br />

O objeto não está sen<strong>do</strong> manti<strong>do</strong> por controle de versão.


'!'<br />

'~'<br />

O objeto é reporta<strong>do</strong> como ausente. Este flag é exibi<strong>do</strong> quan<strong>do</strong> o objeto é apaga<strong>do</strong><br />

ou movi<strong>do</strong> sem o coman<strong>do</strong> svn.<br />

O objeto estava sen<strong>do</strong> manti<strong>do</strong> como um arquivo, mas foi substituí<strong>do</strong> por um<br />

diretório, ou ocorreu o oposto.<br />

A segunda coluna mostra o status das propriedades. O significa<strong>do</strong> de todas as outras<br />

colunas pode ser li<strong>do</strong> no manual <strong>do</strong> Subversion.<br />

27.5.3 Mais informações<br />

O primeiro ponto de referência é a home page <strong>do</strong> projeto Subversion, em http://<br />

subversion.tigris.org/. Um manual altamente recomendável pode ser<br />

encontra<strong>do</strong> no diretório file:///usr/share/<strong>do</strong>c/packages/subversion/<br />

html/book.html depois da instalação <strong>do</strong> pacote subversion-<strong>do</strong>c e também<br />

está disponível online em http://svnbook.red-bean.com/svnbook/index<br />

.html.<br />

27.6 Introdução ao rsync<br />

O rsync será útil quan<strong>do</strong> for necessário transmitir grandes quantidades de da<strong>do</strong>s<br />

regularmente, sem que haja muitas mudanças. Esse é, por exemplo, sempre o caso da<br />

criação de backups. Uma outra aplicação diz respeito a servi<strong>do</strong>res para teste. Esses<br />

servi<strong>do</strong>res armazenam árvores completas de diretório de servi<strong>do</strong>res Web regularmente<br />

espelhadas em um servi<strong>do</strong>r Web em um DMZ.<br />

27.6.1 Configuração e operação<br />

O rsync pode ser opera<strong>do</strong> em <strong>do</strong>is mo<strong>do</strong>s diferentes. Ele pode ser usa<strong>do</strong> para arquivar<br />

ou copiar da<strong>do</strong>s. Para isso, somente um shell remoto, como o ssh, é necessário no<br />

sistema de destino. Entretanto, o rsync também pode ser usa<strong>do</strong> como um daemon para<br />

fornecer diretórios à rede.<br />

O mo<strong>do</strong> de operação básica <strong>do</strong> rsync não requer qualquer configuração especial. O<br />

rsync permite diretamente o espelhamento de diretórios inteiros em outro sistema. Como<br />

Sincronização de arquivos 521


exemplo, o coman<strong>do</strong> a seguir cria um backup <strong>do</strong> diretório pessoal <strong>do</strong> tux em um servi<strong>do</strong>r<br />

de backup chama<strong>do</strong> de sun:<br />

rsync -baz -e ssh /home/tux/ tux@sun:backup<br />

O coman<strong>do</strong> a seguir é usa<strong>do</strong> para reproduzir o diretório de volta:<br />

rsync -az -e ssh tux@sun:backup /home/tux/<br />

Até esse ponto, o gerenciamento não é muito diferente <strong>do</strong> de uma ferramenta de cópia<br />

comum, como o scp.<br />

O rsync deve ser opera<strong>do</strong> no mo<strong>do</strong> “rsync” para que to<strong>do</strong>s os recursos fiquem totalmente<br />

disponíveis. Isso é feito ao se iniciar o daemon rsyncd em mais de um sistema.<br />

Configure-o no arquivo /etc/rsyncd.conf. Por exemplo, para tornar o diretório<br />

/srv/ftp disponível com o rsync, use a seguinte configuração:<br />

gid = nobody<br />

uid = nobody<br />

read only = true<br />

use chroot = no<br />

transfer logging = true<br />

log format = %h %o %f %l %b<br />

log file = /var/log/rsyncd.log<br />

[FTP]<br />

522 Referência<br />

path = /srv/ftp<br />

comment = An Example<br />

Em seguida, inicie o rsyncd com rcrsyncd start. O rsyncd também pode ser<br />

inicia<strong>do</strong> automaticamente durante o processo de inicialização. Configure esse recurso<br />

ativan<strong>do</strong> esse serviço no editor de níveis de execução forneci<strong>do</strong> pelo YaST ou digitan<strong>do</strong><br />

manualmente o coman<strong>do</strong> insserv rsyncd. O rsyncd também pode ser inicia<strong>do</strong> com<br />

xinetd. Entretanto, isso só é recomendável para servi<strong>do</strong>res que raramente usam o rsyncd.<br />

O exemplo também cria um arquivo de registro listan<strong>do</strong> todas as conexões. Esse arquivo<br />

é armazena<strong>do</strong> em /var/log/rsyncd.log.<br />

Então será possível testar a transferência de um sistema cliente. Faça isso com o seguinte<br />

coman<strong>do</strong>:<br />

rsync -avz sun::FTP<br />

Esse coman<strong>do</strong> lista to<strong>do</strong>s os arquivos presentes no diretório /srv/ftp <strong>do</strong> servi<strong>do</strong>r.<br />

Essa solicitação também é registrada no arquivo de registro /var/log/rsyncd


.log. Para iniciar uma transferência real, forneça um diretório de destino. Use . para<br />

o diretório atual. Por exemplo:<br />

rsync -avz sun::FTP .<br />

Por padrão, nenhum arquivo será apaga<strong>do</strong> durante a sincronização com o rsync. Se esse<br />

procedimento for força<strong>do</strong>, a opção adicional --delete deverá ser expressa. Para<br />

garantir que nenhum arquivo novo seja apaga<strong>do</strong>, use a opção --update como<br />

alternativa. Qualquer conflito ocorri<strong>do</strong> deve ser resolvi<strong>do</strong> manualmente.<br />

27.6.2 Mais informações<br />

Informações importantes sobre o rsync são fornecidas nas páginas de manual<br />

man rsync eman rsyncd.conf. Uma referência técnica sobre os princípios de<br />

operação <strong>do</strong> rsync pode ser encontrada em /usr/share/<strong>do</strong>c/packages/rsync/<br />

tech_report.ps. Encontre as notícias mais recentes sobre o rsync no site <strong>do</strong> projeto,<br />

em http://rsync.samba.org/.<br />

27.7 Introdução ao mailsync<br />

O mailsync é principalmente adequa<strong>do</strong> para as três tarefas a seguir:<br />

• Sincronização de e-mails armazena<strong>do</strong>s localmente com e-mails armazena<strong>do</strong>s em<br />

um servi<strong>do</strong>r<br />

• Migração de caixas de correio de um formato diferente ou de um servi<strong>do</strong>r diferente<br />

• Verificação de integridade de uma caixa de correio ou pesquisa de duplicatas<br />

27.7.1 Configuração e uso<br />

O mailsync faz a distinção entre a própria caixa de correio (o armazenamento) e a<br />

conexão entre duas caixas de correio (o canal). As definições de armazenamentos e<br />

canais estão em ~/.mailsync. Os parágrafos a seguir explicam alguns exemplos de<br />

armazenamento.<br />

Uma simples definição pode ser exibida como a seguir:<br />

Sincronização de arquivos 523


524 Referência<br />

store saved-messages {<br />

pat Mail/saved-messages<br />

prefix Mail/<br />

}<br />

O Mail/ é um subdiretório <strong>do</strong> diretório pessoal <strong>do</strong> usuário que contém pastas de email,<br />

incluin<strong>do</strong> a pasta saved-messages. Se o mailsync for inicia<strong>do</strong> com<br />

mailsync -m saved-messages, ele listará um índice de todas as mensagens em<br />

saved-messages. Se a definição a seguir for feita<br />

store localdir {<br />

pat Mail/*<br />

prefix Mail/<br />

}<br />

o coman<strong>do</strong> mailsync -m localdir listará todas as mensagens armazenadas em<br />

Mail/. Em contraste, o coman<strong>do</strong> mailsync localdir relaciona os nomes de<br />

pastas. As especificações de um armazenamento em um servi<strong>do</strong>r IMAP são exibidas<br />

como a seguir:<br />

store imapinbox {<br />

server {mail.edu.harvard.com/user=gulliver}<br />

ref {mail.edu.harvard.com}<br />

pat INBOX<br />

}<br />

O exemplo acima se refere simplesmente à pasta principal <strong>do</strong> servi<strong>do</strong>r IMAP. Um<br />

armazenamento das subpastas seria exibi<strong>do</strong> da seguinte forma:<br />

store imapdir {<br />

server {mail.edu.harvard.com/user=gulliver}<br />

ref {mail.edu.harvard.com}<br />

pat INBOX.*<br />

prefix INBOX.<br />

}<br />

Se o servi<strong>do</strong>r IMAP suportar conexões criptografadas, as especificações <strong>do</strong> servi<strong>do</strong>r<br />

devem mudar para<br />

server {mail.edu.harvard.com/ssl/user=gulliver}<br />

ou, se o certifica<strong>do</strong> <strong>do</strong> servi<strong>do</strong>r não for conheci<strong>do</strong>, para<br />

server {mail.edu.harvard.com/ssl/novalidate-cert/user=gulliver}<br />

O prefixo será explica<strong>do</strong> posteriormente.<br />

Agora, as pastas em Mail/ devem ser conectadas aos subdiretórios <strong>do</strong> servi<strong>do</strong>r IMAP.


channel folder localdir imapdir {<br />

msinfo .mailsync.info<br />

}<br />

O mailsync usa o arquivo msinfo para manter o rastreamento de mensagens que já<br />

tenham si<strong>do</strong> sincronizadas.<br />

O coman<strong>do</strong> mailsync folder faz o seguinte:<br />

• Expande a caixa de correio padrão em ambos os la<strong>do</strong>s.<br />

• Remove o prefixo <strong>do</strong>s nomes de pasta resultantes.<br />

• Sincroniza as pastas em pares (ou os cria, caso não existam).<br />

Dessa maneira, a pasta INBOX.sent-mail <strong>do</strong> servi<strong>do</strong>r IMPA é sincronizada com<br />

a pasta local Mail/sent-mail (desde que as definições explicadas acima existam).<br />

A sincronização entre a pasta específica é realizada como a seguir:<br />

• Se uma mensagem já existir em ambos os la<strong>do</strong>s, nada acontecerá.<br />

• Se a mensagem estiver ausente em um <strong>do</strong>s la<strong>do</strong>s e for nova (não listada no arquivo<br />

msinfo), ela será transmitida aqui.<br />

• Se a mensagem simplesmente existir em um <strong>do</strong>s la<strong>do</strong>s e for antiga (já listada no<br />

arquivo msinfo), ela será apagada (pois a mensagem que obviamente existia <strong>do</strong><br />

outro la<strong>do</strong> foi apagada).<br />

Para saber com antecedência quais mensagens serão transmitidas e quais serão apagadas<br />

durante uma sincronização, inicie o mailsync com um canal e um armazenamento com<br />

mailsync folder localdir. Esse coman<strong>do</strong> produz uma lista de todas as<br />

mensagens novas nos hosts locais, bem como uma lista de todas as mensagens que<br />

seriam apagadas no la<strong>do</strong> <strong>do</strong> IMAP durante uma sincronização. Da mesma forma, o<br />

coman<strong>do</strong> mailsync folder imapdir produz uma lista de todas as mensagens<br />

novas no la<strong>do</strong> <strong>do</strong> IMAP e uma lista de todas as mensagens que devem ser apagadas <strong>do</strong><br />

host local durante uma sincronização.<br />

27.7.2 Problemas possíveis<br />

No caso de perda de da<strong>do</strong>s, o méto<strong>do</strong> mais seguro é apagar o arquivo de registro <strong>do</strong><br />

canal relevante msinfo. Conseqüentemente, todas as mensagens que existam somente<br />

Sincronização de arquivos 525


526 Referência<br />

em um la<strong>do</strong> serão vistas como novas e, portanto, transmitidas durante a próxima<br />

sincronização.<br />

Somente mensagens com um ID são incluídas na sincronização. Mensagens sem ID<br />

são simplesmente ignoradas, o que significa que não são transmitidas nem apagadas.<br />

Um ID de mensagem ausente normalmente é causa<strong>do</strong> por programas com falhas no<br />

envio ou na gravação de uma mensagem.<br />

Em certos servi<strong>do</strong>res IMAP, a pasta principal é chamada de INBOX e as subpastas são<br />

chamadas de um nome seleciona<strong>do</strong> ao acaso (em contraste com INBOX e INBOX.name).<br />

Portanto, não é possível especificar um padrão exclusivamente para as subpastas <strong>do</strong>s<br />

servi<strong>do</strong>res IMAP.<br />

Depois da transmissão bem-sucedida de mensagens para um servi<strong>do</strong>r IMAP, os drivers<br />

da caixa de correio (c-client) usa<strong>do</strong>s pelo mailsync definem um flag de status especial.<br />

Por essa razão, alguns programas de e-mail, como mutt, não são capazes de reconhecer<br />

essas mensagens como novas. Desabilite a configuração desse flag de status especial<br />

com a opção -n.<br />

27.7.3 Mais informações<br />

O README in /usr/share/<strong>do</strong>c/packages/mailsync/, incluí<strong>do</strong> em<br />

mailsync, fornece informações adicionais. Nesse contexto, o RFC 2076 “Common<br />

Internet Message Headers” é de especial interesse.


Samba<br />

Com o Samba, uma máquina Unix pode ser configurada como um servi<strong>do</strong>r de arquivos<br />

e de impressão para máquinas em DOS, Win<strong>do</strong>ws e OS/2. O Samba se tornou um<br />

produto completo e bastante complexo. Configure o Samba com o YaST, o SWAT<br />

(uma interface da Web) ou o arquivo de configuração.<br />

28.1 Terminologia<br />

Protocolo SMB<br />

O Samba usa o protocolo SMB (bloco de mensagens <strong>do</strong> servi<strong>do</strong>r), basea<strong>do</strong> nos<br />

serviços NetBIOS. Devi<strong>do</strong> à pressão da IBM, a Micros<strong>of</strong>t lançou o protocolo para<br />

que outros fabricantes de s<strong>of</strong>tware pudessem estabelecer conexões com uma rede<br />

de <strong>do</strong>mínio Micros<strong>of</strong>t. Com o Samba, o protocolo SMB opera acima <strong>do</strong> protocolo<br />

TCP/IP, de mo<strong>do</strong> que este último precisa estar instala<strong>do</strong> em to<strong>do</strong>s os clientes.<br />

Protocolo CIFS<br />

O protocolo CIFS (sistema de arquivos da Internet comuns) é outro protocolo para<br />

o qual o Samba <strong>of</strong>erece suporte. O CIFS é um protocolo de acesso padrão a sistemas<br />

de arquivos remotos para utilização pela rede, permitin<strong>do</strong> que grupos de usuários<br />

trabalhem juntos e compartilhem <strong>do</strong>cumentos pela rede.<br />

NetBIOS<br />

O NetBIOS é uma interface de s<strong>of</strong>tware (API) projetada para a comunicação entre<br />

máquinas. Nesse caso, é presta<strong>do</strong> um serviço de nome. Ele permite que máquinas<br />

conectadas à rede reservem nomes para si. Após a reserva, essas máquinas podem<br />

ser tratadas pelo nome. Não há um processo central para a verificação de nomes.<br />

28<br />

Samba 527


528 Referência<br />

Qualquer máquina da rede pode reservar quantos nomes quiser, contanto que os<br />

nomes não estejam em uso ainda. A interface NetBIOS passa a poder ser<br />

implementada para diferentes arquiteturas de rede. Uma implementação que funciona<br />

com relativa proximidade com o hardware da rede é chamada de NetBEUI, mas<br />

ela muitas vezes é chamada de NetBIOS. Os protocolos de rede implementa<strong>do</strong>s<br />

com o NetBIOS são o IPX da Novell (NetBIOS via TCP/IP) e TCP/IP.<br />

Os nomes de NetBIOS envia<strong>do</strong>s por TCP/IP não possuem nada em comum com<br />

os nomes usa<strong>do</strong>s em /etc/hosts ou com os nomes defini<strong>do</strong>s pelo DNS. O<br />

NetBIOS usa sua própria convenção de nomes independente. Contu<strong>do</strong>, é<br />

recomendável usar nomes que correspondam aos nomes de hosts DNS para facilitar<br />

a administração. Esse é o padrão usa<strong>do</strong> pelo Samba.<br />

servi<strong>do</strong>r Samba<br />

O servi<strong>do</strong>r Samba é um servi<strong>do</strong>r que fornece serviços SMB/CIFS e serviços de<br />

nomeação NetBIOS por IP aos clientes. No caso <strong>do</strong> Linux, há <strong>do</strong>is daemons para<br />

o servi<strong>do</strong>r Samba: smnd para os serviços SMB/CIFS e nmbd para serviços de<br />

nomeação.<br />

cliente Samba<br />

O cliente Samba é um sistema que usa serviços Samba de um servi<strong>do</strong>r Samba pelo<br />

protocolo SMB. To<strong>do</strong>s os sistemas operacionais comuns, como Mac OS X, Win<strong>do</strong>ws<br />

e OS/2, prestam suporte ao protocolo SMB. O protocolo TCP/IP precisa estar<br />

instala<strong>do</strong> em to<strong>do</strong>s os computa<strong>do</strong>res. O Samba fornece um cliente para as diferentes<br />

versões <strong>do</strong> UNIX. No caso <strong>do</strong> Linux, há um módulo de kernel para SMB que<br />

permite a integração de recursos SMB no nível de sistema Linux. Não é necessário<br />

executar daemons para o cliente Samba.<br />

Compartilhamentos<br />

Os servi<strong>do</strong>res SMB <strong>of</strong>erecem espaço em hardware a seus clientes por meio de<br />

compartilhamentos. Compartilhamentos são impressoras e diretórios com seus<br />

subdiretórios no servi<strong>do</strong>r. Ele é exporta<strong>do</strong> por meio de um nome e pode ser acessa<strong>do</strong><br />

pelo nome. O nome <strong>do</strong> compartilhamento pode ser defini<strong>do</strong> por qualquer nome;<br />

não precisa ser o nome <strong>do</strong> diretório de exportação. Uma impressora também recebe<br />

um nome. Os clientes podem acessar a impressora pelo nome.


28.2 Inician<strong>do</strong> e interrompen<strong>do</strong> o<br />

Samba<br />

Você pode iniciar ou interromper o servi<strong>do</strong>r Samba manualmente ou automaticamente<br />

durante a inicialização. A política de iniciar e interromper faz parte da configuração <strong>do</strong><br />

servi<strong>do</strong>r Samba YaST descrita na Seção 28.3.1, “Configuran<strong>do</strong> um servi<strong>do</strong>r Samba<br />

com o YaST” (p 529).<br />

Para interromper ou iniciar a execução <strong>do</strong>s serviços Samba com o YaST, use Sistema<br />

→ Serviços <strong>do</strong> Sistema (Runlevel). Na linha de coman<strong>do</strong>, interrompa os serviços<br />

necessários ao Samba com rcsmb stop && rcnmb stop e use rcnmb start<br />

&& rcsmb start para iniciá-los.<br />

28.3 Configuran<strong>do</strong> um servi<strong>do</strong>r Samba<br />

O servi<strong>do</strong>r Samba no <strong>SUSE</strong> Linux pode ser configura<strong>do</strong> de duas maneiras diferentes:<br />

com o YaST ou manualmente. A configuração manual <strong>of</strong>erece um nível maior de<br />

detalhes, mas não tem a conveniência da interface gráfica de usuário <strong>do</strong> YaST.<br />

28.3.1 Configuran<strong>do</strong> um servi<strong>do</strong>r Samba<br />

com o YaST<br />

Para configurar o servi<strong>do</strong>r Samba, inicie o YaST e selecione Serviços de Rede →<br />

Servi<strong>do</strong>r Samba. Quan<strong>do</strong> o módulo é inicia<strong>do</strong> pela primeira vez, a caixa de diálogo<br />

Instalação <strong>do</strong> Servi<strong>do</strong>r Samba é iniciada, solicitan<strong>do</strong> que você tome algumas decisões<br />

básicas em relação à administração <strong>do</strong> servi<strong>do</strong>r. No final da configuração, a senha de<br />

root <strong>do</strong> Samba é solicitada. Nas inicializações seguintes, a caixa de diálogo Configuração<br />

<strong>do</strong> Servi<strong>do</strong>r Samba será exibida.<br />

A caixa de diálogo Instalação <strong>do</strong> Servi<strong>do</strong>r Samba consiste em duas etapas:<br />

Nome de Grupo de Trabalho ou Domínio<br />

Selecione um nome existente em Nome de Grupo de Trabalho ou Domínio ou<br />

digite um novo nome e clique em Próximo.<br />

Samba 529


530 Referência<br />

Tipo de Servi<strong>do</strong>r Samba<br />

Na etapa seguinte, especifique se o servi<strong>do</strong>r deverá funcionar como PDC e clique<br />

em Próximo.<br />

É possível mudar todas as configurações na Instalação <strong>do</strong> Servi<strong>do</strong>r Samba<br />

posteriormente na caixa de diálogo Configuração <strong>do</strong> Servi<strong>do</strong>r Samba com a guia<br />

Identidade.<br />

Na primeira vez que você iniciar o módulo <strong>do</strong> servi<strong>do</strong>r Samba, a caixa de diálogo<br />

Configuração <strong>do</strong> Servi<strong>do</strong>r Samba é exibida logo após a caixa de diálogo Instalação <strong>do</strong><br />

Servi<strong>do</strong>r Samba. Ela contém três guias:<br />

Inicialização<br />

Na guia Inicialização, você pode definir como iniciar o servi<strong>do</strong>r Samba. Para iniciar<br />

o serviço sempre que o sistema for inicializa<strong>do</strong>, clique em Durante a Inicialização.<br />

Para ativar a inicialização automática, escolha Manualmente. Mais informações<br />

sobre como iniciar um servi<strong>do</strong>r Samba são fornecidas na Seção 28.2, “Inician<strong>do</strong> e<br />

interrompen<strong>do</strong> o Samba” (p 529).<br />

Nesta guia, também é possível abrir portas no seu firewall. Para fazer isso, selecione<br />

Abrir Porta no Firewall. Se tiver várias interfaces de rede, clique em Detalhes <strong>do</strong><br />

Firewall, selecione as interfaces e clique em OK para selecionar a interface de rede<br />

para os serviços Samba.<br />

Compartilhamentos<br />

Nesta guia, determine os compartilhamentos <strong>do</strong> Samba a serem ativa<strong>do</strong>s. Há alguns<br />

compartilhamentos predefini<strong>do</strong>s, como homes e impressoras. Use Alternar Status<br />

para alternar entre Ativo e Inativo. Clique em Adicionar para adicionar novos<br />

compartilhamentos e Apagar para apagar o compartilhamento seleciona<strong>do</strong>.<br />

Identidade<br />

Em Identidade, você pode determinar o <strong>do</strong>mínio ao qual o host deve ser associa<strong>do</strong><br />

(Configurações de Base) e se um nome de host alternativo deve ser usa<strong>do</strong> na rede<br />

(Nome de Host <strong>do</strong> NetBIOS). Para definir configurações globais de especialista ou<br />

autenticação de usuário, clique em Configurações de Usuário.<br />

Clique em Concluir para fechar a configuração.


28.3.2 Administração da Web com o SWAT<br />

Uma ferramenta alternativa para a administração <strong>do</strong> servi<strong>do</strong>r Samba é o SWAT<br />

(Ferramenta de Administração da Web <strong>do</strong> Samba). Ele <strong>of</strong>erece uma interface da Web<br />

simples para configuração <strong>do</strong> servi<strong>do</strong>r Samba. Para usar o SWAT, abra http://<br />

localhost:901 e efetue login como usuário root. Se você não tiver uma conta<br />

root especial <strong>do</strong> Samba, use a conta root <strong>do</strong> sistema.<br />

NOTA: Ativan<strong>do</strong> o SWAT<br />

Após a instalação <strong>do</strong> servi<strong>do</strong>r Samba, o SWAT não estará ativa<strong>do</strong>. Para ativálo,<br />

abra Serviços de Rede → Serviços de Rede (xinetd) no YaST, habilite a<br />

configuração <strong>do</strong>s serviços de rede, selecione swat na tabela e clique em Alternar<br />

Status (Ativa<strong>do</strong> ou Desativa<strong>do</strong>).<br />

28.3.3 Configuran<strong>do</strong> o servi<strong>do</strong>r<br />

manualmente<br />

Se pretender usar o Samba como servi<strong>do</strong>r, instale samba. O arquivo de configuração<br />

<strong>do</strong> Samba é o /etc/samba/smb.conf. Esse arquivo pode ser dividi<strong>do</strong> em duas<br />

partes lógicas. A seção [global] contém as configurações central e global. As seções<br />

[share] contêm os compartilhamentos individuais de arquivo e impressora. Com<br />

essa abordagem, detalhes relativos aos compartilhamentos podem ser defini<strong>do</strong>s de<br />

forma diferenciada ou global na seção [global], que aumenta a transparência<br />

estrutural <strong>do</strong> arquivo de configuração.<br />

A seção global<br />

Os seguintes parâmetros da seção [global] precisam de ajustes para atender aos<br />

requisitos de configuração da sua rede para que outras máquinas possam acessar seu<br />

servi<strong>do</strong>r Samba via SMB em um ambiente Win<strong>do</strong>ws.<br />

workgroup = TUX-NET<br />

Essa linha designa o servi<strong>do</strong>r Samba a um grupo de trabalho. Substitua o TUX-NET<br />

por um grupo de trabalho apropria<strong>do</strong> <strong>do</strong> seu ambiente de rede. Seu servi<strong>do</strong>r Samba<br />

aparece sob o nome DNS, a menos que esse nome tenha si<strong>do</strong> designa<strong>do</strong> a alguma<br />

outra máquina na rede. Se o nome DNS não estiver disponível, defina o nome <strong>do</strong><br />

Samba 531


532 Referência<br />

servi<strong>do</strong>r usan<strong>do</strong> netbiosname=MYNAME. Consulte mansmb.conf para obter<br />

mais detalhes sobre esse parâmetro.<br />

os level = 2<br />

Esse parâmetro determina se seu servi<strong>do</strong>r Samba tenta se tornar um LMB (Local<br />

Master Browser - Browser Master Local) para seu grupo de trabalho. Escolha um<br />

valor bem reduzi<strong>do</strong> para poupar a rede <strong>do</strong> Win<strong>do</strong>ws existente de perturbações<br />

causadas por um servi<strong>do</strong>r Samba mal configura<strong>do</strong>. Mais informações sobre esse<br />

importante tópico podem ser encontradas nos arquivos BROWSING.txt e<br />

BROWSING-Config.txt, no subdiretório text<strong>do</strong>cs da <strong>do</strong>cumentação <strong>do</strong><br />

pacote.<br />

Se nenhum outro servi<strong>do</strong>r SMB estiver presente na rede (como o servi<strong>do</strong>r Win<strong>do</strong>ws<br />

NT ou 2000) e você desejar que o servi<strong>do</strong>r Samba mantenha uma lista de to<strong>do</strong>s os<br />

sistemas presentes no ambiente local, ajuste o os level em um valor mais alto<br />

(por exemplo, 65). Assim, o servi<strong>do</strong>r Samba é seleciona<strong>do</strong> como LMB para a rede<br />

local.<br />

Ao mudar essa configuração, reflita bem sobre como isso pode afetar um ambiente<br />

de rede Win<strong>do</strong>ws existente. Primeiro, teste as mudanças em uma rede isolada ou<br />

em um horário não crítico <strong>do</strong> dia.<br />

suporte WINS e servi<strong>do</strong>r WINS<br />

Para integrar o servi<strong>do</strong>r Samba a uma rede Win<strong>do</strong>ws existente <strong>do</strong>tada de um servi<strong>do</strong>r<br />

WINS ativo, habilite a opção wins server e defina seu valor para o endereço<br />

IP desse servi<strong>do</strong>r WINS.<br />

Se as suas máquinas <strong>do</strong> Win<strong>do</strong>ws estiverem conectadas a sub-redes separadas e<br />

ainda assim precisarem levar as restantes em consideração, será necessário<br />

configurar um servi<strong>do</strong>r WINS. Para transformar um servi<strong>do</strong>r Samba em um servi<strong>do</strong>r<br />

WINS, defina a opção wins support = Yes. Verifique se somente um servi<strong>do</strong>r<br />

Samba da rede possui essa configuração habilitada. As opções wins server e<br />

wins support nunca devem ficar habilitadas ao mesmo tempo no arquivo smb<br />

.conf.<br />

Compartilhamentos<br />

Os exemplos a seguir ilustram como uma unidade de CD-ROM e os diretórios <strong>do</strong> usuário<br />

(homes) são disponibiliza<strong>do</strong>s aos clientes SMB.


[cdrom]<br />

Para evitar a disponibilização acidental da unidade de CD-ROM, essas linhas são<br />

desativadas com marcas de comentários (nesse caso, pontos-e-vírgulas). Remova<br />

os pontos-e-vírgulas da primeira coluna para compartilhar a unidade <strong>do</strong> CD-ROM<br />

com o Samba.<br />

Exemplo 28.1 Compartilhamento de CD-ROM<br />

;[cdrom]<br />

; comment = Linux CD-ROM<br />

; path = /media/cdrom<br />

; locking = No<br />

[cdrom] e comment<br />

A entrada [cdrom] é o nome <strong>do</strong> compartilhamento que pode ser visto por<br />

to<strong>do</strong>s os clientes SMB na rede. Um comment adicional pode ser feito para<br />

enriquecer a descrição <strong>do</strong> compartilhamento.<br />

path = /media/cdrom<br />

path exporta o diretório /media/cdrom.<br />

Por meio de uma configuração padrão bastante restritiva, esse tipo de<br />

compartilhamento somente é disponibiliza<strong>do</strong> aos usuários presentes nesse sistema.<br />

Se esse compartilhamento precisar ser disponibiliza<strong>do</strong> a to<strong>do</strong>s, adicione uma linha<br />

guest ok = yes à configuração. Essa configuração concede permissões de<br />

leitura a to<strong>do</strong>s na rede. Recomenda-se muita cautela no manejo desse parâmetro.<br />

Isso se aplica ainda mais intensamente ao uso desse parâmetro na seção [global].<br />

[homes]<br />

O compartilhamento [home] possui especial importância aqui. Se o usuário possuir<br />

uma conta e senha válidas para o servi<strong>do</strong>r de arquivos Linux e seu próprio diretório<br />

pessoal, pode ficar conecta<strong>do</strong> a ele.<br />

Exemplo 28.2 Share homes<br />

[homes]<br />

comment = Home Directories<br />

valid users = %S<br />

browseable = No<br />

read only = No<br />

create mask = 0640<br />

directory mask = 0750<br />

Samba 533


534 Referência<br />

[homes]<br />

Contanto que não haja nenhum outro compartilhamento usan<strong>do</strong> o nome de<br />

compartilhamento <strong>do</strong> usuário que estabelece a conexão ao servi<strong>do</strong>r SMB, um<br />

compartilhamento é gera<strong>do</strong> dinamicamente usan<strong>do</strong> as diretivas de<br />

compartilhamento [homes]. O nome resultante <strong>do</strong> compartilhamento é o<br />

nome <strong>do</strong> usuário.<br />

valid users = %S<br />

%S é substituí<strong>do</strong> pelo nome concreto <strong>do</strong> compartilhamento logo que uma<br />

conexão tenha si<strong>do</strong> estabelecida com sucesso. Para um compartilhamento<br />

[homes], sempre será usa<strong>do</strong> o nome <strong>do</strong> usuário. Conseqüentemente, os<br />

direitos de acesso ao compartilhamento de um usuário ficam restritos<br />

exclusivamente a ele.<br />

browseable = No<br />

Essa configuração torna o compartilhamento invisível no ambiente da rede.<br />

read only = No<br />

Por padrão, o Samba proíbe o acesso de gravação aos compartilhamentos<br />

exporta<strong>do</strong>s por meio <strong>do</strong> parâmetro read only = Yes. Para tornar um<br />

compartilhamento gravável, defina o valor read only = No, que<br />

corresponde a writeable = Yes.<br />

create mask = 0640<br />

Como os sistemas que não se baseiam no MS Win<strong>do</strong>ws NT não compreendem<br />

o conceito de permissões <strong>do</strong> UNIX, não são capazes de designar permissões<br />

ao criar um arquivo. O parâmetro create mask define as permissões de<br />

acesso designadas a arquivos recém-cria<strong>do</strong>s. Isso somente se aplica a<br />

compartilhamentos graváveis. Na verdade, essa configuração significa que o<br />

proprietário possui permissões de leitura e gravação e que os membros <strong>do</strong><br />

grupo principal <strong>do</strong> proprietário possuem permissões de leitura. valid users<br />

= %S impede o acesso de leitura mesmo se o grupo possuir permissões de<br />

leitura. Para que o grupo tenha acesso de leitura ou gravação, desative a linha<br />

valid users = %S.<br />

Níveis de segurança<br />

Para aumentar a segurança, cada acesso a compartilhamento pode ser protegi<strong>do</strong> por<br />

senha. O SMB possui três formas de verificar as permissões:


Segurança no nível <strong>do</strong> compartilhamento (security = share)<br />

Uma senha é rigorosamente designada a um compartilhamento. To<strong>do</strong>s que conheçam<br />

essa senha possuem acesso ao compartilhamento.<br />

Segurança no nível <strong>do</strong> usuário (security = user)<br />

Essa variação introduz o conceito <strong>do</strong> usuário ao SMB. Cada usuário precisa se<br />

registrar no servi<strong>do</strong>r com sua própria senha. Após o registro, o servi<strong>do</strong>r pode<br />

conceder acesso a compartilhamentos exporta<strong>do</strong>s específicos condiciona<strong>do</strong>s a<br />

nomes de usuários.<br />

Segurança no nível <strong>do</strong> servi<strong>do</strong>r (security = server):<br />

Para seus clientes, o Samba age como se estivesse operan<strong>do</strong> em mo<strong>do</strong> de nível de<br />

usuário. Entretanto, ele encaminha todas as consultas de senha a outro servi<strong>do</strong>r de<br />

mo<strong>do</strong> de nível de usuário, que se encarrega da autenticação. Essa configuração<br />

pressupõe um parâmetro adicional (password server).<br />

A seleção de segurança no nível de compartilhamento, usuário ou servi<strong>do</strong>r se aplica a<br />

to<strong>do</strong> o servi<strong>do</strong>r. Não é possível <strong>of</strong>erecer compartilhamentos individuais de uma<br />

configuração de servi<strong>do</strong>r com segurança no nível de compartilhamento e outros com<br />

segurança no nível de usuário. Entretanto, é possível executar um servi<strong>do</strong>r Samba<br />

separa<strong>do</strong> para cada endereço IP configura<strong>do</strong> em um sistema.<br />

Para obter mais informações sobre esse assunto, consulte a Coleção HOWTO <strong>do</strong> Samba.<br />

No caso de vários servi<strong>do</strong>res em um sistema, preste atenção nas opções interfaces<br />

e bind interfaces only.<br />

28.4 Configuran<strong>do</strong> clientes<br />

Os clientes somente podem acessar o servi<strong>do</strong>r Samba via TCP/IP. O NetBEUI e o<br />

NetBIOS via IPX não podem ser usa<strong>do</strong>s com o Samba.<br />

28.4.1 Configuran<strong>do</strong> um cliente Samba com<br />

o YaST<br />

Configure um cliente Samba para acessar recursos (arquivos ou impressoras) no servi<strong>do</strong>r<br />

Samba. Digite o <strong>do</strong>mínio ou grupo de trabalho na caixa de diálogo Grupo de Trabalho<br />

Samba. Clique em Pesquisar para exibir to<strong>do</strong>s os grupos ou <strong>do</strong>mínios disponíveis, que<br />

Samba 535


podem ser seleciona<strong>do</strong>s com o mouse. Se você ativar Usar também informações SMB<br />

para a Autenticação de Linux, a autenticação <strong>do</strong> usuário será executada no servi<strong>do</strong>r<br />

Samba. Após concluir todas as configurações, clique em Concluir para finalizar a<br />

configuração.<br />

28.4.2 Win<strong>do</strong>ws 9x e ME<br />

O Win<strong>do</strong>ws 9x e ME já vêm com suporte para TCP/IP. Entretanto, esse suporte não é<br />

instala<strong>do</strong> como o padrão. Para adicionar TCP/IP, vá até Painel de Controle → Sistema<br />

e escolha Adicionar → Protocolos → TCP/IP da Micros<strong>of</strong>t. Após reinicializar sua<br />

máquina com o Win<strong>do</strong>ws, procure o servi<strong>do</strong>r Samba clican<strong>do</strong> duas vezes no ícone de<br />

área de trabalho <strong>do</strong> ambiente de rede.<br />

DICA<br />

536 Referência<br />

Para usar uma impressora no servi<strong>do</strong>r Samba, instale a unidade da impressora<br />

padrão Apple-PostScript na versão correspondente <strong>do</strong> Win<strong>do</strong>ws. É melhor<br />

vincular essa unidade à fila de impressão <strong>do</strong> Linux, que aceita o Postscript como<br />

um formato de entrada.<br />

28.5 Samba como servi<strong>do</strong>r de login<br />

Em redes onde se encontram pre<strong>do</strong>minantemente clientes Win<strong>do</strong>ws, muitas vezes é<br />

preferível que os usuários somente possam se registrar com uma conta e senha váli<strong>do</strong>s.<br />

Em uma rede baseada no Win<strong>do</strong>ws, essa tarefa é realizada por um servi<strong>do</strong>r Win<strong>do</strong>ws<br />

NT configura<strong>do</strong> como um controla<strong>do</strong>r de <strong>do</strong>mínio primário (PDC), mas também pode<br />

ser executada com a ajuda de um servi<strong>do</strong>r Samba. As entradas a serem feitas na seção<br />

[global] de smb.conf aparecem no Exemplo 28.3, “Seção global em smb.conf”<br />

(p 536).<br />

Exemplo 28.3 Seção global em smb.conf<br />

[global]<br />

workgroup = TUX-NET<br />

<strong>do</strong>main logons = Yes<br />

<strong>do</strong>main master = Yes


Se forem usadas senhas criptografadas para fins de verificação (essa é a configuração<br />

padrão com instalações bem mantidas <strong>do</strong> MS Win<strong>do</strong>ws 9x, MS Win<strong>do</strong>ws NT 4.0 <strong>do</strong><br />

pacote de serviços 3, e to<strong>do</strong>s os produtos posteriores) o servi<strong>do</strong>r Samba precisará ser<br />

capaz de tratá-las. A entrada encrypt passwords = yes na seção [global]<br />

permite isso (com a versão 3 <strong>do</strong> Samba, esse passa a ser o padrão). Além disso, é<br />

necessário preparar contas e senhas de usuários em formato de criptografia compatível<br />

com o Win<strong>do</strong>ws. Para isso, use o coman<strong>do</strong> smbpasswd -a name. Crie a conta de<br />

<strong>do</strong>mínio <strong>do</strong>s computa<strong>do</strong>res, exigida pelo conceito de <strong>do</strong>mínio <strong>do</strong> Win<strong>do</strong>ws NT, com<br />

os seguintes coman<strong>do</strong>s:<br />

Exemplo 28.4 Configuran<strong>do</strong> uma conta de máquina<br />

useradd hostname\$<br />

smbpasswd -a -m hostname<br />

Com o coman<strong>do</strong> useradd, um símbolo de cifrão é adiciona<strong>do</strong>. O coman<strong>do</strong><br />

smbpasswd insere esse símbolo automaticamente quan<strong>do</strong> o parâmetro -m é usa<strong>do</strong>.<br />

O exemplo de configuração comenta<strong>do</strong> (/usr/share/<strong>do</strong>c/packages/Samba/<br />

examples/smb.conf.SuSE) contém configurações que automatizam essa tarefa.<br />

Exemplo 28.5 Configuração automatizada de uma conta de máquina<br />

add machine script = /usr/sbin/useradd -g nogroup -c "NT Machine Account" \<br />

-s /bin/false %m\$<br />

Para verificar se o Samba pode executar esse script corretamente, escolha um usuário<br />

<strong>do</strong> Samba com as permissões de administra<strong>do</strong>r obrigatórias. Para isso, selecione um<br />

usuário e adicione-o ao grupo ntadmin. Depois disso, será possível designar a to<strong>do</strong>s<br />

os usuários pertencentes a esse grupo Linux o status de Domain Admin com o<br />

coman<strong>do</strong>:<br />

net groupmap add ntgroup="Domain Admins" unixgroup=ntadmin<br />

Mais informações sobre esse tópico aparecem no Capítulo 12 da Coleção HOWTO <strong>do</strong><br />

Samba, contida no arquivo /usr/share/<strong>do</strong>c/packages/samba/<br />

Samba-HOWTO-Collection.pdf.<br />

28.6 Mais informações<br />

Informações detalhadas sobre o Samba estão disponíveis na <strong>do</strong>cumentação digital.<br />

Digite apropos samba na linha de coman<strong>do</strong> para exibir algumas páginas <strong>do</strong> manual<br />

ou simplesmente pesquise no diretório /usr/share/<strong>do</strong>c/packages/samba, se<br />

Samba 537


538 Referência<br />

a <strong>do</strong>cumentação <strong>do</strong> Samba estiver instalada, para obter mais <strong>do</strong>cumentação e exemplos<br />

online. Uma configuração de exemplo comentada (smb.conf.SuSE) pode ser<br />

encontrada no subdiretório exemplos.<br />

A Coleção HOWTO fornecida pela equipe Samba inclui uma seção sobre a solução de<br />

problemas. Além disso, a Parte V <strong>do</strong> <strong>do</strong>cumento <strong>of</strong>erece um guia passo a passo para a<br />

verificação da configuração. A coleção HOWTO <strong>do</strong> Samba pode ser encontrada em<br />

/usr/share/<strong>do</strong>c/packages/samba/Samba-HOWTO-Collection.pdf<br />

após a instalação <strong>do</strong> pacote samba-<strong>do</strong>c.


O Servi<strong>do</strong>r Proxy Squid<br />

O Squid é um proxy de cache amplamente utiliza<strong>do</strong> em plataformas Linux e UNIX.<br />

Isso significa que armazena objetos da Internet solicita<strong>do</strong>s, como da<strong>do</strong>s em um servi<strong>do</strong>r<br />

da Web ou FTP, em uma máquina mais próxima da estação de trabalho solicitante <strong>do</strong><br />

que o servi<strong>do</strong>r. Este capítulo discute sua configuração, as configurações necessárias<br />

para executá-lo, como configurar o sistema para realizar um proxy transparente, como<br />

reunir estatísticas sobre o uso <strong>do</strong> cache com a ajuda <strong>do</strong>s programas, como o Calamaris<br />

e o cachemgr, e como filtrar conteú<strong>do</strong>s da Web com o squidGuard.<br />

O Squid atua como um proxy de cache. Redireciona pedi<strong>do</strong>s de objeto <strong>do</strong>s clientes<br />

(neste caso, de browsers da Web) para o servi<strong>do</strong>r. Quan<strong>do</strong> os objetos solicita<strong>do</strong>s chegam<br />

<strong>do</strong> servi<strong>do</strong>r, ele fornece os objetos ao cliente e mantém uma cópia deles no cache <strong>do</strong><br />

disco rígi<strong>do</strong>. Uma das vantagens <strong>do</strong> cache é que vários clientes que solicitem o mesmo<br />

objeto podem ser atendi<strong>do</strong>s a partir <strong>do</strong> cache <strong>do</strong> disco rígi<strong>do</strong>. Este procedimento permite<br />

que os clientes recebam os da<strong>do</strong>s muito mais rapidamente em relação à Internet. Além<br />

disso, reduz o tráfego da rede.<br />

Junto com o cache real, o Squid <strong>of</strong>erece uma ampla gama de recursos. Entre eles,<br />

distribuir a carga entre hierarquias de intercomunicação <strong>do</strong>s servi<strong>do</strong>res proxy, definir<br />

listas de controle de acesso restrito para to<strong>do</strong>s os clientes que acessam o proxy, permitir<br />

ou negar o acesso a páginas da Web específicas com a ajuda de outros aplicativos e<br />

gerar estatísticas sobre páginas da Web visitadas com freqüência para avaliação <strong>do</strong>s<br />

hábitos de navegação <strong>do</strong>s usuários. O Squid não é um proxy genérico. Normalmente,<br />

ele funciona como proxy apenas para conexões HTTP. Ele também tem suporte para<br />

protocolos FTP, Gopher, SSL e WAIS, mas não para outros protocolos da Internet,<br />

como Real Audio, notícias ou videoconferência. Como o Squid tem suporte apenas<br />

para o protocolo UDP a fim de fornecer comunicação entre caches diferentes, não há<br />

suporte para vários outros programas multimídia.<br />

29<br />

O Servi<strong>do</strong>r Proxy Squid 539


540 Referência<br />

29.1 Alguns fatos sobre caches proxy<br />

Como cache proxy, o Squid pode ser usa<strong>do</strong> de várias maneiras. Quan<strong>do</strong> combina<strong>do</strong><br />

com um firewall, pode ajudar na segurança. Vários proxies podem ser usa<strong>do</strong>s juntos.<br />

Também pode determinar os tipos de objetos que devem ser armazena<strong>do</strong>s no cache e<br />

durante quanto tempo.<br />

29.1.1 Squid e segurança<br />

É possível usar o Squid junto com um firewall para proteger as redes internas de acesso<br />

externo usan<strong>do</strong> um cache proxy. O firewall nega acesso de to<strong>do</strong>s os clientes a serviços<br />

externos, exceto o Squid. Todas as conexões da Web devem ser estabelecidas pelo<br />

proxy. Com esta configuração, o Squid controla totalmente o acesso à Web.<br />

Se a configuração <strong>do</strong> firewall incluir um DMZ, o proxy deve operar dentro desta zona.<br />

A Seção 29.5, “Configuran<strong>do</strong> um proxy transparente” (p 551) descreve como implementar<br />

um proxytransparente. Isto simplifica a configuração <strong>do</strong>s clientes, porque neste caso<br />

eles não necessitam de informações sobre o proxy.<br />

29.1.2 Vários caches<br />

Várias instâncias <strong>do</strong> Squid podem ser configuradas para trocar objetos entre eles. Isto<br />

reduz a carga total <strong>do</strong> sistema e aumenta as chances de encontrar um objeto já existente<br />

na rede local. Também é possível configurar hierarquias de cache, de maneira que um<br />

cache seja capaz de encaminhar solicitações de objeto para caches irmãos ou para um<br />

cache pai, fazen<strong>do</strong> com que obtenha objetos de outro cache na rede local ou diretamente<br />

da origem.<br />

Escolher a topologia adequada para a hierarquia de cache é muito importante, porque<br />

não é desejável aumentar o tráfego geral na rede. Para uma rede muito grande, faz<br />

senti<strong>do</strong> configurar um servi<strong>do</strong>r proxy para toda subrede e conectá-los a um proxy pai,<br />

que por sua vez é conecta<strong>do</strong> ao cache <strong>do</strong> proxy ISP.<br />

Todas estas comunicações são tratadas pelo ICP (Internet cache protocol) que é<br />

executa<strong>do</strong> no protocolo UDP. As transferências de da<strong>do</strong>s entre caches são tratadas com<br />

HTTP (hypertext transmission protocol) basea<strong>do</strong> no TCP.


Para encontrar o servi<strong>do</strong>r mais adequa<strong>do</strong> <strong>do</strong> qual obter os objetos, um cache envia uma<br />

solicitação ICP a to<strong>do</strong>s os proxies irmãos. Estes respondem às solicitações via repostas<br />

ICP com um código HIT se o objeto foi detecta<strong>do</strong> ou, em caso contrário, com um MISS.<br />

Se forem encontradas várias respostas HIT, o servi<strong>do</strong>r proxy decide de qual servi<strong>do</strong>r<br />

fazer <strong>do</strong>wnload, dependen<strong>do</strong> de fatores como que cache enviou a resposta mais rápida<br />

ou qual está mais próximo. Se não for recebida nenhuma resposta satisfatória, a<br />

solicitação é enviada ao cache pai.<br />

DICA<br />

Para evitar duplicação de objetos em vários caches na rede, são usa<strong>do</strong>s outros<br />

protocolos ICP, como CARP (cache array routing protocol) ou HTCP (hypertext<br />

cache protocol). Quanto maior o número de objetos manti<strong>do</strong>s na rede, maior<br />

a possibilidade de localizar o deseja<strong>do</strong>.<br />

29.1.3 Armazenan<strong>do</strong> objetos da Internet em<br />

cache<br />

Nem to<strong>do</strong>s os objetos disponíveis na rede são estáticos. Há muitas páginas CGI,<br />

conta<strong>do</strong>res de visitantes e <strong>do</strong>cumentos com conteú<strong>do</strong> SSL criptografa<strong>do</strong> que são gera<strong>do</strong>s<br />

dinamicamente. Objetos como estes não são armazena<strong>do</strong>s no cache porque mudam toda<br />

vez que são acessa<strong>do</strong>s.<br />

A questão é com relação a quanto tempo to<strong>do</strong>s os outros objetos armazena<strong>do</strong>s no cache<br />

devem permanecer ali. Para determiná-lo, to<strong>do</strong>s os objetos no cache recebem a atribuição<br />

de um ou vários esta<strong>do</strong>s possíveis. Os servi<strong>do</strong>res da Web e proxy descobrem o status<br />

de um objeto adicionan<strong>do</strong> cabeçalhos aos objetos, como “Última modificação” ou<br />

“Vencimento” e a data correspondente. Também são usa<strong>do</strong>s outros cabeçalhos<br />

especifican<strong>do</strong> que objetos não devem ser armazena<strong>do</strong>s no cache.<br />

Os objetos no cache normalmente são substituí<strong>do</strong>s, devi<strong>do</strong> à falta de espaço livro no<br />

disco rígi<strong>do</strong>, usan<strong>do</strong> algoritmos como LRU (last recently used). Basicamente, significa<br />

que o proxy elimina os objetos que não foram solicita<strong>do</strong>s pelo tempo mais longo.<br />

O Servi<strong>do</strong>r Proxy Squid 541


542 Referência<br />

29.2 Requisitos <strong>do</strong> sistema<br />

O fator mais importante é determinar o máximo de carga de rede que o sistema deve<br />

suportar. Portanto, é importante prestar mais atenção aos picos de carga, porque podem<br />

ser superiores a quatro vezes a média <strong>do</strong> dia. Quan<strong>do</strong> em dúvida, seria melhor<br />

superestimar os requisitos <strong>do</strong> sistema, porque com o Squid trabalhan<strong>do</strong> no limite das<br />

suas capacidades pode haver uma perda grave de qualidade <strong>do</strong> serviço. As seções a<br />

seguir assinalam os fatores <strong>do</strong> sistema em ordem de importância.<br />

29.2.1 Discos rígi<strong>do</strong>s<br />

A velocidade exerce uma importante função no processo de cache, de maneira que este<br />

fator merece uma atenção especial. Para discos rígi<strong>do</strong>s, este parâmetro é descrito como<br />

tempo de busca aleatório, medi<strong>do</strong> em milissegun<strong>do</strong>s. Como os blocos de da<strong>do</strong>s que o<br />

Squid lê no disco rígi<strong>do</strong> ou grava dele tendem a ser pequenos, o tempo de busca <strong>do</strong><br />

disco rígi<strong>do</strong> é mais importante que seus throughput de da<strong>do</strong>s. Para fins de um proxy,<br />

os discos rígi<strong>do</strong>s com velocidades de alta rotação são provavelmente a melhor opção,<br />

porque permitem que a cabeça de leitura-gravação seja posicionada no ponto deseja<strong>do</strong><br />

mais rapidamente. Uma possibilidade para acelerar o sistema é usar vários discos<br />

simultaneamente ou empregar matrizes de RAID de distribuição.<br />

29.2.2 Tamanho <strong>do</strong> cache <strong>do</strong> disco<br />

Em um cache pequeno, a possibilidade de um HIT (encontrar o objeto solicita<strong>do</strong> já<br />

localiza<strong>do</strong> ali) é pequena, porque o cache é facilmente arquiva<strong>do</strong> e os objetos menos<br />

solicita<strong>do</strong>s são substituí<strong>do</strong>s por outros mais novos. Se, por exemplo, um GB estiver<br />

disponível para o cache e os usuários só navegarem 10 MB por dia, levaria mais de 100<br />

dias para preencher o cache.<br />

A maneira mais fácil de determinar o tamanho de cache necessário é considerar a taxa<br />

máxima de transferência da conexão. Com uma conexão de 1 Mbit/s, a taxa máxima<br />

de transferência é de 125 KB/s. Se to<strong>do</strong> este tráfego terminar no cache, em uma hora<br />

teria adiciona<strong>do</strong> 450 MB e, consideran<strong>do</strong>-se que to<strong>do</strong> esse tráfego seja gera<strong>do</strong> em apenas<br />

oito horas de trabalho, alcançaria 3,6 GB em um dia. Como a conexão normalmente<br />

não é usada até o seu limite superior de volume, pode-se presumir que o volume de<br />

da<strong>do</strong>s total trata<strong>do</strong> pelo cache seja aproximadamente de 2 GB. Por esta razão é necessário


um espaço em disco de 2 GB no exemplo, para que o Squid guarde os da<strong>do</strong>s interessantes<br />

pesquisa<strong>do</strong>s no cache.<br />

29.2.3 RAM<br />

A quantidade de memória (RAM) de que o Squid necessita é diretamente relacionada<br />

ao número de objetos no cache. O Squid também armazena referências de objeto e<br />

objetos solicita<strong>do</strong>s freqüentemente na memória principal <strong>do</strong> cache para acelerar a<br />

recuperação destes da<strong>do</strong>s. A memória de acesso aleatório é muito mais rápida <strong>do</strong> que<br />

um disco rígi<strong>do</strong>.<br />

Além disso, há outros da<strong>do</strong>s que o Squid necessita manter na memória, como uma<br />

tabela com to<strong>do</strong>s os endereços IP trata<strong>do</strong>s, um cache de nome de <strong>do</strong>mínio exato, os<br />

objetos solicita<strong>do</strong>s com mais freqüência, listas de controle de acesso, buffers e mais.<br />

É muito importante ter memória suficiente para o processo Squid, porque o desempenho<br />

<strong>do</strong> sistema é muito reduzi<strong>do</strong> se tiver que se troca<strong>do</strong> para o disco. A ferramenta<br />

cachemgr.cgi pode ser usada para gerenciamento da memória de cache. Esta ferramenta<br />

é apresentada na Seção 29.6, “cachemgr.cgi” (p 554). Sites com grande tráfego de rede<br />

devem considerar o uso de um sistema AMD64 ou Intel EM64T com memória superior<br />

a 4 GB.<br />

29.2.4 CPU<br />

O Squid não é um programa que necessite de uso intenso de CPU. A carga <strong>do</strong><br />

processa<strong>do</strong>r só é aumentada enquanto os conteú<strong>do</strong>s <strong>do</strong> cache são armazena<strong>do</strong>s ou<br />

verifica<strong>do</strong>s. O uso de uma máquina multiprocessa<strong>do</strong>ra não aumenta o desempenho <strong>do</strong><br />

sistema. Para aumentar a eficiência, é melhor comprar discos mais rápi<strong>do</strong>s ou adicionar<br />

mais memória.<br />

29.3 Inician<strong>do</strong> o Squid<br />

O Squid já é pré-configura<strong>do</strong> no <strong>SUSE</strong> Linux, é possível iniciá-lo logo após a instalação.<br />

Para assegurar uma inicialização mais fácil, a rede deve ser configurada de maneira<br />

que pelo menos um servi<strong>do</strong>r e a Internet possam ser alcança<strong>do</strong>s. Pode haver problemas<br />

se for usada uma conexão discada com uma configuração DNS dinâmica. Neste caso,<br />

O Servi<strong>do</strong>r Proxy Squid 543


544 Referência<br />

deve ser digita<strong>do</strong> pelo menos o nome <strong>do</strong> servi<strong>do</strong>r, porque o Squid não inicia se não<br />

detectar um servi<strong>do</strong>r DNS em /etc/resolv.conf.<br />

29.3.1 Coman<strong>do</strong>s para iniciar e interromper<br />

o Squid<br />

Para iniciar o Squid, digite rcsquid start na linha de coman<strong>do</strong> como root. Na<br />

inicialização, a estrutura <strong>do</strong> diretório <strong>do</strong> cache deve ser definida primeiro em /var/<br />

cache/squid. Isto é feito automaticamente pelo script de inicialização /etc/init<br />

.d/squid e pode levar alguns segun<strong>do</strong> ou mesmo minutos. Se aparecer concluí<strong>do</strong><br />

à direita em verde, o Squid foi carrega<strong>do</strong> com êxito. Para testar a funcionalidade <strong>do</strong><br />

Squid no sistema local, digite localhost como proxy e 3128 como porta no browser.<br />

Para permitir que usuários <strong>do</strong> sistema local e outros sistemas acessem o Squid e a<br />

Internet, mude a entrada nos arquivos de configuração /etc/squid/squid.conf<br />

de http_access deny all para http_access allow all. Entretanto, ao<br />

fazer isto, leve em conta que, com esta ação, o Squid fica totalmente acessível a qualquer<br />

um. Assim, defina ACLs que acessam o controle ao proxy. Mais informações sobre<br />

isto estão disponíveis na Seção 29.4.2, “Opções de controles de acesso” (p 549).<br />

Após modificar o arquivo de configuração /etc/squid/squid.conf, o Squid<br />

deve recarregar o arquivo de configuração. Faça isto com rcsquid reload. Outra<br />

alternativa é reiniciar o Squid com rcsquid restart.<br />

O coman<strong>do</strong> rcsquid status pode ser usa<strong>do</strong> para verificar se o proxy está sen<strong>do</strong><br />

executa<strong>do</strong>. O coman<strong>do</strong> rcsquid stop faz o Squid desligar. Pode demorar um pouco,<br />

porque o Squid espera até meio minuto (shut<strong>do</strong>wn_lifetime option in /etc/<br />

squid/squid.conf) antes de soltar as conexões para os clientes e gravar seus da<strong>do</strong>s<br />

no disco.<br />

ATENÇÃO: Encerran<strong>do</strong> o Squid<br />

Encerrar o Squid com kill ou killall pode danificar o cache. Para poder<br />

reiniciar o Squid, o cache danifica<strong>do</strong> deve ser apaga<strong>do</strong>.<br />

Se o Squid morrer após um curto perío<strong>do</strong> de tempo mesmo que tenha si<strong>do</strong> inicia<strong>do</strong> com<br />

êxito, verifique se há uma entrada de nome de servi<strong>do</strong>r com falha ou se o arquivo /etc/<br />

resolv.conf está faltan<strong>do</strong>. O Squid registra a causa da falha de inicialização no


arquivo /var/log/squid/cache.log. Se o Squid tiver que ser carrega<strong>do</strong><br />

automaticamente quan<strong>do</strong> o sistema é inicializa<strong>do</strong>, use o editor de nível de execução<br />

YaST para ativar o Squid para os níveis de execução deseja<strong>do</strong>s. Consulte a<br />

Seção “Serviços <strong>do</strong> Sistema (Runlevel)” (Capítulo 2, Configuração <strong>do</strong> sistema com<br />

YaST, ↑Inicialização).<br />

Uma desinstalação <strong>do</strong> Squid não remove a hierarquia de cache nem os arquivos de<br />

registro. Para removê-los, apague o diretório /var/cache/squid manualmente.<br />

29.3.2 Servi<strong>do</strong>r DNS local<br />

Configurar um servi<strong>do</strong>r DNS local é útil mesmo se ele não gerencia o seu próprio<br />

<strong>do</strong>mínio. Ele então atua simplesmente como um servi<strong>do</strong>r de nomes apenas para caches<br />

e é capaz de resolver as solicitações de DNS através <strong>do</strong>s servi<strong>do</strong>res de nome raiz sem<br />

necessitar de qualquer configuração especial (consulte a Seção 20.3, “Inician<strong>do</strong> o BIND<br />

<strong>do</strong> servi<strong>do</strong>r de nomes” (p 390)). Como isto pode ser feito depende de como você escolhe<br />

o DNS dinâmico durante a configuração da conexão da Internet.<br />

DNS dinâmico<br />

Normalmente, com DNS dinâmico, o servi<strong>do</strong>r DNS é configura<strong>do</strong> pelo prove<strong>do</strong>r<br />

durante o estabelecimento da conexão Internet e o arquivo local /etc/resolv<br />

.conf é ajusta<strong>do</strong> automaticamente. Este comportamento é controla<strong>do</strong> no arquivo<br />

/etc/sysconfig/network/config com a variável sysconfig<br />

MODIFY_RESOLV_CONF_DYNAMICALLY, que é definida como "yes". Defina<br />

esta variável para "no" com o editor sysconfig <strong>do</strong> YaST (consulte a Seção 8.3.1,<br />

“Mudan<strong>do</strong> a configuração <strong>do</strong> sistema usan<strong>do</strong> o Editor sysconfig <strong>do</strong> YaST” (p 198)).<br />

Digite o servi<strong>do</strong>r DNS local no arquivo /etc/resolv.conf com o endereço<br />

IP 127.0.0.1 para localhost. Desta maneira o Squid pode sempre encontrar<br />

o nome <strong>do</strong> servi<strong>do</strong>r local quan<strong>do</strong> inicia.<br />

Para tornar o nome <strong>do</strong> servi<strong>do</strong>r <strong>do</strong> prove<strong>do</strong>r acessível, digite-o no arquivo de<br />

configuração /etc/named.conf em forwarders junto com seu endereço<br />

IP. Com DNS dinâmico, isto pode ser feito automaticamente durante o<br />

estabelecimento da conexão, definin<strong>do</strong> a variável sysconfig<br />

MODIFY_NAMED_CONF_DYNAMICALLY para SIM.<br />

DNS estático<br />

Com DNS estático, não ocorre nenhum ajuste de DNS automático enquanto é<br />

estabelecida uma conexão, assim não é necessário mudar quaisquer variáveis<br />

O Servi<strong>do</strong>r Proxy Squid 545


546 Referência<br />

sysconfig. Entretanto, é preciso digitar o servi<strong>do</strong>r DNS local no arquivo /etc/<br />

resolv.conf como descrito acima. Para tornar o nome <strong>do</strong> servi<strong>do</strong>r <strong>do</strong> prove<strong>do</strong>r<br />

acessível, digite-o no arquivo de configuração /etc/named.conf sob<br />

forwarders junto com seu endereço IP.<br />

DICA: DNS e Firewall<br />

Se você tiver um firewall em execução, verifique se as solicitações de DNS<br />

podem passar por ele.<br />

29.4 O arquivo de configuração<br />

/etc/squid/squid.conf<br />

Todas as definições <strong>do</strong> servi<strong>do</strong>r proxy <strong>do</strong> Squid são feitas no arquivo /etc/squid/<br />

squid.conf . Para iniciar o Squid pela primeira vez, não são necessárias mudanças<br />

neste arquivo, mas clientes externos terão acesso nega<strong>do</strong> inicialmente. O proxy é<br />

disponível para localhost. A porta padrão é 3128. O arquivo de configuração préinstala<strong>do</strong><br />

/etc/squid/squid.conf fornece informações detalhadas sobre as<br />

opções e vários exemplos. Praticamente todas as entradas começam com # (as linhas<br />

são comentadas) e as especificações relevantes podem ser encontradas no fim da linha.<br />

Os valores da<strong>do</strong>s praticamente sempre se correlacionam com os valores padrão, portanto<br />

remover os sinais de comentário sem mudar nenhum <strong>do</strong>s parâmetros na realidade tem<br />

pouco efeito na maioria <strong>do</strong>s casos. Se possível, deixe o exemplo como é e insira as<br />

opções junto com os parâmetros modifica<strong>do</strong>s na linha abaixo. Desta maneira, os valores<br />

padrão podem ser facilmente recupera<strong>do</strong>s e compara<strong>do</strong>s com as mudanças.<br />

DICA: Adaptan<strong>do</strong> o arquivo de configuração após uma atualização<br />

Se você tiver atualiza<strong>do</strong> de uma versão anterior <strong>do</strong> Squid, é recomendável<br />

editar o novo /etc/squid/squid.conf e aplicar somente as mudanças<br />

feitas no arquivo anterior. Se tentar usar o antigo squid.conf, há risco da<br />

configuração deixar de funcionar, porque as opções às vezes são modificadas<br />

e novas mudanças adicionadas.


29.4.1 Opções de configuração geral<br />

(seleção)<br />

http_port 3128<br />

Esta é a porta em que o Squid ouve as solicitações <strong>do</strong> cliente. A porta padrão é<br />

3128, mas 8080 também é comum. Se quiser, especifique vários números de<br />

porta, separa<strong>do</strong>s por espaços em branco.<br />

cache_peer hostname tipo proxy-port icp-port<br />

Neste caso, digite um proxy pai, por exemplo, se quiser usar o proxy <strong>do</strong> seu ISP.<br />

Como hostname, digite o nome e o endereço IP <strong>do</strong> proxy a usar e, como tipo,<br />

digite pai. Para proxy-port, digite o número de porta que também é da<strong>do</strong> pelo<br />

opera<strong>do</strong>r <strong>do</strong> pai para uso no browser, normalmente 8080. Defina a icp-port<br />

para 7 ou 0 se a porta ICP <strong>do</strong> pai não for conhecida e seu uso for irrelevante para<br />

o prove<strong>do</strong>r. Além disso, default e no-query podem ser especifica<strong>do</strong>s após<br />

os números de porta para proibir o uso <strong>do</strong> protocolo ICP. O Squid comporta-se<br />

então como um browser normal no que diz respeito ao proxy <strong>do</strong> prove<strong>do</strong>r.<br />

cache_mem 8 MB<br />

Esta entrada define a quantidade de memória que o Squid pode usar para respostas<br />

muito populares. O padrão é 8 MB. Isto não especifica o uso de memória <strong>do</strong> Squid<br />

e poderá ser excedi<strong>do</strong>.<br />

cache_dir ufs /var/cache/squid/ 100 16 256<br />

A entrada cache_dir define o diretório em que to<strong>do</strong>s os objetos são armazena<strong>do</strong>s<br />

no disco. Os números ao final indicam o espaço máximo de disco no MB a usar e<br />

o número de diretórios no primeiro e no segun<strong>do</strong> nível. O parâmetro ufs deve ser<br />

deixa<strong>do</strong> sozinho. O padrão é 100 MB de espaço de disco ocupa<strong>do</strong> no diretório<br />

/var/cache/squid e a criação de 16 subdiretórios dentro dele, cada um com<br />

mais 256 subdiretórios. Ao especificar o espaço de disco a usar, deixe espaço de<br />

disco de reserva suficiente. Os valores de um mínimo de 50% até um máximo de<br />

80% <strong>do</strong> espaço de disco disponível são o ideal aqui. Os <strong>do</strong>is últimos números para<br />

os diretórios só devem ser aumenta<strong>do</strong>s com cuida<strong>do</strong>, porque diretórios demais<br />

também pode causar problemas de desempenho. Se você tiver vários discos que<br />

compartilhem o cache, digite várias linhas cache_dir.<br />

O Servi<strong>do</strong>r Proxy Squid 547


548 Referência<br />

cache_access_log /var/log/squid/access.log, cache_log /var/log/squid/cache.log,<br />

cache_store_log /var/log/squid/store.log<br />

Estas três entradas especificam os caminhos em que o Squid registra todas as suas<br />

ações. Normalmente, nada é muda<strong>do</strong> aqui. Se o Squid estiver passa<strong>do</strong> por uma<br />

sobrecarga de uso pesa<strong>do</strong>, pode fazer senti<strong>do</strong> distribuir o cache e os arquivos de<br />

registro em vários discos.<br />

emulate_httpd_log <strong>of</strong>f<br />

Se a entrada for definida como on, obtenha arquivos de registro legíveis. Entretanto,<br />

alguns programas de avaliação não podem interpretar isto.<br />

client_netmask 255.255.255.255<br />

Com esta entrada, faça mascaramento <strong>do</strong>s endereços IP <strong>do</strong>s clientes nos arquivos<br />

de registro. O último dígito <strong>do</strong> endereço IP é defini<strong>do</strong> como zero se você digitar<br />

255.255.255.0 aqui. Você pode proteger a privacidade <strong>do</strong>s seus clientes desta<br />

maneira.<br />

ftp_user Squid@<br />

Com isto, defina a senha que o Squid deve usar para o login <strong>do</strong> FTP anônimo. Faz<br />

senti<strong>do</strong> especificar um endereço de e-mail váli<strong>do</strong> aqui, porque alguns servi<strong>do</strong>res<br />

de FTP os verificam para fins de validade.<br />

cache_mgr webmaster<br />

Um endereço de e-mail ao qual o Squid envia uma mensagem se ele falhar<br />

inesperadamente. O padrão é webmaster.<br />

logfile_rotate 0<br />

Se você executar squid -k rotate, o Squid poderá rotacionar arquivos de<br />

registro protegi<strong>do</strong>s. Os arquivos são numera<strong>do</strong>s neste processo e, após alcançarem<br />

o valor especifica<strong>do</strong>, o arquivo mais antigo é sobregrava<strong>do</strong>. O valor padrão é 0<br />

porque os arquivos de registro de arquivamento e apagamento no <strong>SUSE</strong> Linux são<br />

realiza<strong>do</strong>s por uma tarefa cron definida no arquivo de configuração /etc/<br />

logrotate/squid.<br />

append_<strong>do</strong>main <br />

Com append_<strong>do</strong>main, especifique que <strong>do</strong>mínio anexar automaticamente quan<strong>do</strong><br />

não for da<strong>do</strong> nenhum. Normalmente, o seu próprio <strong>do</strong>mínio é digita<strong>do</strong> aqui, portanto<br />

digitar www no browser dá acesso ao seu próprio servi<strong>do</strong>r da Web.


forwarded_for on<br />

Se você definir a entrada como <strong>of</strong>f, o Squid removerá o endereço IP e o nome <strong>do</strong><br />

sistema <strong>do</strong> cliente das solicitações HTTP. Caso contrário, ele adicionará uma linha<br />

ao cabeçalho como<br />

X-Forwarded-For: 192.168.0.0<br />

negative_ttl 5 minutes; negative_dns_ttl 5 minutes<br />

Normalmente, não é necessário mudar esses valores. Porém, se você tiver uma<br />

conexão discada, é possível que às vezes a Internet não esteja acessível. O Squid<br />

detecta as solicitações que falharam e não emite novas solicitações, embora a<br />

conexão com a Internet tenha si<strong>do</strong> restabelecida. Neste caso, mude os minutos para<br />

segun<strong>do</strong>s e, após você clicar em Recarregar no browser, o processo de discagem<br />

deve continuar em alguns segun<strong>do</strong>s.<br />

never_direct allow acl_name<br />

Para impedir que o Squid faça solicitações diretamente da Internet, use o coman<strong>do</strong><br />

acima para forçar conexão com outro proxy. É necessário que ele tenha si<strong>do</strong> digita<strong>do</strong><br />

anteriormente em cache_peer. Se all estiver especifica<strong>do</strong> como acl_name,<br />

force todas as solicitações para que sejam encaminhadas diretamente ao pai. Isto<br />

pode ser necessário, por exemplo, se você estiver usan<strong>do</strong> um prove<strong>do</strong>r que estipula<br />

estritamente o uso de seus proxies ou nega acesso direto <strong>do</strong> seu firewall à Internet.<br />

29.4.2 Opções de controles de acesso<br />

O Squid fornece um sistema detalha<strong>do</strong> para controle <strong>do</strong> acesso ao proxy. Com a<br />

implementação de ACLs, ele pode ser configura<strong>do</strong> de forma fácil e abrangente. Isto<br />

envolve listas com regras que são processadas em seqüência. As ACLs devem ser<br />

definidas antes de serem usadas. Algumas ACLs padrão, como all e localhost, já existem.<br />

Entretanto, a simples definição de uma ACL não significa que ela será realmente<br />

aplicada. Isto só acontece em conjunto com regras http_access.<br />

acl <br />

Uma ACL requer pelo menos três especificações para defini-la. O nome<br />

pode ser escolhi<strong>do</strong> arbitrariamente. Para , selecione entre<br />

várias opções diferentes, que podem ser encontradas na seção ACCESS CONTROLS<br />

no arquivo /etc/squid/squid.conf . A especificação para depende<br />

<strong>do</strong> tipo de cada ACL e só pode ser lida em um arquivo, por exemplo, por meio de<br />

nomes de host, endereços IP ou URLs. A seguir, alguns exemplos simples:<br />

O Servi<strong>do</strong>r Proxy Squid 549


550 Referência<br />

acl mysurfers src<strong>do</strong>main .my-<strong>do</strong>main.com<br />

acl teachers src 192.168.1.0/255.255.255.0<br />

acl students src 192.168.7.0-192.168.9.0/255.255.255.0<br />

acl lunch time MTWHF 12:00-15:00<br />

http_access allow <br />

http_access define quem tem permissão de usar o proxy e quem pode acessar o<br />

quê na Internet. Para isto, as ACLs devem ser fornecidas. localhost e all já foram<br />

defini<strong>do</strong>s acima, o que pode negar ou permitir acesso com deny ou allow. Uma<br />

lista com qualquer número de entradas http_access pode ser criada, processada de<br />

cima para baixo e, dependen<strong>do</strong> <strong>do</strong> que ocorrer primeiro, o acesso é permiti<strong>do</strong> ou<br />

nega<strong>do</strong> ao respectivo URL. A última entrada deve ser sempre http_access deny all.<br />

No exemplo a seguir, o localhost tem livre acesso a tu<strong>do</strong> enquanto to<strong>do</strong>s os outros<br />

hosts têm acesso completamente nega<strong>do</strong>.<br />

http_access allow localhost<br />

http_access deny all<br />

Em outro exemplo com estas regras, o grupo teachers (pr<strong>of</strong>essores) sempre tem<br />

acesso à Internet. O grupo students (alunos) só tem acesso de segunda-feira a<br />

sexta-feira na hora <strong>do</strong> almoço.<br />

http_access deny localhost<br />

http_access allow teachers<br />

http_access allow students lunch time<br />

http_access deny all<br />

Para fins de legibilidade, a lista com as entradas http_access só pode ser digitada<br />

na posição designada no arquivo /etc/squid/squid.conf. Isto é, entre o<br />

texto<br />

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR<br />

# CLIENTS<br />

e o último<br />

http_access deny all<br />

redirect_program /usr/bin/squidGuard<br />

Com esta opção, especifique um redireciona<strong>do</strong>r como squidGuard, que permite<br />

bloquear URLs indeseja<strong>do</strong>s. O acesso de vários grupos de usuários à Internet pode<br />

ser controla<strong>do</strong> individualmente com a ajuda da autenticação de proxy e das ACLs<br />

adequadas. O squidGuard é um pacote separa<strong>do</strong> que pode ser instala<strong>do</strong> e<br />

configura<strong>do</strong>.


auth_param basic program /usr/sbin/pam_auth<br />

Se for necessário autenticar usuários no proxy, defina um programa correspondente,<br />

como pam_auth. Ao acessar pam_auth pela primeira vez, o usuário vê uma janela<br />

de login na qual deve digitar o nome de usuário e senha. Além disso, ainda é<br />

necessário usar uma ACL, de forma que apenas clientes com login váli<strong>do</strong> podem<br />

usar a Internet:<br />

acl password proxy_auth REQUIRED<br />

http_access allow password<br />

http_access deny all<br />

REQUIRED após proxy_auth pode ser substituí<strong>do</strong> por uma lista de nomes de<br />

usuários permiti<strong>do</strong>s ou pelo caminho para essa lista.<br />

ident_lookup_access allow <br />

Com isto, execute uma solicitação de identificação para to<strong>do</strong>s os clientes defini<strong>do</strong>s<br />

via ACL para encontrar a identidade de cada usuário. Se você aplicar all ao<br />

, isto será váli<strong>do</strong> para to<strong>do</strong>s os clientes. Além disso, um daemon de<br />

identificação deve estar em execução em to<strong>do</strong>s os clientes. No caso <strong>do</strong> Linux,<br />

instale o pacote pidentd para este fim. No caso <strong>do</strong> Micros<strong>of</strong>t Win<strong>do</strong>ws, há um<br />

s<strong>of</strong>tware grátis para <strong>do</strong>wnload na Internet. Para garantir que apenas clientes com<br />

pesquisa de identificação bem-sucedida sejam permiti<strong>do</strong>s, defina uma ACL<br />

correspondente aqui:<br />

acl identhosts ident REQUIRED<br />

http_access allow identhosts<br />

http_access deny all<br />

Aqui, substitua também REQUIRED por uma lista de nomes de usuários permiti<strong>do</strong>s.<br />

O uso de ident pode tornar o tempo de acesso um pouco lento, porque pesquisas<br />

de identificação são repetidas para cada solicitação.<br />

29.5 Configuran<strong>do</strong> um proxy<br />

transparente<br />

O mo<strong>do</strong> normal de trabalhar com servi<strong>do</strong>res proxy é o seguinte: o browser da Web<br />

envia solicitações para uma determinada porta no servi<strong>do</strong>r proxy e o proxy fornece<br />

estes objetos solicita<strong>do</strong>s, estejam ou não no cache. Quan<strong>do</strong> você trabalha em uma rede,<br />

várias situações podem surgir:<br />

O Servi<strong>do</strong>r Proxy Squid 551


552 Referência<br />

• Para fins de segurança, é recomenda<strong>do</strong> que to<strong>do</strong>s os clientes usem um proxy para<br />

navegar na Internet.<br />

• To<strong>do</strong>s os clientes devem usar um proxy, independentemente de estarem conscientes<br />

dele.<br />

• O proxy em uma rede é movi<strong>do</strong>, mas os clientes existentes devem manter sua antiga<br />

configuração.<br />

Em to<strong>do</strong>s esses casos, pode ser usa<strong>do</strong> um proxy transparente. O princípio é muito fácil:<br />

o proxy intercepta e responde as solicitações <strong>do</strong> browser da Web, de maneira que o<br />

browser da Web recebe as páginas solicitadas sem saber de onde elas vêm. Como o<br />

nome indica, to<strong>do</strong> o processo é feito de maneira transparente.<br />

29.5.1 Opções de configuração em<br />

/etc/squid/squid.conf<br />

As opções que devem ser ativadas no arquivo /etc/squid/squid.conf para<br />

garantir a execução <strong>do</strong> proxy transparente são:<br />

• httpd_accel_host virtual<br />

• httpd_accel_port 80<br />

O número de porta em que o servi<strong>do</strong>r HTTP real está localiza<strong>do</strong><br />

• httpd_accel_with_proxy em<br />

• httpd_accel_uses_host_header em<br />

29.5.2 Configuração de firewall com<br />

SuSEfirewall2<br />

Agora redirecione todas as solicitações de entrada através <strong>do</strong> firewall com ajuda de<br />

uma regra de encaminhamento de porta para a porta <strong>do</strong> Squid. Para fazer isso, use a<br />

ferramenta SuSEfirewall2 anexada, descrita em “Configuran<strong>do</strong> com o YaST” (p 110).<br />

Seu arquivo de configuração é encontra<strong>do</strong> em /etc/sysconfig/SuSEfirewall2.


O arquivo de configuração consiste em entradas bem <strong>do</strong>cumentadas. Para definir um<br />

proxy transparente, é preciso configurar várias opções de firewall:<br />

• Dispositivo apontan<strong>do</strong> para a Internet: FW_DEV_EXT="eth1"<br />

• Dispositivo apontan<strong>do</strong> para a rede: FW_DEV_INT="eth0"<br />

Definir portas e serviços (consulte /etc/services) no firewall que são acessadas<br />

de redes não confiáveis (externas), como a Internet. Neste exemplo, apenas os serviços<br />

da Web são <strong>of</strong>ereci<strong>do</strong>s externamente:<br />

FW_SERVICES_EXT_TCP="www"<br />

Definir portas ou serviços (consulte /etc/services) no firewall que são acessadas<br />

de rede segura (interna), ambas via TCP e UDP:<br />

FW_SERVICES_INT_TCP="<strong>do</strong>main www 3128"<br />

FW_SERVICES_INT_UDP="<strong>do</strong>main"<br />

Isto permite acessar serviços da Web e o Squid (cuja porta padrão é 3128). O serviço<br />

“<strong>do</strong>main” representa o DNS (serviço de nome de <strong>do</strong>mínio). Este serviço é normalmente<br />

usa<strong>do</strong>. Caso contrário, basta retirá-lo das entradas acima e definir a opção seguinte<br />

como no:<br />

FW_SERVICE_DNS="yes"<br />

A opção mais importante é a número 15:<br />

Exemplo 29.1 Configuração de firewall: Opção 15<br />

# 15.)<br />

# Which accesses to services should be redirected to a local port<br />

# on the firewall machine?<br />

#<br />

# This can be used to force all internal users to surf via your<br />

# Squid proxy, or transparently redirect incoming Web traffic to<br />

# a secure Web server.<br />

#<br />

# Choice: leave empty or use the following explained syntax <strong>of</strong><br />

# redirecting rules, separated with spaces.<br />

# A redirecting rule consists <strong>of</strong> 1) source IP/net,<br />

# 2) destination IP/net, 3) original destination port and<br />

# 4) local port to redirect the traffic to, separated by a colon,<br />

# e.g. "10.0.0.0/8,0/0,80,3128 0/0,172.20.1.1,80,8080"<br />

Os comentários acima mostram a sintaxe a seguir. Primeiro, digite o endereço IP e a<br />

máscara de rede das redes internas que acessam o firewall de proxy. Em seguida, digite<br />

O Servi<strong>do</strong>r Proxy Squid 553


554 Referência<br />

o endereço IP e a máscara de rede às quais estes clientes enviam suas solicitações. No<br />

caso de browsers da Web, especifique as redes 0/0, um curinga que significa “a to<strong>do</strong>s<br />

os lugares.” Depois, digite a porta original para a qual estas solicitações são enviadas<br />

e, finalmente, a porta para a qual todas essas solicitações são redirecionadas. Como o<br />

Squid tem suporte para outros protocolos além <strong>do</strong> HTTP, redirecione as solicitações<br />

de outras portas para o proxy, como FTP (porta 21), HTTPS ou SSL (porta 443). Neste<br />

exemplo, serviços da Web (porta 80) são redireciona<strong>do</strong>s para a porta <strong>do</strong> proxy (porta<br />

3128). Se houver mais redes ou serviços a adicionar, eles devem ser separa<strong>do</strong>s por um<br />

espaço em branco na entrada respectiva.<br />

FW_REDIRECT_TCP="192.168.0.0/16,0/0,80,3128 192.168.0.0/16,0/0,21,3128"<br />

FW_REDIRECT_UDP="192.168.0.0/16,0/0,80,3128 192.168.0.0/16,0/0,21,3128"<br />

Para iniciar o firewall e a nova configuração com ele, mude um entrada no arquivo<br />

/etc/sysconfig/SuSEfirewall2 . A entrada START_FW deve ser definida<br />

como "yes".<br />

Iniciar o Squid como mostra<strong>do</strong> na Seção 29.3, “Inician<strong>do</strong> o Squid” (p 543). Para verificar<br />

se tu<strong>do</strong> está funcionan<strong>do</strong> corretamente, verifique os registros <strong>do</strong> Squid em /var/log/<br />

squid/access.log. Para verificar se todas as portas estão corretamente<br />

configuradas, realize uma exploração de portas na máquina de qualquer computa<strong>do</strong>r<br />

externo à rede. Apenas os serviços da Web (porta 80) devem ser abertos. Para explorar<br />

as portas com nmap, a sintaxe <strong>do</strong> coman<strong>do</strong> é nmap -O IP_address.<br />

29.6 cachemgr.cgi<br />

O gerencia<strong>do</strong>r de cache (cachemgr.cgi) é um utilitário CGI para exibição de estatísticas<br />

sobre o uso da memória de um processo Squid em execução. É também uma maneira<br />

mais prática de gerenciar o cache e ver estatísticas sem efetuar login no servi<strong>do</strong>r.<br />

29.6.1 Configuração<br />

Primeiro, é necessário um servi<strong>do</strong>r da Web em execução no sistema. Configure o Apache<br />

como descrito no Capítulo 26, Servi<strong>do</strong>r HTTP Apache (p 463). Para verificar se o Apache<br />

já está em execução, como root, digite o coman<strong>do</strong> rcapache status. Se aparecer<br />

uma mensagem como a seguinte:<br />

Checking for service httpd: OK<br />

Server uptime: 1 day 18 hours 29 minutes 39 seconds


O Apache estará em execução na máquina. Caso contrário, digite rcapache iniciar<br />

para iniciar o Apache com as configurações padrão <strong>do</strong> <strong>SUSE</strong> Linux. A última etapa a<br />

configurar é copiar o arquivo cachemgr.cgi para o diretório Apache cgi-bin:<br />

cp /usr/share/<strong>do</strong>c/packages/squid/scripts/cachemgr.cgi /srv/www/cgi-bin/<br />

29.6.2 ACLs <strong>do</strong> gerencia<strong>do</strong>r de cache em<br />

/etc/squid/squid.conf<br />

Há algumas configurações padrão no arquivo original que são necessárias para o<br />

gerencia<strong>do</strong>r de cache. Primeiro, duas ACLs são definidas e depois as opções http_access<br />

usam estas ACLs para fornecer acesso <strong>do</strong> script CGI ao Squid. A primeira ACL é a<br />

mais importante, porque o gerencia<strong>do</strong>r de cache tenta se comunicar com o Squid pelo<br />

protocolo cache_object.<br />

acl manager proto cache_object<br />

acl localhost src 127.0.0.1/255.255.255.255<br />

As regras a seguir dão os direitos de acesso <strong>do</strong> Apache para o Squid:<br />

http_access allow manager localhost<br />

http_access deny manager<br />

Estas regras consideram que o servi<strong>do</strong>r da Web e o Squid estão em execução na mesma<br />

máquina. Se a comunicação entre o gerencia<strong>do</strong>r <strong>do</strong> cache e o Squid tiver origem em<br />

um servi<strong>do</strong>r da Web em outro computa<strong>do</strong>r, incluir uma ACL extra como no<br />

Exemplo 29.2, “Regras de acesso” (p 555).<br />

Exemplo 29.2 Regras de acesso<br />

acl manager proto cache_object<br />

acl localhost src 127.0.0.1/255.255.255.255<br />

acl webserver src 192.168.1.7/255.255.255.255 # webserver IP<br />

Em seguida, adicionar as regras <strong>do</strong> Exemplo 29.3, “Regras de acesso” (p 555) para<br />

permitir acesso <strong>do</strong> servi<strong>do</strong>r da Web.<br />

Exemplo 29.3 Regras de acesso<br />

http_access allow manager localhost<br />

http_access allow manager webserver<br />

http_access deny manager<br />

O Servi<strong>do</strong>r Proxy Squid 555


556 Referência<br />

Configure uma senha para que o gerencia<strong>do</strong>r acesse mais opções, como fechar o cache<br />

remotamente ou mostrar mais informações sobre o cache. Para isto, configure a entrada<br />

cachemgr_passwd com uma senha para o gerencia<strong>do</strong>r e a lista de opções a ser<br />

exibida. Esta lista aparece como parte <strong>do</strong>s comentários de entrada em /etc/squid/<br />

squid.conf.<br />

Reinicie o Squid toda vez que mudar o arquivo de configuração. Faça isto facilmente<br />

com rcsquid reload.<br />

29.6.3 Exibin<strong>do</strong> estatísticas<br />

Vá para o site da Web correspondente — http://webserver.example.org/<br />

cgi-bin/cachemgr.cgi. Pressione continue e pesquise as diversas estatísticas.<br />

Mais detalhes de cada entrada mostrada pelo gerencia<strong>do</strong>r de cache são encontra<strong>do</strong>s no<br />

FAQ <strong>do</strong> Squid em http://www.squid-cache.org/Doc/FAQ/FAQ-9.html.<br />

29.7 squidGuard<br />

Esta seção não pretende explicar uma configuração <strong>do</strong> squidGuard em pr<strong>of</strong>undidade,<br />

apenas apresentá-lo e fornecer alguns conselhos para usá-lo. Para obter informações<br />

mais detalhadas sobre questões de configuração, consulte o site <strong>do</strong> squidGuard em<br />

http://www.squidguard.org.<br />

O squidGuard é um plug-in grátis (GPL) e flexível, além de atuar como um filtro rápi<strong>do</strong>,<br />

redireciona<strong>do</strong>r e controla<strong>do</strong>r de acesso para o Squid. Permite que você defina várias<br />

regras de acesso com diferentes restrições para diferentes grupos de usuário em um<br />

cache <strong>do</strong> Squid. O squidGuard usa a interface redireciona<strong>do</strong>ra padrão <strong>do</strong> Squid. O<br />

squidGuard pode fazer o seguinte:<br />

• Limitar o acesso à Web para alguns usuários a uma lista de servi<strong>do</strong>res da Web ou<br />

URLs aceitos ou bem conheci<strong>do</strong>s.<br />

• Bloquear o acesso a alguns servi<strong>do</strong>res da Web ou URLS lista<strong>do</strong>s ou constantes da<br />

lista negra para alguns usuários.<br />

• Bloquear o acesso a URLs correspondentes a uma lista de expressões ou palavras<br />

regulares.


• Redirecionar URLs bloquea<strong>do</strong>s para uma página de informação “intelligent” baseada<br />

em CGI.<br />

• Redirecionar usuários não registra<strong>do</strong>s a um formulário de registro.<br />

• Redirecionar banners para um GIF vazio.<br />

• Usar diversas regras de acesso baseadas em hora <strong>do</strong> dia, dia da semana, data, etc.<br />

• Usar regras diferentes para grupos de usuários diferentes.<br />

O squidGuard e o Squid não podem ser usa<strong>do</strong>s para:<br />

• Editar, filtrar ou censurar texto dentro de <strong>do</strong>cumentos.<br />

• Editar, filtrar ou censurar linguagens de script embutidas em HTML, como<br />

JavaScript e VBscript.<br />

Para usá-los, instale squidGuard. Forneça um arquivo de configuração mínimo,<br />

como /etc/squidguard.conf. Encontre exemplos de configuração em http://<br />

www.squidguard.org/config/. Experimente depois com definições de<br />

configuração mais complicadas.<br />

Em seguida, crie uma página de simulação de “acesso nega<strong>do</strong>” ou uma página CGI<br />

mais ou menos complexa para redirecionar o Squid se o cliente solicitar um site da Web<br />

incluí<strong>do</strong> na lista negra. A utilização <strong>do</strong> Apache é altamente recomendável.<br />

Agora, configure o Squid para usar o squidGuard. Use a seguinte entrada no arquivo<br />

/etc/squid/squid.conf:<br />

redirect_program /usr/bin/squidGuard<br />

Outra opção, denominada redirect_children, configura o número de processos<br />

de “redirect” (neste caso o squidGuard) executa<strong>do</strong>s na máquina. O squidGuard é bastante<br />

rápi<strong>do</strong> para tratar várias solicitações: em um Pentium 500 MHz com 5.900 <strong>do</strong>mínios e<br />

7.880 URLs (totalizan<strong>do</strong> 13.780), podem ser processadas 100.000 solicitações em 10<br />

segun<strong>do</strong>s. Assim, não é recomenda<strong>do</strong> definir mais <strong>do</strong> que quatro processos, porque a<br />

alocação desses processos consumiria uma quantidade excessiva de memória.<br />

redirect_children 4<br />

Finalmente, faça o Squid carregar a nova configuração executan<strong>do</strong> rcsquid reload.<br />

Agora, teste suas configurações com um browser.<br />

O Servi<strong>do</strong>r Proxy Squid 557


29.8 Geração de relatório de cache<br />

com o Calamaris<br />

O Calamaris é um script Perl usa<strong>do</strong> para gerar relatórios de atividade de cache em<br />

formato ASCII ou HTML. Funciona com arquivos de registro de acesso nativos <strong>do</strong><br />

Squid. A home page <strong>do</strong> Calamaris está localizada em http://Calamaris.Cord<br />

.de/. O programa é bem fácil de usar.<br />

Faça login como root e digite cat access.log.files | calamaris<br />

options > reportfile. É importante, na condução de mais de um arquivo de<br />

registro, ordenar os arquivos de registro cronologicamente, com os arquivos mais antigos<br />

primeiro. Há algumas opções <strong>do</strong> programa:<br />

-a<br />

-w<br />

-l<br />

558 Referência<br />

saída de to<strong>do</strong>s os relatórios disponíveis<br />

saída como relatório HTML<br />

inclui uma mensagem ou logotipo no cabeçalho <strong>do</strong> relatório<br />

Mais informações sobre as diversas opções são encontradas na página <strong>do</strong> manual <strong>do</strong><br />

programa com man calamaris.<br />

Um exemplo típico é:<br />

cat access.log.2 access.log.1 access.log | calamaris -a -w \<br />

> /usr/local/httpd/ht<strong>do</strong>cs/Squid/squidreport.html<br />

Isto coloca o relatório no diretório <strong>do</strong> servi<strong>do</strong>r da Web. É necessário usar o Apache<br />

para exibir os relatórios.<br />

Outra ferramenta avançada para geração de relatórios de cache é o SARG (Squid<br />

Analysis Report Generator). Mais informações sobre isso estão disponíveis em:<br />

http://sarg.sourceforge.net/.


29.9 Mais informações<br />

Visite a home page <strong>do</strong> Squid em http://www.squid-cache.org/. Aqui, encontre<br />

o “Guia de Usuário <strong>do</strong> Squid” e um amplo conjunto de FAQs sobre o Squid.<br />

Após a instalação, uma pequena lista de orientações sobre proxies transparentes é<br />

encontrada em howtoenh como /usr/share/<strong>do</strong>c/howto/en/txt/<br />

TransparentProxy.gz. Além disso, há listas de discussões sobre o Squid em<br />

squid-users@squid-cache.org. O arquivo referente a isso está localiza<strong>do</strong> em<br />

http://www.squid-cache.org/mail-archive/squid-users/.<br />

O Servi<strong>do</strong>r Proxy Squid 559


Parte 5. Mobilidade


Computação móvel com o Linux<br />

A computação móvel é geralmente associada a laptops, PDAs e telefones celulares, e<br />

ao intercâmbio de da<strong>do</strong>s entre esses aparelhos. Componentes de hardware móveis, como<br />

discos rígi<strong>do</strong>s externos, unidades flash ou câmeras digitais, podem ser conecta<strong>do</strong>s a<br />

laptops ou sistemas de desktop. Vários componentes de s<strong>of</strong>tware estão envolvi<strong>do</strong>s em<br />

cenários de computação e alguns aplicativos são desenvolvi<strong>do</strong>s para uso móvel.<br />

30.1 Laptops<br />

O hardware de laptops difere <strong>do</strong> hardware de um sistema de desktop normal. Isso ocorre<br />

porque critérios como intercambiamento, espaço ocupa<strong>do</strong> e consumo de energia são<br />

propriedades relevantes. Os fabricantes de hardware móvel desenvolveram o padrão<br />

PCMCIA (Personal Computer Memory Card International Association - Associação<br />

Internacional de Cartões de Memória para Computa<strong>do</strong>res Pessoais). Esse padrão abrange<br />

cartões de memória, placas de interface de rede, ISDN e placas de modem, além de<br />

discos rígi<strong>do</strong>s externos. A forma como o suporte para tal hardware é implementa<strong>do</strong> no<br />

Linux, os pontos a serem leva<strong>do</strong>s em consideração durante a configuração, qual s<strong>of</strong>tware<br />

está disponível para o controle <strong>do</strong> PCMCIA e como solucionar quaisquer possíveis<br />

problemas são descritos no Capítulo 31, PCMCIA (p 575).<br />

30.1.1 Conservação de energia<br />

A inclusão de componentes de sistema com otimização de energia durante a fabricação<br />

de laptops contribui para a sua adequação ao uso sem acesso à rede elétrica. A<br />

contribuição desses componentes para a preservação de energia é, ao menos, tão<br />

30<br />

Computação móvel com o Linux 563


564 Referência<br />

importante quanto a <strong>do</strong> sistema operacional. O <strong>SUSE</strong> Linux dá suporte a diversos<br />

méto<strong>do</strong>s que influenciam o consumo de energia de um laptop e surtem efeitos variáveis<br />

sobre o tempo de operação com a carga da bateria. A lista a seguir está em ordem<br />

decrescente de contribuição para a conservação de energia:<br />

• Regulagem da velocidade da CPU<br />

• Desativação da iluminação da tela durante pausas<br />

• Ajuste manual da iluminação da tela<br />

• Desconexão de acessórios não utiliza<strong>do</strong>s e habilita<strong>do</strong>s para hotplug (CD-ROM<br />

USB, mouse externo, placas PCMCIA não utilizadas etc.)<br />

• Colocar o disco rígi<strong>do</strong> em mo<strong>do</strong> de espera quan<strong>do</strong> inativo<br />

Informações de apoio detalhadas sobre o gerenciamento de energia no <strong>SUSE</strong> Linux e<br />

sobre a operação <strong>do</strong> módulo de gerenciamento de energia YaST podem ser encontradas<br />

no Capítulo 33, Gerenciamento de energia (p 597).<br />

30.1.2 Integração em ambientes<br />

operacionais variáveis<br />

Seu sistema precisa se adaptar a ambientes operacionais variáveis quan<strong>do</strong> for usa<strong>do</strong><br />

para a computação móvel. Vários serviços dependem <strong>do</strong> ambiente e os clientes<br />

subjacentes precisam ser reconfigura<strong>do</strong>s. O <strong>SUSE</strong> Linux faz isso para você.


Figura 30.1 Integran<strong>do</strong> um laptop em uma rede<br />

X configuration<br />

Printing<br />

?<br />

?<br />

?<br />

?<br />

?<br />

Network<br />

?<br />

?<br />

?<br />

Os serviços afeta<strong>do</strong>s no caso de um laptop que transita entre uma pequena rede <strong>do</strong>méstica<br />

e uma rede de escritório são:<br />

Rede<br />

Inclui a atribuição de endereço IP, a resolução <strong>do</strong> nome, a conectividade à Internet<br />

e a conectividade a outras redes.<br />

Impressão<br />

Precisam estar presentes um banco de da<strong>do</strong>s atual de impressoras disponíveis e um<br />

servi<strong>do</strong>r de impressão disponível, dependen<strong>do</strong> da rede.<br />

E-Mail e proxies<br />

Assim como ocorre com a impressão, a lista <strong>do</strong>s servi<strong>do</strong>res correspondentes precisa<br />

ser atual.<br />

X<br />

Mail<br />

Se o seu laptop estiver temporariamente conecta<strong>do</strong> a um projetor ou monitor externo,<br />

as diferentes configurações de exibição precisam estar disponíveis.<br />

Proxy<br />

Computação móvel com o Linux 565


566 Referência<br />

O <strong>SUSE</strong> Linux <strong>of</strong>erece várias opções de integração de um laptop a ambientes<br />

operacionais existentes:<br />

SCPM<br />

O SCPM (system configuration pr<strong>of</strong>ile management - gerenciamento de perfil de<br />

configuração <strong>do</strong> sistema) permite o armazenamento de esta<strong>do</strong>s de configuração<br />

arbitrários de um sistema em um tipo de “instantâneo” chama<strong>do</strong> de perfil. Os perfis<br />

podem ser cria<strong>do</strong>s para diferentes situações. Eles são úteis quan<strong>do</strong> um sistema é<br />

opera<strong>do</strong> em ambientes variáveis (rede <strong>do</strong>méstica, rede de escritório). Sempre é<br />

possível alternar entre perfis. Encontre informações sobre o SCPM no Capítulo 32,<br />

System Configuration Pr<strong>of</strong>ile Management (p 583). Você pode usar o applet Seletor<br />

de Perfil <strong>do</strong> kicker no KDE para alternar entre perfis. O aplicativo requer a senha<br />

<strong>do</strong> root antes de alternar.<br />

NetworkManager<br />

O NetworkManager é desenvolvi<strong>do</strong> especialmente para rede móvel em laptops.<br />

Ele fornece uma maneira para alternar de forma fácil e automática entre ambientes<br />

de rede ou tipos diferentes de redes, como LAN sem fio e ethernet. O<br />

NetworkManager suporta a criptografia WEP e WPA-PSK em conexões LANs<br />

sem fio, por discagem (com smpppd). Ambos os ambientes de área de trabalho<br />

(GNOME e KDE) incluem um front-end para o NetworkManager.<br />

Tabela 30.1 Casos de uso para o NetworkManager<br />

Meu computa<strong>do</strong>r…<br />

é um laptop<br />

algumas vezes está conecta<strong>do</strong> a redes diferentes<br />

fornece serviços de rede (como DNS ou DHCP)<br />

usa somente um endereço IP estático<br />

Usar NetworkManager<br />

Sim<br />

Sim<br />

Não<br />

Não<br />

Use as ferramentas <strong>do</strong> YaST para configurar a rede sempre que o NetworkManager<br />

não deve gerenciar a configuração de rede.<br />

SLP<br />

O SLP (Service Location Protocol) simplifica a conexão de um laptop a uma rede<br />

existente. Sem o SLP, o administra<strong>do</strong>r <strong>do</strong> laptop normalmente necessita ter


conhecimentos detalha<strong>do</strong>s sobre os serviços disponíveis em uma rede. O SLP<br />

transmite a disponibilidade de um determina<strong>do</strong> tipo de serviço a to<strong>do</strong>s os clientes<br />

de uma rede local. Os aplicativos que dão suporte ao SLP podem processar as<br />

informações despachadas pelo SLP e podem ser configura<strong>do</strong>s automaticamente.<br />

O SLP pode até ser usa<strong>do</strong> para a instalação de um sistema, poupan<strong>do</strong> o esforço de<br />

busca de uma fonte de instalação adequada. Encontre informações detalhadas sobre<br />

o SLP no Capítulo 19, Serviços SLP na rede (p 377).<br />

O ponto forte <strong>do</strong> SCPM é a habilitação e a manutenção de condições de sistema<br />

reproduzíveis. O SLP torna a configuração de um computa<strong>do</strong>r em rede bem mais fácil,<br />

automatizan<strong>do</strong> boa parte desse processo.<br />

30.1.3 Opções de s<strong>of</strong>tware<br />

Diversas áreas de tarefas especiais no uso móvel são abrangidas por s<strong>of</strong>tware dedica<strong>do</strong>:<br />

monitoramento <strong>do</strong> sistema (principalmente a carga da bateria), sincronização de da<strong>do</strong>s<br />

e comunicação sem fio com periféricos e a Internet. As seções a seguir tratam <strong>do</strong>s<br />

aplicativos mais importantes <strong>of</strong>ereci<strong>do</strong>s pelo <strong>SUSE</strong> Linux para cada tarefa.<br />

Monitoramento <strong>do</strong> sistema<br />

Duas ferramentas de monitoramento <strong>do</strong> sistema KDE são <strong>of</strong>erecidas pelo <strong>SUSE</strong> Linux:<br />

KPowersave<br />

O KPowersave é um applet que exibe o esta<strong>do</strong> da bateria recarregável no painel<br />

de controle. O ícone se ajusta de mo<strong>do</strong> a representar o tipo de fonte de energia. Ao<br />

trabalhar em corrente alternada, um pequeno ícone de plug é exibi<strong>do</strong>. Ao trabalhar<br />

com bateria, o ícone se transforma em uma bateria. O menu correspondente abre<br />

o módulo YaST de gerenciamento de energia após solicitar a senha <strong>do</strong> root. Desse<br />

mo<strong>do</strong>, é possível configurar o comportamento <strong>do</strong> sistema com diferentes tipos de<br />

fontes de energia. Encontre informações sobre gerenciamento de energia e sobre<br />

o módulo YaST correspondente no Capítulo 33, Gerenciamento de energia (p 597).<br />

KSysguard<br />

O KSysguard é um aplicativo independente que reúne to<strong>do</strong>s os parâmetros<br />

mensuráveis <strong>do</strong> sistema em um único ambiente de monitoramento. O KSysguard<br />

possui monitores de ACPI (status da bateria), carga da CPU, rede, particionamento<br />

e uso da memória. Ele também pode observar e exibir to<strong>do</strong>s os processos <strong>do</strong> sistema.<br />

A apresentação e filtragem <strong>do</strong>s da<strong>do</strong>s coleta<strong>do</strong>s podem ser personalizadas. É possível<br />

Computação móvel com o Linux 567


568 Referência<br />

monitorar diferentes parâmetros <strong>do</strong> sistema em diversas páginas de da<strong>do</strong>s ou coletar<br />

os da<strong>do</strong>s de diversas máquinas em paralelo na rede. O KSysguard também pode<br />

ser executa<strong>do</strong> como um daemon em máquinas desprovidas de um ambiente KDE.<br />

Encontre mais informações sobre esse programa na sua função de ajuda integrada<br />

ou nas páginas de ajuda <strong>do</strong> <strong>SUSE</strong>.<br />

Figura 30.2 Monitoran<strong>do</strong> o status da bateria com o KSysguard<br />

Na área de trabalho <strong>do</strong> GNOME, use o applet <strong>do</strong> painel ACPI <strong>do</strong> GNOME e o aplicativo<br />

Monitor <strong>do</strong> Sistema.<br />

Sincronizan<strong>do</strong> da<strong>do</strong>s<br />

Ao alternar entre o trabalho em uma máquina móvel desconectada da rede e o trabalho<br />

em uma estação em rede em um escritório, é necessário manter a sincronização <strong>do</strong>s<br />

da<strong>do</strong>s processa<strong>do</strong>s em todas as instâncias. Isso pode incluir pastas de e-mail, diretórios<br />

e arquivos individuais que precisam estar presentes tanto para o trabalho remoto como<br />

para o trabalho no escritório. A solução nos <strong>do</strong>is casos é a seguinte:<br />

Sincronizan<strong>do</strong> e-mail<br />

Use uma conta IMAP para armazenar seus e-mails na rede <strong>do</strong> escritório. Em seguida,<br />

acesse os e-mails da estação de trabalho com o uso de qualquer cliente de e-mail<br />

desconecta<strong>do</strong> habilita<strong>do</strong> para IMAP, como o Mozilla Thunderbird Mail, o Evolution<br />

ou o KMail, conforme descrito em Aplicativos. O cliente de e-mail precisa ser<br />

configura<strong>do</strong> de tal mo<strong>do</strong> que as Mensagens enviadas sejam sempre acessadas<br />

da mesma pasta. Isso assegura a disponibilidade de todas as mensagens com<br />

informações sobre seu status após a conclusão <strong>do</strong> processo de sincronização. Use<br />

um servi<strong>do</strong>r SMTP implementa<strong>do</strong> no cliente de e-mail para o envio de mensagens,


em vez <strong>do</strong> postfix ou <strong>do</strong> sendmail <strong>do</strong> MTA em to<strong>do</strong> o sistema, para receber retorno<br />

confiável sobre e-mails não envia<strong>do</strong>s.<br />

Sincronizan<strong>do</strong> arquivos e diretórios<br />

Existem diversos utilitários adequa<strong>do</strong>s para a sincronização de da<strong>do</strong>s entre um<br />

laptop e uma estação de trabalho. Para obter informações detalhadas, consulte o<br />

Capítulo 27, Sincronização de arquivos (p 505).<br />

Comunicação sem fio<br />

Além da conexão a redes <strong>do</strong>mésticas ou de escritórios com um cabo, também é possível<br />

fazer uma conexão sem fio de um laptop a outros computa<strong>do</strong>res, periféricos, telefones<br />

celulares ou PDAs. O Linux dá suporte a três tipos de comunicação sem fio:<br />

WLAN<br />

Com o maior alcance dessas tecnologias sem fio, o WLAN é a única adequada para<br />

a operação de redes de grande porte e, às vezes, até mesmo de redes desconectadas<br />

virtualmente. Máquinas individuais podem se conectar entre si para formar uma<br />

rede sem fio independente ou para acessar a Internet. Dispositivos chama<strong>do</strong>s de<br />

pontos de acesso atuam como estações de base para dispositivos habilita<strong>do</strong>s para<br />

WLAN, além de servir como intermediários para o acesso à Internet. Um usuário<br />

móvel pode alternar entre pontos de acesso dependen<strong>do</strong> <strong>do</strong> local e de que ponto de<br />

acesso <strong>of</strong>ereça a melhor conexão. Assim como na telefonia celular, uma rede de<br />

grande porte está disponível aos usuários da WLAN sem restringi-los a um local<br />

específico para o acesso. Encontre informações sobre a WLAN na Seção 34.1,<br />

“LAN sem fio” (p 623).<br />

Bluetooth<br />

O Bluetooth possui o mais amplo espectro de aplicação de todas as tecnologias<br />

sem fio. Ele pode ser usa<strong>do</strong> na comunicação entre computa<strong>do</strong>res (laptops) e PDAs<br />

ou telefones celulares, assim como o IrDA. Também pode ser utiliza<strong>do</strong> para conectar<br />

diversos computa<strong>do</strong>res dentro de uma faixa visível. O Bluetooth também é usa<strong>do</strong><br />

para conectar componentes sem fio <strong>do</strong> sistema, como um tecla<strong>do</strong> ou mouse.<br />

Entretanto, o alcance dessa tecnologia não é suficiente para conectar sistemas<br />

remotos a uma rede. A WLAN é a melhor opção de tecnologia para comunicações<br />

em locais com obstáculos físicos, como paredes. Encontre mais informações sobre<br />

Bluetooth, seus aplicativos e configuração na Seção 34.2, “Bluetooth” (p 635).<br />

Computação móvel com o Linux 569


570 Referência<br />

IrDA<br />

O IrDA é a tecnologia sem fio de menor alcance. As duas extremidades da<br />

comunicação precisam estar a uma distância visível uma da outra. Não é possível<br />

contornar obstáculos como paredes. Uma aplicação possível <strong>do</strong> IrDA é a transmissão<br />

de arquivos de um laptop para um telefone celular. O curto caminho <strong>do</strong> laptop para<br />

o telefone celular é coberto com o uso <strong>do</strong> IrDA. O transporte de longo alcance <strong>do</strong><br />

arquivo ao seu destinatário é feito pela rede móvel. Outra aplicação <strong>do</strong> IrDA é a<br />

transmissão sem fio de serviços de impressão no escritório. Há mais informações<br />

a respeito <strong>do</strong> IrDA na Seção 34.3, “Transmissão de da<strong>do</strong>s infravermelhos” (p 647).<br />

30.1.4 Segurança de da<strong>do</strong>s<br />

Em termos ideais, os da<strong>do</strong>s conti<strong>do</strong>s no seu laptop são protegi<strong>do</strong>s de diversas maneiras<br />

contra o acesso não autoriza<strong>do</strong>. Possíveis medidas de segurança podem ser tomadas<br />

nas seguintes áreas:<br />

Proteção contra roubo<br />

Sempre que possível proteja a integridade física <strong>do</strong> seu sistema contra roubo.<br />

Diversas ferramentas de segurança, como correntes, podem ser adquiridas em lojas<br />

varejistas.<br />

Protegen<strong>do</strong> da<strong>do</strong>s no sistema<br />

Da<strong>do</strong>s importantes devem ser criptografa<strong>do</strong>s não apenas durante a transmissão,<br />

mas também no disco rígi<strong>do</strong>. Essa medida assegura sua segurança em caso de<br />

roubo. A criação de uma partição criptografada com o <strong>SUSE</strong> Linux é descrita na<br />

Seção 4.3, “Criptografan<strong>do</strong> partições e arquivos” (p 121).<br />

IMPORTANTE: Segurança de da<strong>do</strong>s e o evento Suspender para Disco<br />

As partições criptografadas não são desmontadas durante um evento de<br />

suspender para disco. Assim, to<strong>do</strong>s os da<strong>do</strong>s conti<strong>do</strong>s nessas partições<br />

ficarão disponíveis para qualquer pessoa que conseguir roubar o hardware<br />

e inicializar o disco rígi<strong>do</strong>.<br />

Segurança de rede<br />

Qualquer transferência de da<strong>do</strong>s deve ser protegida, independentemente de como<br />

seja feita. Encontre problemas de segurança geral referentes ao Linux e redes na<br />

Seção 4.5, “Segurança e confidencialidade” (p 134). Medidas de segurança referentes<br />

a redes sem fio são fornecidas no Capítulo 34, Comunicação sem fio (p 623).


30.2 Hardware móvel<br />

O <strong>SUSE</strong> Linux dá suporte à detecção automática de dispositivos de armazenamento<br />

móveis no Firewire (IEEE 1394) ou USB. O termo dispositivo de armazenamento móvel<br />

se aplica a qualquer tipo de disco rígi<strong>do</strong> Firewire ou USB, unidade flash USB ou câmera<br />

digital. Esses dispositivos são automaticamente detecta<strong>do</strong>s e configura<strong>do</strong>s por meio <strong>do</strong><br />

sistema hotplug logo que são conecta<strong>do</strong>s ao sistema pela interface correspondente. O<br />

subfs e o submount asseguram a montagem <strong>do</strong>s dispositivos nos locais correspondentes<br />

no sistema de arquivos. O usuário é totalmente poupa<strong>do</strong> da montagem e desmontagem<br />

manuais encontradas em versões anteriores <strong>do</strong> <strong>SUSE</strong> Linux. Um dispositivo pode ser<br />

simplesmente desconecta<strong>do</strong> quan<strong>do</strong> não houver nenhum programa acessan<strong>do</strong>-o.<br />

Discos rígi<strong>do</strong>s externos (USB e Firewire)<br />

Logo após o correto reconhecimento de um disco rígi<strong>do</strong> externo pelo sistema, seu<br />

ícone aparece em Meu Computa<strong>do</strong>r (KDE) ou em Computa<strong>do</strong>r (GNOME), na lista<br />

de unidades montadas. Clique no ícone para exibir o conteú<strong>do</strong> da unidade. É possível<br />

criar pastas e arquivos aqui, além de editá-los ou apagá-los. Para mudar o nome<br />

que um disco rígi<strong>do</strong> recebeu <strong>do</strong> sistema, clique o botão direito <strong>do</strong> mouse no ícone<br />

e selecione o item correspondente no menu. Essa mudança de nome é limitada à<br />

exibição no gerencia<strong>do</strong>r de arquivos. O descritor através <strong>do</strong> qual o dispositivo é<br />

monta<strong>do</strong> em /media permanece não afeta<strong>do</strong> por isso.<br />

Unidades flash USB<br />

Esses dispositivos são trata<strong>do</strong>s pelo sistema como discos rígi<strong>do</strong>s externos. Também<br />

nesses dispositivos é possível renomear as entradas <strong>do</strong> gerencia<strong>do</strong>r de arquivos.<br />

Câmeras digitais (USB e Firewire)<br />

As câmeras digitais reconhecidas pelo sistema também aparecem como unidades<br />

externas na visão geral <strong>do</strong> gerencia<strong>do</strong>r de arquivos. O KDE permite a leitura e o<br />

acesso às imagens no URL camera:/. Essas imagens podem ser processadas<br />

com o Digikam ou o GIMP. Ao usar o GNOME, o Nautilus exibe as imagens em<br />

sua própria pasta. Um utilitário simples de processamento e gerenciamento de<br />

imagens é o f-spot. O processamento avança<strong>do</strong> de fotos é feito com o GIMP. Para<br />

obter mais detalhes sobre câmeras digitais e sobre o gerenciamento de imagens,<br />

consulte Capítulo Câmeras digitais e Linux (↑Aplicativos).<br />

Computação móvel com o Linux 571


572 Referência<br />

30.3 Telefones celulares e PDAs<br />

Tanto um sistema de desktop como um laptop podem se comunicar com um telefone<br />

celular via Bluetooth ou IrDA. Alguns modelos dão suporte aos <strong>do</strong>is protocolos; outros,<br />

somente a um <strong>do</strong>s <strong>do</strong>is. As áreas de uso <strong>do</strong>s <strong>do</strong>is protocolos e a <strong>do</strong>cumentação ampliada<br />

correspondente já foram citadas em “Comunicação sem fio” (p 569). A configuração<br />

desses protocolos nos telefones celulares é descrita nos respectivos manuais. A<br />

configuração <strong>do</strong> componente Linux é descrita na Seção 34.2, “Bluetooth” (p 635) e<br />

Seção 34.3, “Transmissão de da<strong>do</strong>s infravermelhos” (p 647).<br />

O suporte à sincronização com dispositivos portáteis fabrica<strong>do</strong>s pela Palm, Inc., já vem<br />

incorpora<strong>do</strong> ao Evolution e ao Kontact. Nos <strong>do</strong>is casos, a conexão inicial com o<br />

dispositivo é facilmente realizada com um assistente. Após a configuração <strong>do</strong> suporte<br />

para Palm Pilots, é necessário determinar que tipo de da<strong>do</strong>s deve ser sincroniza<strong>do</strong><br />

(endereços, compromissos etc.). Ambos os aplicativos de groupware são descritos em<br />

Aplicativos.<br />

O programa KPilot, conforme integração no Kontact, também está disponível como<br />

um utilitário independente. É descrito em Aplicativos. O programa KitchenSync também<br />

está disponível para a sincronização de da<strong>do</strong>s de endereços.<br />

30.4 Mais informações<br />

O ponto central de referência para todas as dúvidas relativas a dispositivos móveis e o<br />

Linux é http://tuxmobil.org/. Diversas seções desse site da Web tratam de<br />

aspectos de hardware e s<strong>of</strong>tware de laptops, PDAs, telefones celulares e outros hardwares<br />

móveis.<br />

Uma abordagem semelhante de http://tuxmobil.org/ é feita por http://<br />

www.linux-on-laptops.com/. Informações sobre laptops e dispositivos portáteis<br />

podem ser encontradas nesse local.<br />

O <strong>SUSE</strong> mantém uma lista de discussão em alemão dedicada a laptops. Consulte<br />

http://lists.suse.com/archive/suse-laptop/. Nessa lista, usuários<br />

e desenvolve<strong>do</strong>res discutem to<strong>do</strong>s os aspectos da computação móvel com o uso <strong>do</strong><br />

<strong>SUSE</strong> Linux. As mensagens em inglês são respondidas, mas a maioria das informações<br />

<strong>do</strong>s arquivos está disponível somente em alemão.


No caso de problemas com o gerenciamento de energia com o <strong>SUSE</strong> Linux em laptops,<br />

é recomendável ler o arquivo README em /usr/share/<strong>do</strong>c/packages/<br />

powersave. Como muitas vezes contém comentários bem recentes de testa<strong>do</strong>res e<br />

desenvolve<strong>do</strong>res, esse diretório <strong>of</strong>erece dicas valiosas para a solução de problemas.<br />

Computação móvel com o Linux 573


PCMCIA<br />

O PCMCIA é geralmente usa<strong>do</strong> para se referir ao próprio hardware, embora ele se<br />

origine da organização que padronizou to<strong>do</strong>s os tipos possíveis de placas PC, a PC<br />

Memory Card International Association. No início, o PCMCIA incluiu somente placas<br />

PC (usan<strong>do</strong> um barramento de 16 bits como placas ISA), porém, mais tarde, placas<br />

CardBus (usan<strong>do</strong> um barramento de 32 bits) foram incluídas. Uma ampla variedade de<br />

hardware PCMCIA é suportada no Linux. Além disso, o Linux inclui ferramentas para<br />

gerenciar o PCMCIA.<br />

Placas PCMCIA são geralmente usadas em computação móvel para propósitos diferentes.<br />

Exemplos incluem:<br />

• Adapta<strong>do</strong>res LAN sem fio e Ethernet<br />

• Placas Bluetooth<br />

• Cartões de memória (Flash, SRAM e outros)<br />

• Adapta<strong>do</strong>res de cartão de memória (SD, MMC, SmartMedia, CompactFlash,<br />

MemoryStick)<br />

• Modems<br />

A maioria <strong>do</strong> gerenciamento de placas é tratada silenciosamente por udev e hotplug.<br />

Quan<strong>do</strong> for necessária a interação <strong>do</strong> usuário, use o coman<strong>do</strong> pccardctl. Para obter<br />

mais informações de apoio sobre o PCMCIA, consulte a Seção 31.2, “PCMCIA em<br />

detalhes” (p 576). Para obter detalhes sobre pccardctl, consulte a Seção 31.1,<br />

“Controlan<strong>do</strong> placas PCMCIA usan<strong>do</strong> pccardctl” (p 576).<br />

31<br />

PCMCIA 575


576 Referência<br />

31.1 Controlan<strong>do</strong> placas PCMCIA<br />

usan<strong>do</strong> pccardctl<br />

O gerenciamento de placas é normalmente trata<strong>do</strong> por udev e hotplug sem necessitar<br />

de qualquer interação <strong>do</strong> usuário. O pccardctl <strong>of</strong>erece controle manual da placa caso o<br />

processo automatiza<strong>do</strong> não funcione perfeitamente.<br />

A seguir está uma lista <strong>do</strong>s coman<strong>do</strong>s pccardctl mais importantes. To<strong>do</strong>s os coman<strong>do</strong>s<br />

devem ser executa<strong>do</strong>s como root:<br />

pccardctl insert<br />

Se a placa não foi detectada automaticamente, notifique os drivers <strong>do</strong> cliente que<br />

a placa acabou de ser inserida.<br />

pccardctl eject<br />

Ejete a placa manualmente e notifique os drivers <strong>do</strong> cliente que ela será ejetada.<br />

Desligue a energia para o soquete. Essa opção é especialmente útil se você percebeu<br />

problemas com suspensão e reinício conforme descrito na Seção 31.3.2, “Problemas<br />

de suspensão geral com o PCMCIA” (p 582).<br />

pccardctl suspend<br />

Desligue e desabilite a energia para um soquete, mas não ejete a placa (desvincule<br />

os módulos apropria<strong>do</strong>s).<br />

pccardctl resume<br />

Após um coman<strong>do</strong> pccardctl resume, ligue a energia para o soquete e restaure<br />

a configuração anterior ao evento suspend.<br />

Para obter mais informações, consulte a página <strong>do</strong> manual de pccardctl.<br />

31.2 PCMCIA em detalhes<br />

As seções a seguir descrevem o que acontece no seu sistema Linux quan<strong>do</strong> um<br />

dispositivo PCMCIA é conecta<strong>do</strong> à sua máquina. Os componentes interagem entre si<br />

e vários requisitos precisam ser atendi<strong>do</strong>s para suportar um dispositivo PCMCIA.<br />

A seguir uma descrição geral <strong>do</strong> processo de inicialização <strong>do</strong> PCMCIA no Linux:


1. A ponte PCMCIA (ou soquete) deve ser configurada de forma apropriada<br />

conforme descrito na Seção 31.2.1, “Inicialização da ponte” (p 577). Os prérequisitos<br />

são:<br />

• um driver apropria<strong>do</strong> para a ponte<br />

• faixas de memória e E/S adicionais para placas PC<br />

2. Após a ponte ser configurada de forma apropriada, o driver da ponte detecta a<br />

presença de uma placa e aciona a sua inicialização conforme descrito na<br />

Seção 31.2.2, “Inicialização da placa” (p 578):<br />

a. Determine o tipo de placa.<br />

b. Forneça a voltagem apropriada.<br />

c. Atribua faixas de memória e E/S e linhas IRQ à placa.<br />

d. Acione a inicialização <strong>do</strong> dispositivo ou da placa vinculan<strong>do</strong> o driver de<br />

placa apropria<strong>do</strong>.<br />

e. Para algumas placas, é preciso fazer o upload da CIS (Card Information<br />

Structure).<br />

3. Finalmente, a própria interface é configurada e está pronta para uso. Consulte a<br />

Seção 31.2.3, “Configuração de interface” (p 579) para obter detalhes.<br />

31.2.1 Inicialização da ponte<br />

A maioria das pontes PCMCIA é composta de dispositivos PCI e é tratada como tal. O<br />

processo de inicialização da ponte pode ser resumi<strong>do</strong> como a seguir:<br />

1. O hotplug cria um evento PCI.<br />

2. udev chama /sbin/hwup para carregar o driver. /sbin/hwup verifica /etc/<br />

sysconfig/hardware em busca de uma configuração de dispositivo<br />

existente. Se uma configuração apropriada for encontrada, ela será usada. Caso<br />

contrário /sbin/hwup chama modprobe com a string modalias fornecida<br />

pelo kernel para carregar o módulo de driver.<br />

3. Novos eventos de hotplug são envia<strong>do</strong>s (um por soquete de PCMCIA).<br />

PCMCIA 577


578 Referência<br />

4. As etapas a seguir serão omitidas se somente as placas CardBus forem usadas:<br />

a. Os eventos pcmcia_socket acionam o udev para chamar /sbin/hwup<br />

e carregar o módulo de kernel pcmcia.<br />

b. Todas as faixas de memória e E/S especificadas em /etc/pcmcia/<br />

config.opts são adicionadas ao soquete.<br />

c. Os serviços da placa no kernel verificam essas faixas. Se as faixas de<br />

memória em /etc/pcmcia/config.opts estiverem erradas, essa<br />

etapa poderá causar falha na sua máquina. Consulte a Seção 31.3.1, “A<br />

máquina falha com o PCMCIA” (p 580) para obter informações sobre como<br />

depurar e corrigir esse problema.<br />

Após essas etapas serem concluídas com êxito, a ponte será totalmente inicializada.<br />

Após isso, a própria placa será inicializada conforme descrito na seção seguinte.<br />

31.2.2 Inicialização da placa<br />

Os eventos causa<strong>do</strong>s pela conexão com uma placa PCMCIA podem ser resumi<strong>do</strong>s como<br />

a seguir:<br />

1. Um evento de hotplug ocorre. Para placas PC, esse é um evento pcmcia. Para<br />

placas CardBus, esse é um evento pci.<br />

2. Para quaisquer eventos, udev chama /sbin/hwup para carregar um módulo<br />

de driver. O nome <strong>do</strong> módulo é especifica<strong>do</strong> em um arquivo hwcfg* sob /etc/<br />

sysconfig/hardware ou através de modprobe modalias.<br />

3. Se necessário, a inicialização <strong>do</strong> dispositivo aciona um evento hotplug de<br />

firmware. Isso pesquisa por firmware e o carrega.<br />

4. O driver de dispositivo registra as interfaces.<br />

Após essas etapas serem concluídas, o sistema continua com a configuração de interface<br />

conforme descrito na seção seguinte.<br />

Se a sua placa for uma placa PC, você talvez precise de alguns <strong>do</strong>s seguintes parâmetros<br />

em /etc/sysconfig/pcmcia para que ela seja totalmente suportada e funcione<br />

sem falhas:


PCMCIA_LOAD_CIS<br />

Um firmware de placa PC é chama<strong>do</strong> de CIS (Card Information Structure). Ele<br />

fornece detalhes de implementação adicional da placa. O coman<strong>do</strong> hwup verifica<br />

a integridade da CIS integrada da placa e tenta carregar outra CIS <strong>do</strong> disco se a<br />

CIS da placa estiver com defeito. A configuração padrão é yes. Para desabilitar a<br />

CIS de carregar a partir <strong>do</strong> disco, defina esta variável como no.<br />

PCMCIA_ALLOW_FUNC_MATCH<br />

Os drivers de dispositivo <strong>do</strong> Linux contêm uma tabela de ID de dispositivo que<br />

informa aos drivers quais dispositivos devem ser gerencia<strong>do</strong>s. Isso significa que<br />

somente os dispositivos cujos IDs são conheci<strong>do</strong>s pelo kernel são suporta<strong>do</strong>s. Para<br />

suportar essas placas cujo ID não está lista<strong>do</strong>, é possível usar a correspondência<br />

de função. Isso significa que o driver não está seleciona<strong>do</strong> por ID, mas pela função<br />

da placa (como uma placa de rede) e seria responsável por qualquer placa PC<br />

inserida com essa função (como placas de rede). A configuração padrão é yes.<br />

Para desabilitar a correspondência de função, defina esta variável para no.<br />

PCMCIA_COLDPLUG_REINSERT<br />

Placas que foram inseridas antes da inicialização às vezes não são detectadas. Para<br />

evitar isso, cause uma ejeção automática e uma inserção automática da placa<br />

definin<strong>do</strong> PCMCIA_COLDPLUG_REINSERT como yes. A configuração padrão<br />

é no.<br />

31.2.3 Configuração de interface<br />

Dependen<strong>do</strong> <strong>do</strong> tipo de placa, interfaces diferentes são registradas após a inicialização<br />

ter si<strong>do</strong> concluída com sucesso. O registro de interface é gerencia<strong>do</strong> pelo hotplug <strong>do</strong><br />

udev. Para obter detalhes sobre udev e hotplug, consulte o Capítulo 12, Gerenciamento<br />

de dispositivo de kernel dinâmico com udev (p 261).<br />

31.3 Solução de problemas<br />

A seguir está uma lista <strong>do</strong>s problemas mais proeminentes encontra<strong>do</strong>s ocasionalmente<br />

com PCMCIA. Mais informações sobre esse assunto estão disponíveis no README<br />

<strong>do</strong> PCMCIA (/usr/share/<strong>do</strong>c/packages/pcmciautils/README.SuSE).<br />

PCMCIA 579


580 Referência<br />

31.3.1 A máquina falha com o PCMCIA<br />

A sua máquina falha quan<strong>do</strong> o PCMCIA é inicia<strong>do</strong> com boot. Para descobrir o que<br />

causou a falha na máquina, configure-a manualmente conforme descrito abaixo. Ao<br />

configurar com cuida<strong>do</strong> o PCMCIA manualmente, você pode identificar com clareza<br />

a etapa ou o componente que causou falha na sua máquina. Após a identificação <strong>do</strong><br />

responsável, você pode contornar o componente ou a etapa problemática.<br />

Para configurar manualmente o PCMCIA, proceda da seguinte maneira:<br />

1 Evite que o PCMCIA seja inicia<strong>do</strong> durante a inicialização <strong>do</strong> sistema e habilite<br />

o SysRq para depuração mais fácil acrescentan<strong>do</strong> as seguintes opções ao prompt<br />

de inicialização:<br />

init=3 pcmcia=<strong>of</strong>f sysrq=1<br />

Para obter mais informações sobre SysRq, consulte /usr/src/linux/<br />

Documentation/sysrq.txt.<br />

2 Inicialize o sistema em um ambiente basea<strong>do</strong> em texto e efetue login como root.<br />

3 Adicione os módulos PCMCIA apropria<strong>do</strong>s ao kernel:<br />

/sbin/modprobe yenta_socket<br />

/sbin/modprobe pcmcia<br />

4 Inicie o soquete <strong>do</strong> PCMCIA:<br />

/sbin/pcmcia-socket-startupN<br />

Substitua N pelo número <strong>do</strong> soquete. Repita esta etapa para cada soquete.<br />

5 Se a etapa anterior causou falhas na máquina, isso pode ter si<strong>do</strong> causa<strong>do</strong> por<br />

faixas de memória ou E/S erradas especificadas em /etc/pcmcia/config<br />

.opts. Para evitar isso, execute uma das seguintes ações:<br />

• Exclua faixas em /ect/pcmcia/config.opts e tente novamente a<br />

configuração <strong>do</strong> soquete.<br />

• Adicione as faixas manualmente conforme descrito abaixo.<br />

Após ter adiciona<strong>do</strong> com êxito as faixas apropriadas manualmente, definaas<br />

de forma permanente incluin<strong>do</strong>-as em /etc/pcmcia/config.opts.


6 Após a configuração de soquete ter si<strong>do</strong> concluída com êxito, a inicialização da<br />

placa e a configuração da interface funcionam conforme descrito na Seção 31.2.2,<br />

“Inicialização da placa” (p 578) e na Seção 31.2.3, “Configuração de interface”<br />

(p 579).<br />

Para adicionar manualmente faixas de E/S, proceda da seguinte maneira (para cada<br />

soquete):<br />

1 Mude para o diretório que mantém as configurações de faixa (neste caso, pcmcia<br />

_socket0, adapta<strong>do</strong> para outros números de soquete):<br />

cd /sys/class/pcmcia_socket/pcmcia_socket0<br />

2 Execute o seguinte coman<strong>do</strong>:<br />

echo begin - end > available_resources_io<br />

Substitua begin e end pelos endereços onde a nova faixa deve iniciar e encerrar.<br />

Os valores corretos só podem ser determina<strong>do</strong>s por tentativa e erro.<br />

Adicionan<strong>do</strong> manualmente as seguintes faixas:<br />

echo 0x800 - 0x8ff > available_resources_io<br />

echo 0xc00 - 0xcff > available_resources_io<br />

é igual à seguinte linha de /etc/pcmcia/config.opts:<br />

include port 0x800-0x8ff, port 0xc00 0xcff<br />

O mesmo procedimento se aplica às faixas de memória sob available_resources<br />

_mem.<br />

IMPORTANTE: Identifican<strong>do</strong> configurações padrão com falhas<br />

Se você encontrar uma faixa com falha no arquivo de configuração padrão<br />

(/etc/pcmcia/config.opts) envia<strong>do</strong> com este produto, arquive um<br />

relatório de erros sobre ele em http://bugzilla.novell.com, para que<br />

os desenvolve<strong>do</strong>res possam analisar esse problema.<br />

PCMCIA 581


582 Referência<br />

31.3.2 Problemas de suspensão geral com o<br />

PCMCIA<br />

Ao suspender o sistema (suspender para disco, suspender para RAM ou standby), não<br />

conecte ou desconecte quaisquer itens de hardware enquanto o sistema estiver no mo<strong>do</strong><br />

de suspensão. De outra forma, o sistema talvez não continue de forma adequada.<br />

Para ejetar placas PCMCIA automaticamente na suspensão, proceda da seguinte maneira:<br />

1 Efetue login como Root.<br />

2 Abra o arquivo /etc/powersave/sleep.<br />

3 Defina as seguintes variáveis:<br />

SUSPEND2DISK_EJECT_PCMCIA="yes"<br />

SUSPEND2RAM_EJECT_PCMCIA="yes"<br />

STANDBY_EJECT_PCMCIA="yes"<br />

4 Grave o arquivo para aplicar as configurações.<br />

Se módulos adicionais precisarem ser ejeta<strong>do</strong>s na suspensão, proceda como acima e<br />

adicione os nomes de módulos às seguintes variáveis:<br />

UNLOAD_MODULES_BEFORE_SUSPEND2DISK=""<br />

UNLOAD_MODULES_BEFORE_SUSPEND2RAM=""<br />

UNLOAD_MODULES_BEFORE_STANDBY=""<br />

Para obter informações gerais sobre o daemon de economia de energia, consulte a<br />

Seção 33.5, “O Pacote powersave” (p 610).<br />

31.3.3 Mais informações<br />

Encontre as informações mais atualizadas sobre o PCMCIA em /usr/share/<strong>do</strong>c/<br />

packages/pcmciautils/README.SuSE. Para obter uma visão geral abrangente<br />

sobre o hardware <strong>do</strong> PCMCIA e seus campos de uso, vá para o site <strong>of</strong>icial <strong>do</strong> PCMCIA<br />

(http://www.pcmcia.org/pccard.htm). Para verificar se uma determinada<br />

placa ou dispositivo é geralmente suportada pelo Linux, consulte a Linux<br />

PCMCIA/CF/CardBus Card Survey em http://tuxmobil.org/pcmcia_linux<br />

.html.


System Configuration Pr<strong>of</strong>ile<br />

Management<br />

Com a ajuda <strong>do</strong> SCPM (System Configuration Pr<strong>of</strong>ile Management - Gerenciamento<br />

de Perfil da Configuração <strong>do</strong> Sistema) adapte a configuração <strong>do</strong> seu computa<strong>do</strong>r a<br />

diferentes ambientes operacionais ou configurações de hardware. O SCPM gerencia<br />

um conjunto de perfis <strong>do</strong> sistema para os diferentes cenários. O SCPM permite alternar<br />

facilmente entre perfis <strong>do</strong> sistema, eliminan<strong>do</strong> a necessidade de reconfigurar<br />

manualmente o sistema.<br />

Algumas situações requerem uma configuração <strong>do</strong> sistema modificada. Isso seria em<br />

geral o caso para computa<strong>do</strong>res móveis que são opera<strong>do</strong>s em locais variáveis. O SCPM<br />

é prático se um sistema <strong>do</strong> desktop deve ser opera<strong>do</strong> temporariamente usan<strong>do</strong><br />

componentes de hardware diferentes <strong>do</strong>s normais. A restauração da configuração <strong>do</strong><br />

sistema original deve ser fácil e a modificação da configuração <strong>do</strong> sistema pode ser<br />

reproduzida. Com o SCPM, qualquer parte da configuração <strong>do</strong> sistema pode ser mantida<br />

em um perfil personaliza<strong>do</strong>.<br />

O campo principal de aplicação <strong>do</strong> SCPM é a configuração de rede em laptops.<br />

Configurações de rede diferentes geralmente requerem configurações diferentes de<br />

outros serviços, como e-mail ou proxies. Depois disso, vêm outros elementos, como<br />

impressoras diferentes em casa e no escritório, uma configuração personalizada de<br />

servi<strong>do</strong>r X para o projetor multimídia em conferências, configurações especiais de<br />

economia de energia para viagens ou um fuso horário diferente em uma subsidiária<br />

estrangeira.<br />

32<br />

System Configuration Pr<strong>of</strong>ile Management 583


584 Referência<br />

32.1 Terminologia<br />

A seguir, estão alguns termos usa<strong>do</strong>s na <strong>do</strong>cumentação <strong>do</strong> SCPM e no módulo YaST.<br />

configuração <strong>do</strong> sistema<br />

Refere-se à configuração completa <strong>do</strong> computa<strong>do</strong>r. Ele abrange todas as<br />

configurações fundamentais, como o uso de partições de disco rígi<strong>do</strong>, configurações<br />

de rede, seleção de fuso horário e mapeamentos de tecla<strong>do</strong>.<br />

perfil ou perfil <strong>do</strong> sistema<br />

Um esta<strong>do</strong> que foi preserva<strong>do</strong> e pode ser restaura<strong>do</strong> a qualquer momento.<br />

perfil ativo<br />

Refere-se ao perfil seleciona<strong>do</strong> por último. Isso não significa que a configuração<br />

<strong>do</strong> sistema atual corresponde exatamente a este perfil, porque ela pode ser<br />

modificada a qualquer momento.<br />

recurso<br />

Um elemento que contribui para a configuração <strong>do</strong> sistema. Pode se tratar de um<br />

arquivo ou um s<strong>of</strong>tlink que inclua metada<strong>do</strong>s (como o usuário), permissões ou<br />

tempo de acesso. Também pode ser um serviço <strong>do</strong> sistema que é executa<strong>do</strong> neste<br />

perfil, mas está desabilita<strong>do</strong> em outro.<br />

grupo de recursos<br />

Cada recurso pertence a um determina<strong>do</strong> grupo de recursos. Esses grupos contêm<br />

to<strong>do</strong>s os recursos que logicamente devem estar juntos. A maioria de grupos conteria<br />

um serviço e seus arquivos de configuração. É muito fácil agrupar recursos<br />

gerencia<strong>do</strong>s pelo SCPM porque isso não requer nenhum conhecimento <strong>do</strong>s arquivos<br />

de configuração <strong>do</strong> serviço deseja<strong>do</strong>. O SCPM é forneci<strong>do</strong> com uma seleção de<br />

grupos de recursos pré-configura<strong>do</strong>s que devem ser suficientes para a maioria <strong>do</strong>s<br />

cenários.<br />

32.2 Configuran<strong>do</strong> o SCPM<br />

As seções a seguir o introduzem à configuração <strong>do</strong> SCPM através de um exemplo da<br />

vida real: um computa<strong>do</strong>r móvel executa<strong>do</strong> em várias redes diferentes. Os problemas<br />

principais neste cenário são:


• Ambientes de rede variáveis, como LAN sem fio em casa e uma ethernet no trabalho<br />

• Configuração de impressora diferente em casa e no trabalho<br />

Para que o SCPM funcione corretamente e gerencie a sua configuração de sistema<br />

variável, proceda como a seguir:<br />

1 Adicione o applet Seletor de Perfil ao seu painel e configure-o para permitir a<br />

alternação de usuário conforme descrito na Seção 32.3.1, “Configuran<strong>do</strong> o applet<br />

<strong>do</strong> painel Seletor de Perfil” (p 585).<br />

2 Configure o SCPM usan<strong>do</strong> o módulo <strong>do</strong> Gerencia<strong>do</strong>r de Perfis <strong>do</strong> YaST conforme<br />

descrito na Seção 32.3.2, “Definin<strong>do</strong> configurações básicas <strong>do</strong> SCPM” (p 586).<br />

3 Crie um perfil para cada uma das configurações diferentes usan<strong>do</strong> SUMF (SCPM<br />

Unified Management Front-End) conforme descrito na Seção 32.3.3, “Crian<strong>do</strong><br />

um novo perfil” (p 588).<br />

4 Alterne para o perfil apropria<strong>do</strong> para sua situação atual conforme descrito na<br />

Seção 32.3.4, “Alternan<strong>do</strong> perfis” (p 589).<br />

Se você preferir controlar o SCPM com a interface de linha de coman<strong>do</strong>, consulte a<br />

Seção 32.4, “Configuran<strong>do</strong> o SCPM com a linha de coman<strong>do</strong>” (p 592) para obter detalhes.<br />

32.3 Configuran<strong>do</strong> o SCPM usan<strong>do</strong><br />

uma interface gráfica de usuário<br />

As seções a seguir introduzem as ferramentas gráficas usadas para controlar as<br />

configurações de perfil.<br />

32.3.1 Configuran<strong>do</strong> o applet <strong>do</strong> painel<br />

Seletor de Perfil<br />

Antes que você possa usar o Seletor de Perfil para controlar a configuração de sistema,<br />

configure-a para ser iniciada automaticamente no login:<br />

System Configuration Pr<strong>of</strong>ile Management 585


586 Referência<br />

• No GNOME, clique o botão direito <strong>do</strong> mouse no painel e selecione Seletor de Perfil<br />

na lista de applets disponíveis.<br />

• No KDE, selecione Sistema → Applet de Desktop → Seletor de Perfil para adicionar<br />

o Seletor de Perfil ao seu painel.<br />

32.3.2 Definin<strong>do</strong> configurações básicas <strong>do</strong><br />

SCPM<br />

Configure o comportamento básico <strong>do</strong> SCPM através <strong>do</strong> YaST.<br />

1 Inicie o YaST no menu principal e selecione o Gerencia<strong>do</strong>r de Perfis <strong>do</strong> YaST.<br />

2 Em System Configuration Pr<strong>of</strong>ile Management, clique em Opções e selecione<br />

Habilita<strong>do</strong>.<br />

3 Determine quão verboso o SCPM deve ser selecionan<strong>do</strong> uma ou ambas opções<br />

Mensagens de Andamento Detalhadas e Registrar Mensagens de Depuração.<br />

4 Determine o mo<strong>do</strong> de troca apropria<strong>do</strong> para a sua configuração:<br />

• Deve o SCPM listar qualquer recurso modifica<strong>do</strong> ao alternar para outro perfil<br />

e gravar essas mudanças para o perfil ativo? Selecione Normal ou Salvar<br />

Mudanças.<br />

• Deve o SCPM descartar qualquer configuração de recurso mudada ao<br />

alternar? Selecione Descartar Mudanças.<br />

5 Defina o mo<strong>do</strong> de inicialização e determine se as mudanças no perfil atual devem<br />

ser gravadas ou se devem ser descartadas com a alternação <strong>do</strong> perfil acionada no<br />

momento da inicialização.<br />

6 Verifique se to<strong>do</strong>s os grupos de recursos necessários estão cobertos pela seleção<br />

ativa, exibida na seção Grupos de Recursos. Se você precisa de grupos de recursos<br />

adicionais, ajuste os recursos com Configurar Recursos. Para obter informações,<br />

consulte a Seção 32.3.6, “Configuran<strong>do</strong> grupos de recursos” (p 590).


Para o cenário de exemplo, você não precisa configurar recursos adicionais, pois<br />

os recursos de impressora e rede são incluí<strong>do</strong>s por padrão.<br />

Figura 32.1 YaST: Configuração básica <strong>do</strong> SCPM<br />

Para permitir que usuários diferentes de root gerenciem perfis, proceda da seguinte<br />

maneira:<br />

1 Inicie o YaST no menu principal e selecione o Gerencia<strong>do</strong>r de Perfis <strong>do</strong> YaST.<br />

2 Marque Permitir que Usuários não-root Gerenciem Perfis. Consulte a Figura 32.2,<br />

“YaST: Configurar usuários <strong>do</strong> SCPM” (p 588).<br />

3 Clique em Configurar Usuários.<br />

4 Clique em Adicionar para adicionar qualquer usuário que seja capaz de gerenciar<br />

perfis.<br />

5 Para cada usuário, especifique se ele deve ter permissões de alternação somente<br />

ou se este usuário deve ter permissão para alternar, modificar e criar perfis.<br />

6 Clique em Aceitar para aplicar suas configurações e fechar o YaST.<br />

System Configuration Pr<strong>of</strong>ile Management 587


588 Referência<br />

Figura 32.2 YaST: Configurar usuários <strong>do</strong> SCPM<br />

32.3.3 Crian<strong>do</strong> um novo perfil<br />

Após ter habilita<strong>do</strong> o SCPM, você terá um perfil chama<strong>do</strong> default que contém a sua<br />

configuração de sistema atual. Crie outro perfil que corresponda aos requisitos da outra<br />

configuração.<br />

Para adicionar um novo perfil basea<strong>do</strong> na configuração de sistema atual, proceda como<br />

a seguir:<br />

1 Clique o botão direito <strong>do</strong> mouse no Seletor de Perfil e selecione Executar<br />

Gerencia<strong>do</strong>r de Perfis (SUMF).<br />

2 Selecione Perfis → Adicionar.<br />

3 Digite o nome <strong>do</strong> novo perfil e clique em OK.<br />

4 Determine se o novo perfil deve ser o perfil ativo.<br />

Se você selecionou Sim, o SCPM alterna para o novo perfil imediatamente após<br />

ele ter si<strong>do</strong> cria<strong>do</strong>.


Para este exemplo, proceda da seguinte maneira:<br />

1 Na sua configuração inicial, habilite o SCPM.<br />

2 Renomeie o perfil default para um nome mais descritivo inician<strong>do</strong> o SUMF<br />

e selecionan<strong>do</strong> Perfis → Editar e digitan<strong>do</strong> o novo nome.<br />

3 Na sua configuração no trabalho, inicie o SUMF e crie o perfil para o ambiente<br />

de sistema no trabalho.<br />

Após ter to<strong>do</strong>s os perfis necessários, você já estará pronto para alternar para eles sempre<br />

que uma configuração de sistema diferente for necessária. A alternação de perfis é<br />

descrita na Seção 32.3.4, “Alternan<strong>do</strong> perfis” (p 589).<br />

32.3.4 Alternan<strong>do</strong> perfis<br />

Há duas maneiras de alternar perfis. Você pode selecionar um novo perfil na inicialização<br />

ou alternar perfis no sistema em execução.<br />

Para selecionar um perfil na inicialização, proceda da seguinte maneira:<br />

1 Na tela de inicialização, pressione F2 para entrar no menu Outras Opções.<br />

2 Pressione F3 para acessar a lista de perfis disponível.<br />

3 Use as teclas de seta para selecionar o perfil apropria<strong>do</strong> e pressione Enter .<br />

O sistema inicializa na configuração selecionada.<br />

Para alternar perfis em um sistema em execução, proceda da seguinte maneira:<br />

1 Verifique se você tem permissão para alternar perfis como um usuário não-root.<br />

Se você não tiver permissão para isso, consulte a Seção 32.3.2, “Definin<strong>do</strong><br />

configurações básicas <strong>do</strong> SCPM” (p 586).<br />

2 Clique com o botão esquer<strong>do</strong> <strong>do</strong> mouse no applet de painel Seletor de Perfil.<br />

3 Selecione o perfil necessário no menu aberto usan<strong>do</strong> as teclas de seta e pressione<br />

Enter .<br />

System Configuration Pr<strong>of</strong>ile Management 589


590 Referência<br />

O SCPM executa uma verificação para os recursos modifica<strong>do</strong>s e solicita uma<br />

confirmação da alternação. Se foram feitas mudanças à configuração <strong>do</strong> sistema<br />

antes da alternação, o SCPM pergunta se você deseja mantê-las ou descartá-las<br />

ao alternar para outro perfil.<br />

32.3.5 Editan<strong>do</strong> um perfil<br />

Para ajustar perfis existentes a um ambiente modifica<strong>do</strong>, por exemplo, se você deseja<br />

mudar a configuração da impressora da sua rede <strong>do</strong>méstica, proceda da seguinte maneira:<br />

1 Alterne para o perfil para ajustá-lo conforme descrito na Seção 32.3.4, “Alternan<strong>do</strong><br />

perfis” (p 589). Neste exemplo, você escolheria o perfil home.<br />

2 Mude os recursos que precisam de ajustes usan<strong>do</strong> o módulo YaST apropria<strong>do</strong>.<br />

Neste exemplo, execute a configuração da impressora <strong>do</strong> YaST.<br />

3 Após as mudanças de configuração terem si<strong>do</strong> aplicadas, o SCPM pergunta se<br />

essas mudanças devem ser aplicadas permanentemente ao seu perfil ativo na<br />

próxima alternação de perfil.<br />

DICA: Forçan<strong>do</strong> uma atualização de perfil<br />

Se você deseja forçar uma atualização <strong>do</strong> perfil ativo, clique no perfil no<br />

menu de seleção <strong>do</strong> perfil <strong>do</strong> applet de painel Seletor de Perfil. Isso<br />

acionará um recarregamento <strong>do</strong> perfil e você será solicita<strong>do</strong> a aplicar as<br />

mudanças de configuração ou descartá-las.<br />

32.3.6 Configuran<strong>do</strong> grupos de recursos<br />

O SCPM vem com um conjunto de grupos de recursos pré-defini<strong>do</strong>s que estão incluí<strong>do</strong>s<br />

em qualquer perfil por padrão. Porém, alguns cenários exigem a inclusão de recursos<br />

adicionais e grupos de recursos.<br />

Para mudar a configuração de recursos (grupo), proceda da seguinte maneira:<br />

1 Inicie o YaST no menu principal e inicie o módulo <strong>do</strong> Gerencia<strong>do</strong>r de Perfis <strong>do</strong><br />

YaST.


2 Na caixa de diálogo System Configuration Pr<strong>of</strong>ile Management, clique em<br />

Configurar Recursos.<br />

To<strong>do</strong>s os grupos de recursos disponíveis no sistema são lista<strong>do</strong>s como mostra<strong>do</strong><br />

na Figura 32.3, “Configuran<strong>do</strong> grupos de recursos” (p 591).<br />

3 Para adicionar ou editar um grupo de recursos:<br />

a Defina ou edite Grupo de Recursos e Descrição.<br />

b Insira os recursos apropria<strong>do</strong>s (recursos, serviços ou ambos) e apague os<br />

que não são necessários. Para redefinir o status <strong>do</strong>s recursos seleciona<strong>do</strong>s,<br />

descarte quaisquer mudanças feitas neles e retorne aos valores de<br />

configuração inicial, escolha Reconfigurar Grupo.<br />

c Clique em OK para sair da configuração de recursos.<br />

4 Clique em OK para gravar as mudanças no perfil ativo.<br />

Figura 32.3 Configuran<strong>do</strong> grupos de recursos<br />

System Configuration Pr<strong>of</strong>ile Management 591


592 Referência<br />

32.4 Configuran<strong>do</strong> o SCPM com a<br />

linha de coman<strong>do</strong><br />

Esta seção introduz a configuração de linha de coman<strong>do</strong> <strong>do</strong> SCPM. Aprenda como<br />

iniciá-la, configurá-la e trabalhar com perfis.<br />

32.4.1 Inician<strong>do</strong> o SCPM e definin<strong>do</strong> grupos<br />

de recursos<br />

O SCPM deve ser ativa<strong>do</strong> antes de ser usa<strong>do</strong>. Ative o SCPM com scpm enable. Ao<br />

ser executa<strong>do</strong> pela primeira vez, o SCPM é inicializa<strong>do</strong>, o que leva alguns segun<strong>do</strong>s.<br />

Desative o SCPM com scpm disable a qualquer momento para evitar a troca não<br />

intencional de perfis. Uma reativação subseqüente simplesmente reinicia a inicialização.<br />

Por padrão, o SCPM trata configurações de rede e impressora, assim como a<br />

configuração X.Org. Para gerenciar serviços ou arquivos de configuração especiais,<br />

ative os grupos de recursos respectivos. Para relacionar os grupos de recursos<br />

predefini<strong>do</strong>s, use scpm list_groups. Para ver somente os grupos já ativa<strong>do</strong>s, use<br />

scpm list_groups -a. Emita estes coman<strong>do</strong>s como root na linha de coman<strong>do</strong>.<br />

scpm list_groups -a<br />

nis Network Information Service client<br />

mail Mail subsystem<br />

ntpd Network Time Protocol daemon<br />

xf86 X Server settings<br />

aut<strong>of</strong>s Automounter service<br />

network Basic network settings<br />

printer Printer settings<br />

Ative ou desative um grupo com scpm activate_group NOME ou scpm<br />

deactivate_group NOME. Substitua NOME pelo nome de grupo relevante.<br />

32.4.2 Crian<strong>do</strong> e gerencian<strong>do</strong> perfis<br />

Um perfil chama<strong>do</strong> default já existe depois que o SCPM foi ativa<strong>do</strong>. Obtenha uma<br />

lista de to<strong>do</strong>s os perfis disponíveis com scpm list. Este perfil existente também é<br />

o perfil ativo, que pode ser verifica<strong>do</strong> com scpm active. O perfil default é uma


configuração básica da qual os outros perfis são deriva<strong>do</strong>s. Por este motivo, todas as<br />

configurações que devem ser idênticas em to<strong>do</strong>s os perfis devem ser criadas primeiro.<br />

Em seguida, armazene essas modificações no perfil ativo com scpm reload. O perfil<br />

default pode ser copia<strong>do</strong> e renomea<strong>do</strong> como a base de novos perfis.<br />

Existem duas maneiras de adicionar um novo perfil. Se o novo perfil (chama<strong>do</strong><br />

trabalho aqui) deve ser basea<strong>do</strong> no perfil default, crie-o com scpm copy<br />

default trabalho. O coman<strong>do</strong> scpm switch trabalho muda para o novo<br />

perfil, que pode então ser modifica<strong>do</strong>. Convém modificar a configuração <strong>do</strong> sistema<br />

para finalidades especiais e gravar as mudanças em um novo perfil. O coman<strong>do</strong> scpm<br />

add trabalho cria um novo perfil gravan<strong>do</strong> a configuração <strong>do</strong> sistema atual no<br />

perfil trabalho e tornan<strong>do</strong>-a ativa. A execução de scpm reload grava as mudanças<br />

no perfil trabalho.<br />

Os perfis podem ser renomea<strong>do</strong>s ou apaga<strong>do</strong>s com os coman<strong>do</strong>s scpm rename x<br />

y e scpm delete z. Por exemplo, para renomear trabalho para projeto, digite<br />

scpm rename trabalho projeto. Para apagar projeto, digite scpm<br />

delete projeto. O perfil ativo não pode ser apaga<strong>do</strong>.<br />

32.4.3 Alternan<strong>do</strong> perfis de configuração<br />

O coman<strong>do</strong> scpm switch trabalho alterna para um outro perfil (o perfil<br />

trabalho, neste caso). Alterne para o perfil ativo a fim de incluir configurações<br />

modificadas da configuração <strong>do</strong> sistema no perfil. Isso corresponde ao coman<strong>do</strong> scpm<br />

reload.<br />

Ao alternar perfis, o SCPM primeiro verifica que recursos <strong>do</strong> perfil ativo foram<br />

modifica<strong>do</strong>s. Em seguida, ele consulta se a modificação de cada recurso deve ser<br />

adicionada ao perfil ativo ou descartada. Se você preferir ter uma lista separada de<br />

recursos (como em versões antigas <strong>do</strong> SCPM), use o coman<strong>do</strong> de troca com o parâmetro<br />

-r: scpm switch -r trabalho.<br />

scpm switch -r trabalho<br />

Checking for modified resources<br />

Checking for Resources to be started/shut <strong>do</strong>wn<br />

Checking for dependencies<br />

Restoring pr<strong>of</strong>ile default<br />

O SCPM compara então a configuração <strong>do</strong> sistema atual com o perfil para o qual<br />

alternar. Nesta fase, o SCPM avalia que serviços <strong>do</strong> sistema precisam ser interrompi<strong>do</strong>s<br />

System Configuration Pr<strong>of</strong>ile Management 593


594 Referência<br />

ou reinicia<strong>do</strong>s devi<strong>do</strong> a dependências mútuas ou a fim de refletir as mudanças na<br />

configuração. Isso é como uma reinicialização parcial <strong>do</strong> sistema que somente afeta<br />

uma pequena parte <strong>do</strong> sistema enquanto o resto continua operan<strong>do</strong> sem mudanças. É<br />

somente neste ponto que os serviços <strong>do</strong> sistema são interrompi<strong>do</strong>s, to<strong>do</strong>s os recursos<br />

modifica<strong>do</strong>s, como arquivos de configuração, são grava<strong>do</strong>s, e os serviços <strong>do</strong> sistema<br />

são reinicia<strong>do</strong>s.<br />

32.4.4 Configurações avançadas de perfil<br />

Você pode digitar uma descrição para cada perfil que é exibi<strong>do</strong> com scpm list. Para<br />

o perfil ativo, defina-o com scpm set description "texto". Forneça o nome<br />

<strong>do</strong> perfil para perfis inativos, por exemplo, scpm set description "texto"<br />

trabalho. Talvez convenha, algumas vezes, executar ações adicionais não fornecidas<br />

pelo SCPM ao alternar perfis. Anexe de um a quatro executáveis para cada perfil. Eles<br />

são chama<strong>do</strong>s em estágios diferentes <strong>do</strong> processo de alternação. Estes estágios são<br />

conheci<strong>do</strong>s como:<br />

pré-parar<br />

antes de interromper serviços ao deixar o perfil<br />

pós-parar<br />

após interromper serviços ao deixar o perfil<br />

pré-iniciar<br />

antes de iniciar serviços ao ativar o perfil<br />

pós-iniciar<br />

após iniciar serviços ao ativar os perfis<br />

Insira estas ações com o coman<strong>do</strong> set digitan<strong>do</strong> scpm set pré-parar<br />

filename, scpm set pós-parar filename, scpm set pré-iniciar<br />

filename ou scpm set pós-iniciar filename. Os scripts devem ser<br />

executáveis e devem indicar o interpreta<strong>do</strong>r correto.<br />

ATENÇÃO: Integran<strong>do</strong> um script personaliza<strong>do</strong><br />

Os scripts adicionais a serem executa<strong>do</strong>s pelo SCPM devem ser legíveis e<br />

executáveis para o superusuário (root). O acesso a esses arquivos deve ser<br />

bloquea<strong>do</strong> para to<strong>do</strong>s os usuários. Digite os coman<strong>do</strong>s chmod 700 filename


e chown root:root filename para dar ao root permissões exclusivas<br />

aos arquivos.<br />

Consulte todas as configurações adicionais digitadas com set com get. O coman<strong>do</strong><br />

scpm get pós-iniciar, por exemplo, retorna o nome da chamada pós-iniciar<br />

ou simplesmente nada se nada foi anexa<strong>do</strong>. Redefina essas configurações sobregravan<strong>do</strong><br />

com "". O coman<strong>do</strong> scpm set pré-parar "" remove o programa pré-parar<br />

anexa<strong>do</strong>.<br />

To<strong>do</strong>s os coman<strong>do</strong>s set e get podem ser aplica<strong>do</strong>s a um perfil arbitrário da mesma<br />

maneira que os comentários são adiciona<strong>do</strong>s. Por exemplo, scpm get pré-parar<br />

filename trabalho ou scpm get pré-parar trabalho.<br />

32.5 Solução de problemas<br />

Esta seção abrange problemas freqüentes encontra<strong>do</strong>s com o SCPM. Aprenda como<br />

eles podem ocorrer e como você pode resolvê-los.<br />

32.5.1 O SCPM e o NetworkManager<br />

O NetworkManager e o SCPM compartilham funcionalidade. Ambos integram a máquina<br />

em uma rede existente, ocultan<strong>do</strong> essa transação <strong>do</strong> usuário. O NetworkManager trabalha<br />

dinamicamente e adapta-se a qualquer novo ambiente. O SCPM é usa<strong>do</strong> para restaurar<br />

configurações de sistema definidas.<br />

Usar o NetworkManager e o SCPM em paralelo não funciona de forma correta, pois o<br />

NetworkManager não fornece configurações que possam ser restauradas pelo SCPM.<br />

O SCPM funciona de forma excelente para qualquer pessoa que precisa de configurações<br />

reproduzíveis. Qualquer usuário priva<strong>do</strong> que alterna constantemente entre redes (sem<br />

fio) deve considerar o uso <strong>do</strong> NetworkManager se a configuração de rede for o único<br />

componente que precise de ajuste.<br />

Para usar o SCPM para o gerenciamento de configuração de rede, desabilite o<br />

NetworkManager.<br />

System Configuration Pr<strong>of</strong>ile Management 595


596 Referência<br />

32.5.2 Encerramento durante o processo de<br />

alternação<br />

Às vezes, o SCPM pára de funcionar durante um procedimento de alternação. Isso pode<br />

ser causa<strong>do</strong> por algum efeito externo, como uma interrupção <strong>do</strong> usuário, uma falha de<br />

energia ou mesmo um erro no próprio SCPM. Se isso ocorrer, uma mensagem de erro<br />

que declara que o SCPM está bloquea<strong>do</strong> será exibida na próxima vez que você iniciar<br />

o SCPM. Isso é para a segurança <strong>do</strong> sistema, pois os da<strong>do</strong>s armazena<strong>do</strong>s no seu banco<br />

de da<strong>do</strong>s talvez sejam diferentes <strong>do</strong> esta<strong>do</strong> <strong>do</strong> sistema. Para resolver essa questão,<br />

execute scpm recover. O SCPM executa todas as operações ausentes da execução<br />

anterior. Você também pode executar scpm recover -b, que tenta desfazer todas<br />

as operações já executadas da execução anterior. Se estiver usan<strong>do</strong> o gerencia<strong>do</strong>r de<br />

perfis <strong>do</strong> YaST, obtenha uma caixa de diálogo de recuperação na inicialização que<br />

<strong>of</strong>erece a execução <strong>do</strong>s coman<strong>do</strong>s descritos acima.<br />

32.6 Mais informações<br />

A <strong>do</strong>cumentação mais recente está disponível nas páginas de informações <strong>do</strong> SCPM<br />

(info scpm). As informações para desenvolve<strong>do</strong>res estão disponíveis em /usr/share/<br />

<strong>do</strong>c/packages/scpm.


Gerenciamento de energia<br />

O gerenciamento de energia é especialmente importante em laptops, mas também é útil<br />

em outros sistemas. Duas tecnologias estão disponíveis: APM (Advanced Power<br />

Management - Gerenciamento Avança<strong>do</strong> Energia) e ACPI (Advanced Configuration<br />

and Power Interface - Interface de Energia e Configuração Avançada). Além delas,<br />

também é possível controlar o dimensionamento de freqüência de CPU para economizar<br />

energia ou reduzir o ruí<strong>do</strong>. Estas opções podem ser configuradas manualmente ou<br />

usan<strong>do</strong> um módulo YaST especial.<br />

Ao contrário de APM, que era usa<strong>do</strong> em laptops apenas para gerenciamento de energia,<br />

a ferramenta ACPI de configuração e informações sobre hardware está disponível em<br />

to<strong>do</strong>s os computa<strong>do</strong>res modernos (laptops, desktops e servi<strong>do</strong>res). Todas as tecnologias<br />

de gerenciamento de energia exigem hardware adequa<strong>do</strong> e rotinas BIOS. A maioria<br />

<strong>do</strong>s laptops e muitas áreas de trabalho e servi<strong>do</strong>res modernos atendem a estes requisitos.<br />

APM era usa<strong>do</strong> em muitos computa<strong>do</strong>res antigos. Como APM consiste amplamente<br />

em um conjunto de funções implementa<strong>do</strong> no BIOS, o nível de suporte de APM pode<br />

variar, dependen<strong>do</strong> <strong>do</strong> hardware. O mesmo vale para o ACPI, que é ainda mais<br />

complexo. Por esta razão, é virtualmente impossível recomendar um ou outro. Teste<br />

os diversos procedimentos no seu hardware e selecione a tecnologia que é suportada<br />

de forma melhor.<br />

IMPORTANTE: Gerenciamento de energia para processa<strong>do</strong>res AMD64<br />

Processa<strong>do</strong>res AMD64 com kernel de 64 bits suportam apenas o ACPI.<br />

33<br />

Gerenciamento de energia 597


598 Referência<br />

33.1 Funções de economia de energia<br />

As funções de economia de energia não são significativas apenas para o uso móvel de<br />

laptops, como também para sistemas desktop. As principais funções e uso respectivo<br />

nos sistemas de gerenciamento de energia APM e ACPI são:<br />

Standby<br />

Este mo<strong>do</strong> operacional desativa a exibição. Em alguns computa<strong>do</strong>res, o desempenho<br />

<strong>do</strong> processa<strong>do</strong>r é restringi<strong>do</strong>. Essa função não está disponível em todas as<br />

implementações <strong>do</strong> APM. Ela corresponde ao esta<strong>do</strong> S1 ou S2 da ACPI.<br />

Suspender (para memória)<br />

Este mo<strong>do</strong> grava to<strong>do</strong> o esta<strong>do</strong> <strong>do</strong> sistema na memória RAM. Em seguida, to<strong>do</strong> o<br />

sistema é coloca<strong>do</strong> para a<strong>do</strong>rmecer, salvo a memória RAM. Neste esta<strong>do</strong>, o<br />

computa<strong>do</strong>r consome pouquíssima energia. A vantagem desse esta<strong>do</strong> é a<br />

possibilidade de reiniciar o trabalho no mesmo ponto em alguns segun<strong>do</strong>s sem<br />

precisar inicializar e reiniciar os aplicativos. Dispositivos que usam APM geralmente<br />

podem ser suspensos fechan<strong>do</strong>-se a tampa e ativa<strong>do</strong>s abrin<strong>do</strong>-a. Esta função<br />

corresponde ao esta<strong>do</strong> S3 de ACPI. O suporte desse esta<strong>do</strong> ainda está em<br />

desenvolvimento e, portanto, depende muito <strong>do</strong> hardware.<br />

Suspender (para o disco)<br />

Neste mo<strong>do</strong> operacional, o esta<strong>do</strong> <strong>do</strong> sistema inteiro é grava<strong>do</strong> no disco rígi<strong>do</strong> e o<br />

sistema é desliga<strong>do</strong>. Deve existir uma partição de troca pelo menos tão grande<br />

quanto a RAM para gravar to<strong>do</strong>s os da<strong>do</strong>s ativos. A reativação desse esta<strong>do</strong> leva<br />

de 30 a 90 segun<strong>do</strong>s. O esta<strong>do</strong> anterior ao suspenso é restaura<strong>do</strong>. Alguns fabricantes<br />

<strong>of</strong>erecem variantes híbridas desse mo<strong>do</strong>, como RediSafe em Thinkpads da IBM.<br />

O esta<strong>do</strong> correspondente da ACPI é S4. No Linux, suspender para disco é realiza<strong>do</strong><br />

pelas rotinas kernel que são independentes de APM e ACPI.<br />

Monitor de bateria<br />

ACPI e APM verificam o status da carga da bateria e fornecem informações sobre<br />

ele. Além disso, os <strong>do</strong>is sistemas coordenam ações a realizar quan<strong>do</strong> um status de<br />

carga é atingi<strong>do</strong>.<br />

Desligamento automático<br />

Após um encerramento, o computa<strong>do</strong>r é desliga<strong>do</strong>. Isto é especialmente importante<br />

quan<strong>do</strong> um encerramento automático é realiza<strong>do</strong> pouco antes da bateria esgotarse.


Encerramento <strong>do</strong>s componentes <strong>do</strong> sistema<br />

Desativar o disco rígi<strong>do</strong> é o principal aspecto <strong>do</strong> potencial de economia de energia<br />

de to<strong>do</strong> o sistema. Dependen<strong>do</strong> da confiabilidade <strong>do</strong> sistema, o disco rígi<strong>do</strong> pode<br />

ser coloca<strong>do</strong> para a<strong>do</strong>rmecer por algum tempo. No entanto, o risco de perder da<strong>do</strong>s<br />

aumenta com a duração <strong>do</strong>s perío<strong>do</strong>s de a<strong>do</strong>rmecimento. Outros componentes,<br />

como dispositivos PCI que podem ser coloca<strong>do</strong>s em um mo<strong>do</strong> especial de economia<br />

de energia, podem ser desativa<strong>do</strong>s com o ACPI (pelo menos em teoria) ou<br />

desabilita<strong>do</strong>s de forma permanente na configuração <strong>do</strong> BIOS.<br />

Controle de velocidade <strong>do</strong> processa<strong>do</strong>r<br />

Junto com a CPU, é possível economizar energia de três maneiras: escala de<br />

freqüência e voltagem (também conhecida como PowerNow! ou Speedstep),<br />

obstruin<strong>do</strong> e colocan<strong>do</strong> o processa<strong>do</strong>r para a<strong>do</strong>rmecer (esta<strong>do</strong>s C). Dependen<strong>do</strong><br />

<strong>do</strong> mo<strong>do</strong> operacional <strong>do</strong> computa<strong>do</strong>r, esses méto<strong>do</strong>s também podem ser combina<strong>do</strong>s.<br />

33.2 APM<br />

Algumas das funções de economia de energia são realizadas pelo próprio BIOS <strong>do</strong><br />

APM. Em muitos laptops, os esta<strong>do</strong>s standby e suspender podem ser ativa<strong>do</strong>s com<br />

combinações de tecla ou fechan<strong>do</strong> a tampa sem qualquer função especial <strong>do</strong> sistema<br />

operacional. No entanto, para ativar esses mo<strong>do</strong>s com um coman<strong>do</strong>, algumas ações<br />

devem ser acionadas antes que o sistema seja suspenso. Para visualizar o nível de carga<br />

da bateria, são necessários pacotes especiais de programa e um kernel adequa<strong>do</strong>.<br />

Os kernels <strong>do</strong> <strong>SUSE</strong> Linux têm suporte de APM interno. No entanto, APM só é ativa<strong>do</strong><br />

se ACPI não estiver implementada no BIOS e for detecta<strong>do</strong> um BIOS de APM. Para<br />

ativar o suporte APM, ACPI deve ser desativa<strong>do</strong> com acpi=<strong>of</strong>f no prompt de<br />

inicialização. Digite cat /proc/apm para verificar se APM está ativo. Uma saída<br />

composta de vários números indica que tu<strong>do</strong> está OK. Você agora poderá desligar o<br />

computa<strong>do</strong>r com o coman<strong>do</strong> shut<strong>do</strong>wn -h.<br />

As implementações <strong>do</strong> BIOS que não forem totalmente compatíveis com o padrão<br />

poderão provocar problemas com APM. Alguns problemas poderão ser contorna<strong>do</strong>s<br />

com parâmetros de boot especiais. To<strong>do</strong>s os parâmetros são digita<strong>do</strong>s no prompt da<br />

inicialização na forma de apm=parâmetro. parâmetro é um de:<br />

ativar ou desativar<br />

Habilitar ou desabilitar suporte APM.<br />

Gerenciamento de energia 599


600 Referência<br />

(no-)allow-ints<br />

Permitir interrupções durante a execução das funções <strong>do</strong> BIOS<br />

(no-)broken-psr<br />

A função “GetPowerStatus” <strong>do</strong> BIOS não funciona corretamente.<br />

(no-)realmode-power-<strong>of</strong>f<br />

Redefina o processa<strong>do</strong>r para o mo<strong>do</strong> real antes de desligar.<br />

(no-)debug<br />

Registre os eventos APM no registro <strong>do</strong> sistema.<br />

(no-)realmode-power-<strong>of</strong>f<br />

Desligue o sistema após o encerramento.<br />

bounce-interval=n<br />

Tempo em centésimos de segun<strong>do</strong> após um evento suspenso durante o qual os<br />

eventos suspensos adicionais são ignora<strong>do</strong>s.<br />

idle-threshold=n<br />

Porcentagem de inatividade <strong>do</strong> sistema na qual a função <strong>do</strong> BIOSidle é executada<br />

(0=sempre, 100=nunca).<br />

idle-period=n<br />

Tempo em centésimos de segun<strong>do</strong> após o qual a atividade <strong>do</strong> sistema é medida.<br />

O daemon APM (apmd) não é mais usa<strong>do</strong>. A sua funcionalidade agora é tratada pela<br />

nova economia de energia, que também suporta ACPI e fornece vários outros recursos.<br />

33.3 ACPI<br />

A ACPI (Interface de Energia e Configuração Avançada) foi projetada para habilitar o<br />

sistema operacional a configurar e controlar os componentes individuais <strong>do</strong> hardware.<br />

A ACPI substitui PnP e APM. Envia informações sobre a bateria, adapta<strong>do</strong>r de CA,<br />

temperatura, ventila<strong>do</strong>r e eventos <strong>do</strong> sistema, como “fechar tampa” ou “bateria fraca.”<br />

O BIOS fornece tabelas que contém informações sobre os componentes individuais e<br />

méto<strong>do</strong>s de acesso ao hardware. O sistema operacional usa essas informações para<br />

tarefas como atribuir interrupções ou ativar e desativar componentes. Como o sistema


operacional executa coman<strong>do</strong>s armazena<strong>do</strong>s no BIOS, a funcionalidade depende da<br />

implementação <strong>do</strong> BIOS. As tabelas que a ACPI podem detectar e carregar são<br />

reportadas em /var/log/boot.msg. Consulte a Seção 33.3.4, “Solução de<br />

problemas” (p 606) para obter mais informações sobre solução de problemas da ACPI.<br />

33.3.1 ACPI em ação<br />

Se o kernel detectar um BIOS de ACPI quan<strong>do</strong> o sistema for inicializa<strong>do</strong>, a ACPI será<br />

automaticamente ativada e o APM desativa<strong>do</strong>. O parâmetro de inicialização<br />

acpi=force poderá ser necessário para algumas máquinas mais antigas. O computa<strong>do</strong>r<br />

deve aceitar ACPI 2.0 ou posterior. Verifique as mensagens de boot <strong>do</strong> kernel em<br />

/var/log/boot.msg para ver se a ACPI foi ativada.<br />

Em seguida, deverá ser carrega<strong>do</strong> um número de módulos. Isso é feito pelo script de<br />

início de acpid. Se algum destes módulos causar problemas, o módulo respectivo poderá<br />

ser excluí<strong>do</strong> de carregar ou descarregar em /etc/sysconfig/powersave/<br />

common. O registro <strong>do</strong> sistema (/var/log/messages) contém as mensagens <strong>do</strong>s<br />

módulos, permitin<strong>do</strong> que você veja que componentes foram detecta<strong>do</strong>s.<br />

/proc/acpi agora contém vários arquivos que fornecem informações sobre o esta<strong>do</strong><br />

<strong>do</strong> sistema ou que podem ser usa<strong>do</strong>s para mudar alguns <strong>do</strong>s esta<strong>do</strong>s. Alguns recursos<br />

ainda não funcionam porque estão em desenvolvimento e o suporte de algumas funções<br />

depende muito da implementação <strong>do</strong> fabricante.<br />

To<strong>do</strong>s os arquivos (exceto dsdt e fadt) podem ser li<strong>do</strong>s com cat. Em alguns<br />

arquivos, as configurações podem ser modificadas com echo, por exemplo, echo X<br />

> file para especificar valores adequa<strong>do</strong>s para X. Uma possibilidade para acesso<br />

fácil a esses valores é o coman<strong>do</strong> powersave, que age como um front end para o<br />

daemon de economia de energia. Os arquivos mais importantes estão descritos abaixo:<br />

/proc/acpi/info<br />

Informações gerais sobre a ACPI.<br />

/proc/acpi/alarm<br />

Aqui, especifique quan<strong>do</strong> o sistema deve ser ativa<strong>do</strong> de um esta<strong>do</strong> de inatividade.<br />

Atualmente, esse recurso não é totalmente suporta<strong>do</strong>.<br />

/proc/acpi/sleep<br />

Fornece informações sobre possíveis esta<strong>do</strong>s de a<strong>do</strong>rmecimento.<br />

Gerenciamento de energia 601


602 Referência<br />

/proc/acpi/event<br />

To<strong>do</strong>s os eventos são reporta<strong>do</strong>s aqui e processa<strong>do</strong>s pelo daemon <strong>do</strong> Powersave<br />

(powersaved). Se nenhum daemon acessar o arquivo, eventos como um clique<br />

rápi<strong>do</strong> no botão de alimentação ou fechamento da tampa podem ser li<strong>do</strong>s com cat<br />

/proc/acpi/event (encerrar com Ctrl + C ).<br />

/proc/acpi/dsdt e /proc/acpi/fadt<br />

Estes arquivos contêm as tabelas DSDT (differentiated system description table -<br />

tabela de descrição de sistema diferencia<strong>do</strong>) e FADT (fixed ACPI description table<br />

- tabela de descrição de ACPI fixa) da ACPI. Elas podem ser lidas com acpidmp,<br />

acpidisasm e dmdecode. Estes programas e sua <strong>do</strong>cumentação localizam-se<br />

no pmtools <strong>do</strong> pacote. Por exemplo, acpidmp DSDT | acpidisasm.<br />

/proc/acpi/ac_adapter/AC/state<br />

Mostra se o adapta<strong>do</strong>r de CA está conecta<strong>do</strong>.<br />

/proc/acpi/battery/BAT*/{alarme,info,esta<strong>do</strong>}<br />

Informações detalhadas sobre o esta<strong>do</strong> da bateria. O nível de carga é li<strong>do</strong> através<br />

da comparação da última capacidade cheia e info com a capacidade<br />

remanescente no esta<strong>do</strong>. Um mo<strong>do</strong> mais confortável de fazer isto é usar um<br />

<strong>do</strong>s programas especiais apresenta<strong>do</strong>s na Seção 33.3.3, “Ferramentas da ACPI”<br />

(p 606). O nível de carga em que o evento bateria (como um alerta, baixa e crítica)<br />

é aciona<strong>do</strong> pode ser especifica<strong>do</strong> em alarme.<br />

/proc/acpi/button<br />

Este diretório contém informações sobre vários switches, como botões e a tampa<br />

<strong>do</strong> laptop.<br />

/proc/acpi/fan/FAN/state<br />

Mostra se o ventila<strong>do</strong>r está ativo atualmente. Ativar ou desativar o ventila<strong>do</strong>r<br />

manualmente, escreven<strong>do</strong> 0 (liga<strong>do</strong>) ou 3 (desliga<strong>do</strong>) neste arquivo. No entanto,<br />

os <strong>do</strong>is códigos da ACPI no kernel e no hardware (ou no BIOS) sobregravam esta<br />

configuração no caso de aquecimento <strong>do</strong> sistema.<br />

/proc/acpi/processor/*<br />

É manti<strong>do</strong> um subdiretório separa<strong>do</strong> para cada CPU incluída no seu sistema.<br />

/proc/acpi/processor/*/info<br />

Informações sobre as opções de economia de energia <strong>do</strong> processa<strong>do</strong>r.


proc/acpi/processor/*/power<br />

Informações sobre o esta<strong>do</strong> atual <strong>do</strong> processa<strong>do</strong>r. Um asterisco próximo a C2 indica<br />

que o processa<strong>do</strong>r está inativo. Este é o esta<strong>do</strong> mais freqüente, como pode ser<br />

verifica<strong>do</strong> no valor de utilização.<br />

/proc/acpi/processor/*/throttling<br />

Pode ser usa<strong>do</strong> para configurar o throttling <strong>do</strong> relógio <strong>do</strong> processa<strong>do</strong>r. Normalmente,<br />

é possível o throttling em oito níveis. Isto é independente <strong>do</strong> controle de freqüência<br />

da CPU.<br />

/proc/acpi/processor/*/limit<br />

Se o desempenho (desatualiza<strong>do</strong>) e o throttling forem controla<strong>do</strong>s automaticamente<br />

por um daemon, os limites máximos podem ser especifica<strong>do</strong>s aqui. Alguns <strong>do</strong>s<br />

limites são determina<strong>do</strong>s pelo sistema. Alguns podem ser ajusta<strong>do</strong>s pelo usuário.<br />

/proc/acpi/thermal_zone/<br />

Existe um subdiretório separa<strong>do</strong> para cada zona térmica. Uma zona térmica é uma<br />

área com propriedades térmicas similares, cujo número e nomes são designa<strong>do</strong>s<br />

pelo fabricante <strong>do</strong> hardware. No entanto, muitas das possibilidades <strong>of</strong>erecidas pela<br />

ACPI raramente são implementadas. Ao contrário, o controle de temperatura<br />

convencionalmente é administra<strong>do</strong> pelo BIOS. O sistema operacional não tem<br />

muita oportunidade de intervir, porque a vida útil <strong>do</strong> hardware está ameaçada.<br />

Portanto, alguns <strong>do</strong>s arquivos têm apenas um valor teórico.<br />

/proc/acpi/thermal_zone/*/temperature<br />

Temperatura atual da zona térmica.<br />

/proc/acpi/thermal_zone/<br />

O esta<strong>do</strong> indica se tu<strong>do</strong> está ok ou se a ACPI aplica o resfriamento ativo ou<br />

passivo. No caso de controle de ventila<strong>do</strong>r independente da ACPI, o esta<strong>do</strong> está<br />

sempre ok.<br />

/proc/acpi/thermal_zone/*/cooling_mode<br />

Selecione o méto<strong>do</strong> de resfriamento controla<strong>do</strong> pela ACPI Escolha o mo<strong>do</strong> de<br />

resfriamento passivo (menor desempenho, econômico) ou ativo (total desempenho,<br />

ruí<strong>do</strong> <strong>do</strong> ventila<strong>do</strong>r).<br />

/proc/acpi/thermal_zone/*/trip_points<br />

Habilita a determinação de limites de temperatura para acionamento de ações<br />

específicas, como resfriamento ativo ou passivo, suspensão (quente), ou um<br />

shut<strong>do</strong>wn (crítico). As ações possíveis são definidas no DSDT (dependente <strong>do</strong><br />

Gerenciamento de energia 603


604 Referência<br />

dispositivo). Os pontos de desligamento determina<strong>do</strong>s na especificação da ACPI<br />

são crítico, quente, passivo, ativo1 e ativo2. Mesmo que nem to<strong>do</strong>s<br />

eles sejam implementa<strong>do</strong>s, devem ser sempre digita<strong>do</strong>s neste arquivo nesta ordem.<br />

Por exemplo, a entrada echo 90:0:70:0:0 > trip_points configura a<br />

temperatura de crítico a 90 e a temperatura de passivo a 70 (todas as<br />

temperaturas medidas em graus Celsius).<br />

/proc/acpi/thermal_zone/*/polling_frequency<br />

Se o valor em temperatura não for atualiza<strong>do</strong> automaticamente quan<strong>do</strong> a<br />

temperatura mudar, alterne o mo<strong>do</strong> polling aqui. Com o coman<strong>do</strong> echo X ><br />

/proc/acpi/thermal_zone/*/polling_frequency a temperatura é<br />

verificada a cada X segun<strong>do</strong>s. Configure X=0 para desabilitar o polling.<br />

Nenhuma destas configurações, informações e eventos precisam ser edita<strong>do</strong>s<br />

manualmente. Isto pode ser feito com o daemon <strong>do</strong> Powersave (economia de energia)<br />

e diversos front ends, como powersave, kpowersave e wmpowersave. Consulte a<br />

Seção 33.3.3, “Ferramentas da ACPI” (p 606).<br />

33.3.2 Controlan<strong>do</strong> o desempenho da CPU<br />

A CPU pode economizar energia de três maneiras. Dependen<strong>do</strong> <strong>do</strong> mo<strong>do</strong> operacional<br />

<strong>do</strong> computa<strong>do</strong>r, estes méto<strong>do</strong>s também podem ser combina<strong>do</strong>s. Economizar energia<br />

também significa que o sistema esquenta menos e os ventila<strong>do</strong>res são ativa<strong>do</strong>s com<br />

menos freqüência.<br />

Dimensionamento de freqüência e voltagem<br />

PowerNow! e Speedstep são as designações de uso AMD e Intel para esta tecnologia<br />

. No entanto, essa tecnologia também é aplicada em processa<strong>do</strong>res de outros<br />

fabricantes. A freqüência <strong>do</strong> relógio da CPU e sua voltagem básica são reduzidas<br />

ao mesmo tempo, resultan<strong>do</strong> em economias de energia mais <strong>do</strong> que lineares. Isso<br />

significa que quan<strong>do</strong> a freqüência for reduzida pela metade (meio desempenho),<br />

muito menos que metade da energia é consumida. Essa tecnologia é independente<br />

de APM ou ACPI. Há duas abordagens principais para executar a escala de<br />

freqüência da CPU: pelo próprio kernel ou por um aplicativo de espaço de usuário.<br />

Portanto, há diferentes gerencia<strong>do</strong>res de kernel que podem ser defini<strong>do</strong>s abaixo de<br />

/sys/devices/system/cpu/cpu*/cpufreq/.


gerencia<strong>do</strong>r de espaço de usuário<br />

Se o gerencia<strong>do</strong>r de espaço de usuário estiver defini<strong>do</strong>, o kernel passa o controle<br />

da escala de freqüência de CPU para um aplicativo de espaço de usuário,<br />

geralmente um daemon. Em distribuições <strong>do</strong> <strong>SUSE</strong> Linux, este daemon é o<br />

pacote powersaved. Quan<strong>do</strong> essa implementação é usada, a freqüência de<br />

CPU é ajustada em relação à carga <strong>do</strong> sistema atual. Por padrão, uma das<br />

implementações de kernel é usada. Porém, em alguns hardwares ou em relação<br />

a drivers ou processa<strong>do</strong>res específicos, a implementação <strong>do</strong> espaço de usuário<br />

ainda é a única solução que funciona.<br />

gerencia<strong>do</strong>r em demanda<br />

Esta é a implementação de kernel de uma política de freqüência de CPU<br />

dinâmica e deve funcionar na maioria <strong>do</strong>s sistemas. Assim que houver uma<br />

carga alta de sistema, a freqüência de CPU é imediatamente aumentada. Ela é<br />

reduzida em uma carga de sistema baixa.<br />

gerencia<strong>do</strong>r conserva<strong>do</strong>r<br />

Esse gerencia<strong>do</strong>r é similar à implementação em demanda, exceto que uma<br />

política mais conserva<strong>do</strong>ra é usada. A carga <strong>do</strong> sistema deve ser alta por um<br />

tempo específico antes que a freqüência <strong>do</strong> CPU seja aumentada.<br />

gerencia<strong>do</strong>r de economia de energia<br />

A freqüência de cpu é definida estaticamente para o mais baixo possível.<br />

gerencia<strong>do</strong>r de desempenho<br />

A freqüência de cpu é definida estaticamente para o mais alto possível.<br />

Throttling da freqüência <strong>do</strong> relógio<br />

Esta tecnologia omite uma determinada porcentagem <strong>do</strong>s impulsos de sinal <strong>do</strong><br />

relógio para a CPU. Com throttling a 25%, to<strong>do</strong> quarto impulso é omiti<strong>do</strong>. A 87,5%,<br />

apenas cada oitavo impulso chega ao processa<strong>do</strong>r. No entanto, as economias de<br />

energia são pouco menos que lineares. Normalmente, o throttling só é usa<strong>do</strong> se o<br />

dimensionamento da freqüência não estiver disponível ou para maximizar as<br />

economias de energia. Essa tecnologia também deve ser controlada por um processo<br />

especial. A interface <strong>do</strong> sistema é /proc/acpi/processor/*/throttling.<br />

Colocan<strong>do</strong> o processa<strong>do</strong>r para hibernar<br />

O sistema operacional coloca o processa<strong>do</strong>r para hibernar sempre que não houver<br />

nada para fazer. Neste caso, o sistema operacional envia um coman<strong>do</strong> de halt<br />

para a CPU. Há três esta<strong>do</strong>s: C1, C2 e C3. No esta<strong>do</strong> mais econômico, C3, até a<br />

Gerenciamento de energia 605


606 Referência<br />

sincronização <strong>do</strong> cache <strong>do</strong> processa<strong>do</strong>r com a memória principal é interrompida.<br />

Portanto, esse esta<strong>do</strong> só pode ser aplica<strong>do</strong> se nenhum dispositivo modificar o<br />

conteú<strong>do</strong> da memória principal por meio de atividade <strong>do</strong> barramento mestre. Alguns<br />

drivers impedem o uso de C3. O esta<strong>do</strong> atual é exibi<strong>do</strong> em /proc/acpi/<br />

processor/*/power.<br />

O dimensionamento e o throttling da freqüência só são relevantes se o processa<strong>do</strong>r<br />

estiver ocupa<strong>do</strong>, porque o esta<strong>do</strong> C mais econômico é aplica<strong>do</strong> sempre que o processa<strong>do</strong>r<br />

está inativo. Se a CPU estiver ocupada, o dimensionamento da freqüência é o méto<strong>do</strong><br />

recomenda<strong>do</strong> para economia de energia. Em geral o processa<strong>do</strong>r só trabalha com carga<br />

parcial. Neste caso, pode ser executa<strong>do</strong> com uma freqüência inferior. Normalmente, a<br />

escala de freqüência dinâmica controlada pelo gerencia<strong>do</strong>r em demanda <strong>do</strong> kernel ou<br />

por um daemon, como powersaved, é o melhor méto<strong>do</strong>. Uma configuração estática em<br />

baixa freqüência é útil para operações à bateria ou se você desejar que o computa<strong>do</strong>r<br />

permaneça frio ou em silêncio.<br />

Throttling deve ser usa<strong>do</strong> como última alternativa, por exemplo, para ampliar o tempo<br />

de operação da bateria, apesar de uma alta carga <strong>do</strong> sistema. Contu<strong>do</strong>, alguns sistemas<br />

não são executa<strong>do</strong>s suavemente quan<strong>do</strong> ocorrem throttlings em excesso. Ademais, o<br />

throttling da CPU não faz senti<strong>do</strong> se a CPU tem pouco a fazer.<br />

No <strong>SUSE</strong> Linux estas tecnologias são controladas pelo daemon <strong>do</strong> powersave. A<br />

configuração está explicada na Seção 33.5, “O Pacote powersave” (p 610).<br />

33.3.3 Ferramentas da ACPI<br />

A faixa mais ou menos abrangente <strong>do</strong>s utilitários da ACPI inclui ferramentas que apenas<br />

exibem informações, como o nível de carga e a temperatura da bateria (acpi,<br />

klaptopdaemon, wmacpimon, etc.), ferramentas que facilitam o acesso às estruturas de<br />

/proc/acpi ou que auxiliam no monitoramento das mudanças (akpi, acpiw, gtkacpiw)<br />

e ferramentas para edição das tabelas da ACPI no BIOS (pacote pmtools).<br />

33.3.4 Solução de problemas<br />

Há <strong>do</strong>is tipos de problemas. De um la<strong>do</strong>, o código ACPI <strong>do</strong> kernel pode conter erros<br />

que não foram detecta<strong>do</strong>s em tempo útil. Neste caso, uma solução estará disponível<br />

para <strong>do</strong>wnload. No entanto, o mais comum é que os problemas sejam causa<strong>do</strong>s pelo<br />

BIOS. Às vezes, desvios da especificação da ACPI são integra<strong>do</strong>s de propósito no BIOS


para contornar erros na implementação da ACPI em outros sistemas operacionais<br />

amplamente utiliza<strong>do</strong>s. Componentes de hardware que têm erros sérios na implementação<br />

da ACPI são grava<strong>do</strong>s em uma lista negra que impede que o kernel <strong>do</strong> Linux use a<br />

ACPI para esses componentes.<br />

A primeira ação a ser tomada quan<strong>do</strong> problemas forem detecta<strong>do</strong>s, é atualizar o BIOS.<br />

Se o computa<strong>do</strong>r não inicializar de jeito nenhum, um <strong>do</strong>s seguintes parâmetros de<br />

inicialização poderá ser útil:<br />

pci=noacpi<br />

Não use ACPI para configurar os dispositivos PCI.<br />

acpi=oldboot<br />

Realize apenas uma configuração com recursos simples. Não use a ACPI para<br />

outros fins.<br />

acpi=<strong>of</strong>f<br />

Desabilitar a ACPI.<br />

ATENÇÃO: Problemas de inicialização sem ACPI<br />

Algumas máquinas mais novas (especialmente os sistemas SMP e AMD64)<br />

precisam de ACPI para configurar o hardware corretamente. Nestas máquinas,<br />

desabilitar a ACPI pode causar problemas.<br />

Monitore as mensagens de inicialização <strong>do</strong> sistema com o coman<strong>do</strong> dmesg | grep<br />

-2i acpi (ou todas as mensagens, porque o problema pode não ser causa<strong>do</strong> pela<br />

ACPI) após a inicialização. Se ocorrer um erro ao analisar uma tabela da ACPI, a tabela<br />

mais importante, a DSDT, pode ser substituída por uma versão aperfeiçoada. Neste<br />

caso, a DSDT defeituosa <strong>do</strong> BIOS é ignorada. O procedimento está descrito na<br />

Seção 33.5.4, “Solução de problemas” (p 616).<br />

Na configuração <strong>do</strong> kernel, há um switch para ativar as mensagens de depuração da<br />

ACPI. Se um kernel com depuração da ACPI for compila<strong>do</strong> e instala<strong>do</strong>, os técnicos<br />

que procuram o erro podem ser auxilia<strong>do</strong>s com informações detalhadas.<br />

Se você tiver problemas com BIOS ou hardware, é sempre recomendável entrar em<br />

contato com os fabricantes. Especialmente se eles nem sempre derem assistência ao<br />

Linux, devem ser indaga<strong>do</strong>s em caso de problemas. Os fabricantes só levarão a questão<br />

a sério se compreenderem que um número satisfatório de seus clientes usa Linux.<br />

Gerenciamento de energia 607


608 Referência<br />

Mais informações<br />

<strong>Documentação</strong> adicional e suporte para a ACPI:<br />

• http://www.cpqlinux.com/acpi-howto.html (ACPI HOWTO<br />

detalha<strong>do</strong>, contém patches DSDT)<br />

• http://www.intel.com/technology/iapc/acpi/faq.htm (ACPI<br />

FAQ @Intel)<br />

• http://acpi.sourceforge.net/ (O projeto ACPI4Linux em Sourceforge)<br />

• http://www.poupinou.org/acpi/ (patches DSDT por Bruno Ducrot)<br />

33.4 Descanso <strong>do</strong> disco rígi<strong>do</strong><br />

No Linux, o disco rígi<strong>do</strong> pode coloca<strong>do</strong> em hibernação total se não estiver em uso e<br />

pode ser executa<strong>do</strong> em mo<strong>do</strong> mais econômico ou silencioso. Nos laptops modernos,<br />

não é necessário desativar o disco rígi<strong>do</strong> manualmente, porque entram automaticamente<br />

em um mo<strong>do</strong> operacional econômico sempre que não estão em uso. Contu<strong>do</strong>, se quiser<br />

maximizar a economia de energia, teste um <strong>do</strong>s seguintes méto<strong>do</strong>s. A maioria das<br />

funções pode ser controlada com powersaved e o módulo de gerenciamento de energia<br />

YaST, que é explica<strong>do</strong> em mais detalhes na Seção 33.6, “O módulo Gerenciamento de<br />

energia YaST” (p 618).<br />

O aplicativo hdparm pode ser usa<strong>do</strong> para modificar diversas configurações <strong>do</strong> disco<br />

rígi<strong>do</strong>. A opção -y alterna instantaneamente o disco rígi<strong>do</strong> para o mo<strong>do</strong> standby. -Y<br />

coloca-o em hibernação. hdparm -S x faz o disco rígi<strong>do</strong> ser encerra<strong>do</strong> após um<br />

determina<strong>do</strong> perío<strong>do</strong> de inatividade. Substitua x como segue: 0 desabilita este<br />

mecanismo, fazen<strong>do</strong> com que o disco rígi<strong>do</strong> seja executa<strong>do</strong> continuamente. Valores de<br />

1 a 240 são multiplica<strong>do</strong>s por 5 segun<strong>do</strong>s. Valores de 241 a 251 correspondem de 1<br />

a 11 vezes 30 minutos.<br />

As opções de economia de energia interna <strong>do</strong> disco rígi<strong>do</strong> podem ser controladas pela<br />

opção -B. Selecione um valor de 0 a 255 para obter de economia máxima a throughput<br />

máximo. O resulta<strong>do</strong> depende <strong>do</strong> disco rígi<strong>do</strong> usa<strong>do</strong> e é difícil de avaliar. Para tornar<br />

um disco rígi<strong>do</strong> mais silencioso, use a opção -M. Selecione um valor de 128 a 254<br />

para obter de silencioso a rápi<strong>do</strong>.


Muitas vezes não é fácil colocar o disco rígi<strong>do</strong> para hibernar. No Linux, vários processos<br />

gravam no disco rígi<strong>do</strong>, ativan<strong>do</strong>-o repetidamente. Portanto, é importante entender<br />

como o Linux trata os da<strong>do</strong>s que necessitam ser grava<strong>do</strong>s no disco rígi<strong>do</strong>. Primeiro,<br />

to<strong>do</strong>s os da<strong>do</strong>s estão no buffer da memória RAM. O buffer é monitora<strong>do</strong> pelo daemon<br />

<strong>do</strong> kernel update (kupdated). Quan<strong>do</strong> os da<strong>do</strong>s atingem uma determinada idade limite<br />

ou quan<strong>do</strong> o buffer está cheio até certo grau, o conteú<strong>do</strong> <strong>do</strong> buffer é descarrega<strong>do</strong> para<br />

o disco rígi<strong>do</strong>. O tamanho <strong>do</strong> buffer é dinâmico e depende <strong>do</strong> tamanho da memória e<br />

da carga <strong>do</strong> sistema. Por padrão, kupdated é configura<strong>do</strong> em intervalos curtos para<br />

atingir a integridade de da<strong>do</strong>s máxima. Verifica o buffer a cada 5 segun<strong>do</strong>s e notifica<br />

o daemon <strong>do</strong> bdflush quan<strong>do</strong> os da<strong>do</strong>s têm mais de 30 segun<strong>do</strong>s ou quan<strong>do</strong> o buffer<br />

atinge um nível de preenchimento de 30%. Em seguida, o daemon <strong>do</strong> bdflush grava os<br />

da<strong>do</strong>s no disco rígi<strong>do</strong>. Também grava independentemente <strong>do</strong> kupdated se, por exemplo,<br />

o buffer estiver cheio.<br />

ATENÇÃO: Deficiência da integridade de da<strong>do</strong>s<br />

Mudanças nas configurações <strong>do</strong> daemon de atualização <strong>do</strong> kernel colocam a<br />

integridade <strong>do</strong>s da<strong>do</strong>s em perigo.<br />

Além destes processos, sistemas de arquivo de registro em diário, como ReiserFS e<br />

Ext3, gravam seus metada<strong>do</strong>s independentemente de bdflush, que também impede o<br />

disco rígi<strong>do</strong> de ser encerra<strong>do</strong>. Para evitar isso, foi desenvolvida uma extensão especial<br />

de kernel para dispositivos móveis. Consulte /usr/src/linux/Documentation/<br />

laptop-mode.txt para obter detalhes.<br />

Outro fator importante é o mo<strong>do</strong> como se comportam os programas ativos. Por exemplo,<br />

os bons editores gravam regularmente backups ocultos <strong>do</strong> arquivo modifica<strong>do</strong> no<br />

momento para o disco rígi<strong>do</strong>, fazen<strong>do</strong> com que ele saia <strong>do</strong> mo<strong>do</strong> de hibernação. Recursos<br />

como este podem ser desabilita<strong>do</strong>s às custas da integridade <strong>do</strong>s da<strong>do</strong>s.<br />

Com relação a isso, o mail daemon postfix faz uso da variável POSTFIX_LAPTOP.<br />

Se essa variável for configurada para sim, postfix acessa o disco rígi<strong>do</strong> com muito<br />

menos freqüência. No entanto, isto é irrelevante se o intervalo para kupdated for<br />

aumenta<strong>do</strong>.<br />

Gerenciamento de energia 609


610 Referência<br />

33.5 O Pacote powersave<br />

O pacote powersave trata de todas as funções de economia de energia previamente<br />

mencionadas. Devi<strong>do</strong> à demanda crescente para consumo de energia inferior em geral,<br />

alguns <strong>do</strong>s recursos também são importantes em estações de trabalho e servi<strong>do</strong>res, como<br />

suspensão, standby ou a escala de freqüência de cpu.<br />

Este pacote contém to<strong>do</strong>s os recursos de gerenciamento de energia <strong>do</strong> seu computa<strong>do</strong>r.<br />

Suporta hardware que usa discos rígi<strong>do</strong>s ACPI, APM, IDE e tecnologias PowerNow!<br />

ou SpeedStep. As funcionalidades <strong>do</strong>s pacotes apmd, acpid, ospmd e cpufreqd<br />

(agora cpuspeed) foram consolidadas no pacote powersave. Daemons destes<br />

pacotes, exceto acpid que age como um multiplexa<strong>do</strong>r para eventos acpi, não devem<br />

ser executa<strong>do</strong>s simultaneamente com o daemon de economia de energia.<br />

Mesmo que o seu sistema não contenha to<strong>do</strong>s os elementos de hardware lista<strong>do</strong>s acima,<br />

use o daemon powersave para controlar a função de economia de energia. Como ACPI<br />

e APM excluem-se mutuamente, você só pode usar um destes sistemas no seu<br />

computa<strong>do</strong>r. O daemon detecta automaticamente quaisquer mudanças na configuração<br />

<strong>do</strong> hardware.<br />

33.5.1 Configuran<strong>do</strong> o Pacote powersave<br />

A configuração de powersave é distribuída para vários arquivos. Cada opção de<br />

configuração listada aqui contém <strong>do</strong>cumentação adicional sobre sua funcionalidade.<br />

/etc/sysconfig/powersave/common<br />

Este arquivo contém configurações gerais para o daemon de economia de energia.<br />

Por exemplo, a quantidade de mensagens de depurar em /var/log/messages<br />

pode ficar maior, aumentan<strong>do</strong>-se o valor da variável DEBUG.<br />

/etc/sysconfig/powersave/events<br />

O daemon de economia de energia precisa deste arquivo para processar eventos <strong>do</strong><br />

sistema. Um evento pode receber atribuição de ações externas ou de ações realizadas<br />

pelo próprio daemon. Para as ações externas, o daemon tenta executar um arquivo<br />

executável (geralmente um script Bash) em /usr/lib/powersave/scripts/<br />

. Ações internas predefinidas:<br />

• ignore


• throttle<br />

• dethrottle<br />

• suspend_to_disk<br />

• suspend_to_ram<br />

• standby<br />

• <strong>do</strong>_suspend_to_disk<br />

• <strong>do</strong>_suspend_to_ram<br />

• <strong>do</strong>_standby<br />

• notify<br />

• screen_saver<br />

• reread_cpu_capabilities<br />

throttle torna o processa<strong>do</strong>r mais lento de acor<strong>do</strong> com o valor defini<strong>do</strong> em<br />

MAX_THROTTLING. Este valor depende <strong>do</strong> esquema atual. dethrottle<br />

configura o processa<strong>do</strong>r para desempenho total. suspend_to_disk,<br />

suspend_to_ram e standby acionam o evento <strong>do</strong> sistema para um mo<strong>do</strong><br />

a<strong>do</strong>rmeci<strong>do</strong>. Essas três ações são de maneira geral responsáveis pelo acionamento<br />

<strong>do</strong> mo<strong>do</strong> a<strong>do</strong>rmeci<strong>do</strong>, mas elas devem ser sempre associadas a eventos específicos<br />

<strong>do</strong> sistema.<br />

O diretório /usr/lib/powersave/scripts contém scripts para<br />

processamento de eventos:<br />

switch_vt<br />

Útil se a tela for deslocada após suspensão ou standby.<br />

wm_logout<br />

Salva as configurações e efetua logout de GNOME, KDE ou outros<br />

gerencia<strong>do</strong>res de janela.<br />

wm_shut<strong>do</strong>wn<br />

Salva as configurações GNOME ou KDE e desliga o sistema.<br />

Gerenciamento de energia 611


612 Referência<br />

set_disk_settings<br />

Executa as configurações de disco realizadas em /etc/sysconfig/<br />

powersave/disk.<br />

Se, por exemplo, a variável<br />

EVENT_GLOBAL_SUSPEND2DISK="prepare_suspend_to_disk<br />

<strong>do</strong>_suspend_to_disk" for configurada, os <strong>do</strong>is scripts ou ações são<br />

processa<strong>do</strong>s na ordem especificada tão logo o usuário dê ao powersaved o coman<strong>do</strong><br />

para o mo<strong>do</strong> a<strong>do</strong>rmeci<strong>do</strong> suspender para disco. O daemon executa o script<br />

externo /usr/lib/powersave/scripts/prepare_suspend_to_disk.<br />

Após o script ser processa<strong>do</strong> com êxito, o daemon executa a ação interna<br />

<strong>do</strong>_suspend_to_disk e configura o computa<strong>do</strong>r para o mo<strong>do</strong> a<strong>do</strong>rmeci<strong>do</strong><br />

depois que o script tiver descarrega<strong>do</strong> módulos críticos e interrompi<strong>do</strong> serviços.<br />

As ações para o evento de um botão a<strong>do</strong>rmeci<strong>do</strong> podem ser modificadas como em<br />

EVENT_BUTTON_SLEEP="notify suspend_to_disk". Neste caso, o<br />

usuário é informa<strong>do</strong> sobre a suspensão por uma janela pop-up em X ou uma<br />

mensagem no console. Em seguida, o evento EVENT_GLOBAL_SUSPEND2DISK<br />

é gera<strong>do</strong>, resultan<strong>do</strong> na execução das ações mencionadas e um mo<strong>do</strong> suspenso de<br />

sistema seguro. A ação interna notify pode ser personalizada usan<strong>do</strong> a variável<br />

NOTIFY_METHOD em /etc/sysconfig/powersave/common.<br />

/etc/sysconfig/powersave/cpufreq<br />

Contém variáveis para otimizar as configurações de freqüência de CPU dinâmica<br />

e determinar se a implementação de kernel ou o espaço de usuário deve ser usa<strong>do</strong>.<br />

/etc/sysconfig/powersave/battery<br />

Contém limites de bateria e outras configurações específicas da bateria.<br />

/etc/sysconfig/powersave/sleep<br />

Neste arquivo, ative os mo<strong>do</strong>s a<strong>do</strong>rmeci<strong>do</strong>s e determine que módulos críticos devem<br />

ser descarrega<strong>do</strong>s e que serviços devem ser interrompi<strong>do</strong>s antes de um evento<br />

suspender ou aguardar. Quan<strong>do</strong> o sistema é reinicia<strong>do</strong>, os módulos são recarrega<strong>do</strong>s<br />

e os serviços iniciam novamente. Você pode até retardar um mo<strong>do</strong> a<strong>do</strong>rmeci<strong>do</strong><br />

aciona<strong>do</strong>, por exemplo, para gravar arquivos. As configurações padrões referemse<br />

sobretu<strong>do</strong> aos módulos USB e PCMCIA. Normalmente, uma falha de suspender<br />

ou aguardar é causada por determina<strong>do</strong>s módulos. Consulte a Seção 33.5.4, “Solução<br />

de problemas” (p 616) para obter mais informações sobre identificação <strong>do</strong> erro.


etc/sysconfig/powersave/cpufreq<br />

Ativa o controle de resfriamento e térmico. Detalhes sobre este assunto estão<br />

disponíveis no arquivo /usr/share/<strong>do</strong>c/packages/powersave/README<br />

.thermal.<br />

/etc/sysconfig/powersave/disk<br />

Este arquivo de configuração controla as ações e as configurações realizadas de<br />

acor<strong>do</strong> com o disco rígi<strong>do</strong>.<br />

/etc/sysconfig/powersave/scheme_*<br />

Estes são os vários esquemas que adaptam o consumo de energia a determina<strong>do</strong>s<br />

cenários de distribuição. Vários esquemas são pré-configura<strong>do</strong>s e podem ser usa<strong>do</strong>s<br />

na forma como são apresenta<strong>do</strong>s. Esquemas personaliza<strong>do</strong>s podem ser salvos aqui.<br />

33.5.2 Configuran<strong>do</strong> APM e ACPI<br />

Suspender e Standby<br />

Há três mo<strong>do</strong>s a<strong>do</strong>rmeci<strong>do</strong>s básicos de ACPI e <strong>do</strong>is de APM:<br />

Suspender para Disco (ACPI S4, suspender APM)<br />

Grava to<strong>do</strong> o conteú<strong>do</strong> da memória no disco rígi<strong>do</strong>. O computa<strong>do</strong>r é completamente<br />

desativa<strong>do</strong> e não consome nenhuma energia. Esse mo<strong>do</strong> a<strong>do</strong>rmeci<strong>do</strong> é habilita<strong>do</strong><br />

por padrão e deve funcionar em to<strong>do</strong>s os sistemas.<br />

Suspender para RAM (ACPI S3, suspender APM)<br />

Grava os esta<strong>do</strong>s de to<strong>do</strong>s os dispositivos na memória principal. Apenas a memória<br />

principal continua consumin<strong>do</strong> energia. Esse mo<strong>do</strong> a<strong>do</strong>rmeci<strong>do</strong> é desabilita<strong>do</strong> por<br />

padrão pois ainda causa problemas em alguns sistemas. Porém, o suporte foi bastante<br />

estendi<strong>do</strong>.<br />

Standby (ACPI S1, APM standby)<br />

Desativa alguns dispositivos (dependente <strong>do</strong> fabricante).<br />

Verifique se as seguintes opções padrões estão configuradas no arquivo /etc/<br />

sysconfig/powersave/events para o correto processamento de suspender,<br />

standby e reiniciar (configurações padrões de acor<strong>do</strong> com a instalação <strong>do</strong> <strong>SUSE</strong> Linux):<br />

EVENT_GLOBAL_SUSPEND2DISK=<br />

"prepare_suspend_to_disk screen_saver <strong>do</strong>_suspend_to_disk"<br />

Gerenciamento de energia 613


614 Referência<br />

EVENT_GLOBAL_SUSPEND2RAM=<br />

"prepare_suspend_to_ram screen_saver <strong>do</strong>_suspend_to_ram"<br />

EVENT_GLOBAL_STANDBY=<br />

"prepare_standby screen_saver <strong>do</strong>_standby"<br />

EVENT_GLOBAL_RESUME_SUSPEND2DISK=<br />

"restore_after_suspend_to_disk"<br />

EVENT_GLOBAL_RESUME_SUSPEND2RAM=<br />

"restore_after_suspend_to_ram"<br />

EVENT_GLOBAL_RESUME_STANDBY=<br />

"restore_after_standby"<br />

Esta<strong>do</strong>s de bateria padroniza<strong>do</strong>s<br />

No arquivo /etc/sysconfig/powersave/battery, defina três níveis de carga<br />

de bateria (em porcentagem) que acionem alertas <strong>do</strong> sistema ou ações específicas quan<strong>do</strong><br />

forem atingi<strong>do</strong>s.<br />

BATTERY_WARNING=12<br />

BATTERY_LOW=7<br />

BATTERY_CRITICAL=2<br />

As ações ou scripts a executar quan<strong>do</strong> os níveis de carga caem abaixo <strong>do</strong>s limites<br />

especifica<strong>do</strong>s estão defini<strong>do</strong>s no arquivo de configuração /etc/sysconfig/<br />

powersave/events. As ações padrões para botões podem ser modificadas como<br />

descrito na Seção 33.5.1, “Configuran<strong>do</strong> o Pacote powersave” (p 610).<br />

EVENT_BATTERY_NORMAL="ignore"<br />

EVENT_BATTERY_WARNING="notify"<br />

EVENT_BATTERY_LOW="notify"<br />

EVENT_BATTERY_CRITICAL="wm_shut<strong>do</strong>wn"<br />

Adaptan<strong>do</strong> o consumo de energia a várias condições<br />

O comportamento <strong>do</strong> sistema pode ser adapta<strong>do</strong> ao tipo de fonte de alimentação. O<br />

consumo de energia <strong>do</strong> sistema deve ser reduzi<strong>do</strong> quan<strong>do</strong> o sistema estiver desconecta<strong>do</strong><br />

da fonte de alimentação CA e operar com bateria. Da mesma maneira, o desempenho<br />

deve aumentar automaticamente, tão logo o sistema seja conecta<strong>do</strong> à fonte de<br />

alimentação CA. A freqüência da CPU, a função de economia de energia de IDE e<br />

vários outros parâmetros podem ser modifica<strong>do</strong>s.<br />

As ações a executar quan<strong>do</strong> o computa<strong>do</strong>r for desconecta<strong>do</strong> ou conecta<strong>do</strong> à fonte de<br />

alimentação CA estão definidas em /etc/sysconfig/powersave/events.<br />

Selecione os esquemas a usar em /etc/sysconfig/powersave/common:


AC_SCHEME="performance"<br />

BATTERY_SCHEME="powersave"<br />

Os esquemas são armazena<strong>do</strong>s em arquivos em /etc/sysconfig/powersave.<br />

Os nomes de arquivos têm o formato scheme_name-<strong>of</strong>-the-scheme. O exemplo<br />

refere-se a <strong>do</strong>is esquemas: scheme_performance e scheme_powersave.<br />

desempenho, powersave, apresentação e acústico são pré-configura<strong>do</strong>s.<br />

Os esquemas existentes podem ser edita<strong>do</strong>s, cria<strong>do</strong>s, apaga<strong>do</strong>s ou associa<strong>do</strong>s com<br />

diferentes esta<strong>do</strong>s de fonte de alimentação com o auxílio <strong>do</strong> módulo gerenciamento de<br />

energia YaST descrito na Seção 33.6, “O módulo Gerenciamento de energia YaST”<br />

(p 618).<br />

33.5.3 Recursos de ACPI adicionais<br />

Se usar ACPI, você poderá controlar a resposta <strong>do</strong> seu sistema para os botões ACPI<br />

(energia, a<strong>do</strong>rmeci<strong>do</strong>, tampa aberta e tampa fechada). Configure a execução das ações<br />

em /etc/sysconfig/powersave/events. Consulte este arquivo de configuração<br />

para obter uma explicação sobre as opções individuais.<br />

EVENT_BUTTON_POWER="wm_shut<strong>do</strong>wn"<br />

Quan<strong>do</strong> o botão de alimentação é pressiona<strong>do</strong>, o sistema responde desligan<strong>do</strong> o<br />

respectivo gerencia<strong>do</strong>r de janela (KDE, GNOME, fvwm, etc.).<br />

EVENT_BUTTON_SLEEP="suspend_to_disk"<br />

Quan<strong>do</strong> o botão a<strong>do</strong>rmeci<strong>do</strong> é pressiona<strong>do</strong>, o sistema é configura<strong>do</strong> para o mo<strong>do</strong><br />

suspend-to-disk.<br />

EVENT_BUTTON_LID_OPEN="ignore"<br />

Nada acontece quan<strong>do</strong> a tampa está aberta.<br />

EVENT_BUTTON_LID_CLOSED="screen_saver"<br />

Quan<strong>do</strong> a tampa está fechada, o protetor de tela é ativa<strong>do</strong>.<br />

EVENT_OTHER="ignore"<br />

Esse evento ocorre se um evento desconheci<strong>do</strong> for encontra<strong>do</strong> pelo daemon. Eventos<br />

desconheci<strong>do</strong>s incluem teclas de atalho ACPI em algumas máquinas.<br />

É possível mais throttling <strong>do</strong> desempenho da CPU se a carga da CPU não exceder um<br />

limite especifica<strong>do</strong> durante um perío<strong>do</strong> especifica<strong>do</strong>. Especifique o limite de carga em<br />

PROCESSOR_IDLE_LIMIT e o tempo de espera em CPU_IDLE_TIMEOUT. Se a<br />

Gerenciamento de energia 615


616 Referência<br />

carga da CPU ficar abaixo <strong>do</strong> limite mais tempo <strong>do</strong> que o tempo de espera, o evento<br />

configura<strong>do</strong> em EVENT_PROCESSOR_IDLE é ativa<strong>do</strong>. Se a CPU estiver ocupada<br />

novamente, EVENT_PROCESSOR_BUSY é executa<strong>do</strong>.<br />

33.5.4 Solução de problemas<br />

Todas as mensagens de erro e alertas são registradas no arquivo /var/log/<br />

messages. Se não conseguir encontrar as informações necessárias, aumente o<br />

detalhamento das mensagens de economia de energia usan<strong>do</strong> DEBUG no arquivo /etc/<br />

sysconfig/powersave/common. Aumente o valor da variável para 7 ou mesmo<br />

15 e reinicie o daemon. As mensagens de erro mais detalhadas em /var/log/<br />

messages devem ajudá-lo a localizar o erro. As seguintes seções abordam os problemas<br />

mais comuns relaciona<strong>do</strong>s à economia de energia.<br />

ACPI ativada com suporte de hardware mas funções<br />

não funcionam<br />

Se você tiver problemas com a ACPI, use o coman<strong>do</strong> dmesg|grep -i acpi para<br />

pesquisar a saída de dmesg para mensagens específicas à ACPI. Poderá ser necessário<br />

atualizar o BIOS para solucionar o problema. Na home page <strong>do</strong> fabricante <strong>do</strong> seu laptop,<br />

procure uma versão atualizada <strong>do</strong> BIOS e instale-a. Peça ao fabricante para estar em<br />

conformidade com a última especificação da ACPI. Se os erros persistirem após a<br />

atualização <strong>do</strong> BIOS, faça o seguinte para substituir a tabela DSDT defeituosa no seu<br />

BIOS com um DSDT atualiza<strong>do</strong>:<br />

1 Faça o <strong>do</strong>wnload <strong>do</strong> DSDT para o seu sistema em http://acpi<br />

.sourceforge.net/dsdt/tables. Verifique se o arquivo está<br />

descompacta<strong>do</strong> e compila<strong>do</strong> como mostra a extensão de arquivo .aml (linguagem<br />

computacional ACPI). Se for o caso, continue com a etapa 3.<br />

2 Se a extensão de arquivo da tabela <strong>do</strong> <strong>do</strong>wnload for .asl (linguagem fonte<br />

ACPI), compile-a com iasl (pacote pmtools). Digite o coman<strong>do</strong> iasl -sa<br />

file.asl. A última versão de iasl (compila<strong>do</strong>r ACPI da Intel) está disponível<br />

em http://developer.intel.com/technology/iapc/acpi/<br />

<strong>do</strong>wnloads.htm.<br />

3 Copie o arquivo DSDT.aml para qualquer localização (/etc/DSDT.aml é<br />

recomendada). Edite /etc/sysconfig/kernel e adapte o caminho para o


arquivo DSDT de forma compatível. Inicie mkinitrd (pacote mkinitrd).<br />

Sempre que instalar o kernel e usar mkinitrd para criar um initrd, o DSDT<br />

modifica<strong>do</strong> é integra<strong>do</strong> e carrega<strong>do</strong> quan<strong>do</strong> o sistema é inicializa<strong>do</strong>.<br />

A freqüência da CPU não funciona<br />

Consulte as fontes de kernel (kernel-source) para ver se o seu processa<strong>do</strong>r é<br />

suporta<strong>do</strong>. Você poderá precisar de um módulo de kernel ou de opção especial para<br />

ativar o controle de freqüência da CPU. Essas informações estão disponíveis em /usr/<br />

src/linux/Documentation/cpu-freq/*. Se for necessário um módulo<br />

especial ou de opção, configure-o no arquivo /etc/sysconfig/powersave/<br />

cpufreq por meio das variáveis CPUFREQD_MODULE e CPUFREQD_MODULE_OPTS.<br />

Suspender e Standby não funcionam<br />

Há vários problemas relaciona<strong>do</strong>s ao kernel que impedem o uso de suspender e standby<br />

nos sistemas da ACPI:<br />

• Atualmente, os sistemas com mais de 1 GB de RAM não <strong>of</strong>erecem suporte a<br />

suspender.<br />

• Atualmente, os sistemas multiprocessa<strong>do</strong>res e sistemas com um processa<strong>do</strong>r P4<br />

(com hyperthreading) não <strong>of</strong>erecem suporte a suspender.<br />

O erro também pode ser devi<strong>do</strong> à implementação errada de DSDT (BIOS). Se for o<br />

caso, instale um novo DSDT.<br />

Em sistemas ACPI e APM: Quan<strong>do</strong> o sistema tenta descarregar módulos defeituosos,<br />

o sistema é verifica<strong>do</strong> ou o evento suspenso não é aciona<strong>do</strong>. O mesmo também pode<br />

acontecer se você não descarregar módulos ou interromper serviços que impeçam suma<br />

suspensão bem-sucedida. Em ambos os casos, tente identificar o módulo defeituoso<br />

que impediu o mo<strong>do</strong> a<strong>do</strong>rmeci<strong>do</strong>. Os arquivos de registro gera<strong>do</strong>s pelo daemon de<br />

economia de energia em /var/log/suspend2ram.log e /var/log/<br />

suspend2disk.log são muito úteis em relação a isto. Se o computa<strong>do</strong>r não entrar<br />

no mo<strong>do</strong> a<strong>do</strong>rmeci<strong>do</strong>, a causa está no último módulo descarrega<strong>do</strong>. Manipule as<br />

seguintes configurações em /etc/sysconfig/powersave/sleep para<br />

descarregar módulos problemáticos antes de suspender ou colocar em standby.<br />

UNLOAD_MODULES_BEFORE_SUSPEND2DISK=""<br />

UNLOAD_MODULES_BEFORE_SUSPEND2RAM=""<br />

UNLOAD_MODULES_BEFORE_STANDBY=""<br />

Gerenciamento de energia 617


618 Referência<br />

SUSPEND2DISK_RESTART_SERVICES=""<br />

SUSPEND2RAM_RESTART_SERVICES=""<br />

STANDBY_RESTART_SERVICES=""<br />

Se suspender ou colocar em standby ambientes de rede em transformação ou em conexão<br />

com sistemas de arquivo monta<strong>do</strong>s remotamente, como Samba e NIS, use automounter<br />

para montá-los ou adicionar os serviços respectivos como smbfs ou nfs, na variável<br />

acima mencionada. Se um aplicativo acessar o sistema de arquivo monta<strong>do</strong> remotamente<br />

antes de suspender ou colocar em standby, o serviço não pode ser interrompi<strong>do</strong><br />

corretamente e o sistema de arquivo não pode ser desmonta<strong>do</strong> de forma adequada. Após<br />

reiniciar o sistema, o sistema de arquivo pode estar corrompi<strong>do</strong> e deve ser remonta<strong>do</strong>.<br />

33.5.5 Mais informações<br />

• /usr/share/<strong>do</strong>c/packages/powersave — <strong>Documentação</strong> local <strong>do</strong> daemon<br />

de economia de energia<br />

• http://powersave.sourceforge.net — <strong>Documentação</strong> mais recente<br />

<strong>do</strong> daemon de economia de energia<br />

• http://www.opensuse.org/Projects_Powersave — Página de projeto<br />

no open<strong>SUSE</strong> wiki<br />

33.6 O módulo Gerenciamento de<br />

energia YaST<br />

O módulo de gerenciamento de energia YaST pode definir todas as configurações de<br />

gerenciamento de energia já descritas. Quan<strong>do</strong> inicia<strong>do</strong> no Centro de Controle <strong>do</strong> YaST<br />

com Sistema → Gerenciamento de Energia, a primeira caixa de diálogo <strong>do</strong> módulo se<br />

abre (consulte a Figura 33.1, “Seleção de Esquema” (p 619)).


Figura 33.1 Seleção de Esquema<br />

Nesta caixa de diálogo, selecione os esquemas a usar na operação a bateria e na operação<br />

de CA. Para adicionar ou modificar os esquemas, clique em Editar Esquemas, que abre<br />

uma visão geral <strong>do</strong>s esquemas existentes como a da Figura 33.2, “Visão geral <strong>do</strong>s<br />

esquemas existentes” (p 619).<br />

Figura 33.2 Visão geral <strong>do</strong>s esquemas existentes<br />

Gerenciamento de energia 619


620 Referência<br />

Na visão geral <strong>do</strong>s esquemas, selecione o esquema a modificar e clique em Editar. Para<br />

criar um novo esquema, clique em Adicionar. A caixa de diálogo que abre é a mesma<br />

nos <strong>do</strong>is casos e é mostrada na Figura 33.3, “Configuran<strong>do</strong> um esquema” (p 620).<br />

Figura 33.3 Configuran<strong>do</strong> um esquema<br />

Primeiro, digite um nome adequa<strong>do</strong> e uma descrição para o esquema novo ou edita<strong>do</strong>.<br />

Determine se e como o desempenho da CPU deve ser controla<strong>do</strong> para este esquema.<br />

Decida se e em que medida o dimensionamento de freqüência e o throttling devem ser<br />

usa<strong>do</strong>s. Na caixa de diálogo seguinte para o disco rígi<strong>do</strong>, defina uma Política de Standby<br />

para desempenho máximo ou para economia de energia. A Política de Acústica controla<br />

o nível de ruí<strong>do</strong> <strong>do</strong> disco rígi<strong>do</strong> (suporta<strong>do</strong> por poucos discos rígi<strong>do</strong>s). A Política de<br />

Resfriamento determina o méto<strong>do</strong> de resfriamento a ser usa<strong>do</strong>. Infelizmente, este tipo<br />

de controle térmico raras vezes é suporta<strong>do</strong> pelo BIOS. Leia /usr/share/<strong>do</strong>c/<br />

packages/powersave/powersave_manual.html#Thermal para aprender<br />

como usar o ventila<strong>do</strong>r e méto<strong>do</strong>s de resfriamento passivos.<br />

As configurações globais de gerenciamento de energia também podem ser feitas da<br />

caixa de diálogo inicial usan<strong>do</strong> Alerta de Bateria, Configurações ACPI ou Habilitar<br />

Suspend. Clique em Alerta de Bateria para acessar a caixa de diálogo <strong>do</strong> nível de carga<br />

de bateria, mostrada na Figura 33.4, “Nível de carga de bateria” (p 621).


Figura 33.4 Nível de carga de bateria<br />

O BIOS <strong>do</strong> seu sistema notifica o sistema operacional sempre que o nível de carga cai<br />

abaixo de certos limites configuráveis. Nesta caixa de diálogo, defina três limites: Alerta<br />

de Capacidade, Capacidade Baixa e Capacidade Crítica. Ações específicas são<br />

acionadas quan<strong>do</strong> o nível de carga cai abaixo desses limites. Normalmente, os <strong>do</strong>is<br />

primeiros esta<strong>do</strong>s apenas acionam uma notificação para o usuário. O terceiro nível<br />

crítico aciona um shut<strong>do</strong>wn, porque a energia restante não é suficiente para operação<br />

continuada <strong>do</strong> sistema. Selecione os níveis de carga adequa<strong>do</strong>s e as ações desejadas e<br />

clique em OK para retornar à caixa de diálogo de inicialização.<br />

Gerenciamento de energia 621


622 Referência<br />

Figura 33.5 Configurações ACPI<br />

Acesse a caixa de diálogo para configurar os botões de ACPI usan<strong>do</strong> Configurações<br />

ACPI. Isso é mostra<strong>do</strong> na Figura 33.5, “Configurações ACPI” (p 622). As configurações<br />

<strong>do</strong>s botões de ACPI determinam como o sistema deve responder a certos switches.<br />

Configure a resposta <strong>do</strong> sistema ao pressionar o botão de energia e o botão sleep e ao<br />

fechar a tampa <strong>do</strong> laptop. Clique em OK para concluir a configuração e retornar à caixa<br />

de diálogo inicial.<br />

Clique em Habilitar Suspensão para inserir uma caixa de diálogo na qual determinar<br />

se e como os usuários deste sistema podem usar a funcionalidade suspender ou aguardar.<br />

Clique em OK para retornar à caixa de diálogo principal. Clique em OK novamente<br />

para sair <strong>do</strong> módulo e confirmar as suas configurações de gerenciamento de energia.


Comunicação sem fio<br />

Há várias possibilidades de usar o sistema Linux para estabelecer comunicação com<br />

outros computa<strong>do</strong>res, telefones celulares ou dispositivos periféricos. A WLAN (wireless<br />

LAN - LAN sem fio) pode ser usada para colocar laptops em rede. O bluetooth pode<br />

ser usa<strong>do</strong> para conectar componentes individuais <strong>do</strong> sistema (mouse, tecla<strong>do</strong>),<br />

dispositivos periféricos, telefones celulares, PDAs e computa<strong>do</strong>res individuais uns com<br />

os outros. O IrDA é mais usa<strong>do</strong> para comunicação com PDAs ou telefones celulares.<br />

Este capítulo introduz todas as três tecnologias e sua configuração.<br />

34.1 LAN sem fio<br />

As LANs sem fio tornaram-se um aspecto indispensável da computação móvel.<br />

Atualmente, a maioria <strong>do</strong>s laptops tem placas WLAN embutidas. O padrão 802.11 para<br />

a comunicação sem fio de placas WLAN foi prepara<strong>do</strong> pela organização IEEE.<br />

Originalmente, este padrão forneceu uma taxa de transmissão máxima de 2 MBit/s.<br />

Entretanto, vários suplementos foram adiciona<strong>do</strong>s para aumentar a taxa de da<strong>do</strong>s. Esses<br />

suplementos definem detalhes como a modulação, saída de transmissão e taxas de<br />

transmissão:<br />

34<br />

Comunicação sem fio 623


Tabela 34.1 Visão geral de vários padrões WLAN<br />

Nome<br />

802.11<br />

802.11b<br />

802,11a<br />

802.11g<br />

624 Referência<br />

Banda<br />

(GHz)<br />

2.4<br />

2.4<br />

5<br />

2.4<br />

Taxa de<br />

transmissão<br />

máxima (MBit/s)<br />

2<br />

11<br />

54<br />

54<br />

Nota<br />

Desatualiza<strong>do</strong>; praticamente<br />

nenhum dispositivo final<br />

disponível<br />

Comum<br />

Menos comum<br />

Compatibilidade retroativa<br />

com 11b<br />

Além disso, existem padrões patentea<strong>do</strong>s, como a variação 802.11b da Texas Instruments<br />

com uma taxa de transmissão máxima de 22 MBit/s (às vezes conhecida como 802.11b+).<br />

Porém, a popularidade de placas que utilizam este padrão é limitada.<br />

34.1.1 Hardware<br />

Placas 802.11 não são suportadas pelo <strong>SUSE</strong> Linux. A maioria das placas que utilizam<br />

802.11a, 802.11b e 802.11g é suportada. Placas novas normalmente são compatíveis<br />

com o padrão 802.11g, mas as placas que utilizam o 802.11b ainda estão disponíveis.<br />

Normalmente, placas com os seguintes chips são suportadas:<br />

• Aironet 4500, 4800<br />

• Atheros 5210, 5211, 5212<br />

• Atmel at76c502, at76c503, at76c504, at76c506<br />

• Intel PRO/Wireless 2100, 2200BG, 2915ABG<br />

• Intersil Prism2/2.5/3<br />

• Intersil PrismGT


• Lucent/Agere Hermes<br />

• Ralink RT2400, RT2500<br />

• Texas Instruments ACX100, ACX111<br />

• ZyDAS zd1201<br />

Várias placas antigas que raramente são usadas e que não estão mais disponíveis também<br />

são suportadas. Uma ampla lista de placas WLAN e os chips que elas utilizam está<br />

disponível no site da Web da AbsoluteValue Systems no endereço http://www<br />

.linux-wlan.org/<strong>do</strong>cs/wlan_adapters.html.gz. http://wiki<br />

.uni-konstanz.de/wiki/bin/view/Wireless/ListeChipsatz <strong>of</strong>erece<br />

uma visão geral de vários chips WLAN.<br />

Algumas placas precisam de uma imagem de firmware que deve ser carregada na placa<br />

quan<strong>do</strong> o driver é inicializa<strong>do</strong>. Isto acontece com o Intersil PrismGT, Atmel e TI<br />

ACX100 e ACX111. O firmware pode ser facilmente instala<strong>do</strong> com a Atualização<br />

Online YaST. O firmware para placas Intel PRO/Wireless é forneci<strong>do</strong> com o <strong>SUSE</strong><br />

Linux e é instala<strong>do</strong> automaticamente pelo YaST assim que uma placa desse tipo é<br />

detectada. Mais informações sobre esse assunto estão disponíveis no sistema instala<strong>do</strong><br />

em /usr/share/<strong>do</strong>c/packages/wireless-tools/README.firmware.<br />

Placas sem o suporte nativo <strong>do</strong> Linux podem ser usadas com a execução <strong>do</strong> aplicativo<br />

ndiswrapper. O ndiswrapper utiliza os drivers <strong>do</strong> Win<strong>do</strong>ws XP que são forneci<strong>do</strong>s junto<br />

com a maioria das placas WLAN.<br />

Para configurar o ndiswrapper, siga estas etapas:<br />

1 Instale o pacote ndiswrapper usan<strong>do</strong> YaST.<br />

2 Faça o <strong>do</strong>wnload <strong>do</strong> driver apropria<strong>do</strong> <strong>do</strong> Win<strong>do</strong>ws XP para o seu adapta<strong>do</strong>r de<br />

rede sem fio. Use os drivers menciona<strong>do</strong>s na lista de placas suportadas em<br />

http://ndiswrapper.sourceforge.net/mediawiki/index.php/<br />

List. Os drivers não testa<strong>do</strong>s <strong>do</strong> seu CD de instalação da placa de rede talvez<br />

funcionem, mas podem causar problemas inespera<strong>do</strong>s.<br />

3 Descompacte o arquivo. Cada driver consiste em um arquivo com a extensão<br />

.inf e um ou mais DLLs. Como root, instale o driver com o coman<strong>do</strong><br />

ndiswrapper -i driver_name.inf. Ele copia to<strong>do</strong>s os arquivos<br />

Comunicação sem fio 625


626 Referência<br />

necessários para o diretório /etc/ndiswrapper/ e cria os arquivos de<br />

configuração para a sua placa.<br />

4 Verifique se o driver foi instala<strong>do</strong> de forma adequada com o coman<strong>do</strong><br />

ndiswrapper -l.<br />

5 Carregue o módulo com o coman<strong>do</strong> modprobe ndiswrapper. O registro<br />

de sistema /var/log/messages indica sucesso ou falha.<br />

6 Se tu<strong>do</strong> funcionar, você poderá digitar ndiswrapper -m para carregar o<br />

módulo quan<strong>do</strong> o sistema iniciar.<br />

7 Configure o adapta<strong>do</strong>r de rede sem fio no YaST com Dispositivos de Rede →<br />

Placa de Rede. Escolha Sem Fio para o Tipo de Dispositivo, O para Nome de<br />

Configuração e ndiswrapper para Nome <strong>do</strong> Módulo. Deixe outros campos<br />

com seus padrões.<br />

É possível encontrar uma descrição <strong>do</strong> ndiswrapper em /usr/share/<strong>do</strong>c/<br />

packages/ndiswrapper/README.<strong>SUSE</strong> quan<strong>do</strong> o pacote ndiswrapper é<br />

instala<strong>do</strong>. Para obter informações mais detalhadas sobre ndiswrapper, consulte o site<br />

da Web <strong>do</strong> projeto em http://ndiswrapper.sourceforge.net/support<br />

.html.<br />

34.1.2 Função<br />

Nas redes sem fio, várias técnicas e configurações são usadas para assegurar conexões<br />

rápidas, seguras e com alta qualidade. Tipos operacionais diferentes adaptam-se a<br />

configurações diferentes. Pode ser difícil escolher o méto<strong>do</strong> de autenticação correto.<br />

Os méto<strong>do</strong>s de criptografia disponíveis possuem diferentes vantagens e armadilhas.<br />

Mo<strong>do</strong> de funcionamento<br />

Basicamente, as redes sem fio podem ser classificadas como redes gerenciadas e redes<br />

ad-hoc. As redes gerenciadas possuem um elemento de gerenciamento: o ponto de<br />

acesso. Neste mo<strong>do</strong> (também conheci<strong>do</strong> como mo<strong>do</strong> de infra-estrutura), todas as<br />

conexões das estações WLAN na rede passam pelo ponto de acesso, que também pode<br />

servir como uma conexão para uma ethernet. Redes ad-hoc não possuem um ponto de<br />

acesso. As estações se comunicam diretamente umas com as outras. A faixa de<br />

transmissão e o número de estações participantes são muito limita<strong>do</strong>s nas redes ad-hoc.


Portanto, um ponto de acesso normalmente é mais eficiente. É até mesmo possível usar<br />

uma placa WLAN como um ponto de acesso. A maioria das placas suporta esta<br />

funcionalidade.<br />

Como uma rede sem fio é muito mais fácil de interceptar e comprometer <strong>do</strong> que uma<br />

rede com fio, os vários padrões incluem méto<strong>do</strong>s de autenticação e criptografia. Na<br />

versão original <strong>do</strong> padrão IEEE 802.11, esses méto<strong>do</strong>s são descritos sob o termo WEP.<br />

Porém, como foi prova<strong>do</strong> que o WEP não é seguro (consulte “Segurança” (p 634)), a<br />

indústria WLAN (reunida sob o nome Wi-Fi Alliance) definiu uma nova extensão,<br />

chamada WPA, que supostamente elimina os pontos fracos <strong>do</strong> WEP. O padrão IEEE<br />

802.11i posterior (também conheci<strong>do</strong> como WPA2, porque o WPA é basea<strong>do</strong> em uma<br />

versão de rascunho <strong>do</strong> 802.11i) inclui o WPA e alguns outros méto<strong>do</strong>s de autenticação<br />

e criptografia.<br />

Autenticação<br />

Para garantir que apenas as estações autorizadas possam se conectar, vários mecanismos<br />

de autenticação são usa<strong>do</strong>s em redes gerenciadas:<br />

Aberto<br />

Um sistema aberto é um sistema que não precisa de autenticação. Qualquer estação<br />

pode se juntar à rede. Contu<strong>do</strong>, a criptografia WEP (consulte “Criptografia” (p 628))<br />

pode ser usada.<br />

Chave compartilhada (de acor<strong>do</strong> com o padrão IEEE 802.11)<br />

Neste procedimento, a chave WEP é usada para autenticação. Porém, este<br />

procedimento não é recomenda<strong>do</strong>, porque torna a chave WEP mais suscetível a<br />

ataques. Tu<strong>do</strong> o que um invasor precisa fazer é escutar durante tempo suficiente a<br />

comunicação entre a estação e o ponto de acesso. Durante o processo de<br />

autenticação, ambos os la<strong>do</strong>s trocam as mesmas informações, uma vez de forma<br />

criptografada e outra de forma não criptografada. Isso possibilita a reconstrução<br />

da chave com as ferramentas adequadas. Como esse méto<strong>do</strong> utiliza a chave WEP<br />

para a autenticação e para a criptografia, ele não melhora a segurança da rede. Uma<br />

estação com a chave WEP correta pode ser autenticada, criptografada e<br />

descriptografada. Uma estação que não tem a chave não pode descriptografar os<br />

pacotes recebi<strong>do</strong>s. Da mesma maneira, ela não pode se comunicar, mesmo que<br />

tenha que se autenticar.<br />

Comunicação sem fio 627


628 Referência<br />

WPA-PSK (de acor<strong>do</strong> com o padrão IEEE 802.1x)<br />

O WPA-PSK (PSK corresponde a preshared key - chave pré-compartilhada)<br />

funciona de maneira semelhante ao procedimento Chave compartilhada. Todas as<br />

estações participantes, assim como o ponto de acesso, precisam da mesma chave.<br />

A chave tem 256 bits de tamanho e normalmente é digitada como uma frase secreta.<br />

Este sistema não precisa de um gerenciamento de chave complexo como o WPA-<br />

EAP e é mais adequa<strong>do</strong> para uso priva<strong>do</strong>. Portanto, o WPA-PSK é às vezes<br />

conheci<strong>do</strong> como WPA “Home”.<br />

WPA-EAP (de acor<strong>do</strong> com o padrão IEEE 802.1x)<br />

Na verdade, o WPA-EAP não é um sistema de autenticação, e sim um protocolo<br />

para transporte de informações de autenticação. O WPA-EAP é usa<strong>do</strong> para proteger<br />

redes sem fio em empresas. Em redes privadas, ele é raramente usa<strong>do</strong>. Por este<br />

motivo, o WPA-EAP é às vezes conheci<strong>do</strong> como WPA “Enterprise”.<br />

O WPA-EAP precisa de um servi<strong>do</strong>r Radius para autenticar os usuários. O EAP<br />

<strong>of</strong>erece três méto<strong>do</strong>s diferentes de conexão e autenticação no servi<strong>do</strong>r: TLS<br />

(Transport Layer Security), TTLS (Tunneled Transport Layer Security) e PEAP<br />

(Protected Extensible Authentication Protocol). Em resumo, essas opções funcionam<br />

da seguinte maneira:<br />

EAP-TLS<br />

A autenticação TLS utiliza a troca mútua de certifica<strong>do</strong>s para servi<strong>do</strong>r e cliente.<br />

Primeiro, o servi<strong>do</strong>r apresenta o seu certifica<strong>do</strong> para o cliente, onde ele é<br />

avalia<strong>do</strong>. Se o certifica<strong>do</strong> for considera<strong>do</strong> váli<strong>do</strong>, o cliente, por sua vez,<br />

apresenta o seu certifica<strong>do</strong> para o servi<strong>do</strong>r. Embora o TLS seja seguro, ele<br />

exige uma infra-estrutura de gerenciamento de certificação que funcione em<br />

sua rede. Esta infra-estrutura é raramente encontrada em redes particulares.<br />

EAP-TTLS e PEAP<br />

Os protocolos TTLS e PEAP são protocolos de <strong>do</strong>is estágios. No primeiro<br />

estágio, a segurança é estabelecida e, no segun<strong>do</strong>, os da<strong>do</strong>s de autenticação <strong>do</strong><br />

cliente são troca<strong>do</strong>s. Eles exigem muito menos overhead de gerenciamento de<br />

certificação <strong>do</strong> que o TLS, se houver.<br />

Criptografia<br />

Existem vários méto<strong>do</strong>s de criptografia para assegurar que pessoas não autorizadas não<br />

possam ler os pacotes de da<strong>do</strong>s que são troca<strong>do</strong>s em uma rede sem fio nem obter acesso<br />

à rede:


WEP (defini<strong>do</strong> no padrão IEEE 802.11)<br />

Este padrão utiliza o algoritmo de criptografia RC4, originalmente com um tamanho<br />

de chave de 40 bits, posteriormente também com 104 bits. Muitas vezes, o tamanho<br />

é declara<strong>do</strong> como 64 bits ou 128 bits, dependen<strong>do</strong> da inclusão ou não <strong>do</strong>s 24 bits<br />

<strong>do</strong> vetor de inicialização. Porém, este padrão possui algumas fraquezas. Os ataques<br />

contra as chaves geradas por este sistema podem ser bem-sucedi<strong>do</strong>s. Contu<strong>do</strong>, é<br />

melhor usar o WEP <strong>do</strong> que não criptografar a rede de nenhuma maneira.<br />

TKIP (defini<strong>do</strong> no padrão WPA/IEEE 802.11i)<br />

Este protocolo de gerenciamento de chave defini<strong>do</strong> no padrão WPA utiliza o mesmo<br />

algoritmo de criptografia <strong>do</strong> WEP, mas elimina sua fraqueza. Como uma nova<br />

chave é gerada para cada pacote de da<strong>do</strong>s, os ataques contra essas chaves são em<br />

vão. O TKIP é usa<strong>do</strong> junto com o WPA-PSK.<br />

CCMP (defini<strong>do</strong> no padrão IEEE 802.11i)<br />

O CCMP descreve o gerenciamento de chave. Normalmente, ele é usa<strong>do</strong> na conexão<br />

com o WPA-EAP, mas também pode ser usa<strong>do</strong> com o WPA-PSK. A criptografia<br />

acontece de acor<strong>do</strong> com o AES e é mais forte <strong>do</strong> que a criptografia RC4 <strong>do</strong> padrão<br />

WEP.<br />

34.1.3 Configuração com o YaST<br />

Para configurar uma placa de rede sem fio, inicio o módulo Placa de Rede <strong>do</strong> YaST.<br />

Aqui você também pode escolher se deseja usar o YaST ou o NetworkManager para<br />

gerenciar sua placa de rede. Se você selecionar o YaST, selecione o tipo de dispositivo<br />

Sem Fio em Configuração de Endereço de Rede e clique em Próximo. Em Configuração<br />

de Placa de Rede Sem Fio, exibi<strong>do</strong> na Figura 34.1, “YaST: Configuran<strong>do</strong> a placa de<br />

rede sem fio” (p 630), defina as configurações básicas para a operação da WLAN:<br />

Comunicação sem fio 629


630 Referência<br />

Figura 34.1 YaST: Configuran<strong>do</strong> a placa de rede sem fio<br />

Mo<strong>do</strong> de funcionamento<br />

Uma estação pode ser integrada em uma WLAN de três mo<strong>do</strong>s diferentes. O mo<strong>do</strong><br />

mais adequa<strong>do</strong> depende da rede na qual deve ocorrer a comunicação: Ad-hoc (rede<br />

não-hierárquica sem ponto de acesso), Gerenciada (a rede é gerenciada por um<br />

ponto de acesso) ou Master (sua placa de rede deve ser usada como o ponto de<br />

acesso). Para usar qualquer um <strong>do</strong>s mo<strong>do</strong>s WPA-PSK ou WPA-EAP, o mo<strong>do</strong> de<br />

funcionamento deverá ser defini<strong>do</strong> como gerencia<strong>do</strong>.<br />

Nome da Rede (ESSID)<br />

Todas as estações em uma rede sem fio precisam <strong>do</strong> mesmo ESSID para se<br />

comunicar umas com as outras. Se nenhuma opção for especificada, a placa<br />

selecionará automaticamente um ponto de acesso, que pode não ser o deseja<strong>do</strong>.<br />

Mo<strong>do</strong> de Autenticação<br />

Selecione um méto<strong>do</strong> de autenticação adequa<strong>do</strong> para a sua rede: Abra, Chave<br />

Compartilhada, WPA-PSK ou WPA-EAP. Se você selecionar a autenticação WPA,<br />

um nome de rede deverá ser defini<strong>do</strong>.<br />

Configurações de Usuário Avança<strong>do</strong><br />

Este botão abre uma caixa de diálogo com as configurações detalhadas da sua<br />

conexão WLAN. Uma descrição detalhada desta caixa de diálogo será fornecida<br />

posteriormente.


Após serem completadas as configurações básicas, a sua estação estará pronta para a<br />

distribuição na WLAN.<br />

IMPORTANTE: Segurança em redes sem fio<br />

Certifique-se de usar um <strong>do</strong>s méto<strong>do</strong>s de autenticação e criptografia suporta<strong>do</strong>s<br />

para proteger o tráfego da rede. As conexões de WLAN não criptografadas<br />

permitem que terceiros interceptem to<strong>do</strong>s os da<strong>do</strong>s da rede. Mesmo uma<br />

criptografia mais fraca (WEP) é melhor <strong>do</strong> que nenhuma. Consulte “Criptografia”<br />

(p 628) e a “Segurança” (p 634) para obter mais informações.<br />

Dependen<strong>do</strong> <strong>do</strong> méto<strong>do</strong> de autenticação seleciona<strong>do</strong>, o YaST solicita que você faça<br />

um ajuste fino das configurações em outra caixa de diálogo. Para a opção Aberto, não<br />

há nada para definir, porque essa configuração implementa operações não criptografadas<br />

sem autenticação.<br />

Chaves WEP<br />

Defina um tipo de entrada de chave. Selecione dentre Frase Secreta, ASCII ou<br />

Hexadecimal. É possível manter até quatro chaves diferentes para criptografar os<br />

da<strong>do</strong>s transmiti<strong>do</strong>s. Clique em Várias Chaves para informar a caixa de diálogo de<br />

configuração de chave. Defina o tamanho da chave: 128 bits ou 64 bits. A<br />

configuração padrão é 128 bits. Na área de listas na parte inferior da caixa de<br />

diálogo, até quatro chaves diferentes podem ser especificadas para serem usadas<br />

pela sua estação para a criptografia. Pressione Definir como Padrão para definir<br />

uma delas como a chave padrão. A não ser que você mude a opção, o YaST utiliza<br />

a primeira chave informada como a chave padrão. Se a chave padrão for apagada,<br />

uma das outras chaves deverá ser marcada manualmente como a chave padrão.<br />

Clique em Editar para modificar as entradas de lista existentes ou criar novas<br />

chaves. Neste caso, uma janela pop-up solicita que você selecione um tipo de<br />

entrada (Frase Secreta, ASCII ou Hexadecimal). Se você selecionar Frase Secreta,<br />

digite uma palavra ou string de caractere da qual uma chave é gerada de acor<strong>do</strong><br />

com o tamanho especifica<strong>do</strong> anteriormente. O ASCII exige uma entrada de 5<br />

caracteres para uma chave de 64 bits e 13 caracteres para uma chave de 128 bits.<br />

Para a opção Hexadecimal, digite 10 caracteres para uma chave de 64 bits ou 26<br />

caracteres para uma chave de 128 bits em notação hexadecimal.<br />

WPA-PSK<br />

Para digitar uma chave para WPA-PSK, selecione o méto<strong>do</strong> de entrada Frase<br />

Secreta ou Hexadecimal. No mo<strong>do</strong> Frase Secreta, a entrada deve ser de 8 a 63<br />

caracteres. No mo<strong>do</strong> Hexadecimal, digite 64 caracteres.<br />

Comunicação sem fio 631


632 Referência<br />

WPA-EAP<br />

Digite as credenciais fornecidas pelo seu administra<strong>do</strong>r de rede. Para TLS, forneça<br />

o Certifica<strong>do</strong> de Cliente e o Certifica<strong>do</strong> de Servi<strong>do</strong>r. TTLS e PEAP exigem<br />

Identidade e Senha. O Certifica<strong>do</strong> de Servi<strong>do</strong>r é opcional. O YaST procura algum<br />

certifica<strong>do</strong> em /etc/cert, então grave os certifica<strong>do</strong>s da<strong>do</strong>s a você neste local<br />

e restrinja o acesso a esses arquivos a 0600 (leitura e gravação <strong>do</strong> proprietário).<br />

Clique em Configurações Avançadas para entrar na caixa de diálogo de autenticação<br />

avançada para sua configuração de WPA-EAP. Selecione o méto<strong>do</strong> de autenticação<br />

para o segun<strong>do</strong> estágio da comunicação de EAP-TTLS ou EAP-PEAP. Se você<br />

selecionou TTLS na caixa de diálogo anterior, escolha auto, MD5, GTC, CHAP,<br />

PAP, MSCHAPv1 ou MSCHAPv2. Se você selecionou PEAP, escolha auto, MD5,<br />

GTC ou MSCHAPv2. A versão PEAP pode ser usada para forçar o uso de uma<br />

determinada implementação de PEAP se a configuração determinada<br />

automaticamente não funcionar para você. Saia dessa caixa de diálogo clican<strong>do</strong><br />

em OK.<br />

Clique em Configurações de Usuário Avança<strong>do</strong> para sair da caixa de diálogo para a<br />

configuração básica da conexão WLAN e informe a configuração de usuário avança<strong>do</strong>.<br />

As seguintes opções estão disponíveis nesta caixa de diálogo:<br />

Canal<br />

A especificação de um canal no qual a estação WLAN deve funcionar é necessária<br />

somente nos mo<strong>do</strong>s Ad-hoc e Master. No mo<strong>do</strong> Gerencia<strong>do</strong>, a placa pesquisa<br />

automaticamente os canais disponíveis para pontos de acesso. No mo<strong>do</strong> Ad-hoc,<br />

selecione um <strong>do</strong>s 12 canais <strong>of</strong>ereci<strong>do</strong>s para a comunicação da sua estação com as<br />

outras estações. No mo<strong>do</strong> Master, determine em qual canal a sua placa deve <strong>of</strong>erecer<br />

funcionalidade de ponto de acesso. A configuração padrão para esta opção é Auto.<br />

Taxa de Bits<br />

Dependen<strong>do</strong> <strong>do</strong> desempenho da sua rede, você pode definir uma determinada taxa<br />

de bits para a transmissão de um ponto para outro. Na configuração padrão<br />

Automático, o sistema tenta usar a taxa de transmissão de da<strong>do</strong>s mais alta possível.<br />

Algumas placas WLAN não suportam a configuração da taxa de bits.<br />

Ponto de Acesso<br />

Em um ambiente com vários pontos de acesso, um deles pode ser pré-seleciona<strong>do</strong><br />

especifican<strong>do</strong>-se o endereço MAC.


Utilizar o Gerenciamento de Energia<br />

Quan<strong>do</strong> você estiver em trânsito, use as tecnologias de gerenciamento de energia<br />

para maximizar o tempo de funcionamento da bateria. Mais informações sobre o<br />

gerenciamento de energia estão disponíveis no Capítulo 33, Gerenciamento de<br />

energia (p 597).<br />

34.1.4 Utilitários<br />

O hostap (pacote hostap) é usa<strong>do</strong> para executar uma placa WLAN como um ponto<br />

de acesso. Mais informações sobre este pacote estão disponíveis na home page <strong>do</strong><br />

projeto (http://hostap.epitest.fi/).<br />

O kismet (pacote kismet) é uma ferramenta de diagnóstico de rede com a qual é<br />

possível escutar o tráfego de pacote WLAN. Desta forma, você também pode detectar<br />

quaisquer tentativas de invasão na rede. Mais informações estão disponíveis em<br />

http://www.kismetwireless.net/ e na página <strong>do</strong> manual.<br />

34.1.5 Dicas sobre a configuração de uma<br />

WLAN<br />

Essas dicas podem ajudar a ajustar a velocidade e a estabilidade, assim como os aspectos<br />

de segurança da sua WLAN.<br />

Estabilidade e velocidade<br />

O desempenho e a confiabilidade de uma rede sem fio dependem principalmente <strong>do</strong><br />

fato de as estações participantes receberem ou não um sinal claro das outras estações.<br />

Obstruções como paredes podem enfraquecer grandemente o sinal. Quanto menor a<br />

força <strong>do</strong> sinal, mais lenta fica a transmissão. Durante a operação, verifique a força <strong>do</strong><br />

sinal com o utilitário iwconfig na linha de coman<strong>do</strong> (campo Qualidade <strong>do</strong> Link)<br />

ou com o KInternet no KDE. Se tiver problemas com a qualidade <strong>do</strong> sinal, tente<br />

configurar os dispositivos em outro lugar ou ajuste a posição das antenas <strong>do</strong> seu ponto<br />

de acesso. Antenas auxiliares que melhoram substancialmente a recepção estão<br />

disponíveis para várias placas PCMCIA WLAN. A taxa especificada pelo fabricante,<br />

como 54 MBit/s, é um valor nominal que representa o máximo teórico. Na prática, o<br />

throughput máximo de da<strong>do</strong>s não passa da metade desse valor.<br />

Comunicação sem fio 633


634 Referência<br />

Segurança<br />

Se você desejar configurar uma rede sem fio, lembre-se de que qualquer pessoa dentro<br />

da faixa de transmissão poderá acessá-la facilmente se não forem implementadas medidas<br />

de segurança. Portanto, certifique-se de ativar o méto<strong>do</strong> de criptografia. Todas as placas<br />

WLAN e pontos de acesso suportam a criptografia WEP. Embora ainda não seja<br />

completamente segura, ela representa um obstáculo para um invasor em potencial. A<br />

criptografia WEP é normalmente adequada para uso particular. A WPA-PSK é ainda<br />

melhor, mas não é implementada em pontos de acesso ou rotea<strong>do</strong>res antigos com<br />

funcionalidade WLAN. Em alguns dispositivos, o WPA pode ser implementa<strong>do</strong> por<br />

meio de uma atualização de firmware. Além disso, o Linux não suporta o WPA em<br />

to<strong>do</strong>s os componentes de hardware. Quan<strong>do</strong> esta <strong>do</strong>cumentação estava sen<strong>do</strong> preparada,<br />

o WPA funcionava somente com placas que utilizavam chips Atheros, Intel<br />

PRO/Wireless ou Prism2/2.5/3. No chip Prism2/2.5/3, o WPA funcionava somente se<br />

o driver hostap estivesse em uso (consulte “Problemas com placas Prism2” (p 635)). Se<br />

o WPA não estiver disponível, é melhor utilizar a criptografia WEP <strong>do</strong> que nenhum<br />

tipo de criptografia. Em empresas com requisitos de segurança avança<strong>do</strong>s, as redes sem<br />

fio devem ser operadas somente com WPA.<br />

34.1.6 Solução de problemas<br />

Se a sua placa WLAN falhar na resposta, verifique se realizou o <strong>do</strong>wnload <strong>do</strong> firmware<br />

necessário. Consulte a Seção 34.1.1, “Hardware” (p 624). Os parágrafos a seguir<br />

descrevem alguns problemas conheci<strong>do</strong>s.<br />

Vários dispositivos de rede<br />

Laptops modernos geralmente tem uma placa de rede e uma placa WLAN. Se você<br />

configurou ambos os dispositivos com DHCP (atribuição de endereço automática),<br />

poderá encontrar problemas com a resolução de nome e o gateway padrão. Isto fica<br />

evidente quan<strong>do</strong> você pode efetuar ping no rotea<strong>do</strong>r, mas não pode navegar na Internet.<br />

O Banco de Da<strong>do</strong>s de Suporte no endereço http://portal.suse.com apresenta<br />

um artigo sobre o assunto. Para encontrar o artigo, digite “DHCP” na caixa de diálogo<br />

de pesquisa.


Problemas com placas Prism2<br />

Vários drivers estão disponíveis para dispositivos com chips Prism2. As várias placas<br />

funcionam mais ou menos adequadamente com os vários drivers. Com essas placas, a<br />

criptografia WPA somente pode ser usada com o driver hostap. Se tal placa não funcionar<br />

adequadamente ou não funcionar ou se você desejar usar a criptografia WPA, leia<br />

/usr/share/<strong>do</strong>c/packages/wireless-tools/README.prism2.<br />

WPA<br />

O suporte a criptografia WPA é muito novo no <strong>SUSE</strong> Linux e ainda está em<br />

desenvolvimento. Além disso, o YaST não suporta a configuração de to<strong>do</strong>s os méto<strong>do</strong>s<br />

de autenticação WPA. Nem todas as placas e drivers LAN suportam a criptografia<br />

WPA. Algumas placas precisam de uma atualização <strong>do</strong> firmware para habilitar a<br />

criptografia WPA. Se você deseja usar a criptografia WPA, leia /usr/share/<strong>do</strong>c/<br />

packages/wireless-tools/README.wpa.<br />

34.1.7 Mais informações<br />

As páginas da Internet de Jean Tourrilhes, que desenvolveu as Ferramentas Sem Fio<br />

para o Linux, apresentam uma grande variedade de informações sobre dispositivos sem<br />

fio. Consulte http://www.hpl.hp.com/personal/Jean_Tourrilhes/<br />

Linux/Wireless.html.<br />

34.2 Bluetooth<br />

Bluetooth é uma tecnologia sem fio para conexão de vários dispositivos, como telefones<br />

celulares, PDAs, dispositivos periféricos ou componentes de sistema como tecla<strong>do</strong> ou<br />

mouse. O nome deriva <strong>do</strong> rei dinamarquês Harold Bluetooth, que uniu várias facções<br />

guerreiras na Escandinávia. O logotipo da Bluetooth baseia-se nas runas de “H” (lembra<br />

uma estrela) e “B”.<br />

Vários aspectos importantes distinguem o Bluetooth <strong>do</strong> IrDA. Primeiro, os dispositivos<br />

individuais não precisam “ver” um ao outro diretamente e, segun<strong>do</strong>, vários dispositivos<br />

podem ser conecta<strong>do</strong>s em uma rede. Contu<strong>do</strong>, a taxa de da<strong>do</strong>s máxima é de 720 Kbps<br />

(na versão atual 1.2). Teoricamente, o Bluetooth pode se comunicar até através de<br />

Comunicação sem fio 635


636 Referência<br />

paredes. Na prática, porém, isto depende das propriedades da parede e da classe <strong>do</strong><br />

dispositivo. Há três classes de dispositivos com faixas de transmissão entre dez e 100<br />

metros.<br />

34.2.1 Noções básicas<br />

As seções a seguir resumem os princípios básicos da maneira como o Bluetooth trabalha.<br />

Obtenha mais informações sobre os requisitos que o s<strong>of</strong>tware deve atender, como o<br />

Bluetooth interage com o seu sistema e como ele traça o seu perfil de trabalho.<br />

S<strong>of</strong>tware<br />

Para poder usar o Bluetooth, você precisa de um adapta<strong>do</strong>r de Bluetooth (adapta<strong>do</strong>r<br />

interno ou dispositivo externo), drivers e uma pilha de protocolos Bluetooth. O kernel<br />

<strong>do</strong> Linux já contém os drivers básicos para usar o Bluetooth. O sistema Bluez é usa<strong>do</strong><br />

como pilha de protocolos. Para verificar se os aplicativos funcionam com o Bluetooth,<br />

os pacotes básicos bluez-libs e bluez-utils devem estar instala<strong>do</strong>s. Esses<br />

pacotes <strong>of</strong>erecem diversos serviços e utilitários necessários. Além disso, alguns<br />

adapta<strong>do</strong>res, como Broadcom ou AVM BlueFritz! exigem que o pacote<br />

bluez-firmware seja instala<strong>do</strong>. O pacote bluez-cups habilita a impressão nas<br />

conexões Bluetooth. Se você precisa depurar problemas com conexões de Bluetooth,<br />

instale o pacote bluez-hcidump.<br />

Interação geral<br />

Um sistema Bluetooth consiste em quatro camadas interbloqueadas que fornecem a<br />

funcionalidade desejada:<br />

Hardware<br />

O adapta<strong>do</strong>r e um driver adequa<strong>do</strong> para suporte pelo kernel <strong>do</strong> Linux.<br />

Arquivos de configuração<br />

Usa<strong>do</strong>s para controlar o sistema Bluetooth.<br />

Daemons<br />

Serviços que são controla<strong>do</strong>s pelos arquivos de configuração e fornecem a<br />

funcionalidade.


Aplicativos<br />

Os aplicativos possibilitam que a funcionalidade fornecida pelos daemons seja<br />

usada e controlada pelo usuário.<br />

Ao inserir um adapta<strong>do</strong>r Bluetooth, seu driver é carrega<strong>do</strong> pelo sistema hotplug. Depois<br />

que o driver for carrega<strong>do</strong>, o sistema verifica os arquivos de configuração para ver se<br />

o Bluetooth deve ser inicia<strong>do</strong>. Se for o caso, determina os serviços a serem inicia<strong>do</strong>s.<br />

Com base nestas informações, os daemons respectivos são inicia<strong>do</strong>s. Os adapta<strong>do</strong>res<br />

Bluetooth são examina<strong>do</strong>s durante a instalação. Se for encontra<strong>do</strong> um ou mais, o<br />

Bluetooth é habilita<strong>do</strong>. Caso contrário, o sistema Bluetooth é desativa<strong>do</strong>. Qualquer<br />

dispositivo Bluetooth acrescenta<strong>do</strong> depois deve ser habilita<strong>do</strong> manualmente.<br />

Perfis<br />

No Bluetooth, os serviços são defini<strong>do</strong>s por meio de perfis, como o perfil de transferência<br />

de arquivo, o perfil de impressão básica e o perfil de rede de área pessoal. Para habilitar<br />

um dispositivo para usar os serviços de outro dispositivo, ambos devem compreender<br />

o mesmo perfil. Freqüentemente, essa parte das informações não é incluída no pacote<br />

e no manual <strong>do</strong> dispositivo. Infelizmente, alguns fabricantes não atendem rigorosamente<br />

as definições <strong>do</strong>s perfis individuais. Apesar disto, a comunicação entre os dispositivos<br />

em geral funciona uniformemente.<br />

No texto a seguir, os dispositivos locais são os fisicamente conecta<strong>do</strong>s ao computa<strong>do</strong>r.<br />

Os demais dispositivos que só podem ser acessa<strong>do</strong>s por conexões sem fio são chama<strong>do</strong>s<br />

de dispositivos remotos.<br />

34.2.2 Configuração<br />

Esta seção apresenta a configuração <strong>do</strong> Bluetooth. Saiba quais os arquivos de<br />

configuração envolvi<strong>do</strong>s, que ferramentas são necessárias e como configurar o Bluetooth<br />

com YaST ou manualmente.<br />

Configuran<strong>do</strong> o Bluetooth com YaST<br />

Use o módulo YaST <strong>do</strong> Bluetooth, mostra<strong>do</strong> na Figura 34.2, “Configuração YaST <strong>do</strong><br />

Bluetooth” (p 638), para configurar o suporte <strong>do</strong> Bluetooth no sistema. Assim que o<br />

hotplug detectar um adapta<strong>do</strong>r de Bluetooth no sistema (por exemplo, durante a<br />

Comunicação sem fio 637


638 Referência<br />

inicialização ou quan<strong>do</strong> você conectar um adapta<strong>do</strong>r), o Bluetooth inicia<br />

automaticamente com as configurações desse módulo.<br />

Figura 34.2 Configuração YaST <strong>do</strong> Bluetooth<br />

Na primeira etapa da configuração, determine se os serviços Bluetooth devem ser<br />

inicializa<strong>do</strong>s no sistema. Se tiver habilita<strong>do</strong> os serviços Bluetooth, <strong>do</strong>is itens podem<br />

ser configura<strong>do</strong>s. Primeiro, o Nome <strong>do</strong> Dispositivo. É o nome que outros dispositivos<br />

exibem quan<strong>do</strong> o seu computa<strong>do</strong>r tiver si<strong>do</strong> descoberto. Há <strong>do</strong>is marca<strong>do</strong>res de espaço<br />

disponíveis — %h significa o nome de host <strong>do</strong> sistema (útil, por exemplo, se foi atribuí<strong>do</strong><br />

dinamicamente por DHCP) e %d insere o número da interface (só é útil se você tiver<br />

mais de um adapta<strong>do</strong>r Bluetooth no computa<strong>do</strong>r). Por exemplo, se você gravar Laptop<br />

%h no campo e DHCP atribuir o nome unidade123 ao seu computa<strong>do</strong>r, outros<br />

dispositivos remotos reconheceriam o seu computa<strong>do</strong>r como Laptop unidade123.<br />

O parâmetro Gerencia<strong>do</strong>r de Segurança refere-se ao comportamento <strong>do</strong> sistema local<br />

quan<strong>do</strong> um dispositivo remoto tenta se conectar. A diferença está no tratamento <strong>do</strong><br />

número PIN. Permita que qualquer dispositivo se conecte sem um PIN ou, se o PIN for<br />

necessário, determine como o correto é escolhi<strong>do</strong>. Você pode gravar um PIN<br />

(armazena<strong>do</strong> em um arquivo de configuração) no campo de entrada adequa<strong>do</strong>. Se um<br />

dispositivo tentar se conectar, primeiro usa este PIN. Se falhar, ele recua para utilização<br />

sem PIN. Para máxima segurança, é melhor escolher Solicitar PIN Sempre. Esta opção<br />

permite que você use vários PINs para vários dispositivos (remotos).


Clique em Configuração Daemon Avançada para ativar a caixa de diálogo para<br />

selecionar e configurar os serviços disponíveis (chama<strong>do</strong>s perfis no Bluetooth). To<strong>do</strong>s<br />

os serviços disponíveis são exibi<strong>do</strong>s em uma lista e podem ser habilita<strong>do</strong>s ou<br />

desabilita<strong>do</strong>s clican<strong>do</strong> em Ativar ou Desativar. Clique em Editar para abrir uma caixa<br />

de diálogo na qual especificar argumentos adicionais para o serviço seleciona<strong>do</strong><br />

(daemon). Não mude nada, a menos que conheça o serviço. Após concluir a configuração<br />

<strong>do</strong>s daemons, saia desta caixa de diálogo clican<strong>do</strong> em OK.<br />

De volta à caixa de diálogo principal, clique em Opções de Segurança para abrir a caixa<br />

de diálogo de segurança e especificar criptografia, autenticação e configurações de<br />

exploração. Em seguida, saia da caixa de diálogo de segurança para retornar à caixa de<br />

diálogo principal. Após fechar a caixa de diálogo principal com Concluir, o sistema<br />

Bluetooth está pronto para uso.<br />

Da caixa de diálogo principal, você também pode acessar a caixa de diálogo Classes<br />

de Dispositivo e Serviço. Os dispositivos Bluetooth são agrupa<strong>do</strong>s em várias classes<br />

de dispositivo. Nesta caixa de diálogo, escolha o correto para o seu computa<strong>do</strong>r, como<br />

Desktop ou Laptop. A classe de dispositivo não é muito importante, ao contrário da<br />

classe de serviço, também configurada aqui. Às vezes, dispositivos Bluetooth remotos,<br />

como telefones celulares, só aceitam determinadas funções se puderem detectar a classe<br />

de serviço correta configurada no sistema. Isso ocorre com freqüência com os telefones<br />

celulares que esperam uma classe chamada Transferência de Objeto antes de permitir<br />

a transferência <strong>do</strong>s arquivos de ou para o computa<strong>do</strong>r. Você pode escolher várias classes.<br />

Não é útil selecionar todas as classes “por via das dúvidas.” A seleção padrão deve ser<br />

adequada na maioria <strong>do</strong>s casos.<br />

Para usar o Bluetooth para configurar uma rede, ative PAND na caixa de diálogo<br />

Configuração Daemon Avançada e configure o mo<strong>do</strong> <strong>do</strong> daemon com Editar. Para<br />

uma conexão de rede Bluetooth funcional, um pand deve operar no mo<strong>do</strong> Recepção e<br />

o peer no mo<strong>do</strong> Pesquisar. Por padrão, o mo<strong>do</strong> Recepção é predefini<strong>do</strong>. Adapte o<br />

comportamento <strong>do</strong> seu pand local. Adicionalmente, configure a interface bnepX (X<br />

representa o número <strong>do</strong> dispositivo no sistema) no módulo YaST daPlaca de Rede.<br />

Configuran<strong>do</strong> o Bluetooth manualmente<br />

Os arquivos de configuração <strong>do</strong>s componentes individuais <strong>do</strong> sistema Bluez estão<br />

localiza<strong>do</strong>s no diretório /etc/bluetooth. A única exceção é o arquivo /etc/<br />

sysconfig/bluetooth para inicialização <strong>do</strong>s componentes, que é modificada<br />

pelo módulo YaST.<br />

Comunicação sem fio 639


640 Referência<br />

Os arquivos de configuração descritos abaixo só podem ser modifica<strong>do</strong>s pelo root <strong>do</strong><br />

usuário. Atualmente, não há interface de usuário gráfico para mudar todas as<br />

configurações. Os mais importantes podem ser configura<strong>do</strong>s com o módulo YaST <strong>do</strong><br />

Bluetooth, descrito em “Configuran<strong>do</strong> o Bluetooth com YaST” (p 637). Todas as outras<br />

configurações só são <strong>do</strong> interesse de usuários experientes com casos especiais.<br />

Normalmente, as configurações padrão devem ser adequadas.<br />

Um número PIN fornece proteção básica contra conexões indesejadas. Telefones móveis<br />

normalmente consultam o PIN quan<strong>do</strong> estabelecem o primeiro contato (ou quan<strong>do</strong><br />

configuram um dispositivo de contato no telefone). Para que <strong>do</strong>is dispositivos possam<br />

se comunicar, ambos devem se identificar com o mesmo PIN. No computa<strong>do</strong>r, o PIN<br />

se localiza no arquivo /etc/bluetooth/pin.<br />

IMPORTANTE: Segurança das conexões Bluetooth<br />

Apesar <strong>do</strong>s PINs, a transmissão entre <strong>do</strong>is dispositivos pode não ser totalmente<br />

segura. Por padrão, a autenticação e a criptografia das conexões Bluetooth são<br />

desativadas. Ativar a autenticação e a criptografia pode resultar em problemas<br />

de comunicação com alguns dispositivos Bluetooth.<br />

Várias configurações, como os nomes de dispositivo e o mo<strong>do</strong> de segurança podem ser<br />

muda<strong>do</strong>s no arquivo de configuração /etc/bluetooth/hcid.conf. Normalmente,<br />

as configurações padrão devem ser adequadas. O arquivo contém comentários<br />

descreven<strong>do</strong> as opções para as diversas configurações.<br />

Duas seções no arquivo incluí<strong>do</strong> são designadas como opções e dispositivo. O<br />

primeiro contém informações gerais que hcid usa para iniciar. O último contém<br />

configurações para dispositivos Bluetooth individuais e locais.<br />

Uma das configurações mais importantes da seção opções é segurança<br />

automática. Se configura<strong>do</strong> em auto, hcid tenta usar o PIN local para as conexões<br />

recebidas. Se falhar, alterna para nenhum e estabelece a conexão. Para maior segurança,<br />

esta configuração padrão deve ser definida para usuário para verificar se o usuário<br />

é solicita<strong>do</strong> a digitar um PIN toda vez que uma conexão é estabelecida.<br />

Configure o nome sob o qual o computa<strong>do</strong>r é exibi<strong>do</strong> <strong>do</strong> outro la<strong>do</strong> na seção<br />

dispositivo. A classe de dispositivo, como Desktop, Laptop ou Servi<strong>do</strong>r<br />

é definida nessa seção. Autenticação e criptografia também são habilitadas ou<br />

desabilitadas aqui.


34.2.3 Componentes e utilitários <strong>do</strong> sistema<br />

A operabilidade <strong>do</strong> Bluetooth depende da interação de vários serviços. Pelo menos <strong>do</strong>is<br />

daemons em segun<strong>do</strong> plano são necessários: hcid (daemon da interface <strong>do</strong> controla<strong>do</strong>r<br />

de host), que atua como interface para o dispositivo Bluetooth e o controla e sdpd<br />

(daemon de protocolo de discovery de serviços), por meio <strong>do</strong> qual um dispositivo pode<br />

descobrir que serviços o host torna disponível. Se não forem ativa<strong>do</strong>s automaticamente<br />

quan<strong>do</strong> o sistema é inicializa<strong>do</strong>, hcid e sdpd podem ser ativa<strong>do</strong>s com o coman<strong>do</strong><br />

rcbluetooth start. Este coman<strong>do</strong> deve ser executa<strong>do</strong> como root.<br />

Os parágrafos a seguir descrevem resumidamente as ferramentas shell mais importantes<br />

que podem ser usadas para trabalhar com o Bluetooth. Embora vários componentes<br />

gráficos sejam agora disponíveis para controlar o Bluetooth, pode ser váli<strong>do</strong> verificar<br />

esses programas.<br />

Alguns <strong>do</strong>s coman<strong>do</strong>s só podem ser executa<strong>do</strong>s como root. Entre eles o coman<strong>do</strong><br />

l2ping device_address para testar a conexão a um dispositivo remoto.<br />

hcitool<br />

hcitool pode ser usa<strong>do</strong> para determinar se dispositivos locais e remotos são detecta<strong>do</strong>s.<br />

O coman<strong>do</strong> hcitool dev lista os dispositivos locais. A saída gera uma linha na<br />

forma interface_name device_address para to<strong>do</strong> dispositivo local detecta<strong>do</strong>.<br />

Procure dispositivos remotos com o coman<strong>do</strong> hcitool inq. Três valores retornam<br />

para to<strong>do</strong> dispositivo detecta<strong>do</strong>: o endereço <strong>do</strong> dispositivo, a diferença de relógio e a<br />

classe de dispositivo. O endereço <strong>do</strong> dispositivo é importante, porque outros coman<strong>do</strong>s<br />

o usam para identificar o dispositivo de destino. A diferença de relógio serve<br />

principalmente para um propósito técnico. A classe especifica o tipo de dispositivo e<br />

o tipo de serviço como um valor hexadecimal.<br />

O coman<strong>do</strong> hcitool name device-address pode ser usa<strong>do</strong> para determinar<br />

o nome <strong>do</strong> dispositivo de um dispositivo remoto. No caso de um computa<strong>do</strong>r remoto,<br />

a classe e o nome <strong>do</strong> dispositivo correspondem às informações em seu /etc/<br />

bluetooth/hcid.conf. Endereços de dispositivo local geram uma saída de erro.<br />

Comunicação sem fio 641


hciconfig<br />

O coman<strong>do</strong> /usr/sbin/hciconfig envia mais informações sobre o dispositivo<br />

local. Se hciconfig for executa<strong>do</strong> sem quaisquer argumentos, a saída mostra<br />

informações <strong>do</strong> dispositivo, como o nome <strong>do</strong> dispositivo (hciX), o endereço <strong>do</strong><br />

dispositivo físico (um número de 12 dígitos no formato 00:12:34:56:78) e<br />

informações sobre a quantidade de da<strong>do</strong>s transmitida.<br />

hciconfig hci0 name exibe o nome que é retorna<strong>do</strong> pelo seu computa<strong>do</strong>r quan<strong>do</strong><br />

recebe solicitações de dispositivos remotos. Assim como consultar as configurações<br />

<strong>do</strong> dispositivo local, hciconfig pode ser usa<strong>do</strong> para modificar essas configurações.<br />

Por exemplo, hciconfig hci0 name TEST configura o nome em TEST.<br />

sdptool<br />

642 Referência<br />

O programa sdptool pode ser usa<strong>do</strong> para verificar que serviços se tornam disponíveis<br />

por um dispositivo específico. O coman<strong>do</strong> sdptool browse device_address<br />

retorna to<strong>do</strong>s os serviços de um dispositivo. Use o coman<strong>do</strong> sdptool search<br />

service_code para procurar um serviço específico. Este coman<strong>do</strong> digitaliza to<strong>do</strong>s<br />

os dispositivos acessíveis para o serviço solicita<strong>do</strong>. Se um <strong>do</strong>s dispositivos <strong>of</strong>erecer o<br />

serviço, o programa imprime o nome completo <strong>do</strong> serviço retorna<strong>do</strong> pelo dispositivo<br />

com uma breve descrição. Veja uma lista de to<strong>do</strong>s os códigos de serviço possíveis<br />

digitan<strong>do</strong> sdptool sem parâmetros.<br />

34.2.4 Aplicativos gráficos<br />

Em Konqueror, digite o URL bluetooth:/ para listar dispositivos Bluetooth locais<br />

e remotos. Clique duas vezes em um dispositivo para obter uma visão geral <strong>do</strong>s serviços<br />

forneci<strong>do</strong>s pelo dispositivo. Se você mover por um <strong>do</strong>s serviços especifica<strong>do</strong>s com o<br />

mouse, a barra de status <strong>do</strong> browser mostra que perfil é usa<strong>do</strong> para o serviço. Se você<br />

clicar em um serviço, uma caixa de diálogo é aberta, perguntan<strong>do</strong> o que fazer: salvar,<br />

usar o serviço (deve ser inicia<strong>do</strong> um aplicativo para fazer isto) ou cancelar a ação.<br />

Marque uma caixa de seleção se não quiser que a caixa de diálogo seja exibida<br />

novamente mas quer que a ação selecionada seja realizada. Para alguns serviços, o<br />

suporte ainda não está disponível. Para outros, pode ser necessário instalar pacotes<br />

adicionais.


34.2.5 Exemplos<br />

Esta seção <strong>of</strong>erece <strong>do</strong>is exemplos típicos de possíveis cenários Bluetooth. O primeiro<br />

mostra como uma conexão de rede entre <strong>do</strong>is hosts pode ser estabelecida através <strong>do</strong><br />

Bluetooth. O segun<strong>do</strong> apresenta uma conexão entre um computa<strong>do</strong>r e um telefone<br />

móvel.<br />

Conexão de rede entre <strong>do</strong>is hosts<br />

No primeiro exemplo, é estabelecida uma conexão de rede entre os hosts H1 e H2. Estes<br />

<strong>do</strong>is hosts têm endereços <strong>do</strong> dispositivo Bluetooth baddr1 e baddr2 (determina<strong>do</strong> nos<br />

<strong>do</strong>is hosts com o coman<strong>do</strong> hcitool dev como descrito acima). Os hosts devem ser<br />

identifica<strong>do</strong>s com os endereços IP 192.168.1.3 (H1) e 192.168.1.4 (H2).<br />

A conexão Bluetooth é estabelecida com a ajuda de pand (daemon de personal area<br />

network). Os seguintes coman<strong>do</strong>s devem ser executa<strong>do</strong>s pelo usuário root. A descrição<br />

enfoca as ações específicas <strong>do</strong> Bluetooth e não fornece uma explicação detalhada <strong>do</strong><br />

coman<strong>do</strong> de rede ip.<br />

Digite pand -s para iniciar pand no host H1. Em seguida, uma conexão pode ser<br />

estabelecida no host H2 com pand -c baddr1. Se você digitar ip link show<br />

em um <strong>do</strong>s hosts para listar as interfaces de rede disponíveis, a saída deve conter uma<br />

entrada como a seguinte:<br />

bnep0: mtu 1500 qdisc noop qlen 1000<br />

link/ether 00:12:34:56:89:90 brd ff:ff:ff:ff:ff:ff<br />

Em vez de 00:12:34:56:89:90, a saída deve conter o endereço <strong>do</strong> dispositivo<br />

local baddr1 ou baddr2. Agora é necessário atribuir e ativar um endereço IP a esta<br />

interface. Em H1, isso pode ser feito com os <strong>do</strong>is coman<strong>do</strong>s seguintes:<br />

ip addr add 192.168.1.3/24 dev bnep0<br />

ip link set bnep0 up<br />

Em H2:<br />

ip addr add 192.168.1.4/24 dev bnep0<br />

ip link set bnep0 up<br />

Agora H1 pode ser acessa<strong>do</strong> de H2 com o IP 192.168.1.3. Use o coman<strong>do</strong> ssh<br />

192.168.1.4 para acessar H2 de H1, supon<strong>do</strong> que H2 executa um sshd, que é ativa<strong>do</strong><br />

Comunicação sem fio 643


644 Referência<br />

por padrão no <strong>SUSE</strong> Linux. O coman<strong>do</strong> ssh 192.168.1.4 também pode ser<br />

executa<strong>do</strong> como um usuário normal.<br />

Transferência de da<strong>do</strong>s de um telefone móvel para<br />

o computa<strong>do</strong>r<br />

O segun<strong>do</strong> exemplo mostra como transferir uma fotografia criada em um telefone móvel<br />

com uma câmara digital interna para um computa<strong>do</strong>r (sem incorrer em custos adicionais<br />

para a transmissão de uma mensagem multimídia). Embora a estrutura <strong>do</strong> menu possa<br />

ser diferente em vários telefones móveis, o procedimento geralmente é bastante<br />

semelhante. Consulte o manual <strong>do</strong> seu telefone, se necessário. Este exemplo descreve<br />

a transferência de uma fotografia de um telefone móvel Sony Ericsson para um laptop.<br />

O serviço Obex-Push deve estar disponível no computa<strong>do</strong>r e o computa<strong>do</strong>r deve conceder<br />

acesso ao telefone móvel. Na primeira etapa, o serviço se torna disponível no laptop.<br />

Você precisa de um daemon de serviço especial no laptop para obter os da<strong>do</strong>s <strong>do</strong><br />

telefone. Se o pacote kbluetooth estiver instala<strong>do</strong>, você não precisa iniciar um<br />

daemon especial. Se o kbluetooth não estiver instala<strong>do</strong>, use o daemon opd <strong>do</strong> pacote<br />

bluez-utils. Inicie o daemon com o seguinte coman<strong>do</strong>:<br />

opd --mode OBEX --channel 10 --daemonize --path /tmp --sdp<br />

São usa<strong>do</strong>s <strong>do</strong>is importantes parâmetros: --sdp registra o serviço com sdpd e --path<br />

/tmp instrui o programa onde salvar os da<strong>do</strong>s recebi<strong>do</strong>s, neste caso em /tmp. Você<br />

também pode especificar qualquer outro diretório ao qual tenha acesso de gravação.<br />

Se você usar o kbluetooth, você será solicita<strong>do</strong> por um diretório onde a fotografia é<br />

recebida no laptop.<br />

Agora o telefone móvel deve reconhecer o computa<strong>do</strong>r. Para isso, abra o menu Conectar<br />

no telefone e selecione Bluetooth. Se necessário, clique em Ativar antes de selecionar<br />

Meus dispositivos. Selecione Novo dispositivo e deixe o seu telefone procurar o laptop.<br />

Se um dispositivo for detecta<strong>do</strong>, o nome aparecerá na tela. Selecione o dispositivo<br />

associa<strong>do</strong> ao laptop. Se encontrar uma consulta de PIN, digite o PIN especifica<strong>do</strong> em<br />

/etc/bluetooth/pin. Agora o seu telefone reconhece o laptop e é capaz de trocar<br />

da<strong>do</strong>s com o laptop. Saia <strong>do</strong> menu atual e vá para o menu da imagem. Selecione a<br />

imagem a transferir e pressione Mais. No menu seguinte, pressione Enviar para<br />

selecionar um mo<strong>do</strong> de transmissão. Selecione Via Bluetooth. O laptop deve ser lista<strong>do</strong><br />

como dispositivo de destino. Selecione o laptop para iniciar a transmissão. A imagem<br />

é então salva no diretório especifica<strong>do</strong> com o coman<strong>do</strong> opd. Faixas de áudio podem<br />

ser transferidas para o laptop da mesma maneira.


34.2.6 Solução de problemas<br />

Se tiver dificuldades em estabelecer uma conexão, prossiga de acor<strong>do</strong> com a seguinte<br />

lista. Lembre-se de que o erro pode estar de um la<strong>do</strong> da conexão ou mesmo de ambos.<br />

Se possível, reconstrua o problema com outro dispositivo Bluetooth para verificar se<br />

o dispositivo não está com defeito.<br />

O dispositivo local está lista<strong>do</strong> na saída <strong>do</strong> hcitool dev?<br />

Se o dispositivo local não estiver lista<strong>do</strong> nesta saída, hcid não é inicia<strong>do</strong> ou o<br />

dispositivo não é reconheci<strong>do</strong> como um dispositivo Bluetooth. Isto pode ter várias<br />

causas. O dispositivo pode estar com defeito ou o driver correto pode estar faltan<strong>do</strong>.<br />

Laptops com Bluetooth interno em geral têm um switch de ativar e desativar para<br />

dispositivos sem fio, como WLAN e Bluetooth. Consulte o manual <strong>do</strong> laptop para<br />

ver se o seu dispositivo tem este switch. Reinicie o sistema Bluetooth com o<br />

coman<strong>do</strong> rcbluetooth restart e verifique se há erros reporta<strong>do</strong>s em /var/<br />

log/messages.<br />

O seu adapta<strong>do</strong>r Bluetooth precisa de um arquivo firmware?<br />

Nesse caso, instale bluez-bluefw e reinicie o sistema Bluetooth com<br />

rcbluetooth restart.<br />

A saída de hcitool inq retorna outros dispositivos?<br />

Teste este coman<strong>do</strong> mais de uma vez. A conexão pode ter interferências, porque a<br />

banda da freqüência <strong>do</strong> Bluetooth já é usada por outros dispositivos.<br />

Os PINs correspondem?<br />

Verifique se o número PIN <strong>do</strong> computa<strong>do</strong>r (em /etc/bluetooth/pin)<br />

corresponde ao <strong>do</strong> dispositivo de destino.<br />

O dispositivo remoto pode “ver” o seu computa<strong>do</strong>r?<br />

Tente estabelecer a conexão <strong>do</strong> dispositivo remoto. Verifique se este dispositivo<br />

vê o computa<strong>do</strong>r.<br />

A conexão de rede pode ser estabelecida (veja “Conexão de rede entre <strong>do</strong>is hosts”<br />

(p 643))?<br />

A configuração descrita em “Conexão de rede entre <strong>do</strong>is hosts” (p 643) pode não<br />

funcionar por várias razões. Por exemplo, um <strong>do</strong>s <strong>do</strong>is computa<strong>do</strong>res pode não ter<br />

suporte para o protocolo ssh. Tente ping 192.168.1.3 ou ping<br />

192.168.1.4. Se funcionar, verifique se sshd está ativo. Outro problema pode<br />

ser que um <strong>do</strong>s <strong>do</strong>is dispositivo já possui configurações de rede que conflitam com<br />

Comunicação sem fio 645


646 Referência<br />

o endereço 192.168.1.X <strong>do</strong> exemplo. Se for o caso, tente vários endereços,<br />

como 10.123.1.2 e 10.123.1.3.<br />

O laptop parece um dispositivo de destino (consulte “Transferência de da<strong>do</strong>s de um<br />

telefone móvel para o computa<strong>do</strong>r” (p 644))? O dispositivo móvel reconhece o serviço<br />

Obex-Push no laptop?<br />

Em Meus dispositivos, selecione o respectivo dispositivo e veja a lista de Serviços.<br />

Se Obex-Push não for exibi<strong>do</strong> (mesmo depois da atualização da lista), o problema<br />

é causa<strong>do</strong> por opd no laptop. O opd está ativo? Você tem acesso de gravação ao<br />

diretório especifica<strong>do</strong>?<br />

O cenário descrito em “Transferência de da<strong>do</strong>s de um telefone móvel para o computa<strong>do</strong>r”<br />

(p 644) funciona na direção contrária?<br />

Se o pacote obexftp estiver instala<strong>do</strong>, o coman<strong>do</strong> obexftp -b<br />

device_address -B 10 -p image pode ser usa<strong>do</strong> em alguns dispositivos.<br />

Vários modelos Siemens e Sony Ericsson foram testa<strong>do</strong>s e demonstraram ser<br />

funcionais. Consulte a <strong>do</strong>cumentação em /usr/share/<strong>do</strong>c/packages/<br />

obexftp.<br />

Se você instalou o pacote bluez-hcidump, poderá usar hcidump -X para verificar<br />

o que é envia<strong>do</strong> entre os dispositivos. Algumas vezes as ajudas da saída fornecem uma<br />

sugestão de onde o problema está, mas esteja ciente de que estará apenas parcialmente<br />

em “texto legível”.<br />

34.2.7 Mais informações<br />

Alguma <strong>do</strong>cumentação adicional (recente) pode ser encontrada em /usr/share/<br />

<strong>do</strong>c/packages/bluez-utils/ (versão em alemão e inglês disponível).<br />

Uma ampla visão geral de várias instruções para o uso e a configuração <strong>do</strong> Bluetooth<br />

está disponível em http://www.holtmann.org/linux/bluetooth/. Outras<br />

informações e instruções úteis:<br />

• <strong>Documentação</strong> HOWTO <strong>of</strong>icial sobre a pilha de protocolos Bluetooth integrada<br />

ao kernel: http://bluez.sourceforge.net/howto/index.html<br />

• Conexão para PalmOS PDA: http://www.cs.ucl.ac.uk/staff/s<br />

.zachariadis/btpalmlinux.html


34.3 Transmissão de da<strong>do</strong>s<br />

infravermelhos<br />

A IrDA (Infrared Data Association - Associação de Da<strong>do</strong>s Infravermelhos) é um padrão<br />

da indústria para comunicação sem fio com luz infravermelha. Muitos laptops vendi<strong>do</strong>s<br />

atualmente são equipa<strong>do</strong>s com um transceptor compatível com IrDA que permite a<br />

comunicação com outros dispositivos, como impressoras, modems, LANs ou outros<br />

laptops. A velocidade de transferência varia de 2.400 bps a 4 Mbps.<br />

Há <strong>do</strong>is mo<strong>do</strong>s de operação IrDA. O mo<strong>do</strong> padrão, SIR, acessa a porta infravermelha<br />

por meio de uma interface serial. Esse mo<strong>do</strong> funciona em quase to<strong>do</strong>s os sistemas,<br />

sen<strong>do</strong> suficiente para a maioria <strong>do</strong>s requisitos. O mo<strong>do</strong> mais rápi<strong>do</strong>, FIR, requer um<br />

driver especial para o chip <strong>do</strong> IrDA. Nem to<strong>do</strong>s os tipos de chip são suporta<strong>do</strong>s no<br />

mo<strong>do</strong> FIR, devi<strong>do</strong> à ausência de drivers apropria<strong>do</strong>s. Defina o mo<strong>do</strong> de IrDA deseja<strong>do</strong><br />

no BIOS de seu computa<strong>do</strong>r. O BIOS também mostra que interface serial é usada no<br />

mo<strong>do</strong> SIR.<br />

É possível encontrar informações sobre o IrDA no guia <strong>do</strong> IrDA da Werner Heuser,<br />

em http://tuxmobil.org/Infrared-HOWTO/Infrared-HOWTO.html.<br />

Além disso, consulte o site da Web <strong>do</strong> Projeto IrDA <strong>do</strong> Linux, em http://irda<br />

.sourceforge.net/.<br />

34.3.1 S<strong>of</strong>tware<br />

Os módulos de kernel necessários são incluí<strong>do</strong>s no pacote <strong>do</strong> kernel. O pacote irda<br />

fornece os aplicativos ajudantes necessários para suportar a interface infravermelha. A<br />

<strong>do</strong>cumentação pode ser encontrada em /usr/share/<strong>do</strong>c/packages/irda/<br />

README, depois da instalação <strong>do</strong> pacote.<br />

34.3.2 Configuração<br />

O serviço <strong>do</strong> sistema IrDA não é inicia<strong>do</strong> automaticamente quan<strong>do</strong> o sistema é inicia<strong>do</strong>.<br />

Use o módulo IrDA <strong>do</strong> YaST para a ativação. Só é possível modificar uma configuração<br />

neste módulo: a interface serial <strong>do</strong> dispositivo infravermelho. A janela de teste mostra<br />

duas saídas. Uma é a saída de irdadump, que registra to<strong>do</strong>s os pacotes de IrDA<br />

envia<strong>do</strong>s e recebi<strong>do</strong>s. Essa saída deve conter o nome <strong>do</strong> computa<strong>do</strong>r e os nomes de<br />

Comunicação sem fio 647


648 Referência<br />

to<strong>do</strong>s os dispositivos infravermelhos da faixa de transmissão. Há um exemplo dessas<br />

mensagens na Seção 34.3.4, “Solução de problemas” (p 649). To<strong>do</strong>s os dispositivos<br />

para os quais existe uma conexão IrDA são relaciona<strong>do</strong>s na parte inferior da janela.<br />

O IrDA consome uma quantidade considerável de energia da bateria, pois pacotes de<br />

descoberta são envia<strong>do</strong>s com um intervalo de poucos segun<strong>do</strong>s para detectar outros<br />

dispositivos periféricos. Portanto, caso você dependa da energia da bateria, o IrDA só<br />

deverá ser inicia<strong>do</strong> quan<strong>do</strong> necessário. Digite o coman<strong>do</strong> rcirda start para ativálo<br />

ou rcirda stop para encerrá-lo. To<strong>do</strong>s os módulos de kernel necessários serão<br />

carrega<strong>do</strong>s automaticamente quan<strong>do</strong> a interface for ativada.<br />

A configuração manual pode ser executada no arquivo /etc/sysconfig/irda.<br />

O arquivo contém apenas uma variável, IRDA_PORT, que determina a interface a ser<br />

usada no mo<strong>do</strong> SIR.<br />

34.3.3 Uso<br />

Os da<strong>do</strong>s podem ser envia<strong>do</strong>s para o arquivo de dispositivo /dev/irlpt0 para<br />

impressão. O arquivo <strong>do</strong> dispositivo /dev/irlpt0 age como a interface cabeada<br />

/dev/lp0 normal, sen<strong>do</strong> que os da<strong>do</strong>s de impressão são envia<strong>do</strong>s em mo<strong>do</strong> sem fio<br />

com a luz infravermelha. Para imprimir, verifique se a impressora está dentro da faixa<br />

visual da interface infravermelha <strong>do</strong> computa<strong>do</strong>r e se o suporte a infravermelho foi<br />

inicia<strong>do</strong>.<br />

Uma impressora operada pela interface infravermelha pode ser configurada com o<br />

módulo Impressora <strong>do</strong> YaST. Como ela não é detectada automaticamente, configurea<br />

manualmente clican<strong>do</strong> em Outro (não detecta<strong>do</strong>). Na caixa de diálogo seguinte,<br />

selecione Impressora IrDA. Normalmente, a conexão correta é irlpt0. Os detalhes<br />

sobre as impressoras em operação no Linux estão disponíveis no Capítulo 11, Operação<br />

da impressora (p 237).<br />

A comunicação com outros hosts e com telefones celulares ou dispositivos semelhantes<br />

é conduzida por meio <strong>do</strong> arquivo de dispositivo /dev/ircomm0. Os telefones celulares<br />

Siemens S25 e Nokia 6210, por exemplo, podem discar e se conectar com a Internet<br />

com o aplicativo wvdial, usan<strong>do</strong> a interface infravermelha. A sincronização de da<strong>do</strong>s<br />

com um Palm Pilot também é possível, desde que a configuração <strong>do</strong> dispositivo <strong>do</strong><br />

aplicativo correspondente seja definida como /dev/ircomm0.


Se desejar, você poderá usar apenas dispositivos que suportem os protocolos da<br />

impressora ou IrCOMM. Dispositivos que suportam o protocolo IROBEX, como 3Com<br />

Palm Pilot, podem ser acessa<strong>do</strong>s com aplicativos especiais, como irobexpalm e<br />

irobexreceive. Consulte IR-HOWTO (http://tldp.org/HOWTO/<br />

Infrared-HOWTO/) para obter mais informações. Os protocolos suporta<strong>do</strong>s pelo<br />

dispositivo são relaciona<strong>do</strong>s entre colchetes depois <strong>do</strong> nome <strong>do</strong> dispositivo, na saída<br />

de irdadump. O suporte ao protocolo rLAN ainda está “em andamento”.<br />

34.3.4 Solução de problemas<br />

Se os dispositivos conecta<strong>do</strong>s à porta infravermelha não responderem, use o coman<strong>do</strong><br />

irdadump (como root) para verificar se o outro dispositivo é reconheci<strong>do</strong> pelo<br />

computa<strong>do</strong>r. Algo semelhante ao Exemplo 34.1, “Saída de irdadump” (p 649) será<br />

exibi<strong>do</strong> regularmente, quan<strong>do</strong> uma impressora Canon BJC-80 estiver dentro de uma<br />

faixa visível <strong>do</strong> computa<strong>do</strong>r:<br />

Exemplo 34.1 Saída de irdadump<br />

21:41:38.435239 xid:cmd 5b62bed5 > ffffffff S=6 s=0 (14)<br />

21:41:38.525167 xid:cmd 5b62bed5 > ffffffff S=6 s=1 (14)<br />

21:41:38.615159 xid:cmd 5b62bed5 > ffffffff S=6 s=2 (14)<br />

21:41:38.705178 xid:cmd 5b62bed5 > ffffffff S=6 s=3 (14)<br />

21:41:38.795198 xid:cmd 5b62bed5 > ffffffff S=6 s=4 (14)<br />

21:41:38.885163 xid:cmd 5b62bed5 > ffffffff S=6 s=5 (14)<br />

21:41:38.965133 xid:rsp 5b62bed5 < 6cac38dc S=6 s=5 BJC-80<br />

hint=8804 [IrCOMM de impressora] (23)<br />

21:41:38.975176 xid:cmd 5b62bed5 > ffffffff S=6 s=* earth<br />

hint=0500 [ Computa<strong>do</strong>r PnP ] (21)<br />

Verifique a configuração da interface se não houver saída ou se o outro dispositivo não<br />

responder. Verifique se a interface correta está sen<strong>do</strong> usada. Algumas vezes, a interface<br />

infravermelha está localizada em /dev/ttyS2 ou em /dev/ttyS3, e interrupções<br />

diferentes de IRQ 3 são usadas ocasionalmente. Essas configurações podem ser<br />

verificadas e modificadas no menu de configuração <strong>do</strong> BIOS de quase to<strong>do</strong>s os laptops.<br />

Uma simples câmera de vídeo também pode ajudar a determinar se o LED infravermelho<br />

está acenden<strong>do</strong>. A maioria das câmeras de vídeo pode ver a luz infravermelha, que<br />

nossos olhos não vêem.<br />

Comunicação sem fio 649


Índice<br />

Remissivo<br />

A<br />

ACLs, 147–159<br />

acesso, 150, 153<br />

algoritmo de verificação, 158<br />

bits de permissão, 152<br />

definições, 150<br />

efeitos, 155<br />

estrutura, 150<br />

gerencian<strong>do</strong>, 150<br />

máscaras, 154<br />

padrão, 150, 155<br />

suporte, 158<br />

ajuda<br />

páginas de informações, 229<br />

X, 288<br />

Apache, 463–504<br />

configuran<strong>do</strong>, 465<br />

arquivos, 466<br />

assistente de HTTP <strong>do</strong> YaST, 473<br />

Configuração de Servi<strong>do</strong>r HTTP <strong>do</strong><br />

YaST, 478<br />

host virtual, 469<br />

manualmente, 465–473<br />

YaST, 473–480<br />

inicialização rápida, 463<br />

inician<strong>do</strong>, 480<br />

instalação, 464<br />

mais informações, 502<br />

módulos, 482–490<br />

crian<strong>do</strong> módulos, 489<br />

disponíveis, 484<br />

instalan<strong>do</strong>, 483<br />

módulos de multiprocessamento, 486<br />

módulos externos, 488<br />

paran<strong>do</strong>, 480<br />

scripts CGI, 490<br />

segurança, 499<br />

solução de problemas, 501<br />

Squid, 554<br />

SSL, 493–499<br />

configurar Apache com SSL, 498<br />

crian<strong>do</strong> um certifica<strong>do</strong> SSL, 493<br />

aplicativos<br />

rede<br />

remota, 299<br />

remotos<br />

FreeNX, 299<br />

arquivos<br />

criptografan<strong>do</strong>, 123<br />

localização, 226<br />

sincronizan<strong>do</strong>, 505–526<br />

CVS, 506, 515–518<br />

iFolder, 508<br />

mailsync, 507, 523–526<br />

rsync, 507<br />

Subversion, 507<br />

Unison, 506, 513–515<br />

arquivos básicos, 227<br />

arquivos de configuração, 366<br />

.bashrc, 224, 227<br />

.emacs, 229<br />

.mailsync, 523<br />

.pr<strong>of</strong>ile, 224<br />

.xsession, 119<br />

acpi, 601<br />

crontab, 224<br />

csh.cshrc, 233<br />

dhclient.conf, 426<br />

dhcp, 366<br />

dhcpd.conf, 426<br />

economia de energia, 601<br />

exportações, 420<br />

exports, 419<br />

group, 70


grub.conf, 210<br />

gsha<strong>do</strong>w, 76<br />

host.conf, 369<br />

HOSTNAME, 373<br />

hosts, 348, 368<br />

idioma, 232–233<br />

ifcfg-*, 366<br />

inittab, 189, 192, 230<br />

inputrc, 231<br />

irda, 648<br />

kernel, 187<br />

logrotate.conf, 225<br />

menu.lst, 204<br />

modprobe.conf, 72<br />

modules.conf, 72<br />

named.conf, 391–401, 545<br />

nscd.conf, 372<br />

nsswitch.conf, 370, 453<br />

pam_unix2.conf, 452<br />

passwd, 70<br />

perfil, 233<br />

permissões, 144<br />

powersave.conf, 82<br />

pr<strong>of</strong>ile, 223, 227<br />

rede, 366<br />

redes, 369<br />

resolv.conf, 228, 367, 391, 544<br />

rotas, 366<br />

samba, 531<br />

sem fio, 366<br />

serviços, 531, 553<br />

slapd.conf, 443<br />

smb.conf, 531, 538<br />

smppd.conf, 375<br />

squid.conf, 544, 546, 549, 552, 555,<br />

557<br />

squidguard.conf, 557<br />

sshd_config, 120<br />

suseconfig, 200<br />

sysconfig, 198–200<br />

termcap, 231<br />

XF86Config, 86<br />

xorg.conf, 86, 283<br />

Dispositivo, 287<br />

Monitor, 288<br />

Tela, 285<br />

arquivos de registro, 225<br />

boot.msg, 601<br />

mensagens, 114, 391<br />

Squid, 544, 548, 554<br />

Unison, 515<br />

XFree86, 297<br />

atualizan<strong>do</strong>, 69–72<br />

mixers de som, 84<br />

passwd e group, 70<br />

problemas, 70<br />

YaST, 70<br />

autenticação<br />

Kerberos, 85<br />

PAM, 313–321<br />

B<br />

Bancos de da<strong>do</strong>s<br />

NSS, 371<br />

Bash<br />

.bashrc, 224<br />

.pr<strong>of</strong>ile, 224<br />

pr<strong>of</strong>ile, 223<br />

BIND, 390–401<br />

Bluetooth, 569, 635<br />

hciconfig, 642<br />

hcitool, 641<br />

opd, 644<br />

pand, 643<br />

rede, 639<br />

sdptool, 642<br />

C<br />

chown, 76


CJK, 231<br />

codificação<br />

ISO-8859-1, 233<br />

UTF-8, 75<br />

coman<strong>do</strong>s<br />

chown, 76<br />

fontes-configuração, 289<br />

free, 228<br />

getfacl, 154<br />

grub, 202<br />

head, 76<br />

ldapadd, 449<br />

ldapdelete, 452<br />

ldapmodify, 451<br />

ldapsearch, 451<br />

lp, 247<br />

nice, 76<br />

rpm, 91<br />

rpmbuild, 91<br />

scp, 116<br />

setfacl, 154<br />

sftp, 117<br />

slptool, 379<br />

smbpasswd, 537<br />

sort, 76<br />

ssh, 116<br />

ssh-agent, 119<br />

ssh-keygen, 119<br />

tail, 76<br />

computação remota<br />

FreeNX, 299–311<br />

conexões sem fio<br />

Bluetooth, 635<br />

configuran<strong>do</strong>, 198<br />

DNS, 351, 381<br />

DSL, 357<br />

GRUB, 202, 210<br />

imprimin<strong>do</strong>, 241–244<br />

IPv6, 346<br />

IrDA, 647<br />

ISDN, 354<br />

modem a cabo, 357<br />

modems, 352<br />

PAM, 86<br />

redes, 349<br />

manualmente, 362–374<br />

roteamento, 351, 366<br />

Samba, 529–535<br />

clientes, 535<br />

Squid, 546<br />

SSH, 115<br />

T-DSL, 359<br />

configuration files<br />

smpppd-c.conf, 376<br />

consoles<br />

alternan<strong>do</strong>, 230<br />

designan<strong>do</strong>, 230<br />

gráficos, 219<br />

cpuspeed, 610<br />

criptografan<strong>do</strong>, 121–124<br />

arquivos, 123–124<br />

arquivos com o vi, 124<br />

crian<strong>do</strong> partições, 122<br />

mídia removível, 124<br />

partições, 122–123<br />

YaST, com, 122<br />

cron, 224<br />

CVS, 506, 515–518<br />

câmeras digitais, 571<br />

D<br />

deltarpm, 95<br />

desinstalan<strong>do</strong><br />

GRUB, 217<br />

Linux, 217<br />

DHCP, 421–430<br />

configuran<strong>do</strong> com o YaST, 422<br />

designação de endereço estático, 428<br />

dhcpd, 426–428


pacotes, 426<br />

servi<strong>do</strong>r, 426–428<br />

discos<br />

boot, 217<br />

DNS, 347<br />

BIND, 390–401<br />

configuran<strong>do</strong>, 351, 381<br />

<strong>do</strong>mínios, 367<br />

encaminhamento, 391<br />

inician<strong>do</strong>, 391<br />

mail exchanger, 348<br />

multicast, 75<br />

NIC, 348<br />

opções, 393<br />

pesquisa reversa, 400<br />

registro, 395<br />

segurança e, 143<br />

servi<strong>do</strong>res de nomes, 367<br />

solução de problemas, 391<br />

Squid e, 545<br />

terminologia, 381<br />

top level <strong>do</strong>main, 347<br />

zonas<br />

arquivos, 397<br />

<strong>do</strong>mínios<br />

.local, 75<br />

DOS<br />

compartilhan<strong>do</strong> arquivos, 527<br />

E<br />

e-mail<br />

sincronizan<strong>do</strong>, 507<br />

mailsync, 523–526<br />

sincronização, 568<br />

editores<br />

Emacs, 229–230<br />

Emacs, 229–230<br />

.emacs, 229<br />

default.el, 229<br />

endereços IP, 335<br />

classes, 335<br />

designação dinâmica, 421<br />

IPv6, 338<br />

configuran<strong>do</strong>, 346<br />

mascaran<strong>do</strong>, 107<br />

priva<strong>do</strong>s, 337<br />

Evolution, 572<br />

Extensão de tecla<strong>do</strong> X (Ver tecla<strong>do</strong>, XKB)<br />

F<br />

filtros de pacote (Ver firewalls)<br />

Firefox<br />

coman<strong>do</strong> aberto de URL, 91<br />

firewalls, 105<br />

filtros de pacote, 105<br />

filtros de pacotes, 109<br />

Squid e, 552<br />

SuSEfirewall2, 105, 109<br />

Firewire (IEEE1394)<br />

discos rígi<strong>do</strong>s, 571<br />

folhas de estilo TEI XSL<br />

nova localização, 89<br />

fonte<br />

compilan<strong>do</strong>, 99<br />

fontes, 289<br />

central X11, 290<br />

indexadas <strong>do</strong> CID, 294<br />

TrueType, 289<br />

Xft, 291<br />

FreeNX, 299–311<br />

G<br />

Gerencia<strong>do</strong>r de Volumes Lógicos (Ver<br />

LVM)<br />

gerenciamento de energia, 563, 597–618<br />

ACPI, 597, 600–608, 613<br />

APM, 597, 599–600, 613<br />

cpufrequency, 610


cpuspeed, 610<br />

hibernação, 598<br />

monitor de bateria, 598<br />

nível de carga, 614<br />

powersave, 610<br />

standby, 598<br />

suspender, 598<br />

YaST, 618<br />

gráficos<br />

3D, 295–297<br />

3Ddiag, 297<br />

diagnóstico, 296<br />

drivers, 295<br />

SaX, 296<br />

solucionan<strong>do</strong> problemas, 297<br />

suporte para, 295<br />

suporte à instalação para, 297<br />

testan<strong>do</strong>, 296<br />

GLIDE, 295–297<br />

OpenGL, 295–297<br />

drivers, 295<br />

testan<strong>do</strong>, 296<br />

placas<br />

3D, 295–297<br />

GRUB, 201–221<br />

coman<strong>do</strong>s, 202–212<br />

desinstalan<strong>do</strong>, 217<br />

device.map, 203, 209<br />

editor de menu, 208<br />

Erro de geometria <strong>do</strong> GRUB, 220<br />

grub.conf, 203, 210<br />

inicializan<strong>do</strong>, 202<br />

JFS e GRUB, 220<br />

limitações, 202<br />

menu de boot, 204<br />

menu.lst, 203–204<br />

nomes de dispositivos, 205<br />

nomes de partições, 205<br />

Registro Mestre de Inicialização<br />

(MBR), 201<br />

senha de boot, 210<br />

setores de boot, 202<br />

solução de problemas, 219<br />

H<br />

hardware<br />

ISDN, 354<br />

hciconfig, 642<br />

hcitool, 641<br />

head, 76<br />

help<br />

páginas de manual, 229<br />

I<br />

I18N, 231<br />

iFolder, 508<br />

impressão, 237<br />

xpp, 247<br />

imprimin<strong>do</strong>, 241–244<br />

aplicativos, de, 247<br />

arquivo PPD, 242<br />

conexão, 242<br />

configuran<strong>do</strong> com o YaST, 241<br />

CUPS, 247<br />

driver Ghostscript, 242<br />

drivers, 242<br />

filas, 242<br />

impressoras GDI, 253<br />

IrDA, 648<br />

kprinter, 247<br />

linha de coman<strong>do</strong>, 247<br />

porta, 242<br />

página de teste, 242<br />

rede, 255<br />

Samba, 528<br />

solução de problemas<br />

rede, 255<br />

inicializan<strong>do</strong><br />

configuran<strong>do</strong>


YaST, 212–217<br />

GRUB, 201–221<br />

gráfico, 219<br />

initramfs, 187<br />

initrd, 187<br />

inicialização, 185<br />

setores de boot, 201–202<br />

init, 189<br />

adicionan<strong>do</strong> scripts, 194<br />

inittab, 189<br />

scripts, 192–196<br />

instalan<strong>do</strong><br />

GRUB, 202<br />

manualmente, 85<br />

pacotes, 92<br />

internacionalização, 231<br />

Internet<br />

cinternet, 375<br />

discagem, 374–376<br />

DSL, 357<br />

ISDN, 354<br />

KInternet, 375<br />

qinternet, 375<br />

smpppd, 374–376<br />

TDSL, 359<br />

IrDA, 570, 647–649<br />

configuran<strong>do</strong>, 647<br />

encerran<strong>do</strong>, 647<br />

inician<strong>do</strong>, 647<br />

solução de problemas, 649<br />

K<br />

kernels<br />

caches, 228<br />

limites, 279<br />

módulos<br />

modprobe.conf, 72<br />

versão 2.6, 72<br />

Kontact, 572<br />

KPilot, 572<br />

KPowersave, 567<br />

KSysguard, 567<br />

L<br />

L10N, 231<br />

laptops, 563–570<br />

gerenciamento de energia, 563, 597–<br />

609<br />

hardware, 563<br />

IrDA, 647–649<br />

NetworkManager, 566<br />

PCMCIA, 563<br />

SCPM, 564, 583<br />

SLP, 566<br />

LDAP, 437–462<br />

ACLs, 444<br />

adicionan<strong>do</strong> da<strong>do</strong>s, 448<br />

administran<strong>do</strong> grupos, 460<br />

administran<strong>do</strong> usuários, 460<br />

apagan<strong>do</strong> da<strong>do</strong>s, 452<br />

buscan<strong>do</strong> da<strong>do</strong>s, 451<br />

cliente LDAP <strong>do</strong> YaST, 452<br />

configuração <strong>do</strong> servi<strong>do</strong>r, 443<br />

controle de acesso, 446<br />

ldapadd, 448<br />

ldapdelete, 452<br />

ldapmodify, 450<br />

ldapsearch, 451<br />

modifican<strong>do</strong> da<strong>do</strong>s, 450<br />

YaST<br />

modelos, 453<br />

módulos, 453<br />

árvore de diretórios, 440<br />

LFS, 278<br />

Lightweight Directory Access Protocol<br />

(Ver LDAP)<br />

Linux


compartilhan<strong>do</strong> arquivos com outro SO,<br />

527<br />

desinstalan<strong>do</strong>, 217<br />

redes e, 331<br />

Linux de 64 bits, 181<br />

desenvolvimento de s<strong>of</strong>tware, 182<br />

especificações <strong>do</strong> kernel, 184<br />

suporte ao tempo de execução, 181<br />

linuxrc<br />

instalação manual, 85<br />

linuxthreads, 73<br />

local<br />

UTF-8, 75<br />

localização, 231<br />

locate, 226<br />

logrotate, 225<br />

LSB<br />

instalan<strong>do</strong> pacotes, 91<br />

LVM<br />

YaST, 55<br />

M<br />

mascaramento<br />

configuran<strong>do</strong> com o SuSEfirewall2, 109<br />

mascaran<strong>do</strong>, 107<br />

MBR, 201–202<br />

memória<br />

RAM, 228<br />

mobilidade, 563–573<br />

câmeras digitais, 571<br />

discos rígi<strong>do</strong>s externos, 571<br />

Firewire (IEEE1394), 571<br />

laptops, 563<br />

PDAs, 572<br />

segurança de da<strong>do</strong>s, 570<br />

telefones celulares, 572<br />

USB, 571<br />

modems<br />

cabo, 357<br />

YaST, 352<br />

monitoramento <strong>do</strong> sistema, 567<br />

KPowersave, 567<br />

KSysguard, 567<br />

mountd, 420<br />

mídia removível<br />

subfs, 79<br />

N<br />

NAT (Ver mascaran<strong>do</strong>)<br />

NetBIOS, 527<br />

Network File System (Ver NFS)<br />

Network Information Service (Ver NIS)<br />

NetworkManager, 566<br />

NFS, 415<br />

clientes, 415<br />

exportan<strong>do</strong>, 418<br />

importan<strong>do</strong>, 416<br />

montan<strong>do</strong>, 416<br />

permissões, 419<br />

servi<strong>do</strong>res, 417<br />

nfsd, 420<br />

NGPT, 73<br />

nice, 76<br />

NIS, 405–413<br />

clientes, 412<br />

escravos, 405–412<br />

masters, 405–412<br />

notebooks (Ver laptops)<br />

Novell iFolder, 508<br />

NPTL, 73–74<br />

NSS, 370<br />

O<br />

opd, 644<br />

OpenLDAP (Ver LDAP)<br />

OpenSSH (Ver SSH)<br />

OS/2<br />

compartilhan<strong>do</strong> arquivos, 527


P<br />

pacotes<br />

compilan<strong>do</strong>, 99<br />

compilan<strong>do</strong> com build, 101<br />

desinstalan<strong>do</strong>, 92<br />

gerencia<strong>do</strong>r de pacotes, 91<br />

instalan<strong>do</strong>, 92<br />

LSB, 91<br />

RPMs, 91<br />

verifican<strong>do</strong>, 92<br />

pacotes de thread<br />

NPTL, 74<br />

páginas de informações, 229<br />

páginas de manual, 229<br />

PAM, 313–321<br />

configuran<strong>do</strong>, 86<br />

pand, 643<br />

partições<br />

criptografan<strong>do</strong>, 122<br />

tabela de partição, 201<br />

PBX, 355<br />

PCMCIA, 563, 575<br />

IrDA, 647–649<br />

PDAs, 572<br />

permissões<br />

ACLs, 147–159<br />

permissões de arquivo, 226<br />

placas<br />

rede, 348–349<br />

vídeo, 288<br />

Pluggable Authentication Modules (Ver<br />

PAM)<br />

portas<br />

53, 393<br />

exploran<strong>do</strong>, 554<br />

PostgreSQL<br />

atualizan<strong>do</strong>, 70<br />

powersave, 610<br />

configuran<strong>do</strong>, 610<br />

protocolos<br />

CIFS, 527<br />

IPv6, 338<br />

LDAP, 437<br />

SLP, 377<br />

SMB, 527<br />

proxies (Ver Squid)<br />

caches, 539<br />

transparentes, 551<br />

vantagens, 539<br />

R<br />

RAID<br />

YaST, 63<br />

RAID de s<strong>of</strong>tware (Ver RAID)<br />

Recursos <strong>do</strong> Squid, 539<br />

redes, 331<br />

arquivos de configuração, 366–373<br />

Bluetooth, 569, 639<br />

configuran<strong>do</strong>, 348–359, 362–374<br />

IPv6, 346<br />

DHCP, 421<br />

DNS, 347<br />

endereço de broadcast, 337<br />

endereço de rede de base, 337<br />

host local, 337<br />

IrDA, 570<br />

máscaras de rede, 335<br />

roteamento, 335, 351<br />

sem fio, 569<br />

SLP, 377<br />

TCP/IP, 331<br />

WLAN, 569<br />

YaST, 349<br />

Registro Mestre de Inicialização (Ver<br />

MBR)<br />

RFCs, 331<br />

roteamento, 335, 351, 366–367<br />

estático, 367


máscaras de rede, 335<br />

rotas, 366<br />

rotean<strong>do</strong><br />

mascaran<strong>do</strong>, 107<br />

RPM, 91–102<br />

atualizan<strong>do</strong>, 93<br />

banco de da<strong>do</strong>s<br />

reconstruin<strong>do</strong>, 94, 99<br />

consultas, 96<br />

deltarpm, 95<br />

dependências, 92<br />

desinstalan<strong>do</strong>, 94<br />

ferramentas, 102<br />

patches, 94<br />

rpmnew, 92<br />

rpmorig, 92<br />

rpmsave, 92<br />

segurança, 145<br />

SRPMS, 100<br />

verifican<strong>do</strong>, 92<br />

verificar, 98<br />

rpmbuild, 91<br />

rsync, 507, 521<br />

runlevels, 189–192<br />

editan<strong>do</strong> no YaST, 196<br />

mudan<strong>do</strong>, 191–192<br />

S<br />

Samba, 527–538<br />

CIFS, 527<br />

clientes, 528, 535–536<br />

compartilhamentos, 528, 532<br />

configuran<strong>do</strong>, 529–535<br />

impressoras, 528<br />

imprimin<strong>do</strong>, 536<br />

inician<strong>do</strong>, 529<br />

instalan<strong>do</strong>, 529<br />

interrompen<strong>do</strong>, 529<br />

login, 536<br />

nomes, 527<br />

permissões, 534<br />

segurança, 534–535<br />

servi<strong>do</strong>r, 528<br />

servi<strong>do</strong>res, 529–535<br />

SMB, 527<br />

swat, 531<br />

TCP/IP e, 527<br />

SCPM, 583<br />

alternan<strong>do</strong> perfis, 593<br />

configurações avançadas, 594<br />

gerencian<strong>do</strong> perfis, 592<br />

grupos de recursos, 592<br />

inician<strong>do</strong>, 592<br />

laptops, 564<br />

scripts<br />

init.d, 189, 192–196, 373<br />

boot, 193<br />

boot.local, 194<br />

boot.setup, 194<br />

halt, 194<br />

network, 373<br />

nfsserver, 373, 419<br />

portmap, 373, 419<br />

rc, 192, 194<br />

sendmail, 374<br />

squid, 544<br />

ypbind, 374<br />

ypserv, 374<br />

irda, 648<br />

mkinitrd, 187<br />

modify_resolvconf, 228, 368<br />

SuSEconfig, 198–200<br />

desabilitan<strong>do</strong>, 200<br />

sdptool, 642<br />

segurança, 134–146<br />

assinaturas RPM, 145<br />

ataques, 142–143<br />

bugs e, 138, 141<br />

detecção de intrusos, 86


dicas e truques, 143<br />

DNS, 143<br />

engenharia, 135<br />

firewalls, 105<br />

inicialização, 135, 137<br />

local, 136–139<br />

permissões, 137–138<br />

rede, 140–143<br />

relatan<strong>do</strong> problemas, 146<br />

Samba, 534<br />

senhas, 136–137<br />

sistema de arquivos criptografa<strong>do</strong>s, 570<br />

Squid, 540<br />

SSH, 115–121<br />

tcpd, 146<br />

telnet, 115<br />

terminais seriais, 135<br />

vírus, 139<br />

worms, 143<br />

X e, 140<br />

segurança de da<strong>do</strong>s, 570<br />

Service Location Protocol (Ver SLP)<br />

servi<strong>do</strong>res de nomes (Ver DNS)<br />

SGML<br />

diretórios, 79<br />

sincronização de da<strong>do</strong>s, 569<br />

e-mail, 568<br />

Evolution, 572<br />

Kontact, 572<br />

KPilot, 572<br />

sistema<br />

atualizan<strong>do</strong>, 69–72<br />

limitação <strong>do</strong> uso de recursos, 227<br />

localização, 231<br />

sistema de nomes de <strong>do</strong>mínio (Ver DNS)<br />

Sistema X Win<strong>do</strong>w (Ver X)<br />

sistemas de arquivos, 269–280<br />

ACLs, 147–159<br />

criptografan<strong>do</strong>, 121<br />

crypt<strong>of</strong>s, 121<br />

Ext2, 271–272<br />

Ext3, 272–274<br />

LFS, 278<br />

limitações, 278<br />

Reiser4, 274–275<br />

ReiserFS, 270–271<br />

selecionan<strong>do</strong>, 270<br />

suporta<strong>do</strong>s, 276–278<br />

termos, 269<br />

XFS, 275–276<br />

SLP, 377, 566<br />

browser, 379<br />

Konqueror, 379<br />

registran<strong>do</strong> serviços, 377<br />

slptool, 379<br />

SMB (Ver Samba)<br />

smpd, 527<br />

s<strong>of</strong>tware<br />

compilan<strong>do</strong>, 99<br />

som<br />

mixers, 84<br />

sort, 76<br />

spm, 99<br />

Squid, 539<br />

ACLs, 549<br />

Apache, 554<br />

arquivos de registro, 544, 548, 554<br />

cachemgr.cgi, 554, 556<br />

caches, 539–540<br />

danifica<strong>do</strong>, 544<br />

tamanho, 542<br />

Calamaris, 558<br />

configuran<strong>do</strong>, 546<br />

controles de acesso, 555<br />

CPU e, 543<br />

desinstalan<strong>do</strong>, 545<br />

diretórios, 544<br />

DNS, 545<br />

estatísticas, 554, 556<br />

firewalls e, 552


inician<strong>do</strong>, 543<br />

interrompen<strong>do</strong>, 544<br />

permissões, 544, 549<br />

proxies transparentes, 551, 554<br />

RAM e, 543<br />

relatórios, 558<br />

requisitos <strong>do</strong> sistema, 542<br />

segurança, 540<br />

solução de problemas, 544<br />

squidGuard, 556<br />

status <strong>do</strong> objeto, 541<br />

SSH, 115–121<br />

daemon, 117<br />

mecanismos de autenticação, 119<br />

pares de chaves, 117, 119<br />

scp, 116<br />

sftp, 117<br />

ssh, 116<br />

ssh-agent, 119–120<br />

ssh-keygen, 119<br />

sshd, 117<br />

X e, 120<br />

subfs<br />

mídia removível, 79<br />

Subversion, 507, 518<br />

suporte à instalação<br />

placas gráficas 3D e, 297<br />

SVN (Subversion), 507<br />

T<br />

tail, 76<br />

TCP/IP, 331<br />

ICMP, 332<br />

IGMP, 332<br />

modelo em camadas, 332<br />

pacotes, 333–334<br />

TCP, 332<br />

UDP, 332<br />

tecla<strong>do</strong><br />

Caracteres asiáticos, 231<br />

Extensão de tecla<strong>do</strong> X, 231<br />

layout, 230<br />

mapeamento, 230<br />

compor, 231<br />

multikey, 231<br />

XKB, 231<br />

tela<br />

resolução, 287<br />

telefones celulares, 572<br />

Tripwire<br />

substituí<strong>do</strong> por AIDE, 86<br />

U<br />

ulimit, 227<br />

opções, 227<br />

unidades flash, 571<br />

USB<br />

discos rígi<strong>do</strong>s, 571<br />

unidades flash, 571<br />

users<br />

/etc/passwd, 453<br />

usuários<br />

/etc/passwd, 316<br />

UTF-8<br />

codificação, 75<br />

V<br />

variables<br />

environment, 232<br />

vídeo<br />

placas<br />

drivers, 288<br />

W<br />

whois, 348<br />

Win<strong>do</strong>ws<br />

compartilhan<strong>do</strong> arquivos, 527<br />

WLAN, 569


X<br />

X<br />

ajuda, 288<br />

conjuntos de caracteres, 289<br />

drivers, 288<br />

fontes, 289<br />

fontes centrais X11, 290<br />

fontes indexadas <strong>do</strong> CID, 294<br />

fontes TrueType, 289<br />

otimizan<strong>do</strong>, 283–289<br />

SaX2, 284<br />

segurança, 140<br />

sistemas de fontes, 289<br />

SSH e, 120<br />

tela virtual, 287<br />

xf86config, 284<br />

xft, 289<br />

Xft, 291<br />

X.Org, 283<br />

Xen, 323<br />

visão geral, 323<br />

Xft, 291<br />

XKB (Ver tecla<strong>do</strong>, XKB)<br />

XML<br />

diretórios, 79<br />

xorg.conf<br />

Depth, 286<br />

Device, 286<br />

Display, 286<br />

Files, 284<br />

InputDevice, 284<br />

intensidade de cor, 286<br />

Linha modelo, 286<br />

modelines, 284<br />

Modes, 285<br />

Mo<strong>do</strong>s, 286<br />

Monitor, 284, 286<br />

ServerFlags, 284<br />

Y<br />

YaST<br />

3D, 295<br />

atualizan<strong>do</strong>, 70<br />

browser SLP, 379<br />

carrega<strong>do</strong>r de boot<br />

localização, 214<br />

ordem <strong>do</strong> disco, 216<br />

senha, 216<br />

tipo, 213<br />

cliente LDAP, 452<br />

clientes NIS, 412<br />

configuração de inicialização, 212<br />

segurança, 216<br />

sistema padrão, 215<br />

tempo de espera, 215<br />

DHCP, 422<br />

DSL, 357<br />

editor sysconfig, 198<br />

gerenciamento de energia, 618<br />

GRUB, 213<br />

imprimin<strong>do</strong>, 241–244<br />

ISDN, 354<br />

LILO, 213<br />

LVM, 55<br />

modem a cabo, 357<br />

modems, 352<br />

placa de rede, 349<br />

RAID, 63<br />

runlevels, 196<br />

Samba<br />

clientes, 535<br />

T-DSL, 359<br />

YP (Ver NIS)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!