Documentação do SUSE LINUX - Index of
Documentação do SUSE LINUX - Index of
Documentação do SUSE LINUX - Index of
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)