You are on page 1of 638

SUSE LINUX

M ANUAL
DE

A DMINISTRACIN

9. Edicin 2004 Copyright Esta obra es propiedad intelectual de SUSE LINUX AG. Se permite su reproduccin total o parcial siempre que cada una de las copias contenga esta nota de copyright. Toda la informacin contenida en este libro ha sido compilada minuciosamente. Sin embargo, no es posible excluir cualquier tipo de error. Los autores, traductores y SUSE LINUX AG no se hacen responsables de posibles errores ni aceptarn responsabilidad jurdica alguna derivada de estos errores o sus consecuencias. La reproduccin de nombres comerciales, marcas registradas, etc. en este documento no justica, an sin una indicacin explcita, la suposicin de que tales nombres se puedan considerar como libres segn la legislacin de nombres comerciales y proteccin de marcas. Los productos de software o hardware mencionados en este libro son en muchos casos marcas registradas. SUSE LINUX AG se atiene esencialmente a la grafa de los fabricantes. Dirija sus comentarios y sugerencias a documentation@suse.de.

Autores:

Frank Bodammer, Stefan Dirsch, Olaf Donjak, Roman Drahtmller, Torsten Duwe, Thorsten Dubiel, Karl Eichwalder, Thomas Fehr, Stefan Fent, Werner Fink, Kurt Garloff, Carsten Gro, Andreas Grnbacher, Franz Hassels, Andreas Jaeger, Klaus Kmpf, Hubert Mantel, Johannes Meixner, Lars Mller, Matthias Nagorni, Anas Nashif, Siegfried Olschner, Peter Pml, Heiko Rommel, Marcus Schfer, Nicolaus Schler, Klaus Singvogel, Hendrik Vogelsang, Klaus G. Wagner, Rebecca Walter, Christian Zoz Traduccin: Ins Pozo Muoz Redaccin: Jrg Arndt, Antje Faber, Berthold Gunreben, Roland Haidl, Jana Jaeger, Edith Parzefall, Ins Pozo Muoz, Thomas Rlz, Thomas Schraitle Diseo: Manuela Piotrowski, Thomas Schraitle A Composicin:DocBook-XML und LTEX Este libro fue impreso sobre papel blanqueado 100 % libre de cloro.

ndice general

Instalacin

5
7 8 8 8 10 15 16 17 17 17 19 19 21 22 23 23 24 25 25

1. La instalacin 1.1. Instalacin en modo texto con YaST . . . . . . . . . . . . . . . . 1.1.1. Informacin general . . . . . . . . . . . . . . . . . . . . 1.1.2. La pantalla de bienvenida . . . . . . . . . . . . . . . . . 1.1.3. La base: linuxrc . . . . . . . . . . . . . . . . . . . . . . . 1.2. Iniciar SUSE LINUX . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1. La pantalla grca de SUSE . . . . . . . . . . . . . . . . 1.3. Instalaciones especiales . . . . . . . . . . . . . . . . . . . . . . . 1.3.1. Instalacin sin lector CD-ROM soportado . . . . . . . . 1.3.2. Instalacin desde una fuente en la red . . . . . . . . . . 1.4. Consejos y trucos . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.1. Crear un disquete de arranque bajo DOS . . . . . . . . 1.4.2. Crear un disquete de arranque bajo un sistema tipo Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.3. Arrancar con un disquete (SYSLINUX) . . . . . . . . . 1.4.4. Arrancar con el CD 2 . . . . . . . . . . . . . . . . . . . . 1.4.5. Soporta Linux mi lector CD-ROM? . . . . . . . . . . . 1.5. Un lector CD-ROM ATAPI se traba leyendo . . . . . . . . . . . 1.6. Asignacin de nombres a los dispositivos SCSI . . . . . . . . . 1.7. Particionar para usuarios avanzados . . . . . . . . . . . . . . .

1.7.1. El tamao de la particin de intercambio (swap) . . . . 1.7.2. Formas de uso del ordenador . . . . . . . . . . . . . . . 1.7.3. Posibilidades de optimizacin . . . . . . . . . . . . . . 1.8. Conguracin de LVM con YaST . . . . . . . . . . . . . . . . . 1.8.1. Gestor de volmenes lgicos (LVM) . . . . . . . . . . . 1.9. Soft-RAID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.9.1. Niveles RAID habituales . . . . . . . . . . . . . . . . . . 1.9.2. Congurar un Soft-RAID con YaST . . . . . . . . . . . . 2. Actualizacin del sistema y gestin de paquetes 2.1. Actualizacin de SUSE LINUX . . . . . . . . . . . . . . . . . . 2.1.1. Preparativos . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2. Actualizacin con YaST . . . . . . . . . . . . . . . . . . 2.1.3. Actualizacin manual . . . . . . . . . . . . . . . . . . . 2.1.4. Actualizacin de paquetes individuales . . . . . . . . . 2.2. Cambios en el software de una versin a otra . . . . . . . . . . 2.2.1. De 7.3 a 8.0 . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2. De 8.0 a 8.1 . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.3. De 8.1 a 8.2 . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.4. De 8.2 a 9.0 . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.5. De 9.0 a 9.1 . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. RPM El gestor de paquetes . . . . . . . . . . . . . . . . . . . . 2.3.1. Comprobar la autenticidad de un paquete . . . . . . . 2.3.2. Administracin de paquetes . . . . . . . . . . . . . . . 2.3.3. RPM y parches . . . . . . . . . . . . . . . . . . . . . . . 2.3.4. Realizar consultas . . . . . . . . . . . . . . . . . . . . . 2.3.5. Instalar y compilar los paquetes fuente . . . . . . . . . 2.3.6. Creacin de paquetes RPM con build . . . . . . . . . . 2.3.7. Herramientas para RPM . . . . . . . . . . . . . . . . . .

26 26 28 31 32 39 40 41 43 44 44 46 47 49 49 50 51 53 54 55 58 58 59 61 63 65 67 68

iv

ndice general

II

Conguracin

69
71 72 72 73 74 75 75 75 76 79 81 83 84 85 86 87 93 93 94 94 94 95 95 95

3. YaST en modo texto (ncurses) 3.1. Funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1. El centro de control de YaST . . . . . . . . . . . . . . . . 3.1.2. Los mdulos de YaST . . . . . . . . . . . . . . . . . . . 3.2. Limitaciones de las combinaciones de teclas . . . . . . . . . . . 3.3. Arranque de mdulos individuales . . . . . . . . . . . . . . . . 3.4. YaST Online Update (YOU) . . . . . . . . . . . . . . . . . . . . 3.4.1. El mdulo YOU . . . . . . . . . . . . . . . . . . . . . . . 3.4.2. Actualizacin en lnea desde la lnea de comandos . . . 4. El sistema X Window 4.1. Optimizar la instalacin del sistema X Window . . . . . . . . . 4.1.1. Seccin Screen . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2. Seccin Device . . . . . . . . . . . . . . . . . . . . . . . 4.1.3. Secciones Monitor y Modes . . . . . . . . . . . . . . . . 4.2. Instalacin y conguracin de tipos de letra . . . . . . . . . . . 4.2.1. Sistemas de tipos de letra . . . . . . . . . . . . . . . . . 4.3. Conguracin de OpenGL/3D . . . . . . . . . . . . . . . . . . 4.3.1. Hardware Soportado . . . . . . . . . . . . . . . . . . . . 4.3.2. Controladores OpenGL . . . . . . . . . . . . . . . . . . 4.3.3. Herramienta de diagnstico 3Ddiag . . . . . . . . . . . 4.3.4. Aplicaciones de prueba OpenGL . . . . . . . . . . . . . 4.3.5. Resolucin de problemas . . . . . . . . . . . . . . . . . 4.3.6. Soporte de instalacin . . . . . . . . . . . . . . . . . . . 4.3.7. Documentacin adicional en lnea . . . . . . . . . . . .

SUSE LINUX Manual de Administracin

5. Funcionamiento de la impresora 5.1. Fundamentos del proceso de impresin . . . . . . . . . 5.1.1. Ejemplos de lenguajes de impresin estndar . . 5.1.2. Desarrollo de un trabajo de impresin . . . . . 5.1.3. Distintos sistemas de impresin . . . . . . . . . 5.2. Requisitos para imprimir . . . . . . . . . . . . . . . . . . 5.2.1. Requisitos generales . . . . . . . . . . . . . . . . 5.2.2. Determinar el controlador de impresin correcto 5.2.3. La problemtica de las impresoras GDI . . . . . 5.3. Conguracin de impresoras con YaST . . . . . . . . . . 5.3.1. Colas de impresin y conguracin . . . . . . . 5.3.2. Fundamentos de la conguracin . . . . . . . . 5.3.3. Conguracin automtica . . . . . . . . . . . . 5.3.4. Conguracin manual . . . . . . . . . . . . . . . 5.4. Conguracin para aplicaciones . . . . . . . . . . . . . 5.5. El sistema de impresin CUPS . . . . . . . . . . . . . . . 5.5.1. Convenciones lingsticas . . . . . . . . . . . . . 5.5.2. IPP y servidor . . . . . . . . . . . . . . . . . . . . 5.5.3. Conguracin del servidor CUPS . . . . . . . . 5.5.4. Impresoras de red . . . . . . . . . . . . . . . . . 5.5.5. Procesamiento interno de los trabajos . . . . . . 5.5.6. Consejos y trucos . . . . . . . . . . . . . . . . . . 5.6. Imprimir desde aplicaciones . . . . . . . . . . . . . . . . 5.7. Herramientas de lnea de comandos para CUPS . . . . 5.7.1. Para colas de impresin locales . . . . . . . . . . 5.7.2. Colas de impresin en red . . . . . . . . . . . . . 5.7.3. Resolucin de problemas en CUPS . . . . . . . . 5.8. Impresin en redes TCP/IP . . . . . . . . . . . . . . . . 5.8.1. Aclaracin de trminos . . . . . . . . . . . . . . 5.8.2. Conguracin rpida de un cliente . . . . . . . 5.8.3. Protocolos para imprimir en una red TCP/IP . 5.8.4. Filtros en la impresin en red . . . . . . . . . . . 5.8.5. Resolucin de problemas . . . . . . . . . . . . . 5.8.6. Servidor de impresin LPD e IPP . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

97 98 98 99 102 103 103 104 105 107 107 108 110 110 113 114 114 114 115 117 118 120 122 123 123 125 126 127 128 129 130 138 144 149

vi

ndice general

6. Informacin adicional sobre el funcionamiento de la impresora

151

6.1. Conguracin manual de puertos locales . . . . . . . . . . . . 152 6.1.1. Puertos paralelos . . . . . . . . . . . . . . . . . . . . . . 152 6.1.2. Puerto USB . . . . . . . . . . . . . . . . . . . . . . . . . 154 6.1.3. Puerto IrDA . . . . . . . . . . . . . . . . . . . . . . . . . 156 6.1.4. Puertos serie . . . . . . . . . . . . . . . . . . . . . . . . . 157 6.2. Conguracin manual de LPRng/lpdlter . . . . . . . . . . . 157 6.3. El spooler de impresin LPRng . . . . . . . . . . . . . . . . . . 158 6.3.1. Imprimir desde aplicaciones . . . . . . . . . . . . . . . 159 6.4. Herramientas de lnea de comandos para LPRng . . . . . . . . 159 6.4.1. Para colas de impresin locales . . . . . . . . . . . . . . 159 6.4.2. Para colas de impresin remotas . . . . . . . . . . . . . 162 6.4.3. Resolucin de problemas en LPRng . . . . . . . . . . . 163 6.5. El ltro de impresin del sistema LPRng/lpdlter . . . . . . . 164 6.5.1. Conguracin de lpdlter . . . . . . . . . . . . . . . . 166 6.5.2. Complementos para lpdlter . . . . . . . . . . . . . . . 167 6.5.3. Bsqueda de errores en lpdlter . . . . . . . . . . . . . 174 6.6. Acerca de Ghostscript . . . . . . . . . . . . . . . . . . . . . . . 175 6.6.1. Ejemplos de trabajo con Ghostscript . . . . . . . . . . . 176 6.7. Acerca de a2ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 6.7.1. Impresin directa de un archivo de texto con a2ps . . 179 6.8. Reformatear PostScript con psutils . . . . . . . . . . . . . . . . 180 6.8.1. psnup . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 6.8.2. pstops . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 6.8.3. psselect . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 6.8.4. Control en la pantalla con Ghostscript . . . . . . . . . 183 6.9. Codicacin de texto ASCII . . . . . . . . . . . . . . . . . . . . 183 6.9.1. Ilustracin . . . . . . . . . . . . . . . . . . . . . . . . . . 184

SUSE LINUX Manual de Administracin

vii

7. El proceso de arranque y el gestor de arranque

187

7.1. El proceso de arranque en el PC . . . . . . . . . . . . . . . . . . 188 7.1.1. Master Boot Record . . . . . . . . . . . . . . . . . . . . . 188 7.1.2. Sectores de arranque . . . . . . . . . . . . . . . . . . . . 188 7.1.3. Arranque de DOS o Windows . . . . . . . . . . . . . . . 189 7.2. Concepto de arranque . . . . . . . . . . . . . . . . . . . . . . . 189 7.3. Archivos map, GRUB y LILO . . . . . . . . . . . . . . . . . . . 190 7.4. El arranque con GRUB . . . . . . . . . . . . . . . . . . . . . . . 192 7.4.1. El men de arranque de GRUB . . . . . . . . . . . . . . 192 7.4.2. El archivo device.map . . . . . . . . . . . . . . . . . . . 198 7.4.3. El archivo /etc/grub.conf . . . . . . . . . . . . . . . . . 199 7.4.4. Denir la contrasea de arranque . . . . . . . . . . . . 200 7.4.5. Posibles problemas e informacin adicional . . . . . . . 202 7.5. Desinstalar el cargador de arranque de Linux . . . . . . . . . . 202 7.5.1. Recuperar el MBR (DOS/Win9x/ME) . . . . . . . . . . 203 7.5.2. Recuperar el MBR (Windows XP) . . . . . . . . . . . . . 203 7.5.3. Recuperar el MBR (Windows 2000) . . . . . . . . . . . . 203 7.6. Crear un CD de arranque . . . . . . . . . . . . . . . . . . . . . 204 7.6.1. CD de arranque con ISOLINUX . . . . . . . . . . . . . 204 8. Uso de dispositivos porttiles con Linux 207

8.1. PCMCIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 8.1.1. El hardware . . . . . . . . . . . . . . . . . . . . . . . . . 208 8.1.2. El software . . . . . . . . . . . . . . . . . . . . . . . . . . 209 8.1.3. La conguracin . . . . . . . . . . . . . . . . . . . . . . 210 8.1.4. Si a pesar de todo no funciona . . . . . . . . . . . . . . 213 8.1.5. Instalacin va PCMCIA . . . . . . . . . . . . . . . . . . 217 8.1.6. Utilidades adicionales . . . . . . . . . . . . . . . . . . . 218 8.1.7. Actualizar el paquete Kernel o PCMCIA . . . . . . . . 218 8.1.8. Informacin adicional . . . . . . . . . . . . . . . . . . . 219 8.2. SCPM System Conguration Prole Management . . . . . . 219 8.2.1. Fundamentos y conceptos bsicos . . . . . . . . . . . . 220

viii

ndice general

8.2.2. El gestor de perles de YaST . . . . . . . 8.2.3. Congurar SCPM . . . . . . . . . . . . . . 8.2.4. Crear y administrar perles . . . . . . . . 8.2.5. Cambiar de un perl a otro . . . . . . . . 8.2.6. Conguracin avanzada del perl . . . . 8.2.7. Seleccin de perles al arrancar . . . . . . 8.2.8. Problemas y soluciones . . . . . . . . . . 8.3. IrDA Infrared Data Association . . . . . . . . . 8.3.1. Software . . . . . . . . . . . . . . . . . . . 8.3.2. Conguracin . . . . . . . . . . . . . . . . 8.3.3. Uso . . . . . . . . . . . . . . . . . . . . . . 8.3.4. Resolucin de problemas . . . . . . . . . 8.4. Bluetooth: conexin inalmbrica de dispositivos 8.4.1. Perles . . . . . . . . . . . . . . . . . . . . 8.4.2. Software . . . . . . . . . . . . . . . . . . . 8.4.3. Conguracin . . . . . . . . . . . . . . . . 8.4.4. Componentes del sistema y herramientas 8.4.5. Ejemplos . . . . . . . . . . . . . . . . . . . 8.4.6. Resolucin de problemas . . . . . . . . . 8.4.7. Informacin adicional . . . . . . . . . . . 9. Gestin de energa 9.1. Funciones para el ahorro de energa . . . . . 9.2. APM . . . . . . . . . . . . . . . . . . . . . . . 9.2.1. El daemon APM (apmd) . . . . . . . . 9.2.2. Comandos adicionales . . . . . . . . . 9.3. ACPI . . . . . . . . . . . . . . . . . . . . . . . 9.3.1. ACPI en la prctica . . . . . . . . . . . 9.4. Parar el disco duro . . . . . . . . . . . . . . . 9.5. El paquete powersave . . . . . . . . . . . . . 9.5.1. Conguracin del paquete powersave 9.5.2. Conguracin de APM y ACPI . . . . 9.5.3. Prestaciones adicionales de ACPI . . . 9.5.4. Resolucin de problemas . . . . . . . 9.6. El mdulo de gestin de energa de YaST . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

221 221 222 223 223 225 226 227 228 228 228 229 230 230 231 231 232 234 236 237 239 240 242 243 245 245 246 251 252 253 254 256 257 260

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

SUSE LINUX Manual de Administracin

ix

III

El sistema

265
267

10. SUSE LINUX en sistemas AMD64

10.1. SUSE LINUX de 64 bits para AMD64 . . . . . . . . . . . . . . . 268 10.1.1. Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . 268 10.1.2. Software . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 10.1.3. Instalacin de software de 32 bits . . . . . . . . . . . . . 269 10.1.4. Desarrollo de software en sistemas de 64 bits . . . . . . 269 10.2. Informacin adicional . . . . . . . . . . . . . . . . . . . . . . . 270 11. El kernel de Linux 271

11.1. Actualizacin del kernel . . . . . . . . . . . . . . . . . . . . . . 272 11.2. Las fuentes del kernel . . . . . . . . . . . . . . . . . . . . . . . . 273 11.3. Conguracin del kernel . . . . . . . . . . . . . . . . . . . . . . 273 11.3.1. Conguracin en la lnea de comandos . . . . . . . . . 274 11.3.2. Conguracin en modo texto . . . . . . . . . . . . . . . 274 11.3.3. Conguracin en el sistema X Windows . . . . . . . . . 274 11.4. Mdulos del kernel . . . . . . . . . . . . . . . . . . . . . . . . . 275 11.4.1. Detectar el hardware actual con hwinfo . . . . . . . . . 275 11.4.2. Manejo de los mdulos . . . . . . . . . . . . . . . . . . 276 11.4.3. /etc/modprobe.conf . . . . . . . . . . . . . . . . . . . . 277 11.4.4. Kmod (Kernel Module Loader) . . . . . . . . . . . . . . 277 11.5. Ajustes en la conguracin del kernel . . . . . . . . . . . . . . 277 11.6. Compilacin del kernel . . . . . . . . . . . . . . . . . . . . . . . 278 11.7. Instalacin del kernel . . . . . . . . . . . . . . . . . . . . . . . . 278 11.8. Limpieza del disco despus de la compilacin . . . . . . . . . 280 12. Caractersticas del sistema 281

12.1. Estndares de Linux . . . . . . . . . . . . . . . . . . . . . . . . 282 12.1.1. Linux Standard Base (LSB) . . . . . . . . . . . . . . . . 282 12.1.2. Filesystem Hierarchy Standard (FHS) . . . . . . . . . . 282 12.1.3. teTeX TeX en SuSE Linux . . . . . . . . . . . . . . . . 282 12.1.4. Sobre FTP . . . . . . . . . . . . . . . . . . . . . . . . . . 282

ndice general

12.1.5. Sobre HTTP . . . . . . . . . . . . . . . . . . . . . . 12.2. Observaciones sobre paquetes especiales . . . . . . . . . 12.2.1. El paquete bash y /etc/prole . . . . . . . . . . . 12.2.2. El paquete cron . . . . . . . . . . . . . . . . . . . . 12.2.3. Archivos de registro el paquete logrotate . . . . 12.2.4. Pginas man . . . . . . . . . . . . . . . . . . . . . . 12.2.5. El comando ulimit . . . . . . . . . . . . . . . . . . 12.2.6. El comando free . . . . . . . . . . . . . . . . . . . . 12.2.7. El archivo /etc/resolv.conf . . . . . . . . . . . . . 12.2.8. Conguracin de GNU Emacs . . . . . . . . . . . 12.3. Arrancar con initial ramdisk . . . . . . . . . . . . . . . . . 12.3.1. Planteamiento del problema . . . . . . . . . . . . 12.3.2. El concepto initial ramdisk . . . . . . . . . . . . . 12.3.3. Procedimiento de arranque con initrd . . . . . . . 12.3.4. Cargadores de arranque . . . . . . . . . . . . . . . 12.3.5. Uso de initrd en SUSE . . . . . . . . . . . . . . . . 12.3.6. Posibles problemas kernel compilado a medida 12.3.7. El futuro . . . . . . . . . . . . . . . . . . . . . . . . 12.4. linuxrc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.4.1. Men principal . . . . . . . . . . . . . . . . . . . . 12.4.2. Opciones de conguracin . . . . . . . . . . . . . 12.4.3. Informacin del sistema . . . . . . . . . . . . . . . 12.4.4. Carga de mdulos . . . . . . . . . . . . . . . . . . 12.4.5. Introduccin de parmetros . . . . . . . . . . . . . 12.4.6. Iniciar instalacin / sistema . . . . . . . . . . . . . 12.4.7. Paso de parmetros a linuxrc . . . . . . . . . . . . 12.5. El sistema de rescate de SUSE . . . . . . . . . . . . . . . . 12.5.1. Iniciar el sistema de rescate . . . . . . . . . . . . . 12.5.2. Trabajar con el sistema de rescate . . . . . . . . . . 12.6. Consolas virtuales . . . . . . . . . . . . . . . . . . . . . . . 12.7. Distribucin del teclado . . . . . . . . . . . . . . . . . . . 12.8. Conguracin nacional I18N/L10N . . . . . . . . . . . 12.8.1. Algunos ejemplos . . . . . . . . . . . . . . . . . . . 12.8.2. Conguracin del soporte de idioma . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

283 283 283 284 284 286 286 287 288 288 289 289 290 290 291 292 293 294 294 295 295 295 297 297 298 299 301 301 303 305 305 306 307 308

SUSE LINUX Manual de Administracin

xi

13. El concepto de arranque de SUSE LINUX

311

13.1. El programa init . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 13.2. Los niveles de ejecucin runlevels . . . . . . . . . . . . . . . 313 13.3. Cambio de nivel de ejecucin . . . . . . . . . . . . . . . . . . . 315 13.4. Los scripts de inicio . . . . . . . . . . . . . . . . . . . . . . . . . 316 13.4.1. Aadir scripts init . . . . . . . . . . . . . . . . . . . . . 318 13.5. El editor de niveles de ejecucin de YaST . . . . . . . . . . . . 320 13.6. SuSEcong y /etc/syscong . . . . . . . . . . . . . . . . . . . . 322 13.7. El editor Syscong de YaST . . . . . . . . . . . . . . . . . . . . 324

IV

La red

327
329

14. Fundamentos de conexin a redes

14.1. TCP/IP: el protocolo de red utilizado por Linux . . . . . . . . 330 14.1.1. Modelo de capas . . . . . . . . . . . . . . . . . . . . . . 331 14.1.2. Direcciones IP y routing . . . . . . . . . . . . . . . . . . 334 14.1.3. Domain Name System DNS . . . . . . . . . . . . . . . 337 14.2. IPv6 La prxima generacin de Internet . . . . . . . . . . . 339 14.2.1. Ventajas de IPv6 . . . . . . . . . . . . . . . . . . . . . . 339 14.2.2. El sistema de direcciones de IPv6 . . . . . . . . . . . . . 341 14.2.3. Coexistencia de IPv4 e IPv6 . . . . . . . . . . . . . . . . 345 14.2.4. Literatura y enlaces sobre IPv6 . . . . . . . . . . . . . . 347 14.3. Conguracin manual de la red . . . . . . . . . . . . . . . . . . 347 14.3.1. Archivos de conguracin . . . . . . . . . . . . . . . . . 349 14.3.2. Scripts de arranque . . . . . . . . . . . . . . . . . . . . . 356 14.4. El acceso a la red . . . . . . . . . . . . . . . . . . . . . . . . . . 356 14.4.1. Preparativos . . . . . . . . . . . . . . . . . . . . . . . . . 357 14.4.2. Conguracin de red con YaST . . . . . . . . . . . . . . 357 14.4.3. Hotplug/PCMCIA . . . . . . . . . . . . . . . . . . . . . 359 14.4.4. Congurar IPv6 . . . . . . . . . . . . . . . . . . . . . . . 359 14.5. Enrutamiento en SuSE Linux . . . . . . . . . . . . . . . . . . . 360 14.6. DNS Domain Name System . . . . . . . . . . . . . . . . . . . 361

xii

ndice general

14.6.1. Iniciar el servidor de nombres BIND . . . . . . . . 14.6.2. El archivo de conguracin /etc/named.conf . . 14.6.3. Opciones de conguracin en el apartado options 14.6.4. El apartado de conguracin Logging . . . . . . . 14.6.5. Estructura de las entradas de zona . . . . . . . . . 14.6.6. Sintaxis de los archivos de zona . . . . . . . . . . 14.6.7. Transacciones seguras . . . . . . . . . . . . . . . . 14.6.8. Actualizacin dinmica de los datos de zonas . . 14.6.9. DNSSEC . . . . . . . . . . . . . . . . . . . . . . . . 14.6.10.Informacin adicional . . . . . . . . . . . . . . . . 14.7. El servicio de directorio LDAP . . . . . . . . . . . . . . . 14.7.1. LDAP versus NIS . . . . . . . . . . . . . . . . . . . 14.7.2. Estructura de un rbol de directorios LDAP . . . 14.7.3. Conguracin de servidor con slapd.conf . . . . . 14.7.4. Administracin de datos en el directorio LDAP . 14.7.5. Informacin adicional . . . . . . . . . . . . . . . . 14.8. NIS Network Information Service . . . . . . . . . . . . . 14.8.1. Servidores NIS: maestro y esclavo . . . . . . . . . 14.8.2. El mdulo del cliente NIS en YaST . . . . . . . . . 14.9. NFS Sistema de archivos distribuidos . . . . . . . . . . 14.9.1. Importar sistemas de archivos con YaST . . . . . . 14.9.2. Importar sistemas de archivos manualmente . . . 14.9.3. Exportar sistemas de archivos con YaST . . . . . . 14.9.4. Exportar manualmente sistemas de archivos . . . 14.10. HCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D 14.10.1.El protocolo DHCP . . . . . . . . . . . . . . . . . . 14.10.2.Los paquetes de software DHCP . . . . . . . . . . 14.10.3.El servidor DHCP: dhcpd . . . . . . . . . . . . . . 14.10.4.Ordenadores con direcciones IP jas . . . . . . . . 14.10.5.Particularidades en SUSE Linux . . . . . . . . . . 14.10.6.Informacin adicional . . . . . . . . . . . . . . . . 14.11. incronizacin horaria con xntp . . . . . . . . . . . . . . . S 14.11.1.Introduccin . . . . . . . . . . . . . . . . . . . . . . 14.11.2.Conguracin en red . . . . . . . . . . . . . . . . . 14.11.3.Instalar un reloj de referencia local . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

361 363 363 365 365 367 370 372 372 372 373 375 376 379 384 388 389 390 392 394 395 395 396 397 399 399 400 401 402 404 405 405 405 406 406

SUSE LINUX Manual de Administracin

xiii

15. El servidor web Apache

409

15.1. Fundamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 15.1.1. Servidor web . . . . . . . . . . . . . . . . . . . . . . . . 410 15.1.2. HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 15.1.3. URLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 15.1.4. Pgina predeterminada . . . . . . . . . . . . . . . . . . 411 15.2. Conguracin del servidor HTTP con YaST . . . . . . . . . . . 411 15.3. Los mdulos de Apache . . . . . . . . . . . . . . . . . . . . . . 412 15.4. Novedades en Apache 2 . . . . . . . . . . . . . . . . . . . . . . 413 15.5. Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 15.6. Instalacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 15.6.1. Seleccin de paquetes en YaST . . . . . . . . . . . . . . 415 15.6.2. Activar Apache . . . . . . . . . . . . . . . . . . . . . . . 415 15.6.3. Mdulos para contenidos activos . . . . . . . . . . . . . 415 15.6.4. Paquetes suplementarios . . . . . . . . . . . . . . . . . 416 15.6.5. Instalacin de mdulos con Apxs . . . . . . . . . . . . . 416 15.7. Conguracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 15.7.1. Conguracin con SuSEcong . . . . . . . . . . . . . . 417 15.7.2. Conguracin manual . . . . . . . . . . . . . . . . . . . 418 15.8. Funcionamiento de Apache . . . . . . . . . . . . . . . . . . . . 422 15.9. Contenidos activos . . . . . . . . . . . . . . . . . . . . . . . . . 423 15.9.1. Server Side Includes: SSI . . . . . . . . . . . . . . . . . . 424 15.9.2. Common Gateway Interface: CGI . . . . . . . . . . . . 424 15.9.3. GET y POST . . . . . . . . . . . . . . . . . . . . . . . . . 425 15.9.4. Lenguajes para CGI . . . . . . . . . . . . . . . . . . . . 425 15.9.5. Crear contenidos activos con mdulos . . . . . . . . . . 426 15.9.6. mod_perl . . . . . . . . . . . . . . . . . . . . . . . . . . 426 15.9.7. mod_php4 . . . . . . . . . . . . . . . . . . . . . . . . . . 428 15.9.8. mod_python . . . . . . . . . . . . . . . . . . . . . . . . . 429 15.9.9. mod_ruby . . . . . . . . . . . . . . . . . . . . . . . . . . 429 15.10. quinas virtuales . . . . . . . . . . . . . . . . . . . . . . . . . 429 M 15.10.1.Mquinas virtuales en funcin del nombre . . . . . . . 430

xiv

ndice general

15.10.2.Mquinas virtuales en funcin de la direccin IP . . . . 431 15.10.3.Mltiples instancias de Apache . . . . . . . . . . . . . . 432 15.11. eguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 S 15.11.1.Riesgo mnimo . . . . . . . . . . . . . . . . . . . . . . . 433 15.11.2.Permisos de acceso . . . . . . . . . . . . . . . . . . . . . 433 15.11.3.Siempre al da . . . . . . . . . . . . . . . . . . . . . . . . 434 15.12. denticacin y resolucin de problemas . . . . . . . . . . . . . 434 I 15.13. ocumentacin adicional . . . . . . . . . . . . . . . . . . . . . 435 D 15.13.1.Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 15.13.2.CGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 15.13.3.Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . 435 15.13.4.Fuentes adicionales . . . . . . . . . . . . . . . . . . . . . 436 16. Sincronizacin de archivos 437

16.1. Software para sincronizar datos . . . . . . . . . . . . . . . . . . 438 16.1.1. InterMezzo . . . . . . . . . . . . . . . . . . . . . . . . . 439 16.1.2. unison . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 16.1.3. CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 16.1.4. mailsync . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 16.2. Criterios para la eleccin de programa . . . . . . . . . . . . . . 440 16.2.1. Cliente-servidor o igualdad de derechos . . . . . . . . . 440 16.2.2. Portabilidad . . . . . . . . . . . . . . . . . . . . . . . . . 440 16.2.3. Interactivo o automtico . . . . . . . . . . . . . . . . . . 441 16.2.4. Velocidad . . . . . . . . . . . . . . . . . . . . . . . . . . 441 16.2.5. Conictos: cundo aparecen y cmo resolverlos . . . . 441 16.2.6. Seleccionar y aadir archivos . . . . . . . . . . . . . . . 441 16.2.7. Historia . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 16.2.8. Cantidad de datos y requisitos de espacio . . . . . . . . 442 16.2.9. GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 16.2.10.Requisitos que debe cumplir el usuario . . . . . . . . . 443 16.2.11.Seguridad frente a agresiones externas . . . . . . . . . 443 16.2.12.Seguridad frente a prdida de datos . . . . . . . . . . . 443

SUSE LINUX Manual de Administracin

xv

16.3. Introduccin a InterMezzo . . . . . . . . . . . . . . . . . . . . . 445 16.3.1. Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . 445 16.3.2. Conguracin de un servidor InterMezzo . . . . . . . . 446 16.3.3. Conguracin de clientes InterMezzo . . . . . . . . . . 446 16.3.4. Resolucin de problemas . . . . . . . . . . . . . . . . . 447 16.4. Introduccin a unison . . . . . . . . . . . . . . . . . . . . . . . 447 16.4.1. Campos de aplicacin . . . . . . . . . . . . . . . . . . . 447 16.4.2. Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . 448 16.4.3. Manejo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 16.4.4. Informacin adicional . . . . . . . . . . . . . . . . . . . 449 16.5. Introduccin a CVS . . . . . . . . . . . . . . . . . . . . . . . . . 449 16.5.1. Campos de aplicacin . . . . . . . . . . . . . . . . . . . 449 16.5.2. Conguracin del servidor CVS . . . . . . . . . . . . . 450 16.5.3. Manejo de CVS . . . . . . . . . . . . . . . . . . . . . . . 451 16.5.4. Informacin adicional . . . . . . . . . . . . . . . . . . . 453 16.6. Introduccin a mailsync . . . . . . . . . . . . . . . . . . . . . . 453 16.6.1. Campos de aplicacin . . . . . . . . . . . . . . . . . . . 453 16.6.2. Conguracin y manejo . . . . . . . . . . . . . . . . . . 453 16.6.3. Posibles problemas . . . . . . . . . . . . . . . . . . . . . 455 16.6.4. Informacin adicional . . . . . . . . . . . . . . . . . . . 456 17. Redes heterogneas 457

17.1. Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458 17.1.1. Introduccin a Samba . . . . . . . . . . . . . . . . . . . 458 17.1.2. Instalacin y conguracin del servidor . . . . . . . . . 460 17.1.3. Samba como servidor de dominio . . . . . . . . . . . . 464 17.1.4. Instalacin de los clientes . . . . . . . . . . . . . . . . . 466 17.1.5. Optimizacin . . . . . . . . . . . . . . . . . . . . . . . . 466 17.2. Netatalk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 17.2.1. Conguracin del servidor de archivos . . . . . . . . . 468 17.2.2. Conguracin del servidor de impresin . . . . . . . . 472 17.2.3. Arrancar el servidor . . . . . . . . . . . . . . . . . . . . 473

xvi

ndice general

17.2.4. Informacin adicional . . . . . . . . . . . . . . . . . . . 474 17.3. Emulacin de Novell NetWare con MARSNWE . . . . . . . . . 474 17.3.1. Iniciar el emulador de NetWare MARSNWE . . . . . . 474 17.3.2. El archivo de conguracin /etc/nwserv.conf . . . . . 475 17.3.3. Administracin y acceso a servidores NetWare . . . . . 477 17.3.4. Enrutador IPX con ipxrip . . . . . . . . . . . . . . . . . 478 18. Internet 479

18.1. smpppd como asistente para la conexin telefnica . . . . . . 480 18.1.1. Componentes de smpppd . . . . . . . . . . . . . . . . . 480 18.1.2. La conguracin de smpppd . . . . . . . . . . . . . . . 480 18.1.3. Preparacin de kinternet y cinternet para el uso remoto 481 18.2. Conguracin de una conexin ADSL . . . . . . . . . . . . . . 482 18.2.1. Conguracin estndar . . . . . . . . . . . . . . . . . . 482 18.2.2. Conexin ADSL va Dial-on-Demand . . . . . . . . . . 483 18.3. Servidor proxy: Squid . . . . . . . . . . . . . . . . . . . . . . . 484 18.3.1. Qu es un cach proxy? . . . . . . . . . . . . . . . . . . 484 18.3.2. Informacin general sobre cachs proxy . . . . . . . . . 485 18.3.3. Requerimientos del sistema . . . . . . . . . . . . . . . . 487 18.3.4. Arrancar Squid . . . . . . . . . . . . . . . . . . . . . . . 489 18.3.5. El archivo de conguracin /etc/squid/squid.conf . . 491 18.3.6. Conguracin de un proxy transparente . . . . . . . . 496 18.3.7. Squid y otros programas . . . . . . . . . . . . . . . . . . 499 18.3.8. Informacin adicional sobre Squid . . . . . . . . . . . . 504 19. Seguridad en la red 505

19.1. Cortafuegos y masquerading . . . . . . . . . . . . . . . . . . . 506 19.1.1. Fundamentos del masquerading . . . . . . . . . . . . . 507 19.1.2. Fundamentos del cortafuegos . . . . . . . . . . . . . . . 508 19.1.3. SuSErewall2 . . . . . . . . . . . . . . . . . . . . . . . . 509 19.2. SSH secure shell, la alternativa segura . . . . . . . . . . . . . 513 19.2.1. El paquete OpenSSH . . . . . . . . . . . . . . . . . . . . 513 19.2.2. El programa ssh . . . . . . . . . . . . . . . . . . . . . . . 514

SUSE LINUX Manual de Administracin

xvii

19.2.3. scp copiar de forma segura . . . . . . . . . . . . . . . 514 19.2.4. sftp - transmisin segura de datos . . . . . . . . . . . . 515 19.2.5. El daemon SSH (sshd) el lado del servidor . . . . . . 515 19.2.6. Mecanismos de autenticacin de SSH . . . . . . . . . 517 19.2.7. X, autenticacin remota y mecanismos de reenvo . . 518 19.3. Autenticacin en la red Kerberos . . . . . . . . . . . . . . . 519 19.3.1. Terminologa de Kerberos . . . . . . . . . . . . . . . . . 520 19.3.2. Cmo funciona? . . . . . . . . . . . . . . . . . . . . . . 521 19.3.3. Efectos de Kerberos a nivel de usuario . . . . . . . . . . 524 19.3.4. Informacin adicional sobre Kerberos . . . . . . . . . . 525 19.4. Instalacin y administracin de Kerberos . . . . . . . . . . . . 526 19.4.1. Eleccin de Realms en Kerberos . . . . . . . . . . . . . 526 19.4.2. Conguracin del hardware KDC . . . . . . . . . . . . 527 19.4.3. Sincronizacin del reloj . . . . . . . . . . . . . . . . . . 529 19.4.4. Conguracin del registro . . . . . . . . . . . . . . . . . 530 19.4.5. Instalacin del KDC . . . . . . . . . . . . . . . . . . . . 530 19.4.6. Conguracin de clientes Kerberos . . . . . . . . . . . . 533 19.4.7. Conguracin de la administracin remota . . . . . . . 536 19.4.8. Creacin de principales de host en Kerberos . . . . . . 538 19.4.9. Activacin del soporte PAM para Kerberos . . . . . . . 539 19.4.10.Conguracin de SSH para utilizar Kerberos . . . . . . 540 19.4.11.Utilizacin de LDAP y Kerberos . . . . . . . . . . . . . 541 19.5. La seguridad, una cuestin de conanza . . . . . . . . . . . . . 544 19.5.1. Conceptos bsicos . . . . . . . . . . . . . . . . . . . . . 544 19.5.2. Seguridad local y seguridad en la red . . . . . . . . . . 545 19.5.3. Trucos y consejos: indicaciones generales . . . . . . . . 554 19.5.4. Informe a SuSE sobre nuevos problemas de seguridad 557

Anexo

559
561

A. Sistemas de archivos en Linux

xviii

ndice general

B. Listas de control de acceso (ACLs) en Linux C. Pgina man de e2fsck D. Pgina man de reiserfsck E. Traduccin en castellano de la licencia pblica general GNU (GPL) Bibliografa

573 587 593

597 607

SUSE LINUX Manual de Administracin

xix

Prefacio

El Manual de Administracin de SUSE LINUX le proporciona infomacin general sobre el funcionamiento de su sistema SUSE LINUX. Este libro le ser de gran utilidad a la hora de administrar sistemas Linux, mostrndole desde los fundamentos de los sistemas de archivos hasta la conguracin del kernel, desde los procesos de arranque hasta la conguracin de mecanismos de autenticacin o del servidor web Apache. El Manual de Administracin de SUSE LINUX est estructurado en cinco secciones principales: Instalacin Informacin detallada sobre variantes especiales de la instalacin, actualizacin, LVM y RAID. . . Conguracin Conguracin del cargador de arranque y del sistema X Window, funcionamiento de la impresora y uso de dispositivos porttiles con Linux. . . El sistema Particularidades de un sistema SUSE LINUX, informacin detallada sobre el kernel, el concepto de arranque y el proceso de inicio. . . La red Integracin en redes (heterogneas), puesta en marcha de un servidor web Apache, sincronizacin de archivos y aspectos de seguridad. . . Anexo Sistemas de archivos y listas de control de acceso (ACLs). Las versiones digitales de los manuales de SUSE LINUX se encuentran en el directorio /usr/share/doc/manuals/.

Novedades en el Manual de Administracin


A continuacin le presentamos los cambios que se han producido con respecto a la documentacin de la versin anterior (SUSE LINUX 9.0): El captulo sobre el uso de dispositivos porttiles con Linux ha sido ampliado con una amplia seccin dedicada a la utilizacin de Bluetooth (seccin 8.4 en la pgina 230). En el captulo correspondiente a la Gestin de energa se ha ampliado la informacin disponible sobre el paquete powersave ( secciones 9.5 en la pgina 252 y 9.6 en la pgina 260. El captulo El servidor web Apache ha sido actualizado con respecto al uso de Apache 2 (captulo 15 en la pgina 409). El captulo Samba ha sido actualizado en cuanto al empleo de Samba 3 (captulo 17.1 en la pgina 458). El captulo dedicado a la impresin se ha optimizado en lo referente al uso de CUPS (captulo 5 en la pgina 97). El captulo El sistema X Window cuenta con una nueva seccin sobre los tipos de letra en SUSE LINUX (seccin 4.2 en la pgina 86).

Convenciones tipogrcas
En este manual se utilizan las siguientes convenciones tipogrcas: YaST: nombre de un programa. /etc/passwd: indica un archivo o directorio. Comodn : secuencia de caracteres que debe sustituirse por el valor real. PATH: variable de entorno con el nombre PATH. ls: comando. --help: opciones y parmetros.

ndice general

user: usuario. Alt : tecla que debe pulsarse. Datei: opciones del men, botones. "Process killed": mensajes del sistema.

Agradecimientos
Desarrolladores de Linux de todo el mundo colaboran de forma desinteresada para impulsar la evolucin de este sistema operativo. Les damos las gracias por su dedicacin, sin la cual no sera posible esta distribucin. Tambin nos gustara darles las gracias a Frank Zappa y Pawar. Por ltimo, no queremos dejar de expresar nuestro ms sincero agradecimiento a L INUS T ORVALDS Have a lot of fun! Su equipo SUSE

SUSE LINUX Manual de Administracin

Parte I Instalacin

1
La instalacin

La instalacin

SUSE LINUX puede instalarse de forma exible atendiendo a las necesidades individuales; las modalidades varan desde una instalacin rpida en modo grco hasta una instalacin en modo texto donde se permite la interaccin manual. A continuacin encontrar informacin sobre la distintas opciones de instalacin, como por ejemplo la instalacin en modo texto con YaST o el uso de diferentes medios de instalacin (CD-ROM, NFS). En este captulo se incluyen consejos respecto a problemas en la instalacin as como instrucciones para solucionarlos. Al nal del captulo encontrar una seccin que describe en detalle el proceso de particionamiento.

1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 1.7. 1.8. 1.9.

Instalacin en modo texto con YaST . . . . . . . Iniciar SUSE LINUX . . . . . . . . . . . . . . . Instalaciones especiales . . . . . . . . . . . . . . Consejos y trucos . . . . . . . . . . . . . . . . . Un lector CD-ROM ATAPI se traba leyendo . . Asignacin de nombres a los dispositivos SCSI Particionar para usuarios avanzados . . . . . . Conguracin de LVM con YaST . . . . . . . . Soft-RAID . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

8 15 17 19 24 25 25 31 39

Atencin
En este manual de administracin solamente puede encontrar opciones especiales de instalacin. La descripcin detallada de la instalacin grca estndar se encuentra al inicio del manual del usuario.

Atencin

1.1.
1.1.1.

Instalacin en modo texto con YaST


Informacin general

Adems de la instalacin con interfaz grca tambin existe la posibilidad de instalar SUSE LINUX mediante los mens de texto de YaST (modo de consola). Todos los mdulos YaST se encuentran disponibles tambin en modo texto. El modo texto se puede emplear sobre todo si no existe necesidad de un entorno grco (sistemas de servidor) o si la tarjeta grca no est soportada por el sistema X Window. Las personas ciegas que no pueden prescindir de una interfaz textual por supuesto tambin emplearn este modo texto.

1.1.2.

La pantalla de bienvenida

En primer lugar debe denir el orden de arranque en la BIOS del ordenador de tal forma que el sistema se inicie desde la unidad de CD-ROM. Introduzca el DVD o CD1 en la unidad correspondiente y reinicie el ordenador. Al cabo de unos instantes aparece la pantalla de bienvenida. Tiene 10 segundos para elegir Manual Installation con las teclas y para que YaST no arranque automticamente. Indique en la lnea boot options los parmetros de arranque que su hardware pudiera requerir. Normalmente no es necesario indicar parmetros especiales. Con el parmetro textmode=1 puede hacer que se utilice YaST en modo texto. A la hora de introducir texto, tenga en cuenta que en esta fase del proceso de arranque estar trabajando con un teclado norteamericano. La tecla F2 (Video mode) le permite denir la resolucin de pantalla para la instalacin. Si la tarjeta grca le ocasiona problemas durante la instala cin, pulse Text mode para acceder al modo texto. Finalmente pulse Intro .

1.1. Instalacin en modo texto con YaST

A continuacin aparece una ventana con la indicacin de progreso "Loading Linux kernel", tras lo que se arranca el kernel y se inicia linuxrc. El programa linuxrc est basado en mens y espera las indicaciones del usuario. Posibles problemas El resto de problemas durante el arranque suelen poder evitarse con parmetros del kernel. Para aquellos casos en los que DMA sea causa de problemas, se ofrece la opcin de inicio Installation - Safe Settings. Si su unidad de CD-ROM (ATAPI) se cuelga al arrancar el sistema, consulte por favor el apartado 1.5 en la pgina 24. En caso de dicultades con ACPI (Advanced Conguration and Power Interface), puede utilizar los siguientes parmetros del kernel: acpi=off Este parmetro apaga completamente el sistema ACPI. Esta opcin puede resultar til en caso de que su ordenador no disponga de soporte ACPI o si usted cree que la implementacin de ACPI es fuente de problemas. acpi=oldboot Apaga el sistema ACPI casi por completo y slo utiliza los elementos necesarios para el arranque. acpi=force Activa ACPI incluso si su ordenador est equipado con un BIOS anterior a 2000. Este parmetro sobreescribe acpi=off. pci=noacpi Este parmetro apaga el PCI IRQ-Routing de sistemas ACPI nuevos. Vase tambin el artculo de la base de datos de soporte: http:// portal.suse.de/sdb/en/2002/10/81_acpi.html Con tarjetas grcas como FireGL 1, 2 o 3 no se puede arrancar en modo grco. En este caso hay que realizar la instalacin en modo texto. Por lo tanto, seleccione F2=Text el men de arranque. en Escoja la opcin Memory Test, para comprobar el estado de la memoria, cuando aparezcan problemas inexplicables al cargar el kernel o durante la instalacin. Linux plantea grandes exigencias al hardware y a la memoria, por lo que el timing debe congurarse sin ningn fallo! Ms informacin en:

1
La instalacin
9

SUSE LINUX Manual de Administracin

http://portal.suse.de/sdb/en/2001/05/thallma_ memtest86.html Se recomienda realizar la prueba de memoria por la noche.

1.1.3. La base: linuxrc


Con el programa linuxrc puede realizar ajustes para la instalacin, y cargar los controladores que necesite como mdulos de kernel. Al nal linuxrc arrancar el programa de instalacin YaST y puede comenzar la verdadera instalacin del software de sistema y de las aplicaciones. y se Con selecciona un punto de men, y con selecciona y se Intro se un comando como Aceptar o Cancelar. Con ejecuta el comando. Una descripcin detallada de linuxrc se encuentra en el apartado 12.4 en la pgina 294. Conguracin El programa linuxrc se inicia automticamente con la seleccin del idioma y de la distribucin del teclado.

Figura 1.1: Seleccin del idioma

Elija un idioma para la instalacin (por ejemplo Espaol) y conrme Intro . con

10

1.1. Instalacin en modo texto con YaST

Seleccione la distribucin del teclado (por ejemplo Espaol). Posibles problemas linuxrc no ofrece la distribucin del teclado deseada. En este caso seleccione primero una distribucin alternativa (en caso de dudas English (US): despus de la instalacin puede cambiar a la distribucin exacta mediante YaST. Men principal de linuxrc Ahora nos encontramos en el men principal de linuxrc (gura 1.2).

1
La instalacin

Figura 1.2: Men principal de linuxrc Aqu aparecen las siguientes opciones: Conguracin Aqu puede seleccionar el idioma, la pantalla o el teclado. Informacin del sistema En este punto hay gran cantidad de informacin sobre el hardware, siempre que este haya sido detectado por el kernel o accedido por mdulos ya cargados. Mdulos del kernel (drivers) Aqu debe cargar los mdulos adecuados para su hardware. Adems es posible optar por un sistema de archivos alternativo como ReiserFS.

SUSE LINUX Manual de Administracin

11

Por regla general no es necesario elegir este punto de men si tanto los discos duros como la unidad de CD-ROM (ATAPI) estn conectados a una controladora (E)IDE, ya que el soporte para (E)IDE est integrado en el kernel. Puede encontrar ms informacin sobre la seleccin de mdulos en la siguiente seccin. Iniciar la instalacin / Sistema Aqu se pasa a la verdadera instalacin.

Salir/Reiniciar Por si ha cambiado de idea. . . Apagar Para parar y apagar el sistema. La integracin de hardware mediante mdulos La carga de mdulos adicionales mediante la opcin Mdulos del kernel (drivers), se requiere para habilitar caractersticas especiales del sistema, como el soporte para SCSI, tarjetas red o PCMCIA o en caso de no tener un lector de CDs tipo ATAPI. ltimamente tambin se han modularizado componentes como IDE y aadido otros nuevos como por ejemplo USB, FireWire o sistemas de cheros. La carga de mdulos se explica en el apartado 12.4 en la pgina 294. En el siguiente submen se indica la razn por la que se deben cargar los mdulos. Existen las siguientes posibilidades: Un mdulo SCSI Para un disco duro SCSI o un lector CD-ROM de este tipo. Un mdulo CD-ROM Si el lector CD-ROM no est conectado a la controladora (E)IDE ni a la controladora SCSI. Esto afecta sobre todo a unidades antiguas de CD-ROM conectadas al ordenador a travs de una controladora propietaria. Un mdulo de red En el caso de que se realice la instalacin a travs de NFS o FTP; vase a este respecto el apartado Instalacin desde una fuente en la red. Uno o varios sistemas de cheros por ejemplo ReiserFS o ext3.

12

1.1. Instalacin en modo texto con YaST

Atencin
Si no se encuentra soporte para el medio de instalacin usado (tarjeta PCMCIA, tarjeta de red, lector CD-ROM en controladora propietaria o en puerto paralelo) dentro de los mdulos estndar, se puede recurrir a los controladores adicionales de un disquete de mdulos. La creacin de tal disquete est explicada en 1.4 en la pgina 19. Dirjase al nal de la lista,y seleccione all la opcin -- Otros mdulos --; linuxrc pide en este caso el disquete de mdulos.

1
La instalacin
Atencin

Iniciar instalacin Como generalmente ya est seleccionado Iniciar la instalacin / Sistema, slo tiene que pulsar Intro para llegar a la autntica instalacin.

Figura 1.3: Men de instalacin de linuxrc Aqu puede elegir entre los siguientes puntos: Comenzar la instalacin/actualizacin Supuestamente la opcin que elegir ahora. Iniciar el sistema instalado Puede recurrir a este punto ms adelante si se presentan problemas con el cargador de arranque.

SUSE LINUX Manual de Administracin

13

Iniciar sistema de rescate Aqu puede iniciar un sistema de rescate que le ayudar en caso de problemas serios con el sistema instalado. Expulsar CD Expulsar el CD de la unidad de CD. Para acceder a la instalacin pulse ahora el punto de men CoIntro con menzar la instalacin/actualizacin seleccionado. Despus tiene que elegir el medio fuente; generalmente no hace falta hacer ms que dejar el cursor en la preseleccin: CD-ROM.

Figura 1.4: Seleccionar el medio fuente en linuxrc Pulse ahora inicia el entorno de instalacin directamente del CD 1 Intro . Se o del DVD. En cuanto haya terminado este proceso, se inicia YaST en modo texto (ncurses) y se inicia la instalacin. Posibles problemas No se detecta la controladora SCSI conectada: Intente cargar el mdulo de un controlador compatible. Emplee un kernel que tenga integrado el controlador SCSI correspondiente. Un kernel de estas caractersticas debe ser creado por usted. La unidad de CD (ATAPI) se cuelga al leer: ver apartado 1.5 en la pgina 24.

14

1.1. Instalacin en modo texto con YaST

En ocasiones pueden darse problemas al cargar los datos al disco RAM, dando como resultado que no se pueda cargar YaST. En la mayora de los casos con el procedimiento siguiente se obtiene una conguracin que se pueda usar: Seleccione en el men principal de linuxrc Conguracin -> Debug (expertos); all asigne a Cargar imagen raz (rootimage) (force root image) el valor no. Vuelva al men principal y reinicie la instalacin.

1
La instalacin

1.2. Iniciar SUSE LINUX


Una vez completada la instalacin, slo queda decidir cmo quiere arrancar Linux en el da a da. A continuacin le ofrecemos un resumen de las distintas alternativas para iniciar Linux. La decisin de cul de estos mtodos de inicio es el ms adecuado para usted, depende sobre todo del propsito previsto. Disquete de arranque Arrancar Linux con el disquete de arranque. Esta posibilidad siempre funciona y no representa ningn trabajo. El disquete de arranque puede generarse con YaST; vase [1] captulo YaST Conguracin, seccin Crear un disco de arranque, rescate o mdulos. El disquete de arranque es tambin una buena solucin intermedia si no se tiene en el momento otra posibilidad o si se preere postergar la decisin sobre el tema del arranque. Asimismo, el uso del disquete de arranque puede resultar muy til si no desea reescribir el cargador de arranque de otro sistema operativo. Linux Bootloader La solucin ms limpia desde un punto de vista tcnico y ms universal, es el uso de un gestor de arranque de Linux, como GRUB (GRand Unied Bootloader) o LILO (LInux LOader), que permiten seleccionar entre distintos sistemas operativos antes de arrancar. El gestor de arranque se puede instalar directamente durante la primera instalacin de sistema o bien ms tarde, por ejemplo mediante YaST.

SUSE LINUX Manual de Administracin

15

Aviso
Existen algunas versiones de la BIOS que comprueban la estructura del sector de arranque (MBR) y que emiten por equivocacin la advertencia de presencia de virus despus de la instalacin de GRUB o LILO. Lo ms sencillo para resolverlo es entrar en la BIOS y tratar de desactivar la proteccin antivirus (Virus Protection). Una vez que Linux est instalado es posible activar esta caracterstica de nuevo, pero si se usa el ordenador exclusivamente con Linux tampoco hace falta.

Aviso
Se puede encontrar una amplia explicacin sobre los diferentes mtodos de arranque y en especial sobre GRUB y LILO en el captulo 7 en la pgina 187 y siguientes.

1.2.1.

La pantalla grca de SUSE

Desde la versin SUSE LINUX 7.2 aparece una pantalla grca con el logotipo de SUSE en la consola 1 si como parmetro del kernel se ha activado la opcin vga=<valor>. En la instalacin con YaST esta opcin es anotada automticamente en correspondencia con la resolucin seleccionada y la tarjeta grca empleada. Desactivar la pantalla de SUSE En principio existen tres posibilidades diferentes: Desactivar la pantalla de SUSE cuando sea necesario. Para realizarlo se ha de teclear en la lnea de comandos: echo 0 >/proc/splash. As se desactiva la pantalla grca. Con el comando echo 0x0f01 >/proc/splash vuelve a encenderse de nuevo. Desactivar la pantalla de SUSE por defecto: Para realizarlo se ha de aadir el parmetro de kernel splash=0 a la conguracin del gestor de arranque. En el captulo 7 en la pgina 187 encontrar ms informacin. Para trabajar en el modo texto habitual de las versiones anteriores de SUSE LINUX se puede escribir vga=normal. Desactivar la pantalla SUSE denitivamente: Esta desactivacin se realiza compilando un kernel nuevo. En la conguracin del kernel se ha de desactivar la opcin Use splash screen instead of boot logo en del men frame-buffer support.

16

1.2. Iniciar SUSE LINUX

Atencin
Al desactivar el soporte de framebuffer dentro del kernel, la pantalla de bienvenida o splash screen se desactiva automticamente. SUSE no ofrece ningn soporte en caso de haber compilado un kernel propio!

1
La instalacin
Atencin

1.3.
1.3.1.

Instalaciones especiales
Instalacin sin lector CD-ROM soportado

Qu hacer si no es posible efectuar una instalacin estndar a travs de un lector CD-ROM? El lector CD-ROM podra ser uno de los modelos propietarios antiguos para los que no siempre existe soporte. Tambin es posible que no se tenga una unidad CD-ROM en un segundo ordenador (por ejemplo un porttil) pero que s se tenga una tarjeta Ethernet. SUSE LINUX ofrece tambin la posibilidad de instalar el sistema en un ordenador sin soporte CD-ROM pero con una conexin de red Ethernet. En estos casos se suele utilizar NFS o FTP va Ethernet, que ser lo que se describa a continuacin.

1.3.2.

Instalacin desde una fuente en la red

El soporte no cubre esta va de instalacin, por lo que slo los usuarios experimentados deberan usar este mtodo. Para instalar SUSE LINUX a travs de una fuente en la red, son necesarios dos pasos: 1. Depositar los datos necesarios para la instalacin (CDs, DVD) en un ordenador que actuar posteriormente como fuente de la instalacin. 2. Arrancar el sistema que se va a instalar con un disquete o CD y congurar la red.

SUSE LINUX Manual de Administracin

17

Crear una fuente de instalacin en la red Para crear el recurso compartido de red, copie los CDs de instalacin a directorios individuales y guarde estos en un sistema con prestaciones de servidor NFS. Por ejemplo, puede utilizar el siguiente comando para copiar cada CD en un ordenador con SUSE LINUX: cp -a /mnt/cdrom /suse-share/. Despus cambie el nombre del directorio (por ejemplo a CD1): mv /suse-share/cdrom /suse-share/CD1. Repita este procedimiento para el resto de CDs. Finalmente, liberalice el directorio /suse-share mediante NFS ; vase la seccin 14.9 en la pgina 394. Arrancar para instalar a travs de la red Introduzca el medio de arranque en la unidad correspondiente. En las secciones 1.4.1 en la pgina siguiente y 1.4.2 en la pgina 21 se describe cmo crear un disquete de arranque. Poco despus aparecer el men de arranque. Seleccione aqu la entrada Instalacin Manual. En este punto tambin puede aadir parmetros para la instalacin. Conrme la seleccin con kernel se cargar y se le pedir que introduzca el primer disIntro . El quete de mdulos. A continuacin aparece linuxrc y tendr que denir algunos parmetros: 1. Seleccione el idioma y la distribucin del teclado en linuxrc. 2. Seleccione Mdulos del kernel (controladores de hardware). 3. Si su sistema lo requiere, cargue los controladores IDE, RAID o SCSI necesarios. 4. Seleccione Cargar controlador de red y cargue el controlador de red necesario en su caso (por ejemplo eepro100). 5. Seleccione Cargar controlador para el sistema de archivos y cargue el controlador requerido (por ejemplo reiserfs). 6. Seleccione Atrs y a continuacin Iniciar instalacin / sistema. 7. Seleccione Iniciar instalacin / actualizacin. 8. Seleccione Red y NFS como protocolo de red. 9. Seleccione la tarjeta de red que quiere utilizar. 10. Introduzca las direcciones IP y la informacin adicional de red.

18

1.3. Instalaciones especiales

11. Introduzca la direccin IP del servidor NFS que proporciona los datos para la instalacin. 12. Introduzca la ruta al recurso compartido NFS (por ejemplo /suseshare/CD1). linuxrc carga de la fuente de red el entorno de instalacin y a continuacin inicia YaST. Finalice la instalacin como se describe en [1], Captulo Instalacin. Posibles problemas La instalacin termina antes de haber comenzado realmente: El directorio de instalacin del otro ordenador no se ha sido exportado con derechos de ejecucin (exec) modifquelo. El servidor desconoce en qu ordenador se ha de instalar SUSE LINUX. Introduzca en el archivo /etc/hosts del servidor, el nombre y la direccin IP del nuevo ordenador.

1
La instalacin

1.4.
1.4.1.

Consejos y trucos
Crear un disquete de arranque bajo DOS

Se requieren disquetes HD de 3.5 pulgadas formateados y una disquetera correspondiente que permita el arranque. En el directorio boot del CD 1 se encuentran algunas representaciones o imgenes (images) de disquetes (images). Estas imgenes pueden copiarse en disquetes utilizando los programas de ayuda adecuados. Las disquetes pasan a llamarse entonces disquetes de arranque. Estas imgenes de disquete contienen tambin el cargador o loader Syslinux y el programa linuxrc. El programa Syslinux permite seleccionar un kernel durante el arranque y pasar parmetros al hardware. El programa linuxrc presta asistencia cuando se cargan mdulos del kernel especiales para el hardware y nalmente inicia la instalacin. Crear disquetes de arranque con rawwritewin El programa grco rawwritewin le permite crear disquetes de arranque en Windows. Encontrar este programa en el CD 1 de Windows en el directorio dosutils/rawwritewin/.

SUSE LINUX Manual de Administracin

19

Una vez iniciado el programa ha de introducir el archivo imagen (image le). Dichas imgenes se encuentran tambin en el CD1 en el directorio boot. Como mnimo necesitar introducir las imgenes bootdisk y modules1. Para ver estas imgenes con el navegador de archivos deber cambiar el tipo de archivo a All les. Despus introduzca un disquete en la disquetera y pulse write. Para crear ms disquetes, simplemente repita este procedimiento las veces necesarias. Crear disquetes de arranque con rawrite Para crear los disquetes de arranque y de los mdulos se usa el programa DOS rawrite.exe (CD 1, directorio dosutils\rawrite). Para esto se necesita un ordenador con DOS (por ejemplo FreeDOS) o Windows instalado. A continuacin se describen los pasos que tiene que seguir si trabaja con Windows: 1. Introduzca el CD 1 de SUSE LINUX. 2. Abra una ventana de DOS (en el men Start bajo Programas -> MSDOS Prompt). 3. Ejecute el programa rawrite.exe con la ruta correcta del lector de CD. En el siguiente ejemplo Usted se encuentra en el disco duro C:, en el directorio Windows y el lector de CD tiene asignada la letra D:.
C:\Windows: d:\dosutils\rawrite\rawrite

4. Despus de arrancar, el programa solicita el tipo de fuente (source) y el destino (destination) del archivo a copiar. En nuestro ejemplo se trata del disquete de arranque que pertenece a nuestro juego de CDs cuya imagen se encuentra en el CD 1 en el directorio boot/. El nombre de archivo es sencillamente bootdisk. No olvide indicar aqu tambin la ruta del lector de CD.
C:\Windows: d:\dosutils\rawrite\rawrite RaWrite 1.2 - Write disk file to raw floppy diskette Enter source file name: d:\boot\bootdisk Enter destination drive: a:

20

1.4. Consejos y trucos

Despus de indicar como destino a: rawrite le solicita introducir un dis quete formateado y pulsar Enter continuacin se muestra el progreso .A del proceso de copiar. Es posible interrumpir la accin pulsando Ctrl + c . De la misma manera puede crear los otros disquetes modules1, modules2, modules3 y modules4. Los necesita si tiene dispositivos SCSI, USB, una tarjeta de red o una tarjeta PCMCIA, y quiere acceder a estos durante el proceso de instalacin. El disquete de mdulos puede resultar tambin muy til si quiere utilizar un sistema de archivos especial ya durante la instalacin.

1
La instalacin

1.4.2. Crear un disquete de arranque bajo un sistema tipo Unix


Requisitos Dispone de un sistema Linux o tipo Unix equipado con un lector CD-ROM; adems se necesita un disquete libre de errores (formateado). Para crear el disquete de arranque se procede de la siguiente manera: 1. Si an falta formatear el disquete:
fdformat /dev/fd0u1440

2. Montar el CD 1; por ejemplo en /media/cdrom:


mount -tiso9660 /dev/cdrom /media/cdrom

3. Cambiar al directorio boot en el CD:


cd /media/cdrom/boot

4. Generar el disquete de arranque con:


dd if=/media/cdrom/boot/bootdisk of=/dev/fd0 bs=8k

En el archivo README en el directorio boot puede encontrar ms informacin sobre las imgenes de disquetes. Puede visualizar este archivo con more o less. De la misma manera puede crear los otros disquetes modules1, modules2, modules3 y modules4. Los necesita si tiene dispositivos SCSI, USB, una tarjeta red o PCMCIA y quiere acceder a estos durante el proceso de instalacin. El disquete de mdulos puede resultar tambin muy til si quiere utilizar un sistema de archivos especial durante la instalacin.

SUSE LINUX Manual de Administracin

21

El asunto se complica un poco si durante la instalacin se quiere utilizar un kernel que ha compilado usted mismo. En este caso se copia primero la imagen estndar (bootdisk) en el disquete y se sobreescribe el kernel del disquete (linux) con el kernel propio (vase el apartado 11.6 en la pgina 278):
dd if=/media/cdrom/boot/bootdisk of=/dev/fd0 bs=8k mount -t msdos /dev/fd0 /mnt cp /usr/src/linux/arch/i386/boot/vmlinuz /mnt/linux umount /mnt

1.4.3.

Arrancar con un disquete (SYSLINUX)

El disquete de arranque puede utilizarse siempre que existan requisitos especiales a la hora de realizar la instalacin (por ejemplo unidad de CDROM no disponible). Para ver cmo se crea un disquete de arranque, consulte las secciones 1.4.1 en la pgina 19 o 1.4.2 en la pgina anterior. El proceso de arranque es iniciado por el cargador de arranque SYSLINUX (paquete syslinux). SYSLINUX est congurado de tal modo que durante el arranque se lleva a cabo una pequea deteccin de hardware. Esta consta bsicamente de los siguientes pasos: Comprobar si la BIOS soporta un framebuffer adecuado para VESA 2.0 y si el kernel puede arrancarse en consecuencia. Evaluar los datos del monitor (informacin DDC). Se lee el primer bloque del primer disco duro (MBR) para denir posteriormente la asignacin de BIOS IDs a los nombres de dispositivos Linux (devices) durante la conguracin de LILO. Durante este procedimiento se intenta leer el bloque a travs de las funciones lba32 de la BIOS para ver si la BIOS soporta estas funciones.

Atencin
Si la tecla Mays o Shift pulsada durante el inicio de SYSLINUX, est se saltar estos pasos. Para facilitar la bsqueda de errores es posible insertar la lnea
verbose 1

en el archivo syslinux.cfg. De esta forma el cargador de arranque siempre informa sobre qu accin se va a llevar a cabo a continuacin.

Atencin
22 1.4. Consejos y trucos

Posibles problemas Si el ordenador no quiere arrancar desde el disquete, puede que tenga que cambiar previamente el orden de arranque en la BIOS a A,C,CDROM.

1
La instalacin

1.4.4.

Arrancar con el CD 2

Adems de con el CD 1, tambin es posible arrancar con el segundo CD. Mientras que el CD 1 trabaja con una imagen ISO arrancable, el CD 2 arranca mediante una imagen de disco de 2,88 MB. Utilice el CD 2 en aquellos casos en los que sabe que, aunque se puede arrancar desde un CD, no es posible hacerlo con el CD 1 (solucin alternativa o fallback).

1.4.5.

Soporta Linux mi lector CD-ROM?

Se puede decir que, por lo general, Linux soporta la mayora de los lectores CD-ROM. No se debe presentar ningn problema usando lectores del tipo ATAPI. En el caso de lectores tipo SCSI slo importa que la controladora SCSI, que lleva la conexin al CD-ROM, sea soportada por Linux. Hay una lista de controladoras soportadas en la base de datos de componentes CDB. Si no encuentra soporte para su controladora SCSI y el disco duro est conectado a la misma, entonces tiene un problema . . . Tambin hay muchos lectores CD-ROM propietarios que funcionan con Linux. No obstante, pueden presentarse problemas con este grupo de dispositivos. Si no se menciona explcitamente su lector, se puede probar con uno similar del mismo fabricante. Los lectores CD-ROM USB tambin estn soportados. Si la BIOS de su ordenador todava no soporta el arranque de dispositivos USB, debe iniciar la instalacin a travs de un disquete de arranque. Puede encontrar ms informacin al respecto en la seccin 1.4.3 en la pgina anterior. Antes de arrancar desde el disquete, asegrese de que los dispositivos USB estn conectados y encendidos.

SUSE LINUX Manual de Administracin

23

1.5.

Un lector CD-ROM ATAPI se traba leyendo

Si un lector CD-ROM ATAPI no es detectado correctamente o se traba leyendo, en muchos casos se debe a un fallo en la conguracin de los componentes. Normalmente todos los dispositivos que se conectan al bus (E)IDE deben estar conectados en la, es decir, que el primer dispositivo es el master en el primer canal y el segundo es el esclavo. El tercer dispositivo debe ser entonces master en el segundo canal y el cuarto all el esclavo. Muy a menudo un ordenador solamente tiene junto al disco duro una unidad de CD-ROM conectada como master en el segundo canal. En algunas ocasiones Linux no maneja bien este vaco. No obstante, casi siempre es posible ayudar al kernel introduciendo un parmetro adicional (hdc=cdrom. Tambin puede ocurrir que un dispositivo tenga los jumpers mal colocados; esto quiere decir que est congurado como esclavo pero se encuentra como master en el segundo canal o viceversa. En caso de duda es recomendable comprobar y eventualmente corregir esta conguracin. Adems existe una serie de chipsets EIDE defectuosos que en gran parte ya se conocen y para los que el kernel ya contiene cdigo para solventar posibles problemas. Existe un kernel especial para estos casos (ver el README en /boot del CD-ROM de instalacin). Si no se puede arrancar en un principio, se puede probar con los siguientes parmetros del kernel: hdx=cdrom x representa a a, b, c, d etc. y tiene el siguiente signicado: a maestro en la 1 controladora IDE b esclavo en la 1 controladora IDE c maestro en la 2 controladora IDE ... hdb=cdrom es un ejemplo de parmetro a introducir. Con este parmetro se puede indicar al kernel donde est el lector CD-ROM del tipo ATAPI, si es que el kernel no lo encuentra por s mismo. idex=noautotune x representa a 0, 1, 2, 3 etc. y tiene el siguiente signicado: 0 1 controladora IDE

24

1.5. Un lector CD-ROM ATAPI se traba leyendo

1 2 controladora IDE ... ide0=noautotune es un ejemplo de parmetro a introducir. Este parmetro ayuda normalmente en combinacin con discos duros del tipo (E)IDE.

1
La instalacin

1.6.

Asignacin de nombres de dispositivo permanentes a los dispositivos SCSI

Los dispositivos SCSI tales como las particiones del disco duro reciben de forma ms o menos dinmica nombres de archivo de dispositivo durante el arranque. Esto no supone ningn problema siempre que no se modique el nmero o la conguracin del dispositivo. No obstante, si se incorpora al sistema un nuevo disco duro SCSI y el kernel lo detecta antes del disco duro que ya exista, el antiguo disco duro recibe un nuevo nombre y ya no concuerda con las entradas de la tabla /etc/fstab. Para evitar este problema se puede emplear boot.scsidev. boot. scsidev se encarga de congurar los dispositivos SCSI durante el arranque e introduce en el archivo /dev/scsi/ nombres de dispositivo permanentes que pueden utilizarse tambin en la tabla /etc/fstab. En el modo experto del editor de niveles de ejecucin, debe activar boot. scsidev para la fase B a n de que se creen en /etc/init.d/boot.d los enlaces necesarios para que los nombres permanentes sean generados durante el proceso de arranque.

1.7.

Particionar para usuarios avanzados

En el captulo de instalacin estndar (vase [1]) se ha comentado brevemente cmo particionar el sistema. El presente apartado quiere proporcionar informacin detallada con la cual se pueda crear un esquema de particin optimizado para el sistema.

SUSE LINUX Manual de Administracin

25

Es adems especialmente interesante para aquellos que quieran congurar el sistema de manera ptima en trminos de seguridad y velocidad y que estn dispuestos segn las circunstancias a crear todo desde cero. Es fundamental entender cmo funciona un sistema de archivos UNIX. En particular hay que estar familiarizado con los conceptos de punto de montaje (mountpoint), particiones lgicas y extendidas. Como primer paso, se debe reunir la siguiente informacin: Para qu va a usar su mquina (servidor de archivos, servidor de aplicaciones Compute-Server, estacin de trabajo)? Cuntas personas trabajarn en el ordenador (contado en logins simultneos)? Cuntos discos duros tiene el ordenador, qu tamao tienen y qu tipo de interfaz (EIDE, SCSI o una controladora RAID)?

1.7.1. El tamao de la particin de intercambio (swap)


Todava se puede leer en muchos sitios: La cantidad de swap debe ser como mnimo el doble de la de RAM. Esta regla pertenece a la poca en la cual 8 MB de RAM eran suciente. De esta forma se obtena un ordenador con cerca de 30 a 40 MB de memoria virtual, es decir, de RAM ms swap. Con las aplicaciones modernas hay que corregir estos valores hacia arriba. Como valor indicativo, a un usuario normal le bastar con 256 MB de memoria virtual a medio plazo. Lo que no se debera hacer, bajo ningn pretexto, es no proporcionar ningn tipo de memoria swap.

1.7.2. Formas de uso del ordenador


Como estacin de trabajo autnoma Este es el tipo de uso ms frecuente de un ordenador con Linux. Para poder orientarse con valores concretos, hemos compilado un par de conguraciones de ejemplo que puede utilizar en casa o en la ocina. Los espacios requeridos para un determinado tipo de instalacin se encuentran en la tabla 1.1 en la pgina siguiente.

26

1.7. Particionar para usuarios avanzados

Cuadro 1.1: Ejemplos de tamaos de instalacin Instalacin muy pequea pequea mediana grande Espacio necesario en disco 180 MB hasta 400 MB 400 MB hasta 1500 MB 1500 MB hasta 4 GB ms de 4 GB

1
La instalacin

Estacin de trabajo estndar (pequea) Le sobra un disco duro de alrededor de 500 MB y lo quiere usar para Linux. En este caso genere una particin de intercambio (swap) de 64 MB y reserve el resto para la particin root /. Estacin de trabajo estndar (promedio) Le quedan 2 GB libres para Linux. Genere una particin /boot pequea (510 MB o un cilindro), 128 MB para la particin swap, 800 MB para / y deje el resto para una particin /home adicional. Estacin de trabajo (de lujo) En caso de que tenga 2 GB o ms en varios discos, no existe ninguna forma estndar de particionar. A este respecto consulte el apartado 1.7.3 en la pgina siguiente. Como servidor de archivos Aqu todo depende realmente de las prestaciones del disco duro. En todo caso, son preferibles los discos duros tipo SCSI. Tambin vale la pena tener en cuenta la potencia del disco (SCSI, SCSI Ultra Wide, revoluciones, etc.) y de la controladora utilizada. Un servidor de archivos ofrece la posibilidad de almacenar datos de manera centralizada. Se puede tratar de directorios de usuario, de una base de datos o de otros archivos diversos. La ventaja es bsicamente una administracin simplicada. Si el servidor de archivos debe trabajar en una red amplia (a partir de 20 usuarios) la optimizacin del acceso al disco es esencial.

SUSE LINUX Manual de Administracin

27

Supongamos que se quiere congurar un servidor de archivos de base Linux para servir con los directorios personales a 25 usuarios. Se calcula que cada usuario ocupar un mximo de 100-150 MB para sus datos personales. Una particin de 4 GB para montar /home/ ser suciente. Con 50 usuarios, el simple clculo indica que es suciente con una particin de 8 GB. En realidad resulta mejor montar /home en dos discos de 4 GB, porque estos se distribuyen entre s la carga y el tiempo de acceso.

Atencin
La memoria intermedia (cach) de un navegador web se debe encontrar sobre un disco duro local.

Atencin
Uso como servidor Un servidor (compute-server) es generalmente un ordenador potente que se encarga de tareas de clculo complejas en una red. Tpicamente una mquina de estas caractersticas tiene mucha memoria (a partir de 512 MB). El cuello de botella se encuentra aqu, en las particiones de swap. En este caso tambin cuenta que es mejor distribuir varias particiones swap en varios discos.

1.7.3.

Posibilidades de optimizacin

Generalmente los discos duros son el factor limitador. Existen tres posibilidades diferentes (que se deben usar juntas) para evitar posibles problemas: Distribuir la carga de manera equilibrada entre varios discos. Utilizar un sistema de archivos optimizado (por ejemplo reiserfs). Equipar el servidor de archivos con suciente memoria (mnimo 256 MB). Uso de varios discos en paralelo Hay que explicar el primer mtodo con ms detenimiento. El tiempo total que transcurre hasta que se pueden proporcionar los datos pedidos a un disco, consta (aproximadamente) de las siguientes fases: 1. Tiempo que tarda la peticin en llegar hasta la controladora.

28

1.7. Particionar para usuarios avanzados

2. Tiempo que tarda la controladora en enviar la peticin al disco duro. 3. Tiempo que tarda el disco duro en posicionar su cabezal. 4. Tiempo que tarda el medio en girar hacia el sector correcto. 5. Tiempo para la transmisin de los datos. El punto 1 depende de la conexin a la red, se regula all y no nos debe ocupar ahora. El tiempo mencionado en el punto 2 es muy corto y depende de la controladora misma. Los puntos 3 y 4 suelen ser los ms espinosos, ya que se trata de un tiempo que se mide en ms. Comparado con los tiempos de acceso a la memoria RAM, que son del orden de ns, hablamos de un factor de 1 milln(!). El punto 4 depende de las revoluciones del disco y suele sumar varios ms. El punto 5 de esas revoluciones y de la cantidad y posicin actual de los cabezales (en la zona interior o exterior del disco). Lo mejor para un buen rendimiento es por tanto atacar en el punto 3. Los discos del tipo SCSI lo tratan de mejorar mediante la caracterstica disconnect. Esta caracterstica signica ms o menos lo siguiente: La controladora enva al dispositivo conectado (en este caso el disco duro) la orden Ve a la pista x, sector y. Ahora la mecnica del disco duro con toda su inercia se tiene que poner en marcha. Si el disco es inteligente (o maneja disconnect) y el driver de la controladora tambin conoce esta caracterstica, entonces la controladora del disco enva inmediatamente la orden disconnect y el disco se separa del bus SCSI. A partir de ahora, otros dispositivos SCSI pueden llevar a cabo la transferencia de datos. Despus de un rato (dependiendo de la estrategia o de la carga en el bus SCSI), se reanudar la conexin al disco duro. En el caso ideal, este ya habr llegado con su cabezal a la posicin de lectura deseada. En un sistema multitarea y multiusuario como Linux, quedan muchas posibilidades para optimizar. Se puede observar por ejemplo la salida del comando df (ver la salida en pantalla 1.1). Ejemplo 1.1: Ejemplo de salida del comando df
Filesystem /dev/sda5 /dev/sda1 /dev/sdb1 /dev/sdc1 shmfs 1 Size 1.8G 23M 2.9G 1.9G 85M Used Avail Use% Mounted on 1.6G 201M 89% / 3.9M 17M 18% /boot 2.1G 677M 76% /usr 958M 941M 51% /usr/lib 0 184M 0% /dev/shm

1
La instalacin
29

SUSE LINUX Manual de Administracin

Qu ventaja proporciona esta paralelizacin? Supongamos que se introduce en /usr/src como usuario root lo siguiente:
tar xzf package.tar.gz -C /usr/lib

De este modo se instala package.tar.gz en /usr/lib/package. Para ello, la shell invoca los programas tar y gzip (se encuentran en /bin y por lo tanto en /dev/sda), despus se lee package.tar.gz desde /usr/src (se encuentra sobre /dev/sdb). Por ltimo, los datos extrados se escriben en /usr/lib, que se encuentra en /dev/sdc. Ahora es posible llevar a cabo de manera casi paralela el posicionamiento as como la lectura/escritura de los bferes internos del disco. Lo arriba expuesto es solamente un ejemplo entre muchos. Por experiencia se puede decir que /usr y /usr/lib se deben encontrar en diferentes discos si se trata de un sistema de varios discos igual de rpidos. La ruta /usr/lib debe tener cerca del 70 % de la capacidad de /usr. Por la gran cantidad de accesos es conveniente que el directorio root se encuentre en el disco con /usr/lib. A partir de una cierta cantidad de discos SCSI (de 4 a 5), conviene considerar seriamente una solucin RAID por software o mejor an la adquisicin de una controladora RAID. Con ella, las operaciones en los discos se ejecutarn no solo de manera casi paralela sino realmente de forma paralela. La tolerancia respecto a fallos es otra agradable ventaja de la tecnologa RAID. Tasa de transferencia a discos y tamao de memoria Mencionamos en varios sitios que en Linux, el tamao de la memoria puede resultar en muchas ocasiones ms importante que la propia velocidad del procesador. Una razn sino la mayor es la propiedad que tiene Linux de generar bferes dinmicos con datos del disco duro. Haciendo esto, Linux usa muchos trucos sosticados como read ahead (saca sectores adicionales del disco como provisin para el futuro) y delayed write (ahorra grabar datos para luego guardar una mayor cantidad de informacin de una sola vez). Esto ltimo es la razn por la cual no se puede simplemente apagar un ordenador con Linux. Ambos trucos son los responsables del hecho que la memoria aparezca con el tiempo ms llena y de que Linux sea tan rpido.; ver tambin apartado 12.2.6 en la pgina 287.

30

1.7. Particionar para usuarios avanzados

1.8.

Conguracin de LVM con YaST

1
La instalacin

Con esta herramienta de particionamiento para expertos podr editar particiones ya existentes, borrarlas o crear nuevas particiones. Tambin la ofrece la posibilidad de congurar un Soft-RAID o LVM.

Atencin
Puede encontrar informacin ms detallada y consejos para particionar en el apartado 1.7 en la pgina 25.

Atencin
Aunque todas las particiones se conguran durante la instalacin, si desea aadir un disco duro tendr que particionar primero el disco nuevo, formatear y montar las particiones para posteriormente darles de alta en /etc/fstab. Es posible que sea necesario copiar algunos datos al disco nuevo para mover una particin /opt/ demasiado pequea al nuevo disco. Hay que tener mucho cuidado al reparticionar el disco duro con el que se est trabajando en ese momento. Aunque en principio es posible, es necesario arrancar el sistema inmediatamente despus de realizarlo, por lo que arrancar desde CD y reparticionar conlleva mucho menos riesgo. El botn Opciones avanzadas dentro del particionador abre un men con las siguientes opciones: Releer la tabla de particiones Sirve para leer nuevamente las particiones del disco duro. Se necesita, por ejemplo, en caso de haber particionado manualmente en la consola de texto. Importar puntos de montaje a partir de /etc/fstab Se utiliza slo durante la instalacin. Leer la fstab antigua sirve para instalar el sistema nuevamente en lugar de actualizarlo. Leyendo la fstab antigua no hace falta introducir los puntos de anclaje manualmente. Borrar tabla de particiones y etiqueta de disco Esta opcin borra la tabla de particiones completamente. Puede ser til en caso de tener problemas con ciertos formatos de disco extraos; todos los datos en el disco duro se pierden.

SUSE LINUX Manual de Administracin

31

1.8.1.

Gestor de volmenes lgicos (LVM)

Con la versin 2.6 del kernel, LVM se ha actualizado a la versin 2. Esta versin, que es compatible con la versin previa de LVM, puede seguir administrando grupos de volmenes ya existentes. LVM2 no necesita parches del kernel y utiliza el mapeador de dispositivos (device mapper) integrado en el kernel 2.6. A partir de este kernel, LVM slo puede utilizarse en su versin 2. Por este motivo, cuando en el captulo se habla de LVM nos referimos siempre a LVM2. Como alternativa a LVM2 tambin puede utilizar EVMS (Enterprise Volume Management System). Este sistema no slo le ofrece una interfaz homognea para los volmenes lgicos sino tambin para los volmenes RAID. Al igual que LVM2, EVMS se basa en el mapeador de dispositivos del kernel 2.6. El gestor de volmenes lgicos (Logical Volume Manager o LVM ) permite distribuir el espacio del disco de forma exible en diferentes sistemas de archivos. El LVM se desarroll por la dicultad que supone modicar las particiones en un sistema en ejecucin. LVM pone en comn un depsito o pool virtual (Volume Group abreviado VG) de espacio en disco. De este VG se forman los volmenes lgicos en caso necesario. El sistema operativo accede entonces a estos en lugar de acceder a las particiones fsicas. Particularidades: Es posible juntar varias particiones o discos para formar una gran particin lgica. Si un LV se queda (por ejemplo /usr/) sin espacio, es posible aumentar su tamao si est correctamente congurado. LVM permite aadir discos duros o LV incluso cuando el sistema est en marcha. Esto requiere, evidentemente, hardware que se pueda cambiar en caliente (hot swap). Es posible utilizar varios discos duros en modo RAID 0 (striping) con el consiguiente incremento de rendimiento. La funcin snapshot permite, sobre todo en servidores, realizar copias de seguridad coherentes mientras el sistema est en funcionamiento. El uso de LVM vale la pena ya a partir de PCs domsticos muy utilizados o en servidores pequeos. LVM resulta ideal para un volumen de datos creciente como por ejemplo en el caso de bases de datos, colecciones de MP3,

32

1.8. Conguracin de LVM con YaST

directorios de usuarios, etc. En tal caso es posible congurar sistemas de archivos ms grandes que un solo disco duro. Otra ventaja del LVM es la de poder crear hasta 256 LVs. Sin embargo, es importante considerar que el trabajo con el LVM se diferencia mucho del trabajo con particiones convencionales. Puede encontrar informacin en ingls sobre la conguracin del Logical Volume Manager (LVM) en el HowTo ocial de LVM http://tldp. org/HOWTO/LVM-HOWTO/. Conguracin de LVM con YaST La conguracin de LVM mediante YaST se activa seleccionando Particionar con LVM en el primer paso de la preparacin del disco duro durante la instalacin. En la siguiente pantalla, pulse en Desechar o en Modicar, tras lo cual debe crear una particin para LVM. Para ello, elija Crear -> No formatear y all escoja el punto 0X8e Linux LVM. Puede realizar la particin con LVM directamente o ms tarde sobre el sistema instalado, para lo cual deber marcar la particin LVM en el particionador y luego pulsar en LVM....

1
La instalacin

Figura 1.5: YaST: Activar LVM durante la instalacin

SUSE LINUX Manual de Administracin

33

LVM Particionador Tras haber escogido LVM... en el particionador, aparecer un primer dilogo en el que puede modicar las particiones de su disco duro; le permite borrar o modicar particiones existentes, as como crear otras nuevas. Las particiones que formarn parte del LVM debe llevar el indicador 8E y estar marcadas con el texto Linux LVM en de la lista de particiones (ver ltimo apartado).

Figura 1.6: YaST: Particionador LVM

Atencin
Reparticionar volmenes lgicos Al principio de los volmenes fsicos o PVs se escribe informacin sobre el volumen en la particin. De esta forma, el PV sabe a qu grupo de volumen pertenece. Si desea volver a particionar, se recomienda borrar el inicio de estos volnenes. Por ejemplo, en el caso de un grupo de volumen system y un volumen fsico /dev/sda2, esto se realiza con el comando dd if=/dev/zero of=/dev/sda2 bs=512 count=1.

Atencin
No hace falta que congure uno por uno el indicador 8E para todas las particiones que compondrn el LVM, ya que YaST se ocupa de modicar el indicador de una particin integrante de un grupo de volmenes cuando es necesario.

34

1.8. Conguracin de LVM con YaST

Si hay espacios sin particionar en el disco duro, es recomendable crear particiones LVM para todas estas zonas y asignarles inmediatamente el indicador 8E. Estas particiones no tienen que ser formateadas y no se puede indicar ningn punto de anclaje para ellas.

1
La instalacin

Figura 1.7: YaST: Crear particin LVM Si tuviera instalado un LVM vlido en la mquina, este se activara automticamente al comienzo de la conguracin de LVM. Despus de esta activacin ya no se pueden modicar las particiones de ningn disco duro que albergue una particin integrante de un grupo de volmenes (VG) activado. El kernel de Linux deniega el permiso para leer la tabla de particiones modicada de un disco duro mientras alguna particin de este disco est en uso. Aquellos discos que no forman parte de un grupo de volmenes LVM se pueden reparticionar sin problemas, pero al disponer ya de una conguracin vlida de LVM, normalmente no hace falta cambiar las particiones. En la pantalla actual debe congurar todos los puntos de anclaje que no estn vinculados al LVM. YaST pide que al menos el sistema de archivos raz se encuentre sobre una particin normal. Seleccione esta particin de la lista y utilice Editar para denirla como sistema de archivos raz (root le system). Debido a la mayor exibilidad de LVM, recomendamos ubicar los dems sistemas de archivos sobre volmenes lgicos. Una vez denida la particin raz, puede salir del dilogo.

SUSE LINUX Manual de Administracin

35

LVM Conguracin de los volmenes fsicos En el dilogo LVM se administran los grupos de volmenes LVM (abreviados como VG). Si an no se ha creado ningn VG aparecer una ventana que pide su creacin. La propuesta para el nombre del VG que albergar los datos del sistema SUSE LINUX es el nombre system. El valor Physical Extent Size (abreviado PE size) determina el tamao mximo de un volumen fsico y lgico dentro del grupo de volmenes. Este valor se sita normalmente en 4 megabytes y permite 256 gigabytes como tamao mximo para un volumen fsico y lgico. No aumente el PE size (por ejemplo a 8, 16 32 megabytes), si no necesita volmenes lgicos ms grandes de 256 gigabytes.

Figura 1.8: YaST: Crear un grupo de volmenes La siguiente ventana muestra todas las particiones de los tipos Linux LVM o Linux native (no se muestra ninguna particin DOS o de intercambio (swap)). En el caso de las particiones que ya forman parte del grupo de volmenes, la lista muestra el nombre del grupo de volmenes al que pertenecen. Las particiones no asignadas estn marcadas con --. Se puede cambiar el grupo de volmenes sobre el que se trabaja en la ventana de seleccin que se encuentra en la parte superior izquierda. Con los botones de la parte superior derecha se pueden crear nuevos grupos de volmenes y eliminar los ya existentes. Sin embargo, slo se pueden eliminar los VGs que no estn asignados a ninguna particin. Para un sistema SUSE LINUX normal no es necesario crear ms de un grupo de volmenes. Una particin asignada a un VG se denomina volumen fsico (Physical Volume o PV ).

36

1.8. Conguracin de LVM con YaST

1
La instalacin

Figura 1.9: YaST: Resumen de las particiones

Para aadir una particin an no asignada al grupo de volmenes seleccionado, se debe elegir primero la particin y pulsar despus el botn Aadir volumen debajo de la lista de particiones. El nombre del grupo de volmenes aparecer entonces junto a la particin seleccionada. Todas las particiones previstas para LVM deben ser asignadas a un grupo de volmenes para aprovechar todo el espacio en el disco. No se puede salir del dilogo antes de haber asignado al menos un volumen fsico a cada grupo de volmenes. Volmenes lgicos Este dilogo permite administrar los volmenes lgicos (Logical Volumes o LV ). Los volmenes lgicos siempre estn asignados a un grupo de volmenes y tienen un determinado tamao. Si desea crear un RAID 0 durante la creacin del volumen lgico, ha de crear en primer lugar el LV con un nmero mayor de bandas (stripes). Un LV con n bandas slo puede crearse correctamente cuando el espacio de disco requerido por LV puede distribuirse de forma uniforme en n volmenes fsicos. Si slo estn disponibles dos PVs, un LV con 3 bandas no sera viable. Sobre un volumen lgico se crea normalmente un sistema de archivos (por ejemplo reiserfs, ext2) y se asigna un punto de anclaje al volumen.

SUSE LINUX Manual de Administracin

37

Figura 1.10: YaST: Administracin de volmenes lgicos

Este es el punto de acceso para llegar posteriormente a los datos que se guardan sobre este volumen lgico. La lista muestra todas las particiones normales de Linux que ya tienen un punto de anclaje asignado, todas las particiones de swap y todos los volmenes lgicos ya existentes.

Aviso
La conguracin del LVM puede implicar riesgos como por ejemplo la prdida de datos. Algunos de los peligros potenciales son la cada de programas, los cortes de suministro elctrico o los comandos equivocados. Por eso es importante realizar copias de seguridad de los datos antes de congurar el LVM o antes de modicar volmenes. Nunca se debe trabajar sin una copia de seguridad!

Aviso
Si ya ha congurado previamente LVM en su sistema, es necesario asignar un punto de anclaje a los volmenes lgicos existentes que aqu aparecen. Al congurar LVM por primera vez, an no existen volmenes lgicos en la lista y es necesario crear un volumen lgico para cada punto de anclaje. Esto se lleva a cabo con el botn Aadir, indicando el tamao, el tipo de sistema de archivos (por ejemplo reiserfs o ext2) y el punto de anclaje (por ejemplo /var/, /usr/, /home/).

38

1.8. Conguracin de LVM con YaST

1
La instalacin

Figura 1.11: YaST: Crear volmenes lgicos

En caso de haber creado varios grupos de volmenes, es posible cambiar entre los diferentes grupos de volmenes con la lista de seleccin en la parte superior izquierda. Todos los volmenes lgicos creados se encuentran en el grupo mostrado en el recuadro. Una vez que todos los volmenes lgicos se hayan congurado correctamente, la conguracin de LVM naliza. Ahora ya puede salir de este apartado y, si se encuentra dentro de la instalacin de sistema, continuar con la seleccin de software.

1.9. Soft-RAID
La idea de la tecnologa RAID (Redundant Array of Inexpensive Disks) consiste en agrupar varias particiones para formar un disco duro virtual de grandes dimensiones y as optimizar el rendimiento o la seguridad de los datos. El RAID-Level o nivel RAID determina la forma de unir y de acceder a los discos duros que se conectan a una controladora RAID.

SUSE LINUX Manual de Administracin

39

Estas controladoras suelen emplear el protocolo SCSI, ya que este es capaz de controlar ms discos duros de una forma ms eciente que el protocolo IDE. Adems ofrece ventajas de cara al procesamiento de comandos en paralelo. En lugar de una controladora RAID, que puede resultar muy costosa, el Soft-RAID es tambin capaz de encargarse de estas tareas. SUSE LINUX ofrece la posibilidad de unir mediante YaST varios discos duros en un SoftRAID. Es una alternativa muy econmica al hardware RAID.

1.9.1.

Niveles RAID habituales

RAID 0 Este nivel mejora la velocidad de acceso a los datos. En realidad no se trata de un RAID porque no existe ninguna seguridad de datos pero la denominacin RAID 0 se ha hecho habitual para esta constelacin con al menos dos discos duros. El rendimiento es muy alto, pero el sistema RAID se estropea al daarse un solo disco y todos los datos se pierden. RAID 1 Este nivel ofrece una seguridad aceptable de los datos porque se encuentran copiados con exactitud en otro disco duro. La constelacin se denomina mirroring o mirror de disco; tambin es usual hablar de discos espejados. Esto quiere decir que existe una duplicacin simultnea de los datos en uno o varios discos. Cuando un disco se estropea existe una copia en otro, as que se pueden romper todos los discos a excepcin de uno sin perder datos. La velocidad de escritura baja del 10 al 20 % por la necesidad de escribir los datos en ms de un disco, pero la velocidad de lectura es bastante ms alta porque los datos se pueden leer simultneamente en varios discos. RAID 5 RAID 5 es el resultado optimizado de los dos anteriores niveles de RAID en cuanto al rendimiento y la seguridad de datos. La capacidad de almacenamiento del RAID equivale a la capacidad total de los discos duros menos uno; es decir, los datos se distribuyen igual que en el caso de RAID 0 sobre todos los discos y la seguridad de los datos est dada por la informacin de paridad que se encuentra, en el caso de RAID 5, sobre uno de los discos. Estos bloques de paridad se enlazan mediante un XOR lgico para conseguir la recuperacin de una particin despus de su rotura. En el caso de RAID 5 es vital que no falle nunca ms de un disco duro al mismo tiempo. Un disco duro daado debe ser reemplazado lo ms rpidamente posible para evitar posibles prdidas de datos.

40

1.9. Soft-RAID

1.9.2.

Congurar un Soft-RAID con YaST

1
La instalacin

Se puede acceder a la conguracin del Soft-RAID mediante la opcin RAID dentro de Sistema o a travs del mdulo de particionamiento en Hardware. Paso 1: Particionar La primera pantalla de la Conguracin avanzada del particionador muestra todas las particiones existentes. Si ya ha creado particiones para el Soft-Raid, estas aparecern dentro de la lista. En caso contrario se han de crear particiones nuevas. RAID 0 y RAID 1 requieren al menos dos particiones para RAID 1 suelen ser exactamente dos. RAID 5 en cambio necesita al menos tres particiones. Las particiones deben tener el mismo tamao y se deben encontrar sobre diferentes discos duros para suprimir el riesgo de prdida de datos por dao de un disco para RAID 1 y 5 o para aumentar el rendimiento en caso de RAID 0. Paso 2: Crear el RAID Pulsando sobre RAID aparece el dilogo para seleccionar el nivel RAID 0, 1 5. La siguiente pantalla permite asignar las particiones al RAID nuevo. Las Opciones avanzadas permiten ajustar la conguracin con ms detalle, como la modicacin del chunk-size para aumentar la eciencia del RAID. Al marcar la casilla Superbloque persistente, las particiones RAID se reconocen como tales directamente al arrancar el ordenador. Despus de haber terminado la conguracin aparecer el dispositivo /dev/md0 marcado como RAID dentro del apartado experto en el mdulo de particionamiento. Resolucin de problemas El contenido del archivo /proc/mdstats informa sobre daos en una particin RAID. En caso de daos hay que parar el sistema Linux y reemplazar el disco daado por uno equivalente y con las mismas particiones. Despus se puede reiniciar el sistema y ejecutar el comando raidhotadd /dev/mdX /dev/sdX. Dicho comando integra automticamente el disco duro nuevo en el RAID y lo reconstruye. Puede encontrar una introduccin a la conguracin de Soft Raid as como informacin adicional (en ingls) en los siguientes Howto: /usr/share/doc/packages/raidtools/Software-RAIDHOWTO.html

SUSE LINUX Manual de Administracin

41

http://en.tldp.org/HOWTO/Software-RAID-HOWTO.html o en la lista de correo de Linux RAID por ejemplo en http://www.mail-archive.com/linux-raid@vger. rutgers.edu En dicha lista puede encontrar tambin ayuda para problemas ms complejos.

42

1.9. Soft-RAID

2
Actualizacin del sistema y gestin de paquetes

Actualizacin del sistema y gestin de paquetes

SUSE LINUX ofrece la posibilidad de actualizar un sistema existente sin necesidad de instalar todo desde cero. Hay que distinguir entre la actualizacin de algunos paquetes y la actualizacin del sistema completo. Los paquetes individuales tambin se puede instalar manualmente con el gestor de paquetes rpm.

2.1. Actualizacin de SUSE LINUX . . . . . . . . . . . . 44 2.2. Cambios en el software de una versin a otra . . . . 49 2.3. RPM El gestor de paquetes . . . . . . . . . . . . . . 58

2.1.

Actualizacin de SUSE LINUX

Es un fenmeno conocido, el hecho de que el software crezca de versin en versin, por lo que se recomienda averiguar de cunto espacio se dispone en las particiones, usando df, antes de la actualizacin. Si se tiene la impresin de estar un poco justo de espacio, se recomienda hacer una copia de seguridad de los datos antes de empezar con la actualizacin y modicar las particiones (aumentar su tamao). Es difcil determinar la cantidad de espacio necesario ya que este depende en gran medida de las particiones actuales, del software elegido y desde qu versin se va a realizar la actualizacin.

Atencin
Para obtener informacin sobre cambios o suplementos posteriores a la impresin de este libro, se puede consultar el archivo README o bajo DOS/Windows el archivo README.DOS. Ambos se encuentran en el CD.

Atencin 2.1.1. Preparativos

Antes de realizar cualquier actualizacin se deben copiar los archivos de conguracin a un medio independiente (cinta, unidad ZIP, CD-ROM, etc.); sobre todo se trata de los archivos contenidos en /etc pero tambin se debe tener en cuenta el directorio /var/lib. Adems se recomienda hacer una copia de seguridad de los datos actuales de los usuarios en /home (es decir, de los directorios HOME). Esta copia de seguridad se debe efectuar como administrador de sistema (root) ya que slo root tiene los derechos de lectura de todos los archivos locales. Antes de comenzar con la actualizacin se debe anotar el nombre de la particin raz que se obtiene con el comando df /. En el caso de la salida en pantalla 2.1, /dev/hda2 es la particin raz que se debe anotar, ya que es esta la que est montada en /. Ejemplo 2.1: Salida de df -h
Filesystem /dev/hda1 /dev/hda2 /dev/hda5 Size 1,9G 8,9G 9,5G Used Avail Use% Mounted on 189M 1.7G 10% /dos 7,1G 1,4G 84% / 8,3G 829M 92% /home

Esta salida de comando muestra que la particin /dev/hda2 situada en / est montada (mounted) en el sistema de archivos.

44

2.1. Actualizacin de SUSE LINUX

Posibles problemas PostgreSQL Antes de actualizar PostgreSQL (postgres), se deben volcar (dump) todas las bases de datos al disco; ver pgina del manual de pg_dump. Evidentemente esto slo es necesario si se utilizaba PostgreSQL antes de la actualizacin. Controladora Promise Las controladoras IDE de la empresa Promise pueden encontrarse hoy en da en diversos ordenadores en placas base de alta calidad. Algunas veces como controladoras puras de IDE (para UDMA 100) y otras como controladoras IDE-RAID. A partir de SUSE LINUX 8.0 hay soporte directo del kernel para estas controladoras y las trata como si fueran controladoras normales para discos duros IDE. Slo el mdulo del kernel pdcraid permite la funcionalidad RAID. Al actualizar puede ocurrir en algunos casos que se detecta discos duros conectados a la controladora de Promise antes de los discos duros en la controladora normal de IDE. En este caso el sistema no arrancar despus de una actualizacin del kernel y tpicamente se despedir con Kernel panic: VFS unable to mount root fs. Para arreglarlo al arrancar se debe indicar el parmetro de kernel ide=reverse para invertir el orden de la deteccin de los discos duros ; ver apartado 1.1.2 en la pgina 8 . Use YaST para introducir este parmetro de forma duradera en la conguracin de arranque ; ver el captulo La instalacin del usuario, Arrancar (Instalacin del gestor de arranque) en el manual [1].

2
Actualizacin del sistema y gestin de paquetes

Aviso
Slo se pueden encontrar las controladoras que estn activadas en la BIOS. La activacin o desactivacin anterior o posterior de las controladoras en la BIOS tiene una inuencia directa en la denominacin de los dispositivos. Si no acta con precaucin podra incluso no poder arrancar el sistema!

Aviso
Explicacin tcnica. El orden de las controladoras depende de la placa base. Cada fabricante tiene su propia estrategia de integrar controladoras adicionales. Mediante el comando lspci se puede visualizar dicho orden. Si la controladora Promise aparece antes de la controladora IDE normal, es necesario utilizar el parmetro de kernel, ide=reverse despus de una actualizacin.

SUSE LINUX Manual de Administracin

45

El antiguo kernel (sin soporte directo para Promise) ignoraba la controladora y detectaba primero la controladora IDE normal. El primer disco duro era entonces /dev/hda. Con el nuevo kernel se detecta directamente la controladora Promise y por consiguiente sus discos duros (hasta cuatro) con /dev/hda, /dev/hdb, /dev/hdc y /dev/hdd. El hasta ahora disco /dev/hda se convierte de repente en /dev/hde y en consecuencia no se encuentra en el proceso de arranque.

2.1.2. Actualizacin con YaST


Despus de los preparativos del apartado 2.1.1 en la pgina 44, inicie el proceso de arranque. 1. Inicie el sistema como para la instalacin (vase el manual de usuario) y, despus de seleccionar el idioma, no elija en YaST Nueva instalacin, sino Actualizar un sistema ya existente. 2. YaST determinar si existe ms de una particin raz. En caso negativo se contina con la copia de seguridad del sistema. En caso de que existan varias particiones, seleccione la particin correcta y conrme con Siguiente. En el ejemplo de la seccin 2.1.1 en la pgina 44 seleccion /dev/hda2. YaST tambin lee el antiguo fstab que se encuentra en esta particin para analizar y a continuacin montar los sistemas de archivos all existentes. 3. Posteriormente existe la posibilidad de crear una copia de seguridad de los archivos del sistema durante la actualizacin. Aunque esta opcin ralentiza el proceso de actualizacin, debe seleccionarse si no dispone de una copia de seguridad actual del sistema. 4. En el siguiente dilogo se puede decidir si slo se debe actualizar el software instalado o si se deben aadir al sistema nuevos componentes de software importantes (modo upgrade). Se recomienda aceptar la combinacin predeterminada (por ejemplo sistema estndar). Si existe alguna discrepancia, se puede eliminar posteriormente con YaST.

46

2.1. Actualizacin de SUSE LINUX

2
Actualizacin del sistema y gestin de paquetes

Figura 2.1: Actualizacin del sistema

2.1.3.

Actualizacin manual

Actualizacin del sistema base Al actualizar el sistema base se cambian los componentes centrales del sistema (por ejemplo las bibliotecas), por lo tanto esto no se puede llevar a cabo desde el sistema Linux en ejecucin. Por esta razn se tendr que arrancar el entorno de actualizacin. Esto se hace normalmente bien con el CD,con el DVD o con el disquete de arranque (bootdisk que se ha creado anteriormente). Si quiere efectuar intervenciones manuales o realizar la actualizacin entera con el ncurser-ui de YaST (modo texto), hay que seguir esencialmente los pasos que ya se han descrito detalladamente en el apartado 1.1 en la pgina 8. Bsicamente hay que seguir los pasos que se exponen a continuacin: 1. Inmediatamente despus del arranque del sistema, desde el disquete de arranque o desde el CD o bien DVD, se inicia automticamente linuxrc. 2. linuxrc pide escoger en la opcin Conguracin del men principal, el idioma y el teclado (siempre se conrma pulsando Ok).

SUSE LINUX Manual de Administracin

47

3. Con la opcin Mdulos del Kernel (Drivers) se cargan los controladores necesarios para el hardware. El procedimiento se detalla en el apartado 1.1.3 en la pgina 10 y en la descripcin de linuxrc, 12.4.4 en la pgina 297. 4. Ahora se puede elegir el medio fuente de la instalacin mediante las opciones Iniciar la instalacin / Sistema -> Comenzar la instalacin (ver 12.4.6 en la pgina 298). 5. linuxrc carga el entorno de instalacin proporcionado por YaST, tal como se ha elegido. En el primer men de YaST, seleccione despus de haber elegido el idioma la opcin Actualizar sistema. A continuacin YaST intenta detectar la particin raz y ofrece varias posibilidades de las cuales se debe seleccionar la particin raz que ha anotado anteriormente (ejemplo: /dev/hda3). YaST lee la /etc/fstab antigua que se encuentra sobre esta particin, y monta los sistemas de archivos anotados en ella. Despus existe la posibilidad de realizar una copia de seguridad de los archivos del sistema durante la actualizacin. En el dilogo siguiente puede denir que slo se actualice el software ya instalado o bien que se aadan nuevos e importantes componentes de software al sistema (modo upgrade). Se recomienda aceptar la composicin propuesta (por ejemplo Sistema predeterminado). Con YaST se pueden eliminar posibles divergencias. Dilogo de advertencia: S - instalar para que pueda realizarse la transferencia del nuevo software desde el medio fuente al disco duro del sistema. A continuacin se produce la revisin de la base de datos RPM. A continuacin se actualizan los componentes centrales del sistema y YaST genera automticamente copias de seguridad de los archivos modicados a partir de la ltima instalacin; adems, los archivos de conguracin antiguos se guardan con la extensin .rpmorig o .rpmsave. Todo el proceso de instalacin y actualizacin se protocoliza en el archivo /var/adm/inst-log/installation-*. Actualizacin del resto de programas Una vez instalado el sistema base, se entra al modo especial de actualizacin de YaST que permite actualizar el resto del sistema segn necesidades y/o preferencias.

48

2.1. Actualizacin de SUSE LINUX

Despus de haber seleccionado los paquetes, el proceso se termina como una instalacin desde cero; entre otras cosas, se tendr que seleccionar tambin un kernel nuevo. Posibles problemas En caso de que el entorno shell no se comporte del modo esperado, revise los archivos de su home que comienzan con un punto y compruebe que todava son adecuados para su sistema. Si no es as, adopte las versiones actuales que se encuentran en /etc/skel, por ejemplo: cp /etc/skel/.profile /.profile.

2
Actualizacin del sistema y gestin de paquetes

2.1.4.

Actualizacin de paquetes individuales

Independientemente de la actualizacin del sistema base, se pueden actualizar paquetes sueltos en cualquier momento. Realizando una actualizacin parcial, usted mismo debe encargarse de mantener la consistencia del sistema en cuanto a las dependencias de los paquetes. Puede encontrar algunos consejos sobre la actualizacin en http://www.suse.de/en/support/ download/updates/ En la seleccin de paquetes de YaST puede seleccionar y deseleccionar paquetes como le plazca. Al seleccionar un paquete esencial para el sistema, YaST advierte sobre la necesidad de actualizar dicho paquete en el modo especial de actualizacin. Por ejemplo, hay muchos paquetes que utilizan libreras compartidas (shared libraries) que pueden estar en uso en el momento de la actualizacin. Por tanto, algunos programas podran dejar de funcionar correctamente despus de realizar una actualizacin desde el sistema activo.

2.2.

Cambios en el software de una versin a otra

Los siguientes apartados mencionan los detalles que han cambiado de una versin de SUSE LINUX a otra, como por ejemplo el cambio de lugar de un archivo de conguracin o una modicacin importante de un programa conocido. En estas lneas se mencionan los aspectos que ataen directamente a los usuarios o administrador de sistemas en su trabajo diario.La lista no es en ningn modo completa o exhaustiva.

SUSE LINUX Manual de Administracin

49

Los problemas y cambios de ltima hora de cada versin se publican en nuestro servidor web; vase a este n los enlaces en las lneas inferiores. Se puede actualizar determinados paquetes importantes va http://www. suse.de/en/support/download/updates/.

2.2.1.

De 7.3 a 8.0

Problemas y particularidades: http://sdb.suse.de/sdb/en/html/ bugs80.html. Los disquetes de arranque slo se distribuyen en forma de imgenes de disquetes (antiguo directorio disks, ahora directorio boot). Un disquete de arranque se necesita solamente si no es posible arrancar desde CD; dependiendo del hardware y de la intencin de la instalacin hay que crear adicionalmente disquetes de las imgenes modules1, modules2, etc. El procedimiento est descrito en 1.4 en la pgina 19 o bien en 1.4.2 en la pgina 21. YaST2 sustituye por completo a YaST1, tambin en los modos de texto o consola. Cuando en estas lnas se hable de YaST, nos estamos reriendo siempre a la nueva versin. Algunas BIOS necesitan el parmetro del kernel realmode-power-off, hasta versin 2.4.12 del kernel se llamaba real-mode-poweroff. La variable START de rc.config para iniciar los servicios ya no es necesaria. Todos los servicios se arrancan si existen los enlaces correspondientes en los directorios de niveles de ejecucin o runlevel. Los enlaces se crean con insserv. Los servicios del sistema se conguran mediante variables en los archivos de /etc/sysconfig; al actualizar el sistema se adoptan las opciones de conguracin de los archivos en /etc/rc.config.d. Se ha dividido /etc/init.d/boot en varios scripts y movido a otros paquetes en los casos necesarios (ver kbd, isapnp, lvm, etc.), vase 13.4 en la pgina 316 . En el tema de redes se han realizado una gran cantidad de modicaciones, vase el apartado 14.4 en la pgina 356 . Para la gestin de los archivos de registro (logles) se hace uso de logrotate, /etc/logfiles ha quedado obsoleto (ver apartado 12.2.3 en la pgina 284) .

50

2.2. Cambios en el software de una versin a otra

Se puede permitir un login de root a travs de telnet o rlogin mediante entradas en los archivos de /etc/pam.d. Por razones de seguridad ya no se permite asignar a ROOT_LOGIN_REMOTE el valor yes. PASSWD_USE_CRACKLIB puede ser activado con YaST. Cuando se deben compartir archivos NIS para autofs va NIS, se debe utilizar el mdulo cliente NIS de YaST para la conguracin. Una vez all, active Arrancar automontador. La variable USE_NIS_FOR_AUTOFS ha quedado obsoleta. locate para la bsqueda rpida de archivos ya no forma parte del software instalado por defecto. En caso necesario, instlelo (find-locate) y se iniciar como de costumbre automticamente unos 15 minutos despus de haber arrancado el proceso updatedb. El soporte del ratn se encuentra activo para pine, lo cual signica que se puede manejar Pine en una xterm con el ratn pulsando sobre las opciones del men. Sin embargo tambin signica que slo se puede copiar y pegar pulsando la tecla del tabulador si el soporte del ratn est activo, lo que no es el caso en una nueva instalacin. Al actualizar no se debe descartar que esta opcin est activa (si hay un antiguo ~/.pinerc disponible). En este caso, se puede desactivar la opcin enable-mouse-in-xterm en la conguracin de Pine para que todo vuelva a la normalidad.

2
Actualizacin del sistema y gestin de paquetes

2.2.2. De 8.0 a 8.1


Problemas y particularidades: http://sdb.suse.de/sdb/en/html/ bugs81.html. Modicaciones en los nombres de usuario y grupo del sistema: para que concordasen con United Linux se ajustaron algunas entradas en /etc/passwd y /etc/group. Usuario modicado: ftp se encuentra en el grupo ftp (y no en daemon). Grupos que han cambiado de nombre: www (antes wwwadmin), games (antes game). Grupos nuevos: ftp (con GID 50), floppy (con GID 19), cdrom (con GID 20), console (con GID 21), utmp (con GID 22).

SUSE LINUX Manual de Administracin

51

Modicaciones relacionadas con FHS (vase apartado 12.1.2 en la pgina 282): Puede ver un entorno de muestra para HTTPD (Apache) en /srv/www (antes /usr/local/httpd). Un entorno de ejemplo para FTP se encuentra en /srv/ftp (antes era /usr/local/ftp). Para ello se requiere el ftpdir. Para facilitar el acceso al software deseado, los paquetes ya no se encuentran en unas pocas y complicadas series, sino en grupos RPM. La consecuencia de esto es que en los CDs ya no hay directorios codicados bajo suse, sino slo unos pocos directorios denominados en funcin de la arquitectura, como por ejemplo ppc, i586 o noarch. En una instalacin nueva se conguran los siguientes programas, o dicho de otro modo, ya no se instalan automticamente: El gestor de arranque GRUB, que ofrece ms posibilidades que LILO. LILO se mantiene al actualizar un sistema ya existente. El programa de correo postx en lugar de sendmail. En lugar de majordomo se instala el moderno software de listas de correo mailman. Seleccionar harden_suse manualmente si se necesita y no olvidar leer la documentacin correspondiente. Paquetes divididos: rpm en rpm y rpm-devel, popt en popt y popt-devel, libz en zlib y zlib-devel. yast2-trans-* ahora dividido por idiomas: yast2-trans-cs (checo), yast2-trans-de (alemn), yast2-trans-es (espaol) etc. En la instalacin ya no se instalan todos los idiomas con el n de ahorrar espacio en el disco duro. En caso de ser necesario, instale posteriormente el resto de los paquetes con el soporte de idiomas de YaST. Paquetes que han cambiado de nombre: bzip en bzip2. Paquetes que ya no se incluyen: openldap, en su lugar utilizar ahora openldap2. su1: a partir de ahora le rogamos utilizar sudo.

52

2.2. Cambios en el software de una versin a otra

2.2.3.

De 8.1 a 8.2

2
Actualizacin del sistema y gestin de paquetes

Problemas y peculiaridades: http://sdb.suse.de/sdb/en/html/ bugs82.html Soporte 3D para tarjetas grcas basadas en nVidia (cambios): los paquetes RPM NVIDIA_GLX/NVIDIA_kernel (incluyendo el script switch2nvidia_glx) ya no estn incluidos. Descargue el instalador de nVidia para Linux IA32 de la pgina web de nVidia (http://www.nvidia.com), utilcelo para instalar el controlador y active el soporte 3D por medio de SaX2 o YaST. En caso de una nueva instalacin, xinetd se instala en vez de inetd y es congurado de forma segura con valores predeterminados (vase el directorio /etc/xinetd.d). En caso de una actualizacin, se mantendr inetd. La versin incluida de PostgreSQL es la 7.3. Si actualiza desde la versin 7.2.x, es necesario realizar un dump/restore con el comando pg_dump. Si su aplicacin consulta los catlogos del sistema debe adems realizar modicaciones adicionales, ya que la versin 7.3 incorpora nuevos esquemas. Puede encontrar ms informacin en: http://www.ca.postgresql.org/docs/momjian/upgrade_ tips_7.3 La versin 4 de stunnel ha dejado de soportar opciones en la lnea de comandos. No obstante, se incluye el script /usr/sbin/stunnel3_ wrapper, el cual es capaz de convertir las opciones de lnea de comando en un archivo de conguracin adecuado para stunnel y de ejecutar dicho archivo al ejecutar el siguiente comando (sustituya OPTIONS por las opciones correspondientes):
/usr/sbin/stunnel3_wrapper stunnel OPTIONS

El archivo de conguracin creado ser mostrado en los datos de salida estndar, de forma que puede utilizar sus entradas para crear un archivo de conguracin permanente de cara al futuro. openjade (paquete openjade) es el motor DSSSL que, sustituyendo a jade (paquete jade_dsl), se activa cuando se inicia db2x.sh (paquete docbook-toys). Debido a motivos de compatibilidad, los programas tambin estn disponibles sin el prejo o.

SUSE LINUX Manual de Administracin

53

En caso de que existan aplicaciones propias dependientes del directorio jade_dsl y de los archivos que all estaban instalados, ser necesario adaptar las aplicaciones al nuevo directorio /usr/share/ sgml/openjade o bien crear un enlace como usuario root:
cd /usr/share/sgml rm jade_dsl ln -s openjade jade_dsl

Para evitar un conicto con el paquete rzsz, la herramienta de la lnea de comandos sx se sigue llamando s2x, sgml2xml u osx.

2.2.4.

De 8.2 a 9.0

Problemas y peculiaridades: http://sdb.suse.de/sdb/en/html/ bugs90.html Los servicios peridicos de mantenimiento de /etc/cron.daily, /etc/cron.weekly y /etc/cron.monthly se ejecutarn a las 4:00h en el caso de una nueva instalacin. Despus de realizar una actualizacin puede ser necesario actualizar /etc/crontab. La versin incluida del gestor de paquetes RPM es la 4. La funcionalidad para construir paquetes ha sido transferida al programa independiente rpmbuild. rpm sigue siendo utilizado para instalar, actualizar y realizar consultas a la base de datos, ver seccin 2.3 en la pgina 58. En la seccin Impresin se encuentra el paquete footmatic-filters. El contenido se ha tomado del paquete cups-drivers, ya que la experiencia ha demostrado que es posible imprimir con l an cuando CUPS no est instalado. De esta forma es posible denir con YaST conguraciones independientes del sistema de impresin (CUPS, LPRng). El archivo de conguracin de este paquete es /etc/foomatic/filter.conf. Para utilizar LPRng/lpdlter se requieren los paquetes footmatic-filters y cups-drivers. Puede accederse a los recursos XML del paquete de software incluido en la distribucin a travs de entradas en /etc/xml/susecatalog.xml. Este archivo no puede ser editado con xmlcatalog, ya que de ser as los comentarios organizativos desaparecern. Estos comentarios son imprescindibles para garantizar que la actualizacin se lleve a cabo correctamente.

54

2.2. Cambios en el software de una versin a otra

El acceso a /etc/xml/suse-catalog.xml se realiza a travs de una declaracin nextCatalog en /etc/xml/catalog, de tal forma que herramientas XML como xmllint o xsltproc encuentren automticamente los recursos locales.

2
Actualizacin del sistema y gestin de paquetes

2.2.5. De 9.0 a 9.1


Problemas y particularidades: http://portal.suse.com/sdb/en/ 2004/02/bugs91.html SUSE LINUX se ha adaptado por completo a la versin 2.6 del kernel. La versin anterior, 2.4, no debera seguir utilizndose ya que los programas incluidos podran no funcionar con el kernel 2.4. Asimismo es necesario tener en cuenta lo siguiente: La carga de los mdulos se congura en el archivo /etc/ modprobe.conf, el archivo /etc/modules.conf ha quedado obsoleto. YaST intenta convertir dicho archivo (vase tambin el script /sbin/generate-modprobe.conf). Los mdulos tienen ahora la extensin .ko. El mdulo ide-scsi ya no es necesario para grabar CDs. El prejo snd_ se ha eliminado de las opciones del mdulo de sonido ALSA. sysfs complementa al sistema de archivos /proc. La gestin de energa (y en particular ACPI) ha sido perfeccionada y puede congurarse mediante un mdulo de YaST. En lo que se reere a los cambios en los dispositivos de entrada (input devices), consulte el artculo del portal mencionado en las lneas superiores. Los programas que estn enlazados con NGPT (Next Generation POSIX Threading) no funcionan con glibc 2.3.x. Todos los programas afectados que no estn incluidos en SUSE LINUX deben volver a compilarse con linuxthreads o bien con NPTL (Native POSIX Thread Library). Se recomienda portarlos con NPTL, ya que este se anticipa como el estndar del futuro. En caso de problemas con NPTL, puede utilizar la implementacin linuxthreads, algo ms antigua, mediante la asignacin de las siguientes variables de entorno (debe sustituir kernel-version por el nmero de versin del kernel en cuestin):

SUSE LINUX Manual de Administracin

55

LD_ASSUME_KERNEL=kernel-version

Los nmeros de versin posibles son los siguientes: 2.2.5 (i386, s390): linuxthreads sin Floating Stacks 2.4.1 (AMD64, IPF, s390x, i686): linuxthread con Floating Stacks

Advertencia con respecto al kernel y linuxthreads con Floating Stacks: Los programas que utilizan errno, h_errno y _res, deben integrar los archivos correspondientes de la cabecera (errno.h, netdb.h y resolv.h) por medio de #include. En el caso de los programas C++- con soporte multithread que usen Thread Cancellation, debe utilizarse la variable de entorno LD_ASSUME_KERNEL=2.4.1 para forzarlos a emplear la librera linuxthreads. NPTL (Native POSIX Thread Library) se incluye en SUSE LINUX 9.1 como paquete de hilos. NPTL ha sido desarrollado de forma que sus binarios son compatibles con los de la antigua librera linuxthreads. No obstante, donde linuxthreads contraviene el estndar POSIX, NPTL requiere algunas modicaciones. En particular cabe mencionar las siguientes: manejo de seales, getpid devuelve un valor idntico en todos los hilos, los gestores de hilos (thread handler) registrados con pthread_atfork no se ejecutan al utilizar vfork. La codicacin predeterminada del sistema es ahora UTF-8. As, en la instalacin estndar se dene una conguracin local con .UTF-8 como como indicacin de codicacin (encoding), por ejemplo, es_ES.UTF-8. Algunas de las herramientas de la shell incluidas en el paquete coreutils tales como tail, chown, head, sort, etc. han abandonado el el estndar de 1992 y siguen ahora el estndar POSIX de 2001 (Single UNIX Specication, version 3 == IEEE Std 1003.1-2001 == ISO/IEC 9945:2002) en la conguracin predeterminada. El antiguo comportamiento puede reproducirse con una variable de entorno:
_POSIX2_VERSION=199209

El nuevo valor es 200112 y se adopta como valor predeterminado para _POSIX2_VERSION. Aqu puede consultar el estndar SUS (gratuito pero de registro obligatorio): http://www.unix.org

56

2.2. Cambios en el software de una versin a otra

A continuacin se muestra una comparacin entre ambos estndares: Cuadro 2.1: Comparacin entre POSIX 1992 y POSIX 2001 POSIX 1992 chown tux.users tail +3 head -1 sort +3 nice -10 split -10 POSIX 2001 chown tux:users tail -n +3 head -n 1 sort -k +3 nice -n 10 split -l 10

2
Actualizacin del sistema y gestin de paquetes

Atencin
Es posible que el software de terceros fabricantes todava no siga el nuevo estndar. En estos casos se recomienda denir la variable de entorno como se describe en lneas superiores: _POSIX2_VERSION=199209.

Atencin
/etc/gshadow ha sido eliminado ya que ha quedado obsoleto. Los motivos para tomar esta decisin han sido los siguientes: glibc no lo soporta. No existe ninguna interfaz ocial para este archivo, ni siquiera en la suite shadow. La mayor parte de las herramientas que comprueban las contraseas de grupo no soportan este archivo y lo ignoran por las razones ya mencionadas. El estndar FHS (vase 12.1.2 en la pgina 282) prev que los recursos XML (DTDs, hojas de estilo, etc.) se instalen en /usr/share/ xml. Por este motivo, algunos directorios ya no se encuentran en /usr/share/sgml. En caso de problemas debe modicar sus propios scripts o makeles, o bien utilizar los catlogos ociales (en particular /etc/xml/catalog o /etc/sgml/catalog).

SUSE LINUX Manual de Administracin

57

2.3.

RPM El gestor de paquetes

SUSE LINUX utiliza RPM (RPM Package Manager) con los programas principales rpm y rpmbuild para la administracin de los paquetes de software. La gran base de datos de RPM facilita la gestin de los paquetes para todos los implicados: los usuarios, los administradores de sistema y los que generan los paquetes; RPM ofrece una gran cantidad de informacin sobre el software instalado. Bsicamente, rpm puede actuar de cinco maneras distintas: instalar, desinstalar o actualizar paquetes de software, volver a crear la base de datos RPM, enviar consultas a la base de datos RPM o a archivos RPM individuales, comprobar la integridad de los paquetes y rmar paquetes. rpmbuild sirve para generar paquetes listos para instalar a partir de las fuentes originales pristine sources. Los archivos RPM instalables tienen un formato binario especial que incluye los archivos con los programas e informacin adicional usada por rpm. Esta informacin adicional se usa para congurar el software del paquete o para la documentacin en la base de datos RPM. Estos archivos tienen la extensin .rpm. Con rpm se pueden gestionar los paquetes LSB.

Atencin
En el caso de varios paquetes, los componentes necesarios para el desarrollo del software (libreras, archivos header e include) han pasado a ser paquetes separados; se trata de un procedimiento que ya se llev a cabo en versiones anteriores. Estos paquetes slo sern necesarios para desarrollos propios; por ejemplo compilar paquetes de GNOME ms recientes. Este tipo de paquetes se identica normalmente con el sujo -devel en su nombre; algunos ejemplos son: alsa-devel, gimp-devel, kdelibs-devel, etc.

Atencin 2.3.1. Comprobar la autenticidad de un paquete

Los paquetes RPM de SUSE estn rmados con GnuPG:


1024D/9C800ACA 2000-10-19 SuSE Package Signing Key <build@suse.de> Key fingerprint=79C1 79B2 E1C8 20C1 890F 9994 A84E DAE8 9C80 0ACA

58

2.3. RPM El gestor de paquetes

El siguiente comando permite comprobar la rma de un paquete RPM para averiguar si este realmente fue hecho por SUSE o por otra entidad de conanza:
rpm --checksig apache-1.3.12.rpm

2
Actualizacin del sistema y gestin de paquetes

Este procedimiento se recomienda especialmente con los paquetes de actualizacin de Internet. Nuestra clave pblica para rmar los paquetes se encuentra por defecto en /root/.gnupg/. Desde la versin 8.1, esta clave tambin se incluye en el directorio /usr/lib/rpm/gnupg/ para que los usuarios normales tambin puedan comprobar la rma de los paquetes RPM.

2.3.2.

Administracin de paquetes: instalar, actualizar y desinstalar paquetes.

Por lo general la instalacin de un archivo RPM se realiza rpidamente:


rpm -i paquete.rpm

Este comando estndar solamente instala un paquete si se cumplen todas las dependencias, ya que de lo contrario podran aparecer conictos; los mensajes de error de rpm indican los paquetes que faltan para cumplir con las dependencias. La base de datos se ocupa de evitar conictos: normalmente un archivo debe pertenecer a un solo paquete; tambin hay diferentes opciones que permiten pasar por alto esta regla, pero se debe estar muy seguro de ello ya que se puede perder la posibilidad de actualizar el paquete. Algunas opciones muy interesantes para la actualizacin de un paquete son -U o --upgrade y -F o --freshen.
rpm -F paquete.rpm

Por medio de este comando se borra la antigua versin de un paquete y se instala la nueva. La diferencia entre ambas opciones radica en que en el caso de -U tambin se instalan paquetes que hasta ahora no estaban disponibles en en el sistema, mientras que la opcin -F slo actualiza un paquete que ya estuviera instalado. Por su parte, rpm trata los archivos de conguracin con cuidado, apoyndose en la siguiente estrategia:

SUSE LINUX Manual de Administracin

59

Si el administrador de sistema no ha cambiado ningn archivo de conguracin, rpm instala la versin nueva y por lo tanto, el administrador de sistema no tiene que intervenir de ninguna manera. Si el administrador de sistema ha cambiado un archivo de conguracin antes de realizar la actualizacin, rpm guarda el archivo con la extensin .rpmorig o .rpmsave e instala la nueva versin del paquete RPM, salvo que el archivo de conguracin de esta nueva versin no haya cambiado su estructura. En el caso de reemplazar el archivo de conguracin, es muy probable que sea necesario adaptar el nuevo basndose en la copia con la extensin .rpmorig o .rpmsave. Los archivos con extensin .rpmnew siempre aparecen cuando el archivo de conguracin ya existe y si el indicador noreplace aparece dentro del archivo .spec. Despus de la actualizacin se deben borrar los archivos .rpmorig, .rpmsave y .rpmnew para que estos no obstaculicen la siguiente actualizacin. La extensin .rpmsave se selecciona cuando la base de datos RPM ya conoce el archivo, en caso contrario se usa .rpmorig. Dicho en otras palabras, los .rpmorig se generan cuando se actualizan paquetes que no tienen formato RPM y los .rpmsave se generan actualizando paquetes RPM antiguos con RPM nuevos. La extensin .rpmnew se usa cuando no se puede determinar si el administrador de sistema realmente modic el archivo de conguracin o no. Puede encontrar una lista de estos archivos en /var/adm/rpmconfigcheck. Compruebe que no se sobreescriben determinados archivos de conguracin (como /etc/httpd/httpd.conf), para posibilitar una inmediato funcionamiento con las propias opciones de conguracin. As pues, la opcin -U (update) es algo ms que una equivalencia de la secuencia -e (desinstalar/eliminar) e -i (instalar). Siempre que sea posible, es preferible usar la opcin -U.

Atencin
Despus de cada actualizacin es necesario controlar las copias de seguridad con las extensiones .rpmorig o .rpmsave generados por rpm. En caso de necesidad transera sus ajustes a los nuevos archivos de conguracin y elimine despus los antiguos con las extensiones .rpmorig o .rpmsave.

Atencin

60

2.3. RPM El gestor de paquetes

Al ejecutarlo con la opcin -i, YaST puede resolver todas las interdependencias de paquetes y llevar a cabo la instalacin:
yast -i paquete

2
Actualizacin del sistema y gestin de paquetes

Para eliminar un paquete se procede de la siguiente manera:


rpm -e paquete

rpm slo borra un paquete en caso de no existir ninguna dependencia. Por lo tanto no es posible suprimir por ejemplo Tcl/Tk si todava existe algn programa que lo necesite para su ejecucin; esta funcionalidad se debe al control por parte de la base de datos RPM. Si en algn caso excepcional no es posible eliminar un paquete aunque haya dejado de existir toda dependencia, es probable que el problema se resuelva al generar de nuevo la base de datos RPM, usando la opcin --rebuilddb.

2.3.3.

RPM y parches

Para garantizar la seguridad en la operacin de un sistema es necesario instalar peridicamente en el sistema paquetes que lo actualicen. Hasta ahora, un fallo en un paquete slo poda ser resuelto sustituyendo el paquete entero. En el caso de paquetes grandes con fallos pequeos, podemos encontrarnos rpidamente ante una gran cantidad de datos. A partir de la versin 8.1, SUSE ha incorporado una nueva funcin a RPM que permiten instalar parches en paquetes. La informacin ms interesante sobre un parche RPM se mostrar tomando como ejemplo al programa pine: Es el parche RPM el adecuado para mi sistema? Para comprobarlo, debe averiguarse en primer lugar la versin instalada del paquete. En el caso de pine, esto sucede con el comando
rpm -q pine pine-4.44-188

A continuacin se examina el parche RPM para comprobar si resulta adecuado para esta versin de pine:
rpm -qp --basedon pine-4.44-224.i586.patch.rpm pine = 4.44-188 pine = 4.44-195 pine = 4.44-207

SUSE LINUX Manual de Administracin

61

Este parche sirve para tres versiones distintas de pine, incluyendo la versin instalada en nuestro ejemplo. Por tanto, el parche puede ser instalado. Qu archivos va a sustituir el parche? Los archivos afectados por el parche pueden leerse fcilmente del parche RPM. El parmetro -P de rpm sirve para seleccionar caractersticas especiales del parche. As, es posible obtener una lista de los archivos con
rpm -qpPl pine-4.44-224.i586.patch.rpm /etc/pine.conf /etc/pine.conf.fixed /usr/bin/pine

o, si el parche ya est instalado, con


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

Cmo se instala un parche RPM en el sistema? Los parches RPMs se utilizan como RPMs normales. La nica diferencia radica en que en el caso de los parches, el RPM apropiado ya debe estar instalado. Qu parches estn ya instalados en el sistema y sobre qu versiones de paquetes se han instalado? Puede obtener una lista con los parches instalados en el sistema con el comando rpm -qPa. Si en un sistema nuevo se ha instalado slo un parche, como en nuestro ejemplo, la salida del comando ser semejante a:
rpm -qPa pine-4.44-224

Si transcurrido un cierto tiempo quiere saber qu versin del paquete fue instalada en primer lugar, puede consultar la base de datos RPM. En el caso de pine, esta informacin se obtiene con el comando:
rpm -q --basedon pine pine = 4.44-188

Puede obtener ms informacin sobre RPM (incluyendo las prestaciones de los parches) en las pginas del manual de rpm y rpmbuild.

62

2.3. RPM El gestor de paquetes

2.3.4.

Realizar consultas

2
Actualizacin del sistema y gestin de paquetes

La opcin -q (query) permite enviar consultas a los archivos RPM (opcin -p archivo_paquete ), as como a la base de datos RPM. El tipo de informacin a consultar depende de las opciones que guren en la tabla 2.2. Cuadro 2.2: Las opciones de consulta ms importantes (-q [-p] paquete) -i -l -f Archivo Mostrar informacin sobre un paquete Mostrar lista de archivos del paquete Consultar por el paquete que contiene el archivo Archivo ; se requiere la especicacin de Archivo con su rama completa. Mostrar estado de los archivos (implica -l) Nombrar archivos de documentacin (implica -l) Nombrar archivos de conguracin (implica -l) Mostrar toda la informacin de vericacin de todos los archivos (utilizarlo con -l, -c o -d) Mostrar posibilidades del paquete; otro paquete puede pedirlas con --requires Mostrar dependencias entre los paquetes Mostrar los distintos scripts de desinstalacin

-s -d -c --dump --provides --requires, -R --scripts

El siguiente comando produce como resultado la salida en pantalla 2.2:


rpm -q -i wget

Ejemplo 2.2: rpm -q -i wget


Name : Version : Release : Install date: Group : Source RPM : Size : Packager : wget Relocations: (not relocateable) 1.8.1 Vendor: SuSE AG, Nuernberg, Germany 142 Build Date: Mon Apr 5 16:08:13 2004 Mon Apr 5 13:54:08 2004 Build Host: xyz.suse.de Productivity/Networking/Web/Utilities wget-1.8.1-142.src.rpm 2166418 License: GPL feedback@suse.de

SUSE LINUX Manual de Administracin

63

Summary : A tool for mirroring FTP and HTTP servers Description : Wget enables you to retrieve WWW documents or FTP files from a server. This might be done in script files or via command line. [...]

La opcin -f slo funciona cuando se indica el nombre de archivo completo con la ruta incluida; se pueden indicar tantos archivos como se desee. Por ejemplo el comando:
rpm -q -f /bin/rpm /usr/bin/wget

produce como resultado:


rpm-3.0.3-3 wget-1.5.3-55

Si slo se conoce una parte del nombre del archivo, se puede obtener ayuda mediante un script (ver el archivo 2.3) al cual se pasa como parmetro el nombre del archivo buscado. Ejemplo 2.3: Script de bsqueda de paquetes
#! /bin/sh for i in $(rpm -q -a -l | grep $1); do echo "\"$i\" est en el paquete:" rpm -q -f $i echo "" done

Con el siguiente comando se puede ver informacin detallada (actualizaciones, conguracin, cambios, etc.) sobre determinados paquetes; en este ejemplo sobre el paquete rpm:
rpm -q --changelog rpm

No obstante, slo se muestran las ltimas 5 entradas de la base de datos RPM, el paquete en s contiene todas las entradas (de los ltimos 2 aos) la siguiente consulta funciona si el CD 1 est montado en /cdrom:
rpm -qp --changelog /cdrom/suse/i586/rpm-3*.rpm

La base de datos instalada tambin permite efectuar vericaciones. Estas se introducen con la opcin -V (equivalente a -y o --verify). Con la vericacin, rpm muestra todos los archivos del paquete que han sido modicados desde su instalacin original. rpm coloca hasta ocho caracteres por delante del nombre de archivo que indican los siguientes cambios:

64

2.3. RPM El gestor de paquetes

Cuadro 2.3: Las vericaciones 5 S L T D U G M Suma de control MD5 Tamao de archivo Enlace simblico Tiempo de modicacin Nmero de dispositivo (device number) major y minor Usuario (user) Grupo (group) Modo (con derecho y tipo)

2
Actualizacin del sistema y gestin de paquetes

Para los archivos de conguracin aparece como valor adicional la letra c, como lo muestra el ejemplo para el archivo /etc/wgetrc de wget, que ha sido modicado:
rpm -V wget S.5....T c /etc/wgetrc

Los archivos de la base de datos RPM se encuentran en /var/lib/rpm/. Estos pueden ocupar hasta 30 MB en una particin /usr/ de 1 GB, especialmente despus de una actualizacin completa. Si la base de datos parece demasiado grande, se puede reducir su tamao usando la opcin --rebuilddb. Antes de reconstruir la base de datos se debe hacer una copia de seguridad de la base de datos existente. El script cron cron.daily genera diariamente copias comprimidas de la base de datos y las guarda en /var/adm/backup/rpmdb. El nmero de estas copias est denido por la variable MAX_RPMDB_BACKUPS, cuyo valor por defecto es 5, pero se puede modicar en /etc/sysconfig/ backup. Cada backup ocupa aproximadamente 3 MB en una particin /usr de 1 GB.

2.3.5.

Instalar y compilar los paquetes fuente

Todos los paquetes fuente (sources) tienen la extensin .src.rpm; estos archivos se llaman Source-RPMs.

SUSE LINUX Manual de Administracin

65

Atencin
Los paquetes con fuentes se pueden instalar con YaST como cualquier otro paquete, con la diferencia que estos no se marcan como instalados, con una [i], como ocurre con los paquetes ordinarios. Por esta razn los paquetes fuente no guran en la base de datos RPM, ya que este slo anota el software instalado.

Atencin
Si no hay ninguna conguracin personal activada (por ejemplo a travs del archivo /etc/rpmrc), los directorios de trabajo de rpm o rpmbuild deben existir en /usr/src/packages. Dichos directorios son: SOURCES para las fuentes originales (archivos-.tar.gz, etc.) y para las adaptaciones especcas de las distintas distribuciones (archivos-.dif). SPECS para los archivos--.spec, que controlan el proceso build y de este modo actan como Makeles. BUILD por debajo de este directorio se desempaquetan o se compilan las fuentes, tambin se aaden a este los parches. RPMS en este se graban los paquetes completos en formato binario. SRPMS y en este los source-RPMs (fuentes). Al instalar con YaST un paquete de fuentes, todos los componentes necesarios para el proceso build se copian en el directorio /usr/src/packages: Las fuentes y los parches se van al directorio SOURCES y el archivo-.spec correspondiente se copia en el directorio SPECS.

Atencin
No haga experimentos con RPM y componentes importantes del sistema como pueden ser glibc, rpm, sysvinit etc.: la operatividad de su sistema est en juego.

Atencin
Tomando como ejemplo el paquete wget.src.rpm, despus de ser instalado con YaST, aparecern los siguientes archivos:
/usr/src/packages/SPECS/wget.spec /usr/src/packages/SOURCES/wget-1.4.5.dif /usr/src/packages/SOURCES/wget-1.4.5.tar.gz

66

2.3. RPM El gestor de paquetes

Con el comando rpmbuild -b X /usr/src/packages/SPECS/wget.spec comienza la compilacin. La variable X puede representar diferentes pasos, de los cuales aqu guran algunos (ver tambin la ayuda que aparece con la opcin --help o la documentacin de RPM): -bp prepara las fuentes en el directorio /usr/src/packages/BUILD, las desempaqueta y pone los parches -bc igual que -bp, pero con compilacin. -bi igual que -bc, pero con instalacin del paquete. Cuidado: Si hay algn paquete que no soporte la caracterstica BuildRoot, es posible que durante la instalacin se sobreescriban algunos archivos de conguracin importantes! -bb igual que -bi, pero con generacin adicional del RPM binario que, en caso de xito, se encuentra en el directorio /usr/src/ packages/RPMS. -ba como -bb, pero genera adicionalmente el source-RPM que se encuentra, en caso de xito, en el directorio /usr/src/packages/ SRPMS. La opcin --short-circuit permite saltarse determinados pasos. El RPM binario se instala nalmente con rpm -i o mejor an con rpm -U.

2
Actualizacin del sistema y gestin de paquetes

2.3.6.

Creacin de paquetes RPM con build

En el caso de muchos paquetes se corre el riesgo de que se instalen archivos no deseados en el sistema. Para evitarlo se puede emplear el paquete build, el cual crea un entorno denido dentro del que se contruye el paquete. Para crear este entorno chroot, se debe proporcionar un rbol completo de paquetes al script build, ya sea en el disco duro, mediante NFS o desde un DVD. La ubicacin concreta se comunica al script por medio del comando build --rpms <ruta>. A diferencia de rpm, el comando build quiere tener el archivo SPEC en el mismo directorio que las fuentes. Para volver a compilar wget en el ejemplo superior con el DVD montado en el sistema en /media/dvd, ejecute los siguientes comandos como usuario root:
cd /usr/src/packages/SOURCES/ mv ../SPECS/wget.spec . build --rpms /media/dvd/suse/ wget.spec

SUSE LINUX Manual de Administracin

67

A continuacin se crear en /var/tmp/build-root un entorno mnimo donde se construir el paquete. Los paquetes resultantes se almacenarn posteriormente en /var/tmp/build-root/usr/src/packages/RPMS El script build ofrece adems otras opciones. As, se puede denir la utilizacin de los propios RPMs frente al resto, omitir la iniciacin del entorno build o restringir el comando rpm a una de las fases descritas anteriormente. Puede obtener ms informacin con el comando build --help y en |refman[1]build.

2.3.7.

Herramientas para los archivos RPM y la base de datos RPM

El Midnight Commander (mc) puede mostrar el contenido de un archivo RPM y copiar partes de l. El archivo RPM se muestra en un sistema de archivos virtual para el cual se ponen a disposicin todas las opciones del men del mc. La informacin de los encabezamientos del archivo HEADER se visualiza con F3 ; con las teclas del cursor y Intro puede navegar se por la estructura del archivo y en caso de necesidad, copiar componentes usando Por otra parte, ya existe rpm.el para Emacs, el cual es un F5 . frontal para rpm. KDE incluye la herramienta kpackage. En GNOME se incluye gnorpm. Alien (alien) permite la conversin de los formatos de las distintas distribuciones. Con este programa se puede intentar convertir, antes de la instalacin, los archivos antiguos del tipo TGZ al formato RPM, para que la base de datos RPM reciba durante la instalacin la informacin de los paquetes. Pero cuidado: alien es un script de Perl y segn sus autores todava se encuentra en fase alfa, aunque ya ha alcanzado un nmero de versin bastante alto.

68

2.3. RPM El gestor de paquetes

Parte II Conguracin

3
YaST en modo texto (ncurses)

YaST en modo texto (ncurses)

Este captulo est dirigido a administradores de sistemas y expertos que no disponen de un servidor X en su ordenador y por tanto deben utilizar la herramienta de instalacin en modo texto. En este captulo se incluye informacin bsica para trabajar con YaST en modo texto (ncurses). Adems le explicaremos cmo actualizar su sistema en lnea automticamente.

3.1. 3.2. 3.3. 3.4.

Funcionamiento . . . . . . . . . . . . . . . . Limitaciones de las combinaciones de teclas Arranque de mdulos individuales . . . . . YaST Online Update (YOU) . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

72 74 75 75

3.1.

Funcionamiento

El funcionamiento puede resultar algo raro al principio pero es de hecho muy sencillo. Con las teclas Alt Tab Tab , , Espacio , echas de direccin Intro , as ( e como con los atajos de teclado, se puede manejar en y ) principio todo el programa.

3.1.1.

El centro de control de YaST

Si arranca YaST en modo texto, lo primero que aparece es el centro de control de YaST (vase gura 3.1).

Figura 3.1: La ventana principal de YaST-ncurses Aqu pueden observar tres reas: En la parte izquierda, enmarcada por una gruesa lnea blanca, se presentan las categoras en las que estn clasicados los distintos mdulos. La categora activa est resaltada por un fondo de color. A la derecha, enmarcados por un no cuadro blanco, se encuentran los mdulos correspondientes a la categora activa. En la parte inferior estn los botones de Ayuda y Salir. Despus de iniciar por primera vez el Centro de Control de YaST, se selecciona automticamente la categora de Software. Puede cambiar de cate gora con las teclas Para iniciar un mdulo de la categora seleccio y nada pulse la tecla .

72

3.1. Funcionamiento

La lista de mdulos aparece ahora enmarcada con una lnea gruesa. Selec cione el mdulo deseado con las teclas pulsar de manera conti y . El nua las teclas de echas le permite navegar por la lista de mdulos disponibles. Una vez que un mdulo ha sido seleccionado, su nombre aparece resaltado en color y en la ventana inferior aparece una breve descripcin del mismo. Con la tecla Intro puede iniciar el mdulo deseado. Los diversos botones o campos de seleccin del mdulo contienen una letra de otro color (amarillo en la conguracin por defecto). La combinacin letra_amarilla perAlt le mite seleccionar directamente el botn en cuestin sin tener que navegar con Tab . Abandone el Centro de Control de YaST con el botn Salir o seleccionando el punto Salir en la lista de categoras y pulsando a continuacin Intro .

3
YaST en modo texto (ncurses)

3.1.2.

Los mdulos de YaST

Navegacin entre botones/listas de seleccin: o Shift puede navegar entre los botones y Tab y Alt Con Tab Tab los cuadros de listas de seleccin. Navegacin por listas de seleccin: Siempre que est en un cuadro activo en el que se encuentre una lista de seleccin, se puede mover con las teclas de direccin ( y ) entre los distintos elementos, por ejemplo entre los mdulos de un grupo de mdulos en el centro de control. Si alguna entrada sobresale de un cuadro debido a su anchura, puede navegar horizontalmente de izquierda a derecha con bien Shift o Shift (asimismo puede utilizar la combinacin de teclas e bien a Esta Ctrl o Ctrl ). combinacin tambin funciona en aquellas situaciones en las que las o ocasionaran un cambio del cuadro activo o de la lista teclas de seleccin actual, como es el caso en el centro de control. Activar botones y casillas de control La seleccin de botones con un corchete vaco (casillas de control) o de aquellos con un parntesis redondo se realiza con Espacio o Intro igual que los botones normales, las casillas de control y los . Al botones con parntesis tambin pueden activarse directamente por medio de letra_amarilla En este caso no es necesario conrmar Alt . la seleccin con Intro . Por el contrario, cuando se navega con la tecla de tabulacin, la ejecucin de la accin seleccionada o la activacin de Intro (vase una entrada de men s deben volver a conrmarse con la Figura 3.2 en la pgina siguiente).

SUSE LINUX Manual de Administracin

73

Las teclas de funcin: Las teclas F (de estn asimismo ocuF1 a F12 ) padas con funciones. Sirven de acceso rpido a los distintos botones disponibles. Qu teclas F estn ocupadas con qu funciones depende del mdulo de YaST en el que se encuentre, ya que en cada mdulo se ofrecen distintos botones (detalles, info, aadir, eliminar...). Por ejemplo, para los amigos del antiguo YaST1, los botones OK, Siguiente y F10 . La Terminar se encuentran en la tecla Ayuda de YaST, a la que puede acceder con proporciona informacin sobre las funcioF1 , le nes que hay en cada tecla F.

Figura 3.2: El mdulo de instalacin de software

3.2.

Limitaciones de las combinaciones de teclas

Si en su sistema con un servidor X en funcionamiento es posible utilizar combinaciones de teclas con efecto en todo el sistema, puede que Alt con estas no funcionen en YaST. Adems es posible que teclas como Alt o Shift ya estn ocupadas por otras conguraciones del terminal utilizado. Alt en de Esc : combinaciones con Alt pueden realizarse utili lugar Las Esc en Alt , por ejemplo h Esc puede sustituir a Alt zando vez de h .

74

3.2. Limitaciones de las combinaciones de teclas

Saltar hacia adelante o hacia atrs con f y b Ctrl Ctrl : En caso de que las combinaciones con estn ocupadas Alt y Shift ya por el gestor de ventanas o el terminal, utilice de forma alternativa las Ctrl (hacia adelante) y b Ctrl (hacia atrs). combinaciones f Limitaciones de las teclas de funcin: En SUSE LINUX las teclas F tambin estn ocupadas con funciones. Tambin aqu puede que determinadas teclas F ya estn ocupadas segn el terminal escogido y por lo tanto no estn disponibles para YaST. Sin embargo, en una consola de texto, las combinaciones con Alt y las teclas de funcin deberan estar totalmente disponibles.

3
YaST en modo texto (ncurses)

3.3.

Arranque de mdulos individuales

Para ahorrar tiempo, los mdulos de YaST se pueden iniciar individualmente. Basta con introducir: yast <nombre_mdulo>. El mdulo de red, por ejemplo, se arranca con yast lan. Puede obtener una lista de nombres de todos los mdulos disponibles en el sistema con yast -l o con yast --list.

3.4.
3.4.1.

YaST Online Update (YOU)


El mdulo YOU

Al igual que cualquier otro mdulo de YaST, la actualizacin en lnea de YaST (YOU YaST Online Update) puede controlarse e iniciarse desde una consola como usuario root con el comando:
yast online_update .url <url>

yast online_update activa el mdulo correspondiente. De manera opcional puede introducir tambin url. Mediante esta entrada asigna a YOU un servidor (local o remoto) del cual deben obtenerse todos los datos y parches. Si no ha especicado dicha entrada en el comando inicial, puede seleccionar el servidor/directorio ms tarde en la mscara de YaST. Esta mscara se maneja de la misma forma que el mdulo de YaST en modo grco cuyo funcionamiento se describe en el Manual de Usuario. Al igual que en su equivalente grco, el botn Congurar actualizacin totalmente automtica le permite congurar un cronjob que actualice el sistema automticamente.

SUSE LINUX Manual de Administracin

75

3.4.2.

Actualizacin en lnea desde la lnea de comandos

La herramienta de la lnea de comandos online_update le permite actualizar su sistema de forma totalmente automtica, por ejemplo a partir de scripts. Un escenario de aplicacin concreto: usted desea que, peridicamente y a la misma hora, su sistema busque actualizaciones en un servidor determinado y descargue los parches y la informacin correspondiente pero sin instalarlos. Posteriormente desea examinar los parches descargados y seleccionar los que han de instalarse: Para ello, congure un cronjob que ejecute el siguiente comando:
online_update -u <URL> -g <parche_tipo>

La opcin -u introduce la URL base del rbol de directorios de la que deben obtenerse los parches. Se soportan los protocolos http, ftp, smb, nfs, cd, dvd y dir. Por medio de la opcin -g, los parches se descargan y guardan en un directorio local sin ser instalados. De manera opcional, puede ltrar los parches en funcin de su tipo: security (actualizaciones que afectan a la seguridad del sistema), recommended (actualizaciones cuya instalacin se recomienda) y optional (actualizaciones optativas). Si no se especica ningn tipo de parche, online_update descarga todos los parches disponibles de tipo security y recommended. A continuacin puede instalar inmediatamente los parches descargados sin examinarlos. online_update guarda los parches en la ruta /var/lib/YaST2/you/mnt/. Para instalarlos, ejecute el comando:
online_update -u /var/lib/YaST2/you/mnt/ -i

El parmetro -u pasa la URL (local) donde se encuentran los parches que van a ser instalados. La opcin -i inicia el proceso de instalacin. En cambio, para examinar y seleccionar los parches descargados antes de proceder a instalarlos, active la mscara de YOU:
yast online_update .url /var/lib/YaST2/you/mnt/

76

3.4. YaST Online Update (YOU)

A continuacin, YOU se inicia y selecciona como fuente de los parches el directorio local que contiene los parches descargados en lugar de un directorio remoto en Internet. Finalmente puede seleccionar los parches deseados por medio del gestor de paquetes como en cualquier otra instalacin. Para obtener informacin adicional sobre online_update, vea la salida del comando online_update -h.

3
YaST en modo texto (ncurses)
77

SUSE LINUX Manual de Administracin

4
El sistema X Window

El sistema X Window

El sistema X Window (X11) es prcticamente el estndar para interfaces grcas de usuario en Unix. X11 es adems un sistema basado en redes. As, las aplicaciones que estn funcionando en un ordenador pueden mostrar sus datos de salida en otro siempre que ambas mquinas estn conectadas a travs de una red. El tipo de red (LAN o Internet) es irrelevante. En este captulo le presentamos algunas posibilidades de optimizacin para su sistema X Window y le ofrecemos informacin sobre los tipos de letra en SUSE LINUX y la conguracin 3D de OpenGL. La descripcin de los mdulos de YaST para congurar el monitor, la tarjeta grca, ratn y teclado est recogida en el Manual de Usuario.

4.1. Optimizar la instalacin del sistema X Window . . . 81 4.2. Instalacin y conguracin de tipos de letra . . . . . 86 4.3. Conguracin de OpenGL/3D . . . . . . . . . . . . 93

X11 se desarroll gracias a la cooperacin entre DEC (Digital Equipment Corporation) y el proyecto Athena del MIT (Massachusetts Institute of Technology). La primera versin (X11R1) vio la luz en septiembre de 1987. Desde la versin 6 (Release 6), X Consortium, Inc. as como The Open Group desde 1996, se encargan del desarrollo del X Window System. XFree es una implementacin de libre disponibilidad de servidores X para sistemas PC Unix (ver http://www.XFree86.org). XFree sigue siendo desarrollando por programadores de todo el mundo que se unieron en 1992 para formar el equipo XFree. De esta unin surgi en 1994 la empresa The XFree86 Project, Inc., cuyo objetivo es poner XFree al alcance de un pblico lo ms amplio posible y contribuir al desarrollo e investigacin futuros del sistema X Window. Para usar el hardware existente (ratn, tarjeta de vdeo, monitor, teclado) de la mejor forma posible se puede optimizar la conguracin de forma manual. A continuacin se discutirn solamente los aspectos ms importantes de esta optimizacin manual. Puede encontrar informacin detallada sobre la conguracin del sistema X Window en diversos archivos del directorio /usr/share/doc/packages/xf86 al igual que en la correspondiente pgina del manual man XF86Config.

Aviso
Se recomienda mucha precaucin a la hora de congurar el sistema X Window. Jams se debe arrancar X sin haber terminado la conguracin. Un sistema mal congurado puede ocasionar daos irreparables en el hardware; los monitores de frecuencia ja corren un riesgo especial. Los autores de este libro y SUSE LINUX AG no se responsabilizan de posibles daos. El presente texto fue redactado con mximo cuidado, no obstante, no se puede garantizar que los mtodos presentados sean correctos para su hardware y que no pueda causarles dao.

Aviso

80

4.1.

Optimizar la instalacin del sistema X Window

4
El sistema X Window

A continuacin se describe la estructura del archivo de conguracin /etc/X11/XF86Config. Este archivo se divide en secciones (sections) que comienzan con la palabra clave Section "nombre" y terminan con EndSection. Estas secciones se explican a grandes rasgos en los siguientes apartados. Los programas SaX2 y xf86cong generan el archivo XF86 Config y lo copian generalmente en el directorio /etc/X11. Este es el archivo de conguracin principal del X Window System que contiene las deniciones de ratn, monitor y tarjeta de vdeo. XF86Config se compone de varios prrafos llamados secciones (sections) y cada una contempla un determinado aspecto de la conguracin. Cada seccin tiene la estructura:
Section "Nombre" definicin 1 definicin 2 definicin n EndSection

Existen los siguientes tipos de secciones: Cuadro 4.1: Secciones en /etc/X11/XF86Cong Tipo Files ServerFlags InputDevice Signicado Esta seccin describe las rutas para los juegos de caracteres y la tabla de colores RGB. Aqu se apuntan indicadores generales (ags). Esta es la seccin de conguracin de los dispositivos de entrada. Se conguran tanto teclados y ratones como dispositivos de entrada especiales tales como joysticks, tabletas digitalizadoras, etc. Las variables importantes aqu son Driver y las opciones Protocol y Device para determinar el protocolo y el dispositivo.

SUSE LINUX Manual de Administracin

81

Monitor

Descripcin del monitor usado. Los elementos de esta seccin son un nombre que se utilizar ms adelante como referencia en la denicin de la pantalla (Screen), as como el valor de la anchura de banda (Bandwidth [MHz]) y de las frecuencias de sincronizacin permitidas (HorizSync [kHz] y VertRefresh [Hz]). El servidor rechaza cualquier modeline que no cumpla con la especicacin del monitor; de esta forma se evita enviar al monitor por error frecuencias demasiado altas cuando se est experimentando con los modelines. Aqu se denen los parmetros para las determinadas resoluciones de pantalla. SaX2 calcula estos parmetros en base a las indicaciones por parte del usuario y por lo general no se requiere ninguna modicacin. Se puede realizar una intervencin manual por ejemplo en caso de usar un monitor con frecuencia ja. La explicacin exacta de todos los parmetros se encuentra en el archivo HOWTO /usr/share/doc/howto/en/XFree86Video-Timings-HOWTO.gz. Esta seccin dene una determinada tarjeta grca cuya referencia es el nombre que aparece por detrs de la palabra clave Device. Esta seccin une nalmente un Monitor con un Device para formar as las indicaciones necesarias para XFree. La subseccin Display permite la denicin de un tamao de pantalla virtual (Virtual), del ViewPort y de los Modes usados con este Screen.

Modes

Device

Screen

ServerLayout Esta seccin dene el diseo de una conguracin con uno o varios monitores (single o multihead). Los dispositivos de entrada InputDevice y los monitores Screen se unen para formar un conjunto.

A continuacin se contemplan ms de cerca las secciones Monitor, Device y Screen. En las pginas del manual relativas a XFree86 y XF86Config encontrar informacin adicional sobre el resto de secciones. El archivo XF86Config puede contener varias secciones de tipo Monitor y Device. Tambin pueden aparecer diversas secciones Screen. De la siguiente seccin ServerLayout depende cul de ellas se va a utilizar.

82

4.1. Optimizar la instalacin del sistema X Window

4.1.1.

Seccin Screen

4
El sistema X Window

Primero queremos profundizar un poco ms en la seccin Screen. Esta une una seccin de Monitor y de Device y determina qu resolucin debe utilizarse con qu profundidad de color. Una seccin del tipo Screen puede parecerse, por ejemplo, a la del archivo 4.1. Ejemplo 4.1: La seccin Screen del archivo /etc/X11/XF86Cong

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

La lnea Identifier (en este ejemplo el identicador es Screen[0]) da un nombre nico a la seccin para poder identicarla de forma inequvoca en la siguiente seccin ServerLayout. La tarjeta grca y el monitor denido se asignan mediante las lneas Device y Monitor a la pantalla Screen. No son ms que referencias a las secciones de dispositivo (Device) y Monitor con los nombres correspondientes o identicadores (identiers). Estas secciones se explican ms adelante.

SUSE LINUX Manual de Administracin

83

La variable DefaultDepth indica la profundidad de color por defecto que usa el servidor cuando arranca sin denicin explcita de ella. A cada profundidad de color le sigue una subseccin de Display. La profundidad de color de cada subseccin se dene por la palabra clave Depth. Los valores posibles para Depth son 8, 15, 16, 24 y 32. No todos los mdulos de servidor X soportan todos los valores. Despus de denir la profundidad de color se dene una lista de resoluciones con Modes. El servidor X lee esta lista de izquierda a derecha. Para cada una de las resoluciones listadas, el servidor busca en la seccin Modes un Modeline que pueda ser representada por el monitor y la tarjeta grca. La primera resolucin adecuada en este sentido es la que usa el servidor X CtrL - - se para arrancar (Default-Mode). Con las teclas Alt gris + puede CtrL - - a navegar en la lista de resoluciones a la derecha y con Alt gris - la izquierda. Gris indica aqu que se trata de teclas del bloque numrico, ya que estas se resaltan a veces en color gris. As se puede modicar la resolucin en pantalla durante el tiempo de ejecucin del sistema X Window. La ltima lnea de la subseccin Display con la expresin Depth 16 se reere al tamao de la pantalla virtual. El tamao mximo de la pantalla virtual depende de la cantidad de memoria instalada y de la profundidad de color deseada pero no depende de la resolucin mxima del monitor. Ya que las tarjetas grcas modernas ofrecen mucha memoria, se pueden crear escritorios virtuales muy grandes. En tal caso es posible que ya no se pueda aprovechar la aceleracin 3D por haber ocupado toda la memoria de vdeo con un escritorio virtual. Si la tarjeta tiene por ejemplo 16 MB Vdeo RAM, la pantalla virtual puede ser de hasta 4096x4096(!) puntos con una profundidad de color de 8 Bit. Para los servidores X acelerados no se recomienda de ninguna manera usar todo el espacio de memoria disponible para la pantalla virtual, ya que estos servidores usan la zona de memoria no usada de la tarjeta para diferentes cachs de juegos de caracteres y de zonas de grcos.

4.1.2.

Seccin Device

Una seccin de dispositivo (Device-Section), describe una determinada tarjeta grca. XF86Config puede incluir una cantidad innita de secciones de dispositivo siempre que sus nombres, indicados con la palabra clave Identifier, se distingan. Si hay varias tarjetas grcas montadas en la mquina, estas secciones reciben nmeros consecutivos comenzando con Device[0] para la primera, Device[1] para la segunda, etc.

84

4.1. Optimizar la instalacin del sistema X Window

El siguiente archivo muestra el extracto de una seccin del tipo Device de un ordenador con una tarjeta PCI tipo Matrox Millennium:
Section "Device" BoardName "MGA2064W" BusID "0:19:0" Driver "mga" Identifier "Device[0]" VendorName "Matrox" Option "sw_cursor" EndSection

4
El sistema X Window

La seccin Device debera ser semejante a la que se muestra arriba si se usa SaX2 para la conguracin. SaX2 determina automticamente Driver y BusID, los cuales dependen del hardware integrado en su mquina. BusID determina la posicin que ocupa la tarjeta grca en el bus PCI o AGP y es equivalente al nmero que lspci indica. Hay que tener en cuenta que el servidor X usa valores decimales mientras que los de lspci son hexadecimales. En el parmetro Driver se determina el controlador para la tarjeta grca, que en el caso de la Matrox Millennium es mga. El servidor X busca el controlador en el subdirectorio drivers de la rama ModulePath denido en el apartado Files. La rama completa para una instalacin estndar es /usr/X11R6/lib/modules/drivers. El nombre completo del controlador se obtiene aadiendo _drv.o al identicador, lo que resulta en nuestro ejemplo en mga_drv.o. Existen opciones adicionales para activar ciertas caractersticas del servidor X y de su controlador. En este caso se ha usado como ejemplo la opcin sw_cursor que desactiva el cursor hecho por hardware para emularlo mediante software. Segn el controlador usado, hay diferentes opciones que se explican junto con los controladores en el directorio /usr/X11R6/lib/X11/doc. Tambin puede encontrar opciones generales en las pginas del manual man XF86Config y man XFree86.

4.1.3.

Secciones Monitor y Modes

Las secciones de Monitor y de Modes, as como las de Device, describen un monitor por cada seccin y puede haber una cantidad innita de estas secciones en el archivo de conguracin /etc/X11/XF86Config. En la seccin de ServerLayout se determina qu seccin de monitor vale a efectos de la conguracin.

SUSE LINUX Manual de Administracin

85

Slo usuarios muy experimentados deberan generar o ajustar una seccin de Monitor (y sobre todo la de Modes) al igual que una seccin de tarjeta grca. Una parte fundamental de la seccin Modes son los Modelines que indican las sincronizaciones (timings) horizontales y verticales para cada resolucin. La seccin Monitor contiene las caractersticas del monitor y entre ellas sobre todo las frecuencias de refresco mximas.

Aviso
Sin un buen conocimiento de la funcin de monitor y de tarjeta grca no se debera cambiar ningn valor de los Modelines, ya que esto podra provocar averas en el monitor.

Aviso
Si realmente se atreve a hacer sus propias conguraciones de monitor, debera leer antes la documentacin de /usr/X11/lib/X11/doc. Se recomienda especialmente la lectura de [12] que explica detalladamente la funcin del hardware y la denicin de los Modelines. Por fortuna, hoy en da casi nunca hace falta generar Modelines o deniciones de monitores manualmente. Si dispone de un monitor de multifrecuencia moderno, SaX2 puede leer va DDC los rangos de frecuencia admitidas y las resoluciones ptimas directamente del monitor. Si esto no fuera posible, siempre se puede recurrir a uno de los modos VESA del servidor X que funcionan prcticamente con todas las combinaciones posibles de monitor y de tarjeta grca.

4.2.

Instalacin y conguracin de tipos de letra

Instalar tipos de letra adicionales en SUSE LINUX resulta muy sencillo. Basta con copiar los tipos de letra en un directorio especicado en la ruta de tipos de letra de X11 (vase la seccin 4.2.1 en la pgina 91). Con el n de que los tipos de letra tambin puedan utilizarse con el nuevo sistema de representacin de tipos de letra Xft, este directorio ha de ser adems un subdirectorio de los directorios congurados en /etc/fonts/fonts. conf (vase la seccin 4.2.1 en la pgina siguiente). Puede copiar los archivos de tipo de letra como usuario root en un directorio adecuado como por ejemplo /usr/X11R6/lib/X11/fonts/ truetype/, o bien utilizar el instalador de tipos de letra de KDE en el centro de control de KDE. El resultado es el mismo.

86

4.2. Instalacin y conguracin de tipos de letra

En lugar de copiar realmente los tipos de letra, tambin es posible crear enlaces simblicos para, por ejemplo, poder utilizar tipos de letra con licencia disponibles en una particin Windows montada. Despus de crear el enlace ha de ejecutar SuSEconfig --module fonts. El comando SuSEconfig --module fonts activa el script /usr/sbin/ fonts-config, el cual se ocupa de congurar los tipos de letra. Puede obtener informacin detallada sobre el funcionamiento de este script en la pgina del manual correspondiente (man fonts-config). Independientemente del tipo de letra que quiera instalarse, el procedimiento siempre es el mismo. Ya se trate de tipos de letra TrueType/OpenType, de tipo 1 (PostScript) o mapas de bits, todos pueden instalarse en cualquier directorio. nicamente los tipos de letra CID-keyed suponen una excepcin, ver el apartado 4.2.1 en la pgina 92.

4
El sistema X Window

4.2.1.

Sistemas de tipos de letra

XFree contiene dos sistemas de tipos de letra completamente distintos: el antiguo sistema X11 core font y el de nueva creacin Xft/fontcong. A continuacin se describirn brevemente ambos sistemas. Xft Ya durante la planicacin de Xft se prest una especial atencin al soporte de tipos de letra escalables (incluyendo antialiasing). Al contrario de lo que sucede con el sistema X11 core font, cuando se emplea Xft, los tipos de letra son representados por el programa que los utiliza y no por el servidor X. De este modo, el programa en cuestin accede directamente a los archivos de los tipos de letra y obtiene un control absoluto sobre todos los detalles, como por ejemplo la representacin de los glifos. Por una parte, slo as es posible lograr una representacin correcta del texto en algunos idiomas. Por otra, el acceso directo a los archivos de tipo de letra resulta muy til para insertar (embed ) tipos de letra para su impresin y lograr as que el documento impreso reproduzca realmente la salida en pantalla. En SUSE LINUX, los entornos de escritorio KDE y Gnome as como Mozilla y otras muchas aplicaciones utilizan por defecto el sistema Xft. As pues, Xft ya es utilizado por un nmero considerablemente mayor de aplicaciones que el antiguo sistema X11 core font. Xft se sirve de la librera Fontcong para encontrar los tipos de letra y especicar de qu forma van a ser representados.

SUSE LINUX Manual de Administracin

87

El comportamiento de fontcong se determina mediante un archivo de conguracin vlido en todo el sistema, /etc/fonts/fonts.conf, y otro especco para el usuario: ~/.fonts.conf. Ambos archivos de conguracin de fontcong deben empezar por
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig>

y terminar en
</fontconfig>

Para aadir nuevos directorios en los que deban buscarse tipos de letra, puede insertar lneas como:
<dir>/usr/local/share/fonts/</dir>

No obstante, esto no suele ser necesario ya que el directorio de usuario ~/.fonts/ ya est incluido por defecto en /etc/fonts/fonts.conf. As pues, si un usuario desea instalar tipos de letra adicionales para su uso personal, basta con que las copie en ~/.fonts. Tambin puede introducir reglas para denir el aspecto de los tipos de letra, por ejemplo:
<match target="font"> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match>

para desactivar el antialiasing para todos los tipos de letra, o bien:


<match target="font"> <test name="family"> <string>Luxi Mono</string> <string>Luxi Sans</string> </test> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match>

88

4.2. Instalacin y conguracin de tipos de letra

para desactivarlo slo para ciertos tipos de letra. La mayora de aplicaciones utilizan por defecto los nombres de tipo de letra sans-serif (o su equivalente sans), serif o monospace. Aqu no se trata de nombres de tipos de letra realmente existentes sino de nombres alias que se asignan a un tipo de letra en funcin del idioma seleccionado. Todos los usuarios pueden aadir fcilmente reglas a su archivo ~/ .fonts.conf con el n de que estos nombres alias sean resueltos con determinados tipos de letra:
<alias> <family>sans-serif</family> <prefer> <family>FreeSans</family> </prefer> </alias> <alias> <family>serif</family> <prefer> <family>FreeSerif</family> </prefer> </alias> <alias> <family>monospace</family> <prefer> <family>FreeMono</family> </prefer> </alias>

4
El sistema X Window

Debido a que prcticamente todas las aplicaciones utilizan estos nombres alias por defecto, las reglas son vlidas para casi todo el sistema. De esta forma y con muy poco esfuerzo, puede utilizar sus tipos de letra preferidos casi siempre sin tener que congurar la opcin de tipos de letra en cada programa por separado. El comando fc-list le permite averiguar qu tipos de letra estn instalados y disponibles. As por ejemplo, el comando fc-list "" proporciona una lista de todos los tipos de letra. Si desea averiguar qu tipos de letra escalables (:outline=true) con todos los glifos necesarios para el hebreo (:lang=he) estn disponibles as como su denominacin (family), estilo (style), su peso o grosor (weight) y el nombre del archivo que contiene el tipo de letra, puede utilizar por ejemplo el siguiente comando:
fc-list ":lang=he:outline=true" family style weight file

SUSE LINUX Manual de Administracin

89

La salida de este comando podra ser la siguiente:

/usr/X11R6/lib/X11/fonts/truetype/FreeSansBold.ttf: \ FreeSans:style=Bold:weight=200 /usr/X11R6/lib/X11/fonts/truetype/FreeMonoBoldOblique.ttf: \ FreeMono:style=BoldOblique:weight=200 /usr/X11R6/lib/X11/fonts/truetype/FreeSerif.ttf: \ FreeSerif:style=Medium:weight=80 /usr/X11R6/lib/X11/fonts/truetype/FreeSerifBoldItalic.ttf: \ FreeSerif:style=BoldItalic:weight=200 /usr/X11R6/lib/X11/fonts/truetype/FreeSansOblique.ttf: \ FreeSans:style=Oblique:weight=80 /usr/X11R6/lib/X11/fonts/truetype/FreeSerifItalic.ttf: \ FreeSerif:style=Italic:weight=80 /usr/X11R6/lib/X11/fonts/truetype/FreeMonoOblique.ttf: \ FreeMono:style=Oblique:weight=80 /usr/X11R6/lib/X11/fonts/truetype/FreeMono.ttf: \ FreeMono:style=Medium:weight=80 /usr/X11R6/lib/X11/fonts/truetype/FreeSans.ttf: \ FreeSans:style=Medium:weight=80 /usr/X11R6/lib/X11/fonts/truetype/FreeSerifBold.ttf: \ FreeSerif:style=Bold:weight=200 /usr/X11R6/lib/X11/fonts/truetype/FreeSansBoldOblique.ttf: \ FreeSans:style=BoldOblique:weight=200 /usr/X11R6/lib/X11/fonts/truetype/FreeMonoBold.ttf: \ FreeMono:style=Bold:weight=200

Los parmetros ms importantes que pueden ser consultados con el comando fc-list son los siguientes: Cuadro 4.2: Parmetros de fc-list Parmetro family foundry style lang Signicado y valor posible Nombre de la familia de tipo de letra, por ejemplo FreeSans Fabricante del tipo de letra, por ejemplo urw Estilo del tipo de letra, por ejemplo Medium, Regular, Bold, Italic, Heavy, ... Idioma(s) que soporta el tipo de letra. Por ejemplo es para el espaol, ja para el japons, zh-TW para el chino tradicional, zh-CN para el chino simplicado, etc.

90

4.2. Instalacin y conguracin de tipos de letra

weight slant le outline scalable bitmap pixelsize

El grosor, por ejemplo 80 para no negrita y 200 para negrita. El grado de inclinacin, normalmente 0 para no cursiva y 100 para cursiva. Nombre del archivo en el que se encuentra el tipo de letra. true si se trata de un tipo de letra con contorno, false en caso contrario. true si se trata de un tipo de letra escalable, false en caso contrario. true si se trata de un mapa de bit, false en caso contrario. Tamao del tipo de letra en pxeles. En el contexto de fc-list slo tiene importancia para los mapas de bits.

4
El sistema X Window

X11 core fonts Hoy en da, el sistema X11 core font no slo soporta mapas de bits sino tambin tipos de letra escalables como las de tipo 1, TrueType/OpenType y CID-keyed. Los tipos de letra Unicode se soportan tambin desde hace mucho tiempo. Originalmente, el sistema X11 core font fue desarrollado en 1987 para X11R1 con el n de procesar tipos de letra de mapas de bit monocromos. Incluso hoy puede observarse que todas las extensiones mencionadas en las lneas superiores han sido aadidas posteriormente. Por ejemplo, los tipos de letra escalables se soportan exclusivamente sin antialiasing y sin representacin de subpxeles, y el proceso de carga de tipos de letra escalables de grandes dimensiones con glifos para muchos idiomas puede resultar muy lento. Asimismo, el uso de tipos de letra Unicode puede ser muy lento y consume mucha ms memoria de la necesaria. El sistema X11 core font presenta otros muchos inconvenientes y en general puede decirse que ha cado en desuso y que no tiene sentido continuar amplindolo. Aunque debe seguir estando presente por razones de compatibilidad con versiones anteriores, se recomienda utilizar en la medida de lo posible el sistema Xft/fontcong, mucho ms moderno. Tenga presente que el servidor X slo tomar en cuenta aquellos directorios que hayan sido introducidos en la seccin Files del archivo /etc/X11/ XF86Config como FontPath.

SUSE LINUX Manual de Administracin

91

Dispongan de un archivo font.dir vlido (este archivo es generado por SuSEcong). No hayan sido dados de baja con el comando xset -fp mientras el servidor X estaba en funcionamiento. O bien hayan sido integrados con ayuda del comando xset +fp mientras el servidor X estaba en funcionamiento. Una vez que el servidor X est en funcionamiento, es posible activar tipos de letra recin instalados en directorios ya integrados por medio del comando xset fp rehash. Este comando es ejecutado por SuSEconfig --module fonts. Debido a que el comando xset necesita acceder al servidor X activo, este proceso slo puede funcionar si SuSEconfig --module fonts se activa desde una shell con acceso al servidor X en ejecucin. Para ello, el mtodo ms sencillo consiste en registrarse en una consola como root introduciendo el comando sux y la contrasea de root. sux transmite los permisos de acceso del usuario que ha iniciado el servidor X a la root shell. Puede utilizar el comando xlsfonts para comprobar si los tipos de letra han sido instalados correctamente y si estn disponibles por medio del sistema X11 core font. Este comando produce una lista de todos los tipos de letra disponibles. SUSE LINUX utiliza por defecto UTF-8, por lo que normalmente ser posible emplear tipos de letra Unicode. Reconocer a estos en la lista emitida por xlsfonts porque sus nombres terminan en iso10646-1. As pues, para ver una lista de todos los tipos de letra Unicode disponibles, puede servirse del comando xlsfonts | grep iso10646-1. La gran mayora de los tipos de letra Unicode disponibles en SUSE LINUX incluyen al menos todos los glifos necesarios para las lenguas europeas para las que anteriormente se utilizaba la codicacin iso-8859-*. Tipos de letra CID-keyed Al contrario de lo que sucede con otros tipos de letra, en el caso de CIDkeyed s que importa en qu directorio se instala. Este ha de ser siempre /usr/share/ghostscript/Resource/CIDFont/. Aunque el directorio carezca de importancia para Xft/fontcong, Ghostscript y el sistema X11 core font requieren que se trate de este directorio en concreto.

92

4.2. Instalacin y conguracin de tipos de letra

Atencin
Puede obtener informacin adicional sobre los tipos de letra en X11 en la URL http://www.xfree86.org/current/fonts.html.

4
El sistema X Window
Atencin

4.3.

Conguracin de OpenGL/3D

OpenGL es la interfaz de 3D para Linux. Direct3D de Microsoft no est disponible para Linux.

4.3.1.

Hardware Soportado

SUSE LINUX incluye varios controladores OpenGL para el siguiente hardware 3D. La Tabla 4.3 le proporciona una visin general. Cuadro 4.3: Hardware 3D soportado Controlador OpenGL nVidia DRI Hardware soportado Chips nVidia: todos excepto Riva 128(ZX) 3Dfx Voodoo Banshee, 3Dfx Voodoo3/4/5, Intel i810/i815/i830M, Intel 845G/852GM/855GM/865G, Matrox G200/G400/G450/G550, ATI Rage 128(Pro)/Radeon

Si est realizando una nueva instalacin con YaST, puede activar el soporte 3D durante la instalacin siempre y cuando YaST detecte dicho soporte. Los chips grcos nVidia son la nica excepcin; en este caso es necesario instalar previamente el controlador nVidia. Para ello seleccione durante la instalacin el parche del controlador nVidia en YOU (YaST Online Update). Por motivos de licencia no podemos incluir el controlador de nVidia con la distribucin. Si va a realizar una actualizacin, el soporte de hardware 3D tendr que congurarse de manera diferente. El mtodo depende del controlador OpenGL que est utilizando y se describe con ms detalle en la siguiente seccin.

SUSE LINUX Manual de Administracin

93

4.3.2.

Controladores OpenGL

nVidia y DRI Estos controladores OpenGL pueden instalarse muy fcilmente utilizando SaX2. Tenga en cuenta que, si dispone de una tarjeta nVidia, el controlador de nVidia ha de ser instalado previamente como se describe en las lneas superiores. El comando 3Ddiag le permite comprobar si nVidia o DRI estn congurados correctamente. Por razones de seguridad, slo los usuarios que pertenecen al grupo video pueden tener acceso al hardware 3D. Compruebe que todos los usuarios que trabajan localmente en la mquina pertenecen a ese grupo. De no ser as, cuando intente ejecutar aplicaciones OpenGL se ejecutar el Software Rendering Fallback del controlador OpenGL. Utilice el comando id para comprobar si el usuario actual pertenece al grupo video. Si este no es el caso, utilice YaST para aadirlo al grupo.

4.3.3.

Herramienta de diagnstico 3Ddiag

Puede vericar la conguracin 3D en SUSE LINUX con la herramienta de diagnstico 3Ddiag incluida en el sistema. Se debe ejecutar este comando desde una terminal de lnea de comandos. La aplicacin examinar, por ejemplo, la conguracin de XFree para vericar que los paquetes de soporte de 3D estn instalados y las libreras OpenGL estn siendo utilizadas con la extensin GLX. Siga las instrucciones de 3Ddiag si aparecen mensajes de "failed". Si todo ha ido a la perfeccin, ver en la pantalla el mensaje "done". 3Ddiag -h proporciona informacin sobre las opciones admitidas por 3Ddiag.

4.3.4.

Aplicaciones de prueba OpenGL

Para probar OpenGL puede utilizar juegos tales como tuxracer y armagetron (del paquete del mismo nombre) as como glxgears. Si el soporte 3D ha sido activado, estos juegos funcionarn correctamente en ordenadores medianamente actuales. Sin embargo, sin soporte 3D no ser posible ejecutarlos o slo con graves efectos de distorsin. La salida del comando glxinfo le informar de si el soporte 3D est activado. La variable direct rendering ha de tener el valor Yes.

94

4.3. Conguracin de OpenGL/3D

4.3.5.

Resolucin de problemas

4
El sistema X Window

Si los resultados de la prueba de 3D de OpenGL han sido negativos (los juegos no se han visualizado adecuadamente), utilice 3Ddiag para asegurarse de que no existen errores en la conguracin (mensajes de failed). Si la correccin de estos no ayuda o no han aparecido mensajes de error, mire los archivos log de XFree86. A menudo, encontrar aqu la lnea DRI is disabled en los archivos XFree86 4.x /var/log/XFree86. 0.log. Se puede descubrir la causa exacta examinando con detalle los archivos log, lo que quiz sea demasiado complicado para un usuario no experimentado. En estos casos, lo normal es que no exista ningn error en la conguracin, puesto que ya habra sido detectado por 3Ddiag. Por lo tanto slo queda el Software Rendering Fallback del controlador DRI, el cual no ofrece soporte de hardware 3D. Prescinda tambin del soporte 3D en caso de fallos de representacin en OpenGL o problemas generales de estabilidad. Puede desactivar el soporte 3D con SaX2.

4.3.6.

Soporte de instalacin

Excepto el Software Rendering Fallback del controlador DRI, todos los controladores de Linux estn en fase de desarrollo y por tanto se consideran en pruebas. Los controladores se incluyen en la distribucin debido a la alta demanda de aceleracin de hardware 3D en Linux. Considerando el estado experimental de los controladores de OpenGL, no podemos ofrecer un soporte de instalacin para congurar la aceleracin de hardware 3D o proporcionar ningn otro tipo de ayuda. La conguracin bsica de la interfaz grca X11 no incluye la conguracin de la aceleracin de hardware 3D. No obstante, esperamos que este captulo responda a muchas preguntas relacionadas con este tema. En caso de problemas con el soporte de hardware 3D le recomendamos en ltima instancia prescindir de este soporte.

4.3.7.

Documentacin adicional en lnea

DRI: /usr/X11R6/lib/X11/doc/README.DRI (paquete XFree86)

SUSE LINUX Manual de Administracin

95

5
Funcionamiento de la impresora

Funcionamiento de la impresora

El presente captulo le ofrece informacin general sobre el funcionamiento de la impresora. Esta informacin le ser de gran ayuda a la hora de resolver problemas relacionados con el uso de la impresora en red.

5.1. 5.2. 5.3. 5.4. 5.5. 5.6. 5.7. 5.8.

Fundamentos del proceso de impresin . . . . . Requisitos para imprimir . . . . . . . . . . . . . . Conguracin de impresoras con YaST . . . . . . Conguracin para aplicaciones . . . . . . . . . El sistema de impresin CUPS . . . . . . . . . . . Imprimir desde aplicaciones . . . . . . . . . . . . Herramientas de lnea de comandos para CUPS Impresin en redes TCP/IP . . . . . . . . . . . .

. . . . . . . .

. . . . . . . .

98 103 107 113 114 122 123 127

5.1.

Fundamentos del proceso de impresin

En Linux las impresoras funcionan mediante colas de impresin. Los datos a imprimir se envan a una cola de impresin donde se almacenan temporalmente hasta que son reenviados sucesivamente a la impresora a travs del spooler de impresin. La mayora de las veces los datos a imprimir no se encuentran en la forma adecuada para ser enviados directamente a la impresora. As por ejemplo, un grco debe ser convertido previamente a otro formato que la impresora pueda reproducir directamente. Esta conversin al lenguaje de impresin se realiza mediante un ltro de impresin que es activado por el spooler para convertir los datos de impresin a un formato que la impresora pueda imprimir directamente.

5.1.1.

Ejemplos de lenguajes de impresin estndar

Texto ASCII La mayora de las impresoras pueden al menos imprimir directamente texto ASCII. Las pocas excepciones que existen entienden alguno de los siguientes lenguajes de impresin. PostScript PostScript es el lenguaje de impresin estndar utilizado para tareas de impresin en Unix/Linux, las cuales pueden ser imprimidas por las impresoras PostScript directamente. Este tipo de impresoras es relativamente caro, ya que PostScript es un complejo y poderoso lenguaje que exige un alto rendimiento por parte del ordenador a la hora de imprimir. Adems la licencia provoca costes adicionales. PCL3, PCL4, PCL5e, PCL6, ESC/P, ESC/P2 y ESC/P Raster Si no hay una impresora PostScript conectada, el ltro de impresin utiliza el programa Ghostscript para convertir los datos en uno de los otros lenguajes de impresin estndar. Para ello se debe utilizar un controlador Ghostscript adecuado para el modelo de impresora de que se trate, con el n de poder tener en cuenta las particularidades especcas de cada modelo (por ejemplo opciones de color).

98

5.1. Fundamentos del proceso de impresin

5.1.2.

Desarrollo de un trabajo de impresin

5
Funcionamiento de la impresora

1. El usuario o un programa de aplicacin lanza un trabajo de impresin. 2. Los datos a imprimir se guardan en la cola de impresin, desde donde son reenviados por el spooler de impresin al ltro de impresin correspondiente. 3. El ltro de impresin realiza por lo general lo siguiente: a) Se identica el tipo de datos que se va a imprimir. b) Si no se trata de datos PostScript, se transforman en datos de este lenguaje estndar. En especial se convierte el texto ASCII en lenguaje PostScript. c) En caso necesario, los datos PostScript se convierten a otro lenguaje que la impresora pueda entender. Si se trata de una impresora PostScript, se envan los datos PostScript directamente a la impresora. En caso necesario tambin se activan las funciones bash duplex y tray denidas en /usr/lib/lpdfilter/global/functions para implementar la impresin duplex o la seleccin de bandejas mediante comandos PostScript. Para ello es necesario que la impresora PostScript pueda procesar tales comandos. Si no se trata de una impresora PostScript, el programa Ghostscript emplea un controlador que se acomoda al lenguaje de impresin del modelo de impresora utilizado. Este controlador transforma los datos PostScript en datos escritos en el lenguaje de impresin correspondiente, que luego sern enviados a la impresora. Los parmetros especcos de impresora para el comando Ghostscript estn almacenados en una de las siguientes ubicaciones: En la lnea cm del archivo /etc/printcap. Directamente en el archivo /etc/lpdfilter/cola/upp (aqu debe sustituir cola por el nombre real de la cola). Indirectamente en el archivo /etc/lpdfilter/cola/ppd (aqu debe sustituir cola por el nombre real de la cola). Esto sucede cuando el lpdlter ha sido congurado con YaST, ya que en este caso la conversin en datos especcos de impresora se

SUSE LINUX Manual de Administracin

99

produce del mismo modo que en el sistema de impresin CUPS con el ltro foomatic-rip. Este ltro genera el comando Ghostscript especco de impresora en el mismo archivo PPD Foomatic utilizado para el sistema de impresin CUPS. La salida de Ghostscript puede convertirse a otro formato si es necesario siempre que exista un script adecuado en /etc/lpdlter/cola/post (no olvide sustituir "cola" por el nombre real de la cola de impresin). 4. Una vez que el trabajo de impresin ha sido enviado en su totalidad a la impresora, el spooler de impresin lo borra de la cola de impresin.

100

5.1. Fundamentos del proceso de impresin

5
Funcionamiento de la impresora

Figura 5.1: Resumen del proceso de impresin SUSE LINUX Manual de Administracin 101

5.1.3.

Distintos sistemas de impresin

SUSE LINUX soporta dos tipos de sistemas de impresin: LPRng/lpdlter Este es un sistema tradicional compuesto por el spooler de impresin LPRng y el ltro de impresin lpdlter. En sistemas tradicionales, el administrador del sistema establece toda la conguracin de una cola de impresin y el usuario slo puede escoger entre distintas colas. Para elegir una determinada conguracin, deben jarse varias colas de impresin con distintas conguraciones para la misma impresora. En impresoras de blanco y negro (por ejemplo la mayora de las impresoras lser) basta con una conguracin estndar, pero con las modernas impresoras a chorro de tinta en color es necesario realizar distintas conguraciones para imprimir en blanco y negro, en color, en color a gran resolucin o con calidad fotogrca. Mediante este tipo de conguraciones se garantiza automticamente que slo se utilizarn aquellas realizadas por el administrador del sistema. Por otro lado, ya que el usuario no puede realizar conguraciones individuales, el administrador del sistema debe congurar muchas colas de impresin para poder aprovechar todas las posibilidades que ofrecen las impresoras actuales y ponerlas a disposicin de los usuarios. CUPS Con el sistema CUPS el usuario tiene la posibilidad de denir para cada impresin propiedades diferentes ya que aqu el administrador del sistema no determina la conguracin total de una cola de impresin. Las distintas posibilidades de conguracin se encuentran en un archivo PPD (PostScript Printer Description) para cada cola de impresin. Este archivo se le presenta al usuario en una ventana de dilogo. Normalmente el archivo PPD contiene todas las posibilidades que ofrece la impresora. No obstante, el administrador del sistema puede modicar este archivo y limitar esas posibilidades. Debido a que pueden originarse conictos entre los dos sistemas, normalmente no es posible tener instalados ambos sistemas de impresin simultneamente en el sistema. YaST permite cambiar de un sistema a otro ver Manual de Usuario, seccin YaST Conguracin, Impresoras.

102

5.1. Fundamentos del proceso de impresin

5.2.
5.2.1.

Requisitos para imprimir


Requisitos generales

5
Funcionamiento de la impresora

SUSE LINUX debe soportar la impresora; vase las siguientes fuentes de informacin: Base de datos de impresoras de SUSE http://cdb.suse.de o bien http://hardwaredb.suse. de/ Base de datos de impresoras de Linuxprinting.org http://www.linuxprinting.org/ (The Database http: //www.linuxprinting.org/database.html o bien la lista http://www.linuxprinting.org/printer_list.cgi) Ghostscript http://www.cs.wisc.edu/~ghost/ Controladores Ghostscript en SUSE LINUX /usr/share/doc/packages/ghostscript/catalog. devices. Aqu puede encontrar una lista de los controladores Ghostscript incluidos en la versin actual de SUSE LINUX. Esto es muy importante ya que a veces en WWW se menciona un controlador Ghostscript que no est incluido en SUSE LINUX. Por motivos de licencias, los controladores contenidos en SUSE LINUX son Ghostscript GNU. Pero por lo general, siempre habr un controlador Ghostscript GNU que funcione con la impresora. Debe ser posible comunicarse con la impresora; vase la seccin 5.3.4 en la pgina 110. Debe utilizar un kernel original de SUSE sacado de los CD-ROMs, en especial kernels que no haya compilado Vd. mismo. Si se producen problemas, instale un kernel original de SUSE y arranque de nuevo. Le recomendamos que realice la instalacin del Sistema estndar con YaST para que todos los paquetes necesarios estn disponibles. Si en la instalacin del sistema estndar no ha cambiado la seleccin predeterminada de paquetes, est todo en regla. En caso contrario, instale al menos el Sistema estndar. Los Sistemas mnimos no bastan para imprimir.

SUSE LINUX Manual de Administracin

103

5.2.2.

Determinar el controlador de impresin correcto

No es necesario ningn controlador de impresin especial para una impresora PostScript. Vase la seccin 5.1.2 en la pgina 99. Para impresoras que no soporten PostScript, un controlador Ghostscript se encargar de crear los datos especcos para esa impresora. Por tanto los controladores Ghostscript son el punto decisivo en el que se especica el tipo de impresin en aquellas impresoras que no soporten PostScript. Los datos impresos son determinados por las conguraciones especcas del controlador Ghostscript seleccionado. Las listas del apartado 5.2.1 en la pgina anterior indican tambin los controladores de Ghostscript especcos para determinados modelos de impresoras. Si no encuentra ningn controlador Ghostscript para su impresora, pregntele al fabricante de la misma qu lenguaje de impresin entiende el modelo de impresora. Algunos fabricantes proporcionan incluso controladores Ghostscript especiales para sus impresoras. Aunque el fabricante no pueda ofrecerle ninguna informacin sobre el funcionamiento de la impresora en Linux, s podr facilitarle otros datos que le ayudarn a encontrar el controlador adecuado: Averige si su impresora es compatible con un modelo que funcione con Linux y utilice en ese caso el controlador de Ghostscript del modelo compatible. Ser compatible con Linux signica que su impresora puede imprimir correctamente la misma secuencia binaria que el modelo compatible es decir ambas impresoras entienden directamente el mismo lenguaje de impresin, sin necesidad de usar un controlador o un programa de emulacin (para otro sistema operativo). Las impresoras con nombres o descripciones parecidos no son necesariamente compatibles, ya que no siempre entienden el mismo lenguaje de impresin. La forma ms segura de averiguar el lenguaje de la impresora es consultar al fabricante. Esta informacin se encuentra generalmente tambin en el manual que acompaa a la impresora. PCL5e o PCL6 Las impresoras que entienden directamente PCL5e o PCL6 deberan funcionar con un controlador Ghostscript ljet4 con hasta 600x600 dpi. PCL5e tambin se conoce a menudo como PCL5. PCL4 o PCL5 Las impresoras que entienden directamente PCL4 o PCL5 deberan funcionar con un controlador Ghostscript laserjet, ljetplus, ljet2p o ljet3, pero estn limitadas a 300x300 dpi.

104

5.2. Requisitos para imprimir

PCL3 Las impresoras que entienden PCL3 directamente deberan funcionar con un controlador Ghostscript deskjet, hpdj, pcl3, cdjmono, cdj500 o cdj550. ESC/P2, ESC/P o ESC/P Raster Las impresoras que entienden directamente ESC/P2, ESC/P o ESC/P Raster deberan funcionar con un controlador Ghostscript stcolor o con uniprint adems de utilizar un archivo de parmetros .upp adecuado (por ejemplo stcany.upp).

5
Funcionamiento de la impresora

5.2.3.

La problemtica de las impresoras GDI

Puesto que normalmente los fabricantes de hardware no desarrollan controladores de impresoras para Linux, se recomienda que la impresora a instalar entienda uno de los lenguajes de impresin ms conocidos como PostScript, PCL o ESC/P. Las impresoras normales entienden al menos uno de estos lenguajes de impresin, pero hay fabricantes que desarrollan impresoras con las que slo es posible comunicarse con la versin especca del sistema operativo para la que el fabricante proporciona el controlador; a estas impresoras se las denomina impresoras GDI. Puesto que tales impresoras no siguen normas estndar, a menudo se producen dicultades cuando se las quiere utilizar con Linux. GDI es una interfaz desarrollada por Microsoft para la representacin grca. El problema no es la interfaz, sino que slo se puede acceder a la impresora GDI utilizando el lenguaje de impresin propietario del correspondiente modelo de impresora. En realidad sera ms correcto decir: la impresora a la que slo es posible hablar utilizando un lenguaje de impresin propietario. Pero hay impresoras que, adems del modo GDI, entienden un lenguaje de programacin estndar, para lo cual hay que congurar o cambiar el modo de la impresora convenientemente. Si junto a Linux utiliza otro sistema operativo, puede que el controlador de impresin del otro sistema operativo haya puesto la impresora en modo GDI, con lo que sta no funcionara despus con Linux. O vuelve a poner la impresora en el otro sistema operativo en modo estndar, o la utiliza solamente en modo estndar tambin en el otro sistema operativo, aunque las posibilidades de impresin sean entonces ms reducidas (por ejemplo una menor resolucin). De un tipo especial son las impresoras que slo entienden partes rudimentarias de un lenguaje de impresin estndar slo los comandos necesarios para la impresin de datos grcos. A veces tales impresoras pueden

SUSE LINUX Manual de Administracin

105

utilizarse normalmente, ya que por lo general los controladores Ghostscript slo utilizan los comandos para la impresin de datos grcos. Puede ocurrir entonces que no se pueda enviar texto ASCII directamente a la impresora, pero Ghostscript suele estar siempre disponible. Especialmente problemticas son las impresoras que deben ser adaptadas mediante secuencias especiales. Aqu no se puede utilizar ningn controlador Ghostscript normal, sino que se necesita un controlador especial que realice esta adaptacin. Existen controladores especcos del fabricante para algunas impresoras GDI. El inconveniente de estos controladores en Linux para impresoras GDI consiste en que no se puede garantizar que funcionen con las distintas versiones (futuras) de Linux. Las impresoras, que entienden un lenguaje de impresin estndar pblico no dependen ni de un sistema operativo determinado ni de una versin especial de un sistema operativo, y los controladores Linux especcos del fabricante para tales impresoras a menudo ofrecen los mejores resultados de impresin. SUSE LINUX soporta las siguientes impresoras GDI a travs de la conguracin de impresoras con YaST, pero puesto que estas impresoras siempre dan problemas, puede que algn modelo no funcione o que existan grandes restricciones como por ejemplo que slo se pueda imprimir en blanco y negro y con baja resolucin. Tenga en cuenta que no podemos garantizar la abilidad de esta informacin puesto que no probamos los controladores de impresoras GDI. Brother HL (720, 730, 820, 1020, 1040), MFC (4650, 6550MC, 9050) y modelos compatibles. HP DeskJet (710, 712, 720, 722, 820, 1000) y modelos compatibles. Lexmark (1000, 1020, 1100, 2030, 2050, 2070, 3200, 5000, 5700, 7000, 7200), Z11(42, 43, 51, 52) y modelos compatibles. Oki Okipage (4w, 4w+, 6w, 8w, 8wLite, 8z, 400w) y modelos compatibles. Samsung (ML-200, 210, 1000, 1010, 1020, 1200, 1210, 1220, 4500, 5080, 6040) y modelos compatibles. Por lo que sabemos, la siguientes impresoras GDI no estn soportadas por SUSE LINUX, pero seguramente esta lista no sea completa: Brother DCP-1000, MP-21C, WL-660

106

5.2. Requisitos para imprimir

Canon BJC (5000, 5100, 8000, 8500), LBP (460, 600, 660, 800), MultiPASS L6000 Epson AcuLaser C1000, EPL (5500W, 5700L, 5800L) HP LaserJet 1000/3100/3150 Lexmark Z12/22/23/31/32/33/82, Winwriter 100/150c/200 Minolta PagePro (6L, 1100L, 18L), Color PagePro L, Magicolor 6100DeskLaser, Magicolor 2 DeskLaser Plus/Duplex Nec SuperScript (610plus, 660, 660plus) Oki Okijet 2010 Samsung ML 85G/5050G, QL 85G Sharp AJ 2100, AL (1000, 800, 840, F880, 121)

5
Funcionamiento de la impresora

5.3.

Conguracin de impresoras con YaST

5.3.1. Colas de impresin y conguracin


Normalmente se necesitan varias colas de impresin por los siguientes motivos: Se debe acceder a distintas impresoras a travs de distintas colas de impresin. En cada cola de impresin se puede congurar el ltro de impresin individualmente. As pues, se pueden utilizar distintas colas de impresin para la misma impresora para poner distintas conguraciones a disposicin de los usuarios. En CUPS no es necesario, ya que el propio usuario puede denir la conguracin adecuada. Vase a este efecto la seccin 5.1.3 en la pgina 102. Para imprimir en blanco y negro (por ejemplo la mayora de las impresoras lser) basta una sola conguracin estndar, pero para las impresoras a chorro de tinta en color se necesita al menos dos conguraciones:

SUSE LINUX Manual de Administracin

107

Una conguracin estndar con la que la impresora puede imprimir en blanco y negro rpidamente y con un bajo coste. Una conguracin en color o, lo que es lo mismo, una cola de impresin para impresin en color.

5.3.2. Fundamentos de la conguracin de impresoras con YaST


La conguracin de impresoras de YaST no slo se puede iniciar mediante mens, sino tambin como usuario root directamente desde la lnea de comandos con el comando yast2 printer. La conguracin de impresoras de YaST permite cambiar entre CUPS y LPRng/lpdlter con facilidad a travs del botn Avanzado. No obstante, al cambiar se pierde la conguracin existente. Es decir, la conguracin CUPS disponible no se convierte en una conguracin para LPRng/lpdlter y viceversa. Con YaST se puede cambiar entre los siguientes sistemas de impresin: CUPS como servidor (conguracin por defecto en la instalacin estndar) Si una impresora est conectada localmente, CUPS debe funcionar como servidor. En caso de no congurar ninguna cola local con YaST, el daemon de CUPS cupsd no ser iniciado automticamente. Si a pesar de todo quiere que cupsd funcione, ha de activar el servicio cups (normalmente para los niveles de ejecucin 3 y 5) vase la seccin 5.8.2 en la pgina 129. Se deben instalar los siguientes paquetes para este sistema de impresin: cups-libs cups-client cups footmatic-filters cups-drivers cups-drivers-stp CUPS exclusivamente como cliente Si hay un servidor de red CUPS en la red local (vase la seccin 5.8.1 en la pgina 128) y el usuario slo quiere imprimir a travs

108

5.3. Conguracin de impresoras con YaST

de esa cola de impresin, basta con que CUPS funcione exclusivamente como cliente vase la seccin 5.8.2 en la pgina 129. Son necesarios los siguientes paquetes: cups-libs cups-client LPRng Seleccione esta opcin si se debe utilizar el sistema de impresin LPRng/lpdlter o si la red local slo dispone de un servidor de red LPD (vase seccin 5.8.1 en la pgina 128), y el usuario quiere imprimir a travs de esta cola de impresin vase la seccin 5.8.2 en la pgina 129.Los paquetes a instalar son los siguientes: lprng lpdfilter footmatic-filters cups-drivers Los paquetes cups-client y lprng se excluyen mutuamente y por tanto no pueden ser instalados a la vez. El paquete cups-libs siempre debe estar instalado, ya que algunos programas (por ejemplo Ghostscript, KDE, Samba, Wine y la conguracin de impresoras de YaST necesitan las bibliotecas CUPS. Para disponer de un sistema de impresin completo normalmente se necesitan tambin algunos paquetes adicionales, instalados automticamente con el Sistema estndar: ghostscript-library ghostscript-fonts-std ghostscript-x11 libgimpprint La conguracin de impresoras de YaST muestra las conguraciones que se pueden realizar sin que ocurra ningn error. Puesto que la conguracin se crea de hecho al terminar la conguracin de impresoras de YaST, es necesario reiniciar dicha conguracin para comprobar si la impresora se ha congurado correctamente.

5
Funcionamiento de la impresora
109

SUSE LINUX Manual de Administracin

5.3.3.

Conguracin automtica

En funcin del hardware que YaST detecte automticamente y de la cantidad de informacin sobre el correspondiente modelo de impresora que se encuentre en la base de datos de impresoras de YaST, este podr proporcionar los datos necesarios automticamente u ofrecer una preseleccin adecuada. En caso contrario, el usuario debe dar la informacin necesaria en los cuadros de dilogo. Con YaST se puede congurar la impresora automticamente si se cumplen los siguientes requisitos: La conguracin automtica del puerto paralelo o USB funciona gracias al reconocimiento automtico de hardware y la impresora conectada es detectada automticamente. La base de datos de impresoras contiene la identicacin del modelo de impresora que YaST obtiene durante el reconocimiento automtico. La informacin detectada puede variar con respecto a la denominacin de modelo y es posible que el modelo slo pueda ser seleccionado manualmente. Es esencial comprobar cada conguracin mediante la pgina de prueba de YaST, ya que a menudo las conguraciones se introducen en la base de datos de impresoras sin un soporte explcito del fabricante de la impresora, y por tanto no se puede garantizar el funcionamiento de todas las entradas de la base de datos. Adems la pgina de prueba de YaST ofrece mucha informacin importante acerca de la conguracin en cuestin.

5.3.4. Conguracin manual


Se precisa de una conguracin manual cuando alguno de los requisitos para el funcionamiento de la conguracin automtica no se cumple o cuando se trata de realizar una conguracin personalizada. Es necesario congurar los siguientes valores: Conexin de hardware (puerto) En el caso de que YaST haya detectado el modelo de impresora automticamente, se supone que el puerto de conexin a la impresora funciona correctamente y por lo tanto no es necesario congurarlo.

110

5.3. Conguracin de impresoras con YaST

Pero si YaST no detecta el modelo de impresora automticamente, esto indica que el puerto de conexin a la impresora debe ser congurado manualmente. En una conguracin manual se debe escoger el puerto apropiado. /dev/lp0 es el primer puerto paralelo. /dev/usb/lp0 es el puerto para una impresora USB. En este caso se debe realizar sin falta la correspondiente prueba en YaST para comprobar si es posible acceder a la impresora a travs del puerto elegido. El mtodo ms seguro para que funcione es conectar la impresora directamente al primer puerto paralelo y establecer las siguientes conguraciones para el puerto paralelo en la BIOS: Direccin E/S 378 (hexadecimal) Interrupt no es importante Modo Normal, SPP o bien Output-Only No se utiliza DMA. Si a pesar de esto no se puede acceder a la impresora a travs del primer puerto paralelo, se debe introducir la direccin E/S correspondiente a la conguracin de la BIOS de manera explcita con la forma 0x378 en las conguraciones detalladas del puerto paralelo. Si hay dos puertos paralelos disponibles congurados con las direcciones E/S 378 y 278 (hexadecimal), se deben introducir con la forma 0x378,0x278. Nombre de la cola de impresin Puesto que a menudo al imprimir se debe escribir el nombre de la cola de impresin, es recomendable que este nombre sea corto y est compuesto slo de minsculas y de nmeros. Controladores Ghostscript o lenguaje de impresin (modelo de impresora) El controlador Ghostscript y el lenguaje de impresin vienen dados por el modelo de impresora correspondiente y se determinan en funcin de la seleccin de una conguracin predeterminada adecuada para ese modelo de impresora. Esta conguracin se puede personalizar en una mscara especial es decir al seleccionar el fabricante y modelo es cuando de hecho se selecciona el lenguaje de impresin o un controlador Ghostscript con una conguracin predenida adecuado para la impresora. El controlador Ghostscript es el que genera los datos especcos para impresoras que no tienen soporte para PostScript. Por consiguiente la conguracin del controlador Ghostscript es el punto decisivo para

5
Funcionamiento de la impresora
111

SUSE LINUX Manual de Administracin

denir el tipo de impresin. La seleccin del controlador GhostScript y la conguracin especca del controlador adecuado es lo que determina la imagen de impresin. Aqu es donde se denen las diferencias de la imagen de impresin entre las diferentes conguraciones para la misma impresora. Si YaST ha detectado automticamente el modelo de su impresora o bien el modelo existe en la base de datos de impresoras, se realiza una preseleccin razonable de los controladores Ghostscript adecuados. En este caso, YaST suele proporcionar varias conguraciones predeterminadas por ejemplo Impresin en blanco y negro Impresin en color 300 dpi Calidad fotogrca 600 dpi Una conguracin predeterminada contiene el controlador Ghostscript apropiado y las conguraciones especcas del controlador para un tipo determinado de impresin. Si existen conguraciones especcas del controlador, estas pueden personalizarse mediante una mscara especial. La relacin entre el valor seleccionado y las posibles opciones de una seleccin subordinada puede distinguirse por la sangra de las entradas del men. No todas las combinaciones seleccionables de las diferentes conguraciones del controlador funcionan con todos los modelos de impresora; especialmente en combinacin con resoluciones altas. Es imprescindible realizar una comprobacin imprimiendo la pgina de prueba de YaST. Si el resultado de esta impresin es incorrecto (por ejemplo muchas pginas casi vacas) puede parar la impresin inmediatamente sacando todo el papel y pulsando despus el botn Parar. Pero en algunos casos no es posible realizar despus otra impresin, con lo cual es menos problemtico pulsar el botn de parada y esperar a que la impresin termine. Si el modelo de la impresora no se encuentra en la base de datos de impresoras, existe una serie de controladores Ghostscript genricos para los lenguajes de impresin estndar. Estos se encuentran bajo un fabricante genrico. Algunas conguraciones especiales En cuanto a las conguraciones especiales, deberan dejarse las opciones predeterminadas en caso de duda.

112

5.3. Conguracin de impresoras con YaST

En el sistema de impresin CUPS existen las siguientes conguraciones especiales: Restricciones de acceso para determinados usuarios. Estado de la cola de impresin: Si se ha realizado la impresin o no, y si la cola de impresin debe aceptar las tareas de impresin o no. Pginas de cubierta y de correccin: Si se debe imprimir, en qu momento, y qu pginas de cubierta o de correccin deben imprimirse. En el sistema de impresin LPRng/lpdlter existen las siguientes conguraciones especiales independientes del hardware: Se puede jar aqu la disposicin de las hojas para la impresin de textos ASCII, pero no para grcos y documentos creados con aplicaciones especiales. Se puede congurar una cola de impresin ascii para casos especiales. Para este tipo de colas ascii se fuerza al ltro de impresin a realizar la impresin como texto ASCII. Esto es necesario para forzar la impresin en texto ASCII de archivos de texto ASCII no reconocidos como tales por el ltro de impresin (por ejemplo para imprimir textos fuente de PostScript). La codicacin especca de cada pas afecta a la representacin de signos especiales especcos de cada pas al imprimir textos ASCII, as como a la representacin de texto sencillo de pginas HTML de Netscape.

5
Funcionamiento de la impresora

5.4.

Conguracin para aplicaciones

Los programas de aplicacin utilizan las colas de impresin disponibles para imprimir desde la lnea de comandos. Por lo tanto, en las aplicaciones no es necesario congurar la impresora sino las colas de impresin existentes. Se puede imprimir desde la lnea de comandos introduciendo uno de estos dos comandos:
lpr -P color nombre_archivo lp -d color nombre_archivo

SUSE LINUX Manual de Administracin

113

Aqu debe sustituir nombre_archivo por el nombre del archivo que quiere imprimir. Con la opcin -P o bien -d puede determinar explcitamente la cola de impresin a la que quiere enviarlo. Por ejemplo, con -P color o -d color se utilizar la cola de impresin color. Algunas aplicaciones suelen ofrecer en el men de impresin las colas disponibles, por lo que no es necesario realizar ninguna conguracin adicional. Si este no es el caso, habr que introducir (o congurar) un comando de impresin en el programa. Este es por lo general el comando de las lneas superiores sin especicar el nombre_archivo , es decir: lpr -P color o bien lp -d color.

5.5.
5.5.1.

El sistema de impresin CUPS


Convenciones lingsticas

Con cliente o programa cliente se indica un programa que es iniciado para enviar trabajos de impresin al daemon de impresin. Un daemon de impresin es un servicio local que acepta trabajos de impresin, que luego reenva o procesa l mismo. Un servidores un daemon que puede enviar datos a una o ms impresoras. Cada servidor tiene simultneamente la funcionalidad de un daemon. En la mayora de los casos ni los usuarios ni los desarrolladores de CUPS distinguen especialmente entre los conceptos servidor y daemon.

5.5.2.

IPP y servidor

Los trabajos de impresin se envan con programas basados en CUPS como lpr, kprinter o xpp, y con ayuda de IPP, Internet Printing Protocol (Protocolo de Impresin de Internet). IPP est denido en los estndares de Internet RFC-2910 y RFC-2911 (vase http://www.rfc-editor.org/ rfc.html. IPP es parecido al protocolo web HTTP: tienen la misma cabecera pero distintos datos de uso. Para la comunicacin tambin se utiliza un puerto distinto y especco, el puerto 631, registrado en IANA (Internet Authority for Number Allocation) o Autoridad en Internet para la Asignacin de Nombres). Los datos se envan al daemon CUPS congurado que suele ser el servidor local. Tambin es posible comunicarse con otros daemons, por ejemplo, con ayuda de la variable shell CUPS_SERVER.

114

5.5. El sistema de impresin CUPS

Con ayuda de la funcin de Broadcast del daemon CUPS se dan a conocer en la red las impresoras locales que este daemon administra (puerto 631 UDP), apareciendo as en las colas de impresin de todos los daemons que reciban este paquete de broadcast o que puedan leerlo (congurable). Esto supone una ventaja para las redes de empresas ya que de este modo, nada ms arrancar el ordenador se pueden ver todas las impresoras disponibles sin tener que congurarlas manualmente. Pero esto conlleva un peligro si el ordenador est conectado a Internet. A la hora de congurar la funcin broadcast debe procurarse que slo se retransmita en la red local, que el acceso slo se permita a la red local, y que la direccin IP pblica para la conexin a Internet no se encuentre dentro del campo de direccin de la red local. De no ser as, otros usuarios con el mismo proveedor de servicios de Internet tambin podran ver y utilizar estas impresoras. Adems estos broadcasts generan trco en la red, lo que implica costes aadidos. Por eso siempre hay que garantizar que tales paquetes de broadcast no sean enviados a Internet por las impresoras locales, por ejemplo. con ayuda del ltro de paquetes SuSE Firewall (paquete SuSEfirewall2). Para recibir el broadcast no es necesario congurar nada ms. Slo al enviar se debe aadir una direccin de broadcast (que por ejemplo se puede congurar con YaST). IPP se utiliza para la comunicacin entre daemons CUPS locales y remotos (es decir, servidores CUPS. Las impresoras de red ms modernas tambin soportan IPP. Puede encontrar ms informacin en las pginas web del fabricante o en el manual de la impresora. Asimismo Windows 2000 (y posteriores) ofrece soporte para IPP. Lamentablemente surgieron problemas con el formato de implementacin, que o han sido resueltos o pueden resolverse con un pack de servicios.

5
Funcionamiento de la impresora

5.5.3.

Conguracin del servidor CUPS

Existen muchas maneras de congurar impresoras y el daemon con CUPS: a travs de la lnea de comandos, con YaST, el centro del control de KDE, interfaces web, etc. En los siguientes apartados nos centraremos en las herramientas de lnea de comandos y en YaST pero estas no son ni mucho menos las nicas posibilidades.

SUSE LINUX Manual de Administracin

115

Aviso
La interfaz web implica el riesgo de poner en peligro la contrasea del superusuario, ya que esta se puede enviar a la red en texto sencillo si se da el nombre del ordenador en la URL. Por este motivo, utilice siempre exclusivamente http://localhost:631/ y bajo ninguna circunstancia otra direccin.

Aviso
Tambin por esta causa se ha restringido el acceso de administracin al daemon CUPS; para que slo pueda ser congurado cuando la comunicacin se realiza mediante localhost (lo que es idntico a la direccin 127.0.0.1) Si se realiza de otra forma, se recibe el correspondiente mensaje de error. Para administrar impresoras locales es necesario que haya un daemon CUPS en funcionamiento en el ordenador local. Para ello se instala el paquete cups y los archivos PPD generados por SuSE en los paquetes cups-drivers y cups-drivers-stp. Despus se arranca el servidor (como root) con el comando: /etc/rc.d/cups restart. Al congurar con YaST la instalacin y el arranque se realizan implcitamente cuando se elige CUPS como sistema de impresin. PPD, abreviatura de PostScript Printer Description o Descripcin de Impresoras PostScript, es un estndar para describir opciones de impresin con comandos PostScript. Estos archivos son necesarios en CUPS para la instalacin de la impresora. SUSE LINUX incorpora archivos PPD generados para diversas impresoras de varios fabricantes. Pero tambin los fabricantes proporcionan en sus pginas web y CDs de instalacin archivos PPD para impresoras PostScript (mayormente en el campo de la Instalacin en Windows NT). Tambin se puede iniciar el daemon local para hacer que todas las impresoras de todos los servidores de broadcast estn disponibles localmente aunque no exista ninguna impresora local. De esta forma se simplica en gran medida la seleccin de impresora en KDE y OpenOfce. El broadcast se congura con YaST o bien asignando el valor On (por defecto) a la variable Browsing en el archivo /etc/cups/cupsd.conf y un valor adecuado (por ejemplo 192.168.255.255) a la variable BrowseAddress. Para que se puedan aceptar trabajos de impresin, se debe permitir la recepcin al menos de <Location /printers> o mejor incluso <Location />. Adems debe completarse Allow From xyz-host.mydomain vase file:/usr/share/doc/ packages/cups/sam.html.

116

5.5. El sistema de impresin CUPS

Al ejecutar el comando /etc/rc.d/cups reload (como root) el daemon acepta la nueva conguracin despus de haber editado los archivos.

5
Funcionamiento de la impresora

5.5.4.

Impresoras de red

Por impresoras de red se entienden normalmente impresoras equipadas con una interfaz de red para un servidor de impresin (como la que ofrece HP con la interfaz JetDirect) o impresoras conectadas a un servidor de impresin o enrutador con la funcionalidad de un servidor de impresin. No nos referimos aqu a ordenadores Windows que ofrecen una impresora como recurso compartido o share, si bien tambin se puede establecer comunicacin con dichas impresoras fcilmente por medio de CUPS. La mayor parte de las impresoras de red soportan el protocolo LPD (en el puerto 515). Esto se puede comprobar con el siguiente comando:
netcat -z nombre_host.dominio 515 && echo ok || echo failed

Si este servicio est disponible, se puede congurar con el dispositivo URI (terminologa CUPS) lpd://Server/Queue. Ms sobre los dispositivos URIs en file:/usr/share/doc/packages/cups/sam.html. Suele ser preferible comunicarse con tales impresoras a travs del puerto 9100 (HP, Kyocera, etc.) o el puerto 35 (QMS), es decir sin un protocolo LPD conectado de antemano. El nombre del dispositivo URI es entonces:
socket://Server:Port/

Para imprimir en impresoras Windows, debe estar instalado el paquete samba-client y haberse congurado correctamente Samba, es decir el grupo de trabajo (workgroup) debe estar bien denido, etc. Los dispositivos URI para ordenadores Windows pueden tener diferentes formas. La ms comn es: smb://user:password@host/printer. Para todas las dems formas posibles, vase file:/usr/share/doc/packages/ cups/sam.html as como la pgina del manual man smbspool. Si ha congurado una impresora de red y posee una pequea red con varios PCs (Linux), resulta muy til no tener que congurar las impresoras de red en todos los clientes.

SUSE LINUX Manual de Administracin

117

Por este motivo debe activarse la funcionalidad Broadcast del daemon. Asimismo, no hace falta denir las opciones de conguracin como por ejemplo jar el tamao estndar del papel a Letter en cada uno de los clientes, sino que basta con hacerlo una vez en el servidor. (vase la seccin 5.7.1 en la pgina 124). Estas opciones de conguracin se almacenan localmente pero aparecen en todos los clientes a travs de las herramientas CUPS o el protocolo IPP.

5.5.5.

Procesamiento interno de los trabajos

Conversin a PostScript En principio se puede enviar cualquier tipo de archivo a un daemon CUPS. Los archivos PostScript son los que causan menos problemas. Para realizar una conversin a PostScript a travs de CUPS, el tipo de archivo se identica mediante /etc/cups/mime.types, tras lo que se activa la herramienta correspondiente que se encuentra en /etc/cups/mime.convs. Esta conversin tiene lugar en el servidor y no en el cliente. Con esto se pretende que las conversiones especiales en las impresoras slo puedan realizarse en el servidor previsto para esas tareas. Recuento (ingl. accounting) Tras la conversin PostScript se averigua el nmero de pginas del trabajo de impresin. Para ello, CUPS arranca una herramienta (propia) pstops (/usr/lib/cups/filter/pstops). El nmero de hojas se escribe en /var/log/cups/page_log. Las entradas de una lnea signican lo siguiente: Nombre de impresora (por ejemplo lp), nombre de usuario (por ejemplo root), nmero de trabajo de impresin, fecha entre corchetes [], pgina actual del trabajo, nmero de copias,

118

5.5. El sistema de impresin CUPS

Filtros de conversin adicionales Tambin es posible activar otros ltros si se han escogido las opciones correspondientes para la impresin. Los siguiente tienen un inters especial: psselect si slo quiere imprimir ciertas hojas del documento, ps-n-up si quiere imprimir varias pginas del documento en un sola hoja. Estos ltros no pueden congurarse. En file:/usr/share/doc/ packages/cups/sum.html se describe cmo activar las opciones. Conversin especca de impresora En el siguiente paso se inicia el ltro necesario para generar datos especcos de la impresora. Estos ltros se encuentran en /usr/lib/cups/ filter/. Qu ltro es el adecuado se indica mediante una entrada *cupsFilter en el archivo PPD. Si no existe dicha entrada, se partir de que se usa una impresora PostScript. En este ltro se denen todas las opciones de impresin que dependen de la impresora, tales como la resolucin y el tamao del papel. Resulta bastante complicado escribir ltros propios de impresin. Sobre este tema puede consultar el artculo de la base de datos de soporte de SuSE Using Your Own Filters to Print with CUPS (palabras clave: cups + lter). Salida a impresora Finalmente se activar el backend. Se trata de un ltro especial que enva los datos de impresin a un dispositivo o a una impresora de red (vase /usr/share/doc/packages/cups/overview.html). El backend permite la comunicacin con el dispositivo o con la impresora de red (depende del dispositivo URI indicado en la instalacin ). Por ejemplo, si un backend es usb, se ejecutar el programa /usr/lib/cups/backend/usb En este punto se abrir (y bloquear) el dispositivo USB en el sistema de archivos, se realizar una iniciacin preliminar y se enviarn los datos procedentes del ltro. Por ltimo, el dispositivo es iniciado y desbloqueado en el sistema. Los backends disponibles actualmente son: paralelo, serie, usb, ipp, lpd, http, socket (del paquete CUPS) as como canon y epson (de cups-drivers-stp) y smb (de samba-client).

5
Funcionamiento de la impresora
119

SUSE LINUX Manual de Administracin

Sin ltro Si quiere imprimir sin ltro, indique la opcin -l en el comando lpr o la opcin -oraw en el comando lp. Normalmente la impresin no funciona porque no se realiza ninguna conversin especca de impresora (vase arriba) o no se ponen en funcionamiento otros ltros importantes. Las opciones son similares en otras herramientas CUPS.

5.5.6.

Consejos y trucos

OpenOfce La impresin desde OpenOfce soporta CUPS, de tal manera que no es necesario congurar la impresora como ocurra en StarOfce 5.2. OpenOfce detecta si se est ejecutando un daemon CUPS y solicita a este las impresoras y opciones disponibles. Una conguracin adicional de OpenOfce ser innecesaria en un futuro. Windows La comunicacin con las impresoras de una mquina Windows es posible gracias al dispositivo URI smb://server/printer vase ms arriba. En el caso contrario, es decir, si desea imprimir desde Windows en un servidor CUPS, se deben jar en el archivo de conguracin de Samba /etc/samba/smb.conf las entradas printing = CUPS y printcap name = CUPS como corresponde a la preconguracin en SUSE LINUX. Despus de modicar /etc/samba/smb.conf hay que reiniciar el servidor samba; vase file:/usr/share/doc/packages/ cups/sam.html Congurar impresoras en crudo (raw) Una impresora raw se congura omitiendo en la instalacin el archivo PPD, es decir, no se realiza ni el ltrado ni el recuento. Para ello los datos deben enviarse en un formato adecuado a la impresora. Opciones de la impresora Las opciones de conguracin (por ejemplo de forma estndar otra resolucin) pueden modicarse y guardarse para cada usuario. Estas opciones se almacenan en el archivo ~/.lpoptions. Si se elimina del servidor una impresora de este tipo (sin congurar), sigue siendo visible en herramientas como kprinter o xpp.

120

5.5. El sistema de impresin CUPS

Se puede seleccionar incluso aunque ya no exista, lo que puede ocasionar problemas. Los usuarios experimentados podrn eliminar las lneas problemticas de ~/.lpoptions con un editor. Vase con este n el artculo Print Settings with CUPS de la base de datos de soporte as como la seccin 5.7.1 en la pgina 124. Compatibilidad con LPR CUPS tambin puede recibir trabajos de impresin de sistemas LPR. La conguracin necesaria en /etc/xinetd.d/cups-lpd puede denirse con YaST o bien manualmente. Bsqueda de errores en CUPS El archivo de conguracin /etc/cups/cupsd.conf contiene normalmente la siguiente seccin:
# LogLevel: controls the number of messages logged to the ErrorLog file # and can be one of the following: # # debug2 Log everything. # debug Log almost everything. # info Log all requests and state changes. # warn Log errors and warnings. # error Log only errors. # none Log nothing. # LogLevel info

5
Funcionamiento de la impresora

Para buscar errores en CUPS, se dene el nivel de depuracin o LogLevel debug y se vuelve a cargar la conguracin con rccups restart para que la lea cupsd. Una vez hecho esto, encontrar abundantes mensajes en /var/log/cups/error_log que le ayudarn a detectar el problema. Ejecutando antes de una prueba el comando:
echo "LABEL $(date)" | tee -a /var/log/cups/error_log

se producir una marca que se transcribir literalmente en /var/log/ cups/error_log. De esta forma resultar ms fcil encontrar los mensajes despus de realizar la prueba.

SUSE LINUX Manual de Administracin

121

5.6.

Imprimir desde aplicaciones

Los programas de aplicacin utilizan las colas de impresin disponibles para imprimir desde la lnea de comandos. Por lo tanto, en las aplicaciones no es necesario congurar la impresora sino las colas de impresin existentes. Para imprimir desde la lnea de comando se emplea el comando lp -d color nombre_archivo . Al ejecutar el comando no olvide sustituir nombre_archivo por el nombre autntico del archivo que desea imprimir. La opcin -d permite determinar explcitamente la cola de impresin que debe utilizarse. As por ejemplo, la opcin -d color indica que la cola que se va a usar es color. El paquete cups-client contiene herramientas de lnea de comandos para imprimir con CUPS como por ejemplo el comando lp, as que lo dicho anteriormente tambin funciona con CUPS (ver apartado 5.7 en la pgina siguiente). No obstante, el dilogo de impresin en los programas de KDE ha de cambiarse en este caso a Imprime a travs de un programa externo. De lo contrario no ser posible introducir ningn comando de impresin ver apartado 5.8.2 en la pgina 129. Asimismo hay programas grcos de impresin como xpp o el programa de KDE kprinter que permiten escoger la cola de impresin y adems denir opciones estndar para CUPS y especcas de la impresora del archivo PPD mediante mens grcos de seleccin. Para que kprinter sea el dilogo de impresin que aparece por defecto en las distintas aplicaciones, introduzca kprinter o kprinter --stdin como comando de impresin en la interfaz de impresin de cada aplicacin. Cul de los dos depende de la aplicacin en cuestin. De esta forma, tras la interfaz de impresin del programa aparece el dilogo de kprinter en el que puede congurar la cola de impresin y otras opciones. Al utilizar este mtodo asegrese de que las opciones de la interfaz de impresin de la aplicacin y de kprinter no sean contradictorias. Si es posible, realice la conguracin nicamente en kprinter.

122

5.6. Imprimir desde aplicaciones

5.7.

Herramientas de lnea de comandos para el sistema de impresin CUPS

5
Funcionamiento de la impresora

Las herramientas de lnea de comandos y las pginas man correspondientes al sistema de impresin CUPS se encuentran en el paquete cups-client; la documentacin respectiva en el paquete cups en /usr/share/doc/packages/cups/. En especial cabe destacar el CUPS Software Users Manual en file:/usr/share/doc/packages/cups/ sum.html y el CUPS Software Administrators Manual en file:/usr/ share/doc/packages/cups/sam.html. Ambos estn tambin disponibles localmente en http://localhost:631/documentation.html si cupsd est ejecutndose en el sistema. En estas herramientas, el orden de las opciones es importante en algunas ocasiones. Es caso de duda, consulte la pgina correspondiente del manual.

5.7.1.

Para colas de impresin locales

Generar trabajos de impresin Por lo general se imprime en System V Art con lp -d <cola> <archivo> o en Berkeley Art con lpr -P<cola-impresin> <archivo>. Puede obtener ms informacin en las pginas del manual man lpr y man lp y en la seccin Using the Printing System del CUPS Software Users Manual que se encuentra en /usr/share/doc/packages/cups/sum. html#USING_SYSTEM. Con el parmetro adicional -o es posible jar opciones suplementarias referentes al tipo de impresin. Puede obtener ms informacin en las pginas del manual man lpr y man lp y en la seccin Standard Printer Options del CUPS Software Users Manual que se encuentra en /usr/share/ doc/packages/cups/sum.html#STANDARD_OPTIONS. Mostrar el estado El estado de una cola de impresin se muestra en System V Art con lpstat -o <cola-impresin> -p <cola-impresin> o en Berkeley Art con lpq -P<cola-impresin>.

SUSE LINUX Manual de Administracin

123

Sin la indicacin de la cola de impresin se mostrarn todas las colas y lpstat -o mostrar todos los trabajos de impresin activos con la forma <cola-impresin>-<nmero-trabajo>. Con lpstat -l -o <cola-impresin> -p <cola-impresin> se mostrar ms informacin y con lpstat -t o bien lpstat -l -t se mostrar toda la informacin disponible. Puede obtener ms informacin en las pginas del manual man lpq y man lpstat y en la seccin Using the Printing System del CUPS Software Users Manual que se encuentra en /usr/share/doc/packages/cups/sum. html#USING_SYSTEM. Eliminar trabajos de impresin En System V Art con cancel <cola-impresin>-<nmero-trabajo> o en Berkeley Art con lprm -P<cola-impresin> <nmero-trabajo> se elimina el trabajo de impresin con el nmero indicado de la cola especicada. Puede encontrar ms informacin en las pginas del manual man lprm y man cancel y en la seccin Using the Printing System del CUPS Software Users Manual que se encuentra en /usr/share/doc/packages/cups/sum.html#USING_SYSTEM. Conguracin de la cola de impresin En la seccin Standard Printer Options del CUPS Software Users Manual que se encuentra en /usr/share/doc/packages/cups/sum.html# STANDARD_OPTIONS se describen las opciones estndar independientes del hardware para denir el tipo de impresin, y en la seccin Saving Printer Options and Defaults en /usr/share/doc/packages/cups/sum. html#SAVING_OPTIONS se describe cmo guardar las distintas opciones. Las opciones especcas de impresoras para determinar el tipo de impresin se jan en los archivos PPD que pertenecen a la cola de impresin correspondiente y se muestran de la siguiente manera con el comando lpoptions -p <cola-impresin> -l:
Option/Text: Valor valor valor ...

donde un * delante del valor de una opcin representa la conguracin actual. Ejemplo:
PageSize/Page Size: A3 *A4 A5 Legal Letter Resolution/Resolution: 150 *300 600

124

5.7. Herramientas de lnea de comandos para CUPS

Aqu la opcin PageSize est jada en A4 y la resolucin al valor 300. Con lpoptions -p <cola-impresin> -o option=valor se puede congurar otro valor. As, en el ejemplo superior, es posible cambiar el tamao del papel al valor Letter en la cola correspondiente con el comando:
lpoptions -p <cola-impresin> -o PageSize=Letter

5
Funcionamiento de la impresora

Si un usuario normal ejecuta este comando lpoptions, la conguracin slo se guarda para ese usuario en el archivo ~/.lpoptions. Si el administrador del sistema root es quien ejecuta el comando lpoptions, las opciones de conguracin se convierten en la conguracin predeterminada para todos los usuarios del ordenador local y se guardan en el archivo /etc/cups/lpoptions. Los archivos PPD no se modicarn. Para que los cambios en la conguracin sean vlidos para todos los usuarios de la red que impriman en una cola de impresin, es necesario modicar la conguracin estndar en el archivo PPD de dicha cola. Por ejemplo, el administrador del sistema puede modicar la conguracin estndar en el archivo PPD de una cola de impresin de tal forma que el tamao de papel predeterminado cambie al valor Letteren la cola correspondiente para todos los usuarios de la red con:
lpadmin -p <cola-impresin> -o PageSize=Letter

Vase tambin el artculo de la base de datos de soporte (SDB) Print Settings with CUPS.

5.7.2.

Colas de impresin en red

Se sustituye <servidor-impresin> por el nombre o la direccin IP del servidor de impresin, y la variable <cola-impresin>debe ser una cola que se encuentre en dicho servidor. Aqu se indican los comandos bsicos. Ms posibilidades y fuentes de informacin en la seccin 5.7.1 en la pgina 123.

SUSE LINUX Manual de Administracin

125

Generar trabajos de impresin Para generar en System V Art un trabajo de impresin en la cola de un servidor de impresin se utiliza lp -d <cola-impresin> -h <servidor-impresin> <archivo> . Como condicin previa, el servidor de impresin ha de estar congurado de tal forma que se pueda imprimir en sus colas de impresin. De forma estndar este no es el caso con CUPS, pero se puede congurar con la conguracin de impresoras de YaST en una rama de men avanzado en las opciones de conguracin del servidor CUPS. Mostrar el estado El estado de una cola en un servidor de impresin se muestra en System V Art con lpstat -h <servidor-impresin> -o <cola-impresin> -p <cola-impresin>. Eliminar trabajos de impresin Para eliminar un trabajo de impresin de la cola de un servidor de impresin en System V Art se utiliza el comando cancel -h <servidor-impresin> <cola-impresin>-<nmero-trabajo>

5.7.3.

Resolucin de problemas en CUPS con los comandos anteriores

Los trabajos permanecen en la cola de impresin incluso cuando se apaga el ordenador y reinicia Linux. Para eliminar un trabajo de la cola de impresin ha de utilizar los comandos presentados en las lneas superiores. Si por ejemplo se producen problemas de comunicacin entre el ordenador y la impresora, esta no podr procesar correctamente los datos enviados y como resultado se imprimirn numerosos folios llenos de signos sin sentido. 1. En primer lugar retire todo el papel en las impresoras de chorro de tinta o abra la bandeja de papel en las impresoras lser para que se detenga el proceso de impresin. 2. Debido a que el trabajo de impresin no se elimina de la cola hasta que no se ha enviado completamente a la impresora, este seguir todava en la cola en la mayora de los casos. Compruebe con lpstat -o (o bien con lpstat -h <servidor-impresin>

126

5.7. Herramientas de lnea de comandos para CUPS

-o) de qu cola es el trabajo que se est imprimiendo y elimnelo con cancel <cola-impresin>-<nmero-trabajo> (o bien con cancel -h <servidor-impresin> <cola-impresin>-<nmero-trabajo>). 3. Si es necesario, utilice el comando fuser. 4. Puede que todava se sigan transmitiendo algunos datos a la impresora a pesar de que el trabajo ha sido eliminado de la cola de impresin. El comando fuser -k /dev/lp0 (para una impresora en paralelo) o fuser -k /dev/usb/lp0 (para una impresora USB) le permite terminar todos los procesos que todava acceden a la impresora. 5. Desconecte completamente la impresora desenchufndola unos momentos. Despus vuelva a introducir el papel en la bandeja y encienda la impresora. Cuando no es posible transmitir datos a la impresora o se producen interferencias en dicha transmisin (por ejemplo al interrumpirse durante un periodo prolongado), el backend o dorsal de CUPS (que se encarga de transferir los datos a la impresora) se termina con un mensaje de error. Las circunstancias exactas de este hecho dependen del dorsal correspondiente (por ejemplo para el puerto paralelo, para USB, para el servidor LPD, IPP o para la transmisin directa de datos a travs del socket TCP). En este caso, el servidor CUPS (cupsd) desactiva la impresin en la cola afectada, la cual muestra el estado disabled o stopped. Una vez que el problema est resuelto, el administrador del sistema ha de reiniciar la impresora con el comando /usr/bin/enable <cola-impresin> (o bien con /usr/bin/enable -h <servidor-impresin> <cola-impresin>).

5
Funcionamiento de la impresora

5.8.

Impresin en redes TCP/IP

Puede encontrar informacin ms detallada sobre el spooler LPRng en el LPRng-Howto en file:/usr/share/doc/packages/lprng/LPRngHOWTO.html. Respecto a CUPS, vase CUPS Software Administrators Manual en file:/usr/share/doc/packages/cups/sam.html.

SUSE LINUX Manual de Administracin

127

5.8.1.

Aclaracin de trminos

Servidor de impresin Por servidor de impresin se entiende aqu un ordenador completo con tiempo de CPU y capacidad de memoria sucientes. Printserver-Box o impresora de red Un servidor de impresin dedicado (printserver-box) es un pequeo dispositivo con conexin a la red TCP/IP y posibilidad de conexin local para una impresora. Tambin existen las llamadas router boxes que cuentan con una posibilidad de conexin para una impresora y se manejan igual que las impresoras de red. Una impresora de red tiene una conexin propia a la red TCP/IP y es en ltima instancia una impresora que incorpora un servidor de impresin dedicado. Se trabaja de la misma forma con servidores de impresin dedicados que con impresoras de red. Existe una diferencia importante entre una impresora de red o un servidor de impresin dedicado por un lado y un verdadero servidor de impresin por el otro. Asimismo hay impresoras grandes con las que se suministra un ordenador que hace las funciones de servidor de impresin para imprimir en la red. Pero en este caso, los trabajos de impresin no se envan a la impresora, sino al servidor de impresin incluido. Servidor LPD Un servidor LPD es un servidor de impresin al que puede accederse por medio del protocolo LPD. Este es el caso cuando en el servidor de impresin se ejecuta el sistema de impresin LPRng/lpdlter (o ms exactamente lpd) o cuando se ejecuta el sistema de impresin CUPS congurado de tal modo que sea posible acceder al ordenador a travs del protocolo LDP (o ms exactamente, a travs de cups-lpd). Servidor IPP o servidor CUPS Un servidor IPP o servidor CUPS es un servidor de impresin al que puede accederse por medio del protocolo IPP. Este es el caso cuando en el servidor de impresin funciona el sistema de impresin CUPS (o ms exactamente cupsd). Servidor de red CUPS Denominamos servidor de red CUPS a un servidor CUPS congurado de tal forma que comunique va broadcast UDP (a travs del puerto UDP 631) sus colas de impresin a otros ordenadores en la red.

128

5.8. Impresin en redes TCP/IP

5.8.2.

Conguracin rpida de un cliente

5
Funcionamiento de la impresora

Generalmente, un cliente en la red no dispone de una impresora conectada localmente, sino que los trabajos de impresin son enviados por el cliente a un servidor de impresin. En caso de tener un servidor de impresin adems de una impresora conectada localmente al cliente, deber congurar no slo el cliente sino tambin la impresora conectada localmente. En el cliente se ha de seleccionar un sistema de impresin adecuado al que existe en el servidor de impresin. Conguracin de cliente para un servidor LPD Si en la red no existe ningn servidor de red CUPS sino tan slo un servidor LPD, debe utilizar el sistema de impresin LPRng/lpdfilter en el cliente. No es necesario congurar el cliente de manera adicional, ya que con el spooler LPRng se puede acceder directamente a colas de impresin remotas con el comando lpr. El nico requisito es que el servidor LPD est congurado de forma que el cliente pueda imprimir en su cola de impresin. Para imprimir desde aplicaciones, introduzca como comando de impresin lpr -P<cola-impresin>@<servidor-impresin>, es decir, pero sin especicar ningn archivo. Algunos programas estn ya precongurados para CUPS y su conguracin ha de modicarse para LPRng. Especialmente en el caso de KDE y su programa de impresin kprinter ha de seleccionarse la opcin Imprime a travs de un programa externo. En caso contrario no ser posible introducir el comando de impresin mencionado arriba. Conguracin de cliente para un servidor de red CUPS Si el servidor de impresin es un servidor de red CUPS, puede elegir entre las siguientes posibilidades al seleccionar Editar y Avanzadaen la conguracin de impresora de YaST: CUPS como servidor (por defecto en la instalacin estndar) Si no existe ninguna impresora conectada localmente, no se ha congurado ninguna cola local con YaST. En este caso, cupsd no se inicia automticamente. Para iniciar cupsd tiene que activar el servicio cups (normalmente para los niveles de ejecucin 3 y 5).

SUSE LINUX Manual de Administracin

129

No es necesario congurar el cliente de manera adicional, ya que un servidor de red CUPS comunica peridicamente sus colas a todos los ordenadores de la red por medio de un broadcast. De esta forma, las colas del servidor de red CUPS estarn disponibles automticamente en el cliente en muy poco tiempo. Como nico requisito, el servidor de red CUPS ha de estar congurado de tal forma que la funcin de broadcast est activada, que se utilice una direccin broadcast adecuada para el cliente y que el cliente est autorizado a imprimir en las colas del servidor de red CUPS. CUPS exclusivamente como cliente Para imprimir en las colas de impresin del servidor de red CUPS, es suciente con que CUPS funcione slo como cliente. Para ello basta con introducir el nombre del servidor de red CUPS en la conguracin de impresin Client-only de YaST. En este caso, en el cliente no funciona ningn cupsd y no existe por tanto el archivo /etc/printcap. Sin embargo, los programas que no son compatibles con CUPS ofrecen slo las colas incluidas en el archivo /etc/printcap local. En este caso se recomienda que, cuando CUPS funcione como servidor, el cupsd local cree automticamente un archivo /etc/printcap con el nombre de las colas del servidor de red CUPS.

5.8.3.

Protocolos para imprimir en una red TCP/IP

Existen distintas posibilidades de impresin en una red TCP/IP, las cuales no dependen tanto del hardware como del protocolo utilizado. Por eso en la conguracin con YaST se distingue en funcin del protocolo y no del hardware. No obstante, en la conguracin de impresora en YaST primero hay que seleccionar con qu tipo de "hardware" se va a imprimir (por ejemplo a travs de un servidor de red CUPS, un servidor de red LPD o directamente en una impresora de red o servidor de impresin dedicado). Segn la opcin escogida se ofrecen los protocolos posibles; si bien el protocolo que debera funcionar en la mayora de los casos est preseleccionado. Si slo un protocolo es posible, no se ofrece ninguna seleccin. A continuacin algunos ejemplos: Imprimir a travs de un servidor de red CUPS Protocolo IPP (nica posibilidad)

130

5.8. Impresin en redes TCP/IP

Imprimir a travs de un servidor de red LPD Protocolo LPD (nica posibilidad) Imprimir directamente desde una impresora de red o printserver-box: Socket TCP Protocolo LPD Protocolo IPP Para poder transmitir datos del remitente al destinatario segn un protocolo determinado, es necesario que ambos soporten dicho protocolo. El software que funciona en el remitente y el destinatario tambin debe soportar ese protocolo. Por consiguiente, el hardware y el software empleados no son relevantes: lo importante es que tanto el remitente como el destinatario soporten el protocolo correspondiente. Dependiendo del protocolo utilizado, se transmiten trabajos de impresin o slo datos en crudo. Adems de los datos que se van a imprimir, un trabajo de impresin contiene tambin datos adicionales qu usuario ha creado el trabajo de impresin y en qu mquina o, en caso necesario, opciones especcas de impresin (por ejemplo tamao del papel, impresin en modo dplex, etc.). Imprimir a travs del protocolo LPD En este caso, el remitente enva la tarea de impresin a travs del protocolo LPD a una cola de impresin en el destinatario. Segn el protocolo LPD, el destinatario recibe los trabajos de impresin en el puerto 515. Por lo tanto, en el ordenador destinatario siempre se requiere un servicio que acepte los trabajos de impresin en el puerto 515 (este servicio se llama normalmente lpd). Asimismo, tambin se requiere una cola de impresin a la que mandar los trabajos aceptados. Remitentes que soportan el protocolo LPD Ordenadores Linux con el sistema de impresin LPRng: LPRng soporta el protocolo LPD mediante lpd. Para ello se necesita una cola de impresin local mediante la cual el lpd del remitente reenve el trabajo de impresin al lpd del destinatario.

5
Funcionamiento de la impresora
131

SUSE LINUX Manual de Administracin

Con LPRng la transmisin se puede hacer tambin sin lpd local. El programa lpr del paquete lprng puede reenviar la tarea de impresin directamente al lpd del destinatario utilizando el protocolo LPD. Ordenadores Linux con el sistema de impresin CUPS (servidor): CUPS soporta el protocolo LPD slo a travs del daemon cupsd. Para ello se necesita una cola de impresin local mediante la cual el cupsd local reenve la tarea de impresin al lpd del destinatario. Ordenadores Linux con el sistema de impresin CUPS (cliente): La transmisin de datos a travs del protocolo LPD no est soportadas en los clientes CUPS. Otros sistemas operativos: El protocolo LPD es muy antiguo, por lo que cualquier sistema operativo debera soportarlo al menos como remitente. Es posible que no se soporte por defecto. En este caso habra que instalar manualmente el software necesario. Destinatarios que soportan el protocolo LPD Ordenadores Linux con el sistema de impresin LPRng: LPRng soporta la recepcin de datos a travs del protocolo LPD mediante lpd. Ordenadores Linux con el sistema de impresin CUPS (servidor): CUPS soporta la recepcin de datos a travs del protocolo LPD mediante cups-lpd. Puede activar cups-lpd por medio de inetd o xinetd. Ordenadores Linux con el sistema de impresin CUPS (cliente): Los clientes CUPS no soportan la recepcin de datos a travs del protocolo LPD.

132

5.8. Impresin en redes TCP/IP

Servidor de impresin e impresora de red/printserver-box El protocolo LPD es muy antiguo, por lo que cualquier servidor de impresin, servidor de impresin dedicado o impresora de red de uso extendido debera soportar este protocolo. En los servidores de impresin dedicados e impresoras de red el nombre de las colas de impresin vara en funcin del modelo o existen varias colas de impresin que funcionan de forma distinta. Imprimir a travs del protocolo IPP Aqu el remitente enva la tarea de impresin a travs del protocolo IPP a una cola de impresin en el destinatario. Segn el protocolo IPP, el remitente acepta los trabajos de impresin en el puerto 631. Por lo tanto, en el ordenador destinatario se requiere un servicio que acepte los trabajos de impresin en el puerto 631 (este servicio se llama en CUPS cupsd) y una cola de impresin en la que se guarden los trabajos aceptados. Remitentes que soportan el protocolo IPP: Ordenadores Linux con el sistema de impresin LPRng: LPRng no soporta el protocolo IPP. Ordenadores Linux con CUPS como cliente o servidor CUPS tambin soporta el envo de datos a travs del protocolo IPP sin cupsd local. Los programas lpr o lp del paquete cups-client o el programa xpp o el programa KDE kprinter pueden reenviar el trabajo de impresin a travs del protocolo IPP directamente al destinatario. Otros sistemas operativos: El protocolo IPP es relativamente nuevo, por lo que el soporte depende de cada caso concreto.

5
Funcionamiento de la impresora
133

SUSE LINUX Manual de Administracin

Destinatarios que soportan el protocolo IPP Ordenadores Linux con el sistema de impresin LPRng: LPRng no soporta el protocolo IPP. Ordenadores Linux con el sistema de impresin CUPS (servidor): CUPS soporta la recepcin a travs del protocolo IPP mediante cupsd. En el ordenador destinatario se requiere una cola de impresin en la que cups-lpd guarde el trabajo de impresin que ha recibido del remitente. Ordenadores Linux con el sistema de impresin CUPS (cliente): Los clientes CUPS no soportan la recepcin a travs del protocolo IPP. Servidor de impresin e impresora de red/printserver-box El protocolo IPP es relativamente nuevo, por lo que el soporte depende de cada caso concreto. Imprimir directamente va socket TCP Aqu no se enva ninguna tarea de impresin a una cola de impresin remota, ya que no existe ningn protocolo (LPD o IPP) que pueda trabajar tanto con trabajos como con colas de impresin. En vez de esto se envan directamente datos en crudo a un puerto TCP remoto utilizando el socket TCP. Normalmente se utiliza para enviar datos especcos de una impresora a impresoras de red y servidores de impresin dedicados. En muchos casos se emplea el puerto TCP 9100. Remitentes que soportan la impresin directa a travs del socket TCP: Ordenadores Linux con el sistema de impresin LPRng: LPRng soporta el envo directo a travs del socket TCP mediante lpd. Se requiere una cola en el ordenador remitente de la que el lpd del remitente tome el trabajo de impresin y enve los datos que se van a imprimir al puerto TCP del destinatario.

134

5.8. Impresin en redes TCP/IP

LPRng tambin lo soporta sin lpd local. El programa lpr del paquete lprng puede enviar directamente los datos al puerto TCP del destinatario a travs del socket TCP con la opcin -Y. Vase al respecto la pgina del manual correspondiente a lpr. Ordenadores Linux con el sistema de impresin CUPS (servidor): CUPS soporta el envo directo de datos a travs del socket TCP por medio de cupsd. Se requiere una cola en el ordenador remitente desde la que cupsd tome el trabajo de impresin y enve los datos que se van a imprimir al puerto TCP del destinatario. Ordenadores Linux con el sistema de impresin CUPS (cliente): Los clientes CUPS no soportan el envo directo a travs del socket TCP. No obstante, los siguientes comandos permiten enviar datos al puerto de un ordenador.
cat archivo | netcat -w 1 host puerto

5
Funcionamiento de la impresora

Destinatarios que soportan la impresin directa a travs del socket TCP: Ordenadores Linux con LPRng o con CUPS como cliente o servidor Para la recepcin directa a travs del socket TCP no se requiere ningn sistema de impresin y ningn sistema de impresin lo soporta directamente, ya que normalmente no tiene sentido enviar datos en crudo cuando existe un sistema de impresin que soporta trabajos de impresin con sus protocolos correspondientes (LPD o IPP). No obstante, por ejemplo en el sistema de impresin CUPS es posible aceptar datos en el puerto 9100 y reenviarlos a una cola de impresin. Para ello debe introducirse en /etc/ inetd.conf alguna de las lneas siguientes:
9100 stream tcp nowait lp /usr/bin/lp \ lp -d <cola-impresin>

Si no se va a realizar ningn proceso de ltrado, aada -o raw.

SUSE LINUX Manual de Administracin

135

Tambin es posible emular un servidor de impresin dedicado que recibe datos en el puerto 9100 y los enva directamente a la impresora. Para ello debe introducirse en /etc/inetd.conf una lnea del tipo:
9100 stream tcp nowait lp /bin/dd dd of=/dev/lp0

Impresora de red o printserver-box El soporte depende de cada caso concreto. Especialmente el puerto correcto vara en funcin del modelo. Con impresoras de red HP o servidores de impresin dedicados HP JetDirect, este suele ser el puerto 9100, o con servidores de impresin dedicados JetDirect con dos o tres conexiones para impresoras suele ser los puertos 9100, 9101 y 9102. Estos puertos tambin son utilizados por muchos otros servidores de impresin dedicados. Consulte el manual de servidores de impresin dedicados y, en caso de duda, pregunte al fabricante del servidor o de la impresora de red qu puerto utiliza la impresora para comunicarse. Puede encontrar ms informacin en LPRngHowto en /usr/share/doc/packages/lprng/LPRngHOWTO.html y all ms concretamente en: /usr/share/doc/packages/lprng/LPRng-HOWTO. html#SECNETWORK /usr/share/doc/packages/lprng/LPRng-HOWTO. html#SOCKETAPI /usr/share/doc/packages/lprng/LPRng-HOWTO. html#AEN4858 Ejemplos Caso 1: Varias estaciones de trabajo, un servidor de impresin y uno o varios servidores de impresin dedicados o impresoras de red: Servidor de impresin con LPRng Las estaciones de trabajo han de utilizar tambin el sistema de impresin LPRng. En el servidor de impresin existe una cola para cada impresora conectada al servidor de impresin dedicado o para cada impresora de red.

136

5.8. Impresin en redes TCP/IP

Las estaciones de trabajo transmiten los trabajos de impresin a travs del protocolo LPD a la cola de la impresora en el servidor de impresin. Dependiendo del protocolo soportado por el servidor de impresin dedicado o la impresora de red, el servidor de impresin utiliza el protocolo LPD o la transmisin directa de datos a travs del socket TCP para enviar los datos al servidor de impresin dedicado/impresora de red. Servidor de impresin con CUPS como servidor Las estaciones de trabajo han de utilizar tambin el sistema de impresin CUPS. El sistema CUPS como cliente es ms que suciente en este caso. En el servidor de impresin existe una cola para cada impresora conectada al servidor de impresin dedicado o para cada impresora de red. Las estaciones de trabajo transmiten los trabajos de impresin a travs del protocolo IPP a la cola de la impresora en el servidor de impresin. Dependiendo del protocolo soportado por el servidor de impresin dedicado o la impresora de red, el servidor de impresin utiliza el protocolo LPD o la transmisin directa de datos a travs del socket TCP para enviar los datos al servidor de impresin dedicado/impresora de red. Caso 2: Unas pocas estaciones de trabajo, ningn servidor de impresin y una o varias impresoras de red o servidores de impresin dedicados. Estaciones de trabajo con LPRng o CUPS como servidor En cada estacin de trabajo existe una cola para cada impresora conectada al servidor de impresin dedicado o para cada impresora de red. Debido a que es necesario congurar todas las colas en cada estacin de trabajo, este escenario slo se recomienda en caso de tener pocas estaciones de trabajo. Dependiendo del protocolo soportado por el servidor de impresin dedicado o impresora de red, las estaciones de trabajo utilizan el protocolo LPD o la transmisin directa de datos a travs del socket TCP para enviar los datos al servidor de impresin dedicado o a la impresora de red.

5
Funcionamiento de la impresora
137

SUSE LINUX Manual de Administracin

En caso de que varias estaciones de trabajo enven simultneamente datos a la misma impresora de red o servidor de impresin dedicado, pueden producirse problemas incluyendo la prdida de datos, sobre todo si se ha empleado el protocolo LDP para transmitir los datos. El motivo es que la implementacin del destinatario LPD en la impresora de red o servidor de impresin dedicado suele ser deciente por falta de memoria suciente para aceptar y guardar temporalmente varios trabajos de impresin. En cambio, la transmisin de datos a travs del socket TCP suele resultar muy able.

5.8.4.

Filtros en la impresin en red

En el apartado anterior se ha explicado cmo se transmiten trabajos de impresin o datos en crudo de la estacin de trabajo a la impresora. Ahora veremos cmo se realiza el proceso de ltrado (la transformacin de los datos originales en datos especcos de la impresora) al imprimir en red. El ltrado en la red se produce de la misma forma que en una impresora conectada a un ordenador autnomo y los ltros de impresin son tambin los mismos. La nica diferencia radica en que el ujo de datos de la estacin de trabajo a la impresora sigue un camino ms complicado y pasa por varias estaciones; por ejemplo:
Estacin de trabajo -> servidor de impresin -> printserver-box -> impresora

Es en esta posicin donde el archivo de salida se convierte al formato que puede imprimir la impresora (PostScript, PCL, ESC/P). La conversin se realiza por medio de ltros de impresin que slo funcionan en un ordenador que tenga la cantidad de memoria y el rendimiento necesarios. Es decir, en una estacin de trabajo o un servidor de impresin pero no en una impresora de red ni en el servidor de impresin dedicado. Estos ltimos no suelen incluir ningn ltro de impresin, slo pueden aceptar datos especcos de impresora y enviarlos a la impresora.

138

5.8. Impresin en redes TCP/IP

Una cola de impresin puede crearse con o sin ltrado. En la conguracin de impresora en YaST hay que seleccionar primero el hardware (por ejemplo a travs del servidor de red CUPS, servidor de red LPD o impresin directa a una impresora de red o servidor de impresin dedicado) sobre el que se va a imprimir. Por este motivo, la conguracin predeterminada referente a la existencia de ltrado suele ser la ms adecuada para el proceso de impresin. Si es necesario, las opciones de conguracin estndar pueden modicarse. Las opciones de conguracin predeterminadas son: Imprimir a travs de un servidor de red CUPS: Sin ltrado (ya que el ltrado se produce normalmente en el servidor de red CUPS). Imprimir a travs de un servidor de red LPD: Sin ltrado (ya que el ltrado se produce normalmente en el servidor de red LDP). Imprimir directamente a una impresora de red o printserver-box Con ltrado Al crear la cola con ltrado, los datos originales se guardan temporalmente en la cola. Cuando estos datos se envan al destinatario, pasan por el ltro que se encuentra en el ordenador que contiene la cola. El ltrado se lleva a cabo antes de enviar los datos para que el destinatario los reciba ya reformateados (gura 5.2 en la pgina siguiente).

5
Funcionamiento de la impresora
139

SUSE LINUX Manual de Administracin

Figura 5.2: Resumen del proceso de ltrado

A continuacin se muestran las posibilidades de ltrado en los ejemplos superiores: Caso B1: Varias estaciones de trabajo, un servidor de impresin y uno o varios servidores de impresin dedicados o impresoras de red: La conguracin ms sencilla y til es la que se ilustra en la gura 5.3 en la pgina siguiente. Caso B1b Para cada cola con ltrado en el servidor de impresin puede congurarse una cola sin ltrado en cada estacin de trabajo para que, en caso de fallo o sobrecarga en el servidor de impresin, los datos puedan almacenarse temporalmente en las estaciones de trabajo y se pueda imprimir hasta que el servidor vuelva a estar disponible. La desventaja es que hay que congurar todas las colas de impresin en cada una de las estaciones de trabajo (sin ltro) y en caso de cambiar las colas en el servidor, la conguracin ha de cambiarse tambin en las estaciones de trabajo. La gura 5.4 en la pgina 142 muestra esta conguracin algo ms compleja:

140

5.8. Impresin en redes TCP/IP

5
Funcionamiento de la impresora

Figura 5.3: Conguracin 1

SUSE LINUX Manual de Administracin

141

Figura 5.4: Conguracin 2

Caso B1c En teora, el ltrado podra producirse en las estaciones de trabajo y el servidor de impresin se limitara a transmitir los datos especcos de impresora a la impresora de red o servidor de impresin dedicado. Esto slo tiene sentido si el servidor de impresin tiene tan poca potencia que el proceso de ltrado ocasiona una sobrecarga. Los inconvenientes son que habra que congurar (con ltro) las colas en todas las estaciones de trabajo y en caso de cambiar la conguracin de las colas, esta habra de cambiarse tambin en todas las estaciones de trabajo. Esta conguracin es la que se muestra en la gura 5.5 en la pgina siguiente. Caso B2 Unas pocas estaciones de trabajo, ningn servidor de impresin y una o varias impresoras de red o servidores de impresin dedicados.

142

5.8. Impresin en redes TCP/IP

5
Funcionamiento de la impresora

Figura 5.5: Conguracin 3

La nica conguracin posible sera tener en cada estacin de trabajo una cola con ltro para cada impresora. El inconveniente es que habra que congurar las colas en todas las estaciones de trabajo (con ltro) y en caso de cambiar la conguracin, habra que adaptar tambin la conguracin en todas las estaciones de trabajo. La conguracin se reeja en la gura 5.6 en la pgina siguiente. Caso B3 Esta conguracin es casi idntica a la de un sistema autnomo con una impresora conectada localmente. En la gura 5.7 en la pgina 145 se muestra la conguracin de un sistema autnomo con nes comparativos:

SUSE LINUX Manual de Administracin

143

Figura 5.6: Conguracin 4

Al observar retrospectivamente cada uno de los ejemplos de conguracin empezando por el nal, se ve la evolucin de un sistema autnomo con una impresora local a una conguracin ms compleja para mltiples estaciones de trabajo con un servidor de impresin para varias impresoras de red/servidores de impresin dedicados.

5.8.5.

Resolucin de problemas

Comprobar la red TCP/IP La red TCP/IP, resolucin de nombres incluida, debe funcionar adecuadamente. Comprobar la conguracin del ltro Conecte la impresora directamente al primer puerto paralelo del ordenador, congurndola como impresora local para evitar posibles problemas con la red (slo durante la prueba). Una vez que la impresora funciona localmente, ya conoce el controlador de Ghostscript y los dems parmetros para la conguracin del ltro. Comprobar el lpd remoto El siguiente comando le permite comprobar si es posible una conexin TCP a lpd (puerto 515) en el ordenador host :
netcat -z host 515 && echo ok || echo failed

144

5.8. Impresin en redes TCP/IP

5
Funcionamiento de la impresora
Figura 5.7: Conguracin 5

Si no lo es, o bien no funciona el lpd, o existen problemas importantes en la red. Como usuario root se puede solicitar un informe (que puede llegar a ser muy largo) sobre el estado de la cola de impresin queue en un ordenador (remoto) host , siempre que el lpd remoto est funcionando y sea accesible:
echo -e "\004queue" \ | netcat -w 2 -p 722 host 515

Si no se recibe respuesta del lpd puede que no funcione el lpd o que haya problemas importantes en la red. Si hay respuesta del lpd esta debera aclarar por qu no se puede imprimir a la cola de impresin queue del ordenador host Ejemplos: Ejemplo 5.1: Mensaje de error de lpd
lpd: your host does not have line printer access lpd: queue does not exist printer: spooling disabled printer: printing disabled

Si se recibe tal respuesta del lpd, se trata de un problema del lpd remoto.

SUSE LINUX Manual de Administracin

145

Comprobar un cupsd remoto Con el siguiente comando se puede comprobar si en la red existe un servidor de red CUPS, ya que este debera anunciar su cola de impresin por broadcast a travs del puerto UDP 631 cada 30 segundos.
netcat -u -l -p 631 & PID=$! ; sleep 40 ; kill $PID

Despus de 40 segundos de espera se produce una salida semejante a esta cuando el servidor de red CUPS realiza el broadcast: Ejemplo 5.2: Broadcast del servidor de red CUPS
... ipp://host.domain:631/printers/queue

El siguiente comando permite comprobar si es posible establecer una conexin TCP al cupsd (puerto 631) del ordenador host :
netcat -z host 631 && echo ok || echo failed

Si no lo es, o no funciona el cupsd o bien existen problemas importantes en la red.


lpstat -h host -l -t

Con este comando se puede solicitar un informe (que a veces puede llegar a ser muy largo) del estado de todas las colas de impresin del ordenador host , siempre que haya un cupsd en funcionamiento y que sea posible conectarse con l.
echo -en "\r" \ | lp -d queue -h host

Con este comando se puede comprobar si la cola de impresin queue del ordenador host acepta un trabajo de impresin compuesto por un nico signo de retorno de carro. Es decir, es slo una prueba y no debera imprimirse nada. En caso de imprimirse, el resultado ser slo una hoja en blanco.

146

5.8. Impresin en redes TCP/IP

Comprobar un servidor SMB remoto El funcionamiento bsico puede comprobarse con el siguiente comando:
echo -en "\r" \ | smbclient /HOST/SHARE PASSWORD \ -c print - -N -U USER \ && echo ok || echo failed

5
Funcionamiento de la impresora

Introduzca en HOST el nombre del ordenador del servidor Samba, en SHARE el nombre de la cola de impresin remota ( el nombre del directorio compartido Samba); en PASSWORD la contrasea y en USER el nombre de usuario. Aqu se trata slo de una prueba y no debera imprimirse nada; pero en caso de imprimirse, el resultado ser nicamente una hoja en blanco. Con el siguiente comando se muestran los shares o directorios compartidos disponibles en el ordenador host vase la pgina del manual man smbclient:
smbclient -N -L host

La impresora de red o el printserver-box no funcionan correctamente. A veces hay problemas con el spooler de impresin que se ejecuta en el servidor de impresin dedicado cuando se incrementa el volumen de impresin. Puesto que es un problema del spooler en el servidor de impresin dedicado o en la impresora de red, no se puede hacer nada. Sin embargo, existe la posibilidad de evitar el spooler del servidor de impresin dedicado comunicndose directamente a travs del socket TCP con la impresora conectada al servidor de impresin dedicado. De esta forma, el servidor de impresin dedicado slo funciona como conversor entre las distintas formas de transmisin de datos (red TCP/IP y conexin local a la impresora). As la impresora conectada al servidor de impresin dedicado se comporta como una impresora local. Asimismo el control sobre la impresora es ms directo que el que se tendra si el spooler estuviera funcionando. Para esto debe conocerse el puerto TCP correspondiente del servidor de impresin dedicado. Con la impresora encendida y conectada al servidor de impresin dedicado, este puerto TCP se puede averiguar normalmente con el programa nmap del paquete nmap poco despus de haber arrancado el servidor de impresin dedicado. Este es el ejemplo de la salida de nmap<direccin-IP> con un servidor de impresin dedicado:

SUSE LINUX Manual de Administracin

147

Port 23/tcp 80/tcp 515/tcp 631/tcp 9100/tcp

State open open open open open

Service telnet http printer cups jetdirect

La salida signica: Es posible registrarse en el servidor de impresin dedicado va telnet. All puede solicitar informacin general y realizar conguraciones bsicas. Va HTTP es posible comunicarse con un servidor web que est en funcionamiento en el servidor de impresin dedicado. Este normalmente proporciona informacin detallada y permite realizar conguraciones avanzadas. Es posible comunicarse con el spooler de impresin que est en funcionamiento en el servidor de impresin dedicado a travs del puerto 515 mediante el protocolo LPD. Es posible comunicarse con el spooler de impresin que est en funcionamiento en el servidor de impresin dedicado a travs del puerto 631 y utilizando el protocolo IPP. Es posible comunicarse con la impresora conectada al servidor de impresin dedicado a travs del puerto 9100 y utilizando un socket TCP. Por defecto, nmap slo comprueba una lista de puertos conocidos que est recogida en el archivo /usr/share/nmap/nmap-services. Para comprobar todos los puertos posibles ha de utilizar el comando nmap -p <puerto-origen>-<puerto-destino> <direccin-IP> (este proceso puede ser muy largo). Para obtener ms informacin al respecto consulte la pgina del manual man nmap. Un comando semejante a
echo -en "\rHello\r\f" | netcat -w 1 <direccin-IP> puerto cat file | netcat -w 1 <direccin-I>P puerto

permite enviar secuencias de caracteres o archivos directamente al puerto en cuestin para comprobar si es posible acceder a la impresora a travs de este puerto.

148

5.8. Impresin en redes TCP/IP

5.8.6.

Servidor de impresin LPD e IPP

5
Funcionamiento de la impresora

LPD, IPP y CUPS Aunque por lo general un servidor CUPS slo soporta el protocolo IPP, el programa /usr/lib/cups/daemon/cups-lpd del paquete cups permite que un servidor CUPS pueda aceptar trabajos de impresin que le han sido enviados al puerto 515 mediante el protocolo LPD. Para ello se debe activar el servicio correspondiente para xinetd normalmente con YaST o manualmente activando la lnea correspondiente en el archivo /etc/xinetd.d/cups-lpd. LPRng/lpdlter y CUPS Puede ocurrir que desee ejecutar ambos sistemas de impresin LPRng/lpdlter y CUPS en el mismo ordenador, ya sea por ampliar un servidor de impresin LPD con CUPS, o porque en algunos casos sea necesario el sistema LPRng/lpdlter. En principio se presentan dicultades cuando los dos sistemas de impresin se ejecutan en el mismo ordenador. Aqu se expondr brevemente los problemas y limitaciones que pueden ocurrir. No obstante, este tema es demasiado complejo y no es posible ofrecer una solucin en estas pginas. La conguracin de la impresora no se debe realizar con YaST ya que la conguracin de YaST no ha sido diseada para estos casos. Existe un conicto entre los paquetes lprng y cups-client debido a que contienen archivos con el mismo nombre por ejemplo /usr/bin/lpr y /usr/bin/lp. Por eso el paquete cups-client no debe estar instalado. La consecuencia es que no hay herramientas CUPS de lnea de comandos disponibles, sino slo para LPRng. Sin embargo, es posible imprimir desde una interfaz grca con xpp o kprinter en colas de impresin CUPS, as como desde todas las aplicaciones que soportan CUPS directamente. Por lo general, al arrancar, cupsd vuelve a crear el archivo /etc/ printcap que slo contiene los nombres de todas las colas de impresin CUPS. Esto ocurre por razones de compatibilidad, ya que muchas aplicaciones leen las colas de impresin de /etc/printcap para poder ofrecerlas en el men de impresin. Este servicio debe ser desactivado para cupsd de tal forma que /etc/printcap slo est disponible para LPRng/lpdlter.

SUSE LINUX Manual de Administracin

149

La consecuencia es que las aplicaciones que slo utilizan los nombres de colas de impresin que se encuentran en /etc/printcap slo mostrarn las colas locales, pero no las colas CUPS disponibles en la red.

150

5.8. Impresin en redes TCP/IP

6
Informacin adicional sobre el funcionamiento de la impresora

Informacin adicional sobre el funcionamiento de la impresora

Este captulo le proporciona un conocimiento ms profundo sobre el funcionamiento de la impresora. Los ejemplos ilustran las interrelaciones existentes en el proceso de impresin y su comprensin le facilitar la bsqueda de soluciones para escenarios de aplicacin especiales.

6.1. 6.2. 6.3. 6.4. 6.5. 6.6. 6.7. 6.8. 6.9.

Conguracin manual de puertos locales . . . . . Conguracin manual de LPRng/lpdlter . . . . El spooler de impresin LPRng . . . . . . . . . . . Herramientas de lnea de comandos para LPRng . El ltro de impresin del sistema LPRng/lpdlter Acerca de Ghostscript . . . . . . . . . . . . . . . . Acerca de a2ps . . . . . . . . . . . . . . . . . . . . . Reformatear PostScript con psutils . . . . . . . . . Codicacin de texto ASCII . . . . . . . . . . . . .

. . . . . . . . .

152 157 158 159 164 175 179 180 183

6.1.
6.1.1.

Conguracin manual de puertos locales


Puertos paralelos

En un sistema Linux la conexin a una impresora suele ocurrir a travs de un puerto paralelo. El acceso a estas impresoras se produce a travs del subsistema parport del kernel. La conguracin bsica de un puerto paralelo con YaST se describe en la seccin 5.3.4 en la pgina 110, por lo que aqu slo se incluir informacin general: Los puertos paralelos se dan a conocer al subsistema parport al cargar los mdulos del kernel especcos de la arquitectura. De esta forma es posible trabajar con varios dispositivos simultneamente (por ejemplo una unidad ZIP de puerto paralelo y una impresora) conectados a travs de un solo puerto paralelo. La numeracin de archivos de dispositivos para impresoras de puerto paralelo comienza con /dev/lp0. Para poder imprimir a travs del primer puerto paralelo, se deben cargar los siguientes mdulos en el kernel estndar de SUSE: parport, parport_pc y lp. De esto suele encargarse automticamente el cargador de mdulos del kernel (Kernel Module Loader) kmod tan pronto como se accede a los archivos de dispositivo (por ejemplo /dev/lp0) por primera vez. Cuando el mdulo parport_pc del kernel se carga sin parmetros especiales, intenta detectar y congurar automticamente los puertos paralelos. En pocas ocasiones no lo consigue y el sistema se "cuelga". En este caso, se debe congurar manualmente e introducir explcitamente los parmetros correctos para parport_pc. Por eso se puede impedir la deteccin automtica de impresoras por parte de YaST tal y como se explica en la seccin 5.3 en la pgina 107. Conguracin manual de los puertos paralelos El puerto paralelo /dev/lp0 se congura mediante una entrada en /etc/ modules.conf (archivo 6.1). Ejemplo 6.1: /etc/modules.conf: primer puerto paralelo
alias parport_lowlevel parport_pc options parport_pc io=0x378 irq=none

152

6.1. Conguracin manual de puertos locales

En io aparece la direccin de entrada y salida del puerto paralelo y en irq aparece none como conguracin predeterminada para el modo de operacin polling; tambin puede aparecer la interrupcin del puerto paralelo. El modo polling es menos problemtico que el modo de interrupciones ya que se evitan los conictos de interrupciones. Sin embargo existen placas bases o impresoras que slo funcionan correctamente en modo de interrupciones. Adems este modo permite a la impresora recibir datos sucientes en momentos de sobrecarga del sistema. Para que estas opciones funcionen, hace falta congurar los siguientes valores (siempre que existan) para el puerto paralelo en la BIOS del ordenador o mediante el rmware: Direccin entrada/salida 378 (hexadecimal) Interrupt 7 (no importa en modo "polling") Modo Normal, SPP o bien Output-Only (los dems modos no funcionan siempre). DMA est desactivado (por defecto en modo Normal) Si la interrupcin 7 an est libre, se puede activar el funcionamiento de interrupciones con la entrada en el archivo 6.2. Ejemplo 6.2: /etc/modules.conf: modo de interrupciones para el primer puerto paralelo
alias parport_lowlevel parport_pc options parport_pc io=0x378 irq=7

6
Informacin adicional sobre el funcionamiento de la impresora

Antes de que el modo de interrupciones est activado, el archivo /proc/ interrupts permite averiguar qu interrupciones ya se estn utilizando. Aqu slo se muestran las interrupciones que se encuentren funcionando en este momento; lo que puede cambiar en funcin del hardware que se est usando. No se debe utilizar la interrupcin del puerto paralelo de otro modo. En caso de duda, lo mejor es tomar el modo polling.

SUSE LINUX Manual de Administracin

153

Activacin y prueba de un puerto paralelo El puerto paralelo est disponible tras reiniciar el ordenador. En lugar de reiniciar la mquina, basta con actualizar como usuario root la lista de las dependencias de mdulos y descargar los mdulos de kernel que se comunican con el puerto paralelo. . .
depmod -a 2>/dev/null rmmod lp rmmod parport_pc rmmod parport

. . . para cargarlos nuevamente:


modprobe parport modprobe parport_pc modprobe lp

Si la impresora es capaz de imprimir texto ASCII, el usuario root ha de poder imprimir una pgina con la palabra Hello mediante el siguiente comando:
echo -en "\rHello\r\f" >/dev/lp0

Aqu, la palabra Hello est preparada para la impresin, encontrndose entre el carcter ASCII \r que representa el retorno de carro, y el carcter ASCII \f que provoca un salto de pgina.

6.1.2. Puerto USB


La BIOS del ordenador debe tener una interrupcin activada para USB. Para ello, en el caso de una BIOS Award es necesario jar la entrada USB IRQ como Enabled en el men PNP AND PCI SETUP. Segn la versin de la BIOS, pueden emplearse otras denominaciones. Para probar si se puede acceder a la impresora USB, teclee como usuario root:
echo -en "\rHello\r\f" >/dev/usb/lp0

154

6.1. Conguracin manual de puertos locales

Suponiendo que slo haya una impresora USB conectada y que esta impresora pueda imprimir texto ASCII, deber salir impresa una pgina con la palabra Hello. Algunas impresoras USB requieren una secuencia especial de control antes de aceptar los datos USB. Puede encontrar ms informacin sobre este tema introduciendo Epson y usb como palabras clave en nuestra base de datos de soporte http://sdb.suse.de/es/sdb/html. Por lo general, tras introducir el siguiente comando debera aparecer el fabricante y la descripcin del producto:
cat /proc/bus/usb/devices

6
Informacin adicional sobre el funcionamiento de la impresora

Si no es as, puede ser debido a uno de los siguientes motivos: El sistema USB (an) no ha detectado el dispositivo quizs porque la impresora USB est apagada y por tanto no se puede establecer contacto con ella. El sistema USB ha detectado el dispositivo pero no conoce ni el fabricante ni la descripcin del producto, por lo que no muestra nada. Sin embargo s es posible comunicarse con la impresora. A veces sucede que la impresora deja de responder (por ejemplo por haber sacado el enchufe USB durante la impresin). Normalmente debera bastar con utilizar los siguientes comandos para reiniciar el sistema USB:
rchotplug stop rchotplug start

Si esto no ayuda, se pueden nalizar todos los procesos que acceden a /dev/usb/lp0 y descargar y cargar nuevamente todos los mdulos de kernel relacionados con la impresora USB. Previamente se debe comprobar con lsmod qu mdulos USB estn cargados (usb-uhci, usb-ohci o bien uhci) y si existen otras dependencias entre mdulos. Por ejemplo, la salida siguiente muestra que el mdulo usbcore es requerido por los mdulos printer y usb-uhci:
usbcore ... [printer usb-uhci]

SUSE LINUX Manual de Administracin

155

Por este motivo, aqu es necesario descargar los mdulos printer y usb-uhci antes del mdulo usbcore. Introduzca para ello los siguientes comandos como usuario root (dependiendo del sistema, usb-uhci puede ser tambin uhci o usb-ohci):
fuser -k /dev/usb/lp0 rchotplug stop rmmod printer rmmod usb-uhci umount usbdevfs rmmod usbcore modprobe usbcore mount usbdevfs modprobe usb-uhci modprobe printer rchotplug start

Si hay ms de una impresora conectada, se debe tener en cuenta lo siguiente: El subsistema USB reconoce automticamente las impresoras USB conectadas. Nos podemos comunicar con la primera impresora USB detectada mediante el dispositivo /dev/usb/lp0 y con la segunda impresora USB detectada mediante el dispositivo /dev/usb/lp1. Dependiendo del modelo de impresora puede que tambin se detecten impresoras apagadas. Esto es debido a que tambin es posible comunicarse con algunas impresoras en estado de apagado a travs del puerto USB. Para evitar una confusin entre dispositivos USB, se debera encender todas las impresoras USB antes de arrancar Linux y dejarlas encendidas en la medida de lo posible durante el funcionamiento del sistema.

6.1.3.

Puerto IrDA

Es una emulacin de un puerto paralelo a travs de una conexin de infrarrojos. El controlador en el kernel de Linux ofrece un puerto paralelo simulado en el dispositivo /dev/irlpt0. Es posible comunicarse con una impresora a travs de un puerto de infrarrojos de la misma forma que a travs de un puerto paralelo; la nica diferencia es que se utilizar /dev/irlpt0 en vez de /dev/lp0. Compruebe si es posible comunicarse con la impresora IrDA introduciendo como usuario root:
echo -en "\rHello\r\f" >/dev/irlpt0

156

6.1. Conguracin manual de puertos locales

Suponiendo que la impresora pueda imprimir texto ASCII, debera imprimirse una pgina con la palabra Hello. En cualquier caso, la impresora debe aparecer en la salida del comando irdadump. Si este comando no existe, es necesario instalar el paquete irda. Si la impresora no se muestra tras ejecutar irdadump, es que no es posible comunicarse con ella. Si no aparece nada de ninguna manera, lo ms probable es que no se haya iniciado el servicio del sistema IrDA, puesto que este no se activa automticamente al arrancar el ordenador. El sistema IrDA puede iniciarse y pararse con
rcirda start rcirda stop

6
Informacin adicional sobre el funcionamiento de la impresora

6.1.4.

Puertos serie

El funcionamiento de una impresora conectada al puerto serie est explicado para el spooler LPRng en el LPRng-Howto en /usr/share/doc/ packages/lprng/LPRng-HOWTO.html y, ms concretamente en /usr/ share/doc/packages/lprng/LPRng-HOWTO.html#SECSERIAL y en la pgina del manual man printcap. Tambin puede encontrar ms informacin en la base de datos de soporte introduciendo la palabra clave serie.

6.2.

Conguracin manual de LPRng/lpdlter

Normalmente se congura el sistema de impresin con YaST tal y como se indica en la seccin 5.3 en la pgina 107. Adicionalmente existe para el sistema de impresin LPRng/lpdlter el programa lprsetup. La funcionalidad completa de lprsetup es accesible desde la lnea de comandos. Al congurar una impresora con YaST, ste se encarga de recopilar la informacin necesaria y de activar lprsetup con las opciones precisas para congurar el sistema de impresin LPRng/lpdlter. El programa lprsetup est concebido como una herramienta para expertos. Al contrario que YaST, no ayuda al usuario a encontrar los valores adecuados para las diferentes opciones. Con lprsetup -help se mencionan brevemente las distintas opciones. Las pginas del manual man lprsetup y man lpdfilter proporcionan ms informacin.

SUSE LINUX Manual de Administracin

157

Puede obtener ms informacin sobre los controladores Ghostscript y parmetros especcos de los diferentes controladores en las secciones 5.2.2 en la pgina 104 y 6.6 en la pgina 175.

6.3.

El spooler de impresin LPRng

Como spooler de impresin estndar del sistema de impresin LPRng/lpdlter se utiliza LPRng (paquete lprng). El spooler de impresin lpd (Line Printer Daemon) se activa automticamente mediante el script /etc/init.d/lpd al arrancar el sistema. Este spooler de impresin se ejecuta como daemon en segundo plano y se puede iniciar y parar manualmente con:
rclpd start rclpd stop

Los archivos de conguracin para el paquete LPRng son: /etc/printcap Conguracin de cada cola de impresin /etc/lpd.conf Conguracin global del spooler /etc/lpd.perms Conguracin de los permisos de acceso Con rclpd start tambin se activa checkpc -f en conformidad con /etc/init.d/lpd. checkpc -f crea los directorios de spool /var/ spool/lpd/* en funcin de las entradas en /etc/printcap y adapta los permisos de acceso. Cuando el spooler de impresin se inicia, se sirve de las entradas en /etc/printcap para averiguar qu colas de impresin estn denidas. Su trabajo es organizar la impresin de los trabajos (jobs) en la cola: Administra las colas de impresin locales y enva los archivos de datos de un trabajo directamente a la impresora o a otra cola de espera, pudiendo utilizar tambin un ltro de impresin entre medias. Tiene en cuenta el orden de los trabajos en las colas de impresin. Vigila el estado de las colas de impresin y de la impresora y proporciona informacin sobre las mismas.

158

6.3. El spooler de impresin LPRng

Admite o rechaza solicitudes de impresin de mquinas remotas dirigidas a colas locales en el puerto 515. Reenva solicitudes de impresin en colas remotas al spooler de impresin de la mquina remota (es decir, al puerto 515 de dicha mquina). Puede obtener informacin detallada sobre el spooler LPRng en el LPRngHowto en /usr/share/doc/packages/lprng/LPRng-HOWTO.html y en las pginas del manual man printcap y man lpd respectivamente.

6
Informacin adicional sobre el funcionamiento de la impresora

6.3.1.

Imprimir desde aplicaciones

Los programas de aplicacin imprimen con el comando lpr. Seleccione para ello en la aplicacin el nombre de una cola de impresin existente (por ejemplo color) o introduzca en el dilogo de impresin de la aplicacin el comando correspondiente (por ejemplo lpr -Pcolor). Para imprimir desde la lnea de comandos se utiliza el comando lpr -Pcolor archivo . Aqu debe sustituirse archivo por el nombre del archivo que se va a imprimir. La opcin -P permite denir explcitamente la cola de impresin. As por ejemplo, con lpr -Pcolor archivo se usa la cola de impresin color.

6.4.

Herramientas de lnea de comandos para LPRng

Las herramientas de la lnea de comandos se describen con detalle en LPRng-Howto en /usr/share/doc/packages/lprng/LPRng-HOWTO. html#LPRNGCLIENTS, por lo que aqu slo presentamos un breve resumen.

6.4.1.

Para colas de impresin locales

Generar trabajos de impresin El comando lpr est explicado en LPRng-Howto en /usr/share/doc/ packages/lprng/LPRng-HOWTO.html#LPR. A continuacin una mera informacin general:

SUSE LINUX Manual de Administracin

159

Normalmente se imprime mediante lpr -P <cola-impresin> <archivo>. Si se omite la opcin-P<cola-impresin>, se usa como valor predeterminado el contenido de la variable de entorno PRINTER. Lo mismo vale tambin para los comandos lpq y lprm ver tambin las pginas del manual man lpr, man lpq y man lprm. Al arrancar se ja automticamente la variable de entorno PRINTER. Esta variante puede mostrarse con el comando echo $PRINTER y cambiarse a otra cola de impresin con export PRINTER=<cola-impresin>. Mostrar el estado lpq -P<cola-impresin> muestra los trabajos de impresin que se encuentran en la cola de impresin indicada. Si en el spooler LPRng se indica all (todas) como cola de impresin, se mostrarn todos los trabajos de todas las colas. Con lpq -s -P<cola-impresin> se muestra una cantidad mnima de informacin mientras que con lpq -l -P<cola-impresin> se muestra una cantidad mayor. Con lpq -L -P<cola-impresin> se mostrar un detallado informe del estado, de gran ayuda para el diagnstico de problemas. Puede encontrar ms informacin en la seccin Mostrar el estado de colas de impresin remotas as como en la pgina del manual man lpq y en el LPRng-Howto en /usr/share/doc/packages/lprng/LPRng-HOWTO. html#LPQ. Eliminar trabajos de impresin lprm -P<cola-impresin> <nmero_trabajo> elimina la tarea de impresin que tenga el nmero indicado en la cola especicada, siempre que la tarea pertenezca al usuario que ha ejecutado el comando lprm. Un trabajo de impresin pertenece al usuario del ordenador que lo ha generado. Para saber quin es este usuario y qu nmero se le ha asignado a ese trabajo, utilice el comando lpq. Con el comando lprm -Pall all se eliminarn todos los trabajos de todas las colas de impresin que pertenezcan al usuario que ha introducido el comando lprm. El usuario root puede eliminar todas las tareas (de todas las colas). Puede obtener ms informacin en la pgina del manual man lprm y en el LPRng-Howto en /usr/share/doc/packages/lprng/LPRng-HOWTO. html#LPRM.

160

6.4. Herramientas de lnea de comandos para LPRng

Control de las colas de impresin El comando lpc option <cola-impresin> muestra el estado de las colas indicadas y permite modicarlas. Las opciones ms importantes son: help explica brevemente todas las posibles opciones status <cola-impresin> informa sobre el estado de la cola. disable <cola-impresin> deja de aceptar nuevos trabajos en la cola de impresin. enable <cola-impresin> reanuda la impresin de los trabajos en la cola. stop <cola-impresin> detiene la impresin de los trabajos de la cola; la tarea que se est imprimiendo se termina de imprimir. start <cola-impresin> reanuda la impresin de los trabajos en la cola. down <cola-impresin> acta como disable ms stop up <cola-impresin> tiene el mismo efecto que enable aadindole start. abort <cola-impresin> acta como down, con la diferencia de que detiene inmediatamente un trabajo que se est imprimiendo. Los trabajos se mantienen y es posible reanudarlos despus del reinicio de la cola (up). Para modicar las colas de impresin necesita permisos de root. Estos comandos se pueden introducir directamente en la lnea de comandos (por ejemplo lpc status all) o bien ejecutar lpc sin parmetros. En el ltimo caso se abre un cuadro de dilogo con su propio Prompt lpc> a la espera de que se introduzcan las opciones mencionadas arriba. Con quit o exit se sale de esta ventana. Si por ejemplo la salida de lpc status all es:
Printer lp@earth color@earth laser@earth Printing Spooling Jobs Server Subserver enabled enabled 2 123 456 disabled disabled 0 none none disabled enabled 8 none none

6
Informacin adicional sobre el funcionamiento de la impresora
161

SUSE LINUX Manual de Administracin

indica que la cola lp est en funcionamiento y contiene dos trabajos de impresin (uno de ellos ya se est imprimiendo). La cola color est totalmente apagada. La cola laser no puede imprimir por ejemplo debido a trabajos de reparacin temporales, pero permite que se generen tareas de impresin, que se van acumulando en la cola (8 en este caso). Puede obtener informacin adicional en la pgina del manual man lpc y en el LPRng-Howto en /usr/share/doc/packages/lprng/LPRngHOWTO.html#LPC.

6.4.2.

Para colas de impresin remotas

Se sustituye <servidor-impresin> por el nombre o direccin IP del servidor de impresin y <cola-impresin> debe ser una cola del servidor de impresin. Generar trabajos de impresin El spooler LPRng permite acceder directamente a colas remotas mediante el comando lpr: lpr -P<cola-impresin>@<servidor-impresin> <archivo>. Con este n, el servidor de impresin ha de estar congurado de tal forma que tambin sea posible imprimir en su cola de impresin. Esta es la opcin por defecto en LPRng. Mostrar el estado Con los siguientes comandos se puede inspeccionar el estado de una cola de impresin remota:
lpq -P<cola-impresin>@<servidor-impresin> lpq -s -P<cola-impresin>@<servidor-impresin> lpq -l -P<cola-impresin>@<servidor-impresin> lpq -L -P<cola-impresin>@<servidor-impresin>

162

6.4. Herramientas de lnea de comandos para LPRng

lpc status <cola-impresin>@<servidor-impresin> lpc status all@<servidor-impresin>

6
Informacin adicional sobre el funcionamiento de la impresora

Especialmente con lpq -s -Pall@<servidor-impresin> o con lpc status all@<servidor-impresin> se puede solicitar el nombre de todas las colas en dicho servidor de impresin, siempre que LPRng se utilice tambin en el servidor. Esto puede ser til sobre todo cuando resulte imposible imprimir en la cola remota. Con lpq -L -P<cola-impresin>@<servidor-impresin> se muestra un informe detallado del estado para realizar un diagnstico a distancia, siempre que en el servidor de impresin se use LPRng. Eliminar trabajos de impresin Con los siguientes comandos es posible eliminar todos los trabajos de impresin en colas remotas creadas por Vd. mismo:
lprm -P<cola-impresin>@<servidor-impresin> <nmero_trabajo> lprm -P<cola-impresin>@<servidor-impresin> all lprm -Pall@<servidor-impresin> all

root no posee ningn permiso especial en colas remotas. La variable all slo funciona cuando se utiliza LPRng en el servidor de impresin.

6.4.3.

Resolucin de problemas con los comandos anteriores en LPRng

Los trabajos de impresin permanecen en las colas de impresin cuando, en medio de la impresin, el ordenador se para y es necesario reiniciar Linux; si un trabajo causa problemas, elimnelo de la cola con los comandos descritos anteriormente. En caso de averas en la comunicacin entre el ordenador y la impresora, sta no puede interpretar correctamente los datos obtenidos y puede ocurrir que acabe imprimiendo una gran cantidad de pginas llenas de signos ininteligibles. 1. Primero retire todo el papel en las impresoras a chorro de tinta o abra la bandeja del papel en impresoras lser para que la impresin se detenga.

SUSE LINUX Manual de Administracin

163

2. Puesto que el trabajo de impresin slo desaparecer de la cola despus de haber sido enviado por completo a la impresora, lo ms probable es que an aparezca en la cola. Compruebe con lpq o lpc status desdequ cola se est imprimiendo y elimine con lprm el trabajo correspondiente. 3. Puede que se hayan enviado algunos datos a la impresora a pesar de que el trabajo ya no est en la cola. Con el comando fuser -k /dev/lp0 para una impresora en puerto paralelo o fuser -k /dev/usb/lp0 para una impresora USB, se pueden parar todos los procesos relacionados con la impresora. 4. Desconecte la impresora durante unos minutos. Despus vuelva a colocar el papel y encienda la impresora.

6.5.

El ltro de impresin del sistema LPRng/lpdlter

Como ltro de impresin se usa lpdlter (paquete lpdfilter). A continuacin se describe de forma detallada el desarrollo de un trabajo de impresin. Para un anlisis exacto del ltro de impresin, revise los scripts del ltro de impresin (de forma especial /usr/lib/lpdfilter/bin/if)y en caso necesario siga los pasos descritos en el apartado 6.5.3 en la pgina 174. 1. El ltro de impresin (/usr/lib/lpdfilter/bin/if) analiza las opciones que le pasa directamente el spooler de impresin o bien las lee del control le (archivo de control) del trabajo de impresin y de los archivos /etc/printcap y /etc/lpdfilter/ cola_impresin /conf (cola_impresin debe sustituirse por el verdadero nombre de la cola de impresin). 2. Si se trata una cola ascii, el ltro de impresin se ve forzado a manejar los datos que se van a imprimir como si fueran texto ASCII. Si no es una cola ascii, el ltro de impresin intenta determinar automticamente el tipo de datos del que se trata. Con este n, el script /usr/lib/lpdfilter/bin/guess aplica el comando file a los datos que se van a imprimir. El tipo de datos a imprimir se determina mediante la salida de este comando y las entradas en el archivo /etc/lpdfilter/types.

164

6.5. El ltro de impresin del sistema LPRng/lpdlter

3. Dependiendo del tipo de datos a imprimir y de la cola, se efecta una conversin posterior en datos especcos para la impresora: Si se trata de una cola raw, los datos a imprimir se reenvan directamente a la impresora (o a otra cola). No obstante, dependiendo de la conguracin en /etc/lpdfilter/ cola_impresin /conf, puede efectuarse una recodicacin sencilla con recode. Para una cola raw pura es decir completamente sin lpdlter es necesario eliminar la lnea :if=/usr/lib/lpdfilter/bin/if:\ de /etc/printcap en la cola correspondiente. Si no se trata de una cola raw: a) Si los datos a imprimir no son del tipo PostScript, se convierten a PostScript ejecutando /usr/lib/lpdfilter/ filter/typ2ps (aqu debe sustituirse typ por el tipo verdadero de datos a imprimir). Sobre todo el texto ASCII ha de convertirse a PostScript conforme a /usr/lib/ lpdfilter/filter/ascii2ps con el programa a2ps. De esta forma se convierte a PostScript la codicacin regional denida para la cola de impresin, para as poder imprimir correctamente los caracteres especiales especcos de un pas en texto plano; ver tambin la pgina del manual man a2ps. En caso necesario se pueden formatear otra vez los datos PostScript, siempre que exista un script correspondiente en /etc/lpdfilter/ cola_impresin /pre (aqu debe sustituirse cola_impresin por el verdadero nombre de la cola). Dado el caso, los datos PostScript son convertidos a otro lenguaje de impresin. Si la impresora conectada tiene soporte PostScript, los datos PostScript son enviados directamente a la impresora (o a algunas de las otras colas). Si es necesario se activan las funciones bash duplex y tray, denidas en /usr/lib/lpdfilter/global/functions, para habilitar la impresin dplex y la seleccin de la bandeja de alimentacin de papel a travs de comandos PostScript. Para ello es necesario que la impresora PostScript sea capaz de procesar estos comandos correctamente. Si la impresora conectada no tiene soporte PostScript, se emplea Ghostscript con un controlador Ghostscript adecuado para el lenguaje de impresin de la impresora

6
Informacin adicional sobre el funcionamiento de la impresora

b)

c)

SUSE LINUX Manual de Administracin

165

usada, con el n de generar los datos especcos para dicha impresora. Estos ltimos son enviados nalmente a la impresora (o a una cola). Los parmetros para ejecutar Ghostscript estn guardados en /etc/printcap directamente en la lnea cm o bien en el archivo /etc/lpdfilter/ cola_impresin /upp (aqu debe sustituirse cola_impresin por el verdadero nombre de la cola). En caso necesario es posible formatear nuevamente la salida de Ghostscript siempre que exista un script adecuado en /etc/lpdfilter/ cola_impresin /post (aqu debe sustituirse cola_impresin por el verdadero nombre de la cola). d) Los datos especcos para la impresora son enviados a la impresora (o a una cola). Tanto delante como detrs de los datos especcos para la impresora se pueden enviar secuencias de control especcas para la impresora siempre y cuando hayan sido introducidas en /etc/lpdfilter/ cola_impresin /conf.

6.5.1.

Conguracin de lpdlter

Al congurar el sistema de impresin con YaST como se describe en 5.3 en la pgina 107, se congura tambin normalmente el ltro de impresin lpdlter. Si el lpdlter se congura con YaST, el proceso de ltrado en el sistema de impresin LPRng/lpdlter tiene lugar del siguiente modo:
Datos a imprimir | v lpdfilter: conversin a PostScript | | |---- Archivo PPD adaptado al modelo de impresora | | (/etc/lpdfilter/cola/ppd) v v foomatic-rip: conversin al lenguaje de impresin con Ghostscript | v Impresora

166

6.5. El ltro de impresin del sistema LPRng/lpdlter

Para realizar conguraciones especiales hay que editar manualmente los archivos de conguracin del ltro de impresin. Cada cola de impresin tiene su propio archivo de conguracin /etc/lpdfilter/ cola_impresin /conf (aqu debe sustituirse cola_impresin por el verdadero nombre de la cola), que tambin contiene informaciones sobre cada opcin.

6
Informacin adicional sobre el funcionamiento de la impresora

6.5.2.

Complementos para lpdlter

1. Si los datos a imprimir no son del tipo PostScript, normalmente son convertidos a PostScript mediante la ejecucin de /usr/lib/ lpdfilter/filter/typ2ps (aqu se debe sustituir typ por el tipo de datos a imprimir). Si se guarda un script adecuado en /etc/lpdfilter/ cola_impresin /typ2ps, ste se utiliza para convertir los datos a imprimir a PostScript. Este script recibe los datos a imprimir a travs de stdin y debe producirlos en PostScript a travs de stdout. 2. Dado el caso se pueden formatear los datos PostScript otra vez, siempre que exista un script adecuado en /etc/lpdfilter/ cola_impresin /pre. Tambin es posible cargar los PostScript-Preloads propios con un script adecuado. Este script obtiene datos PostScript de stdin y tiene que producir PostScript a travs de stdout. El paquete psutils contiene programas para reformatear datos PostScript. Sobre todo el programa pstops ofrece amplias posibilidades para reformatear; ver tambin la pgina del manual man pstops. 3. Parmetros especiales de Ghostscript: Al congurar con YaST los parmetros para la activacin de Ghostscript se guardan en el archivo /etc/lpdfilter/ cola_impresin /upp (aqu debe sustituirse cola_impresin por el verdadero nombre de la cola). Este archivo se puede editar manualmente y aadir en l parmetros especiales. Para ms informacin sobre los parmetros Ghostscript consulte el apartado 6.6 en la pgina 175. 4. Existe la posibilidad de formatear otra vez la salida de Ghostscript, siempre que exista un script adecuado en /etc/lpdfilter/ cola_impresin /post (aqu debe sustituir cola_impresin por el verdadero nombre de la cola). Este script obtiene la salida de Ghostscript a travs de stdin y debe producir datos especcos para la impresora a travs de stdout.

SUSE LINUX Manual de Administracin

167

Un ejemplo independiente del hardware Supongamos que existe una cola de impresin test en la que debe imprimirse texto ASCII con los nmeros de lnea antepuestos. Adems siempre han de imprimirse dos pginas reducidas en una hoja. Para conseguirlo se podran crear los scripts /etc/lpdfilter/test/ascii2ps y/etc/lpdfilter/test/pre. Ejemplo 6.3: /etc/lpdlter/test/ascii2ps: conversin de ASCII a PostScript
#!/bin/bash cat -n - | a2ps -1 --stdin= -o -

Ejemplo 6.4: /etc/lpdlter/test/pre: reformatear PostScript


#!/bin/bash pstops -q 2:0L@0.6(20cm,2cm)+1L@0.6(20cm,15cm)

Estos scripts deben ser ejecutables para todos los usuarios, lo cual se puede conseguir utilizando chmod.
chmod -v a+rx /etc/lpdfilter/test/ascii2ps chmod -v a+rx /etc/lpdfilter/test/pre

El comando pstops funciona slo para archivos PostScript creados de tal forma que sea posible reformatearlos (es el caso habitual). Usar PostScript-Preloads propios Los PostScript-Preloads son pequeos archivos PostScript que contienen comandos especiales y que se activan antes de los autnticos datos de impresin para iniciar correctamente impresoras PostScript o Ghostscript conforme a estos comandos especiales. En general, los PostScript-Preloads se usan para activar la impresin dplex o el uso de determinados alimentadores en impresoras PostScrip, o bien congurar la correccin gamma y el ajuste de los mrgenes. Para ello es preciso que GhostScript o bien la impresora PostScript puedan procesar adecuadamente los comandos especiales de PostScript indicados abajo (Ghostscript no reacciona a los comandos para la impresin dplex o para denir la bandeja de alimentacin). En la siguiente conguracin se supone que la cola correspondiente se llama test.

168

6.5. El ltro de impresin del sistema LPRng/lpdlter

Impresin duplex Para habilitar y deshabilitar la impresin dplex puede crear los archivos /etc/lpdfilter/test/duplexon.ps y /etc/lpdfilter/test/duplexoff.ps: Ejemplo 6.5: /etc/lpdlter/test/duplexon.ps: habilitar la impresin dplex
%!PS statusdict /setduplexmode known {statusdict begin true setduplexmode end} if {} pop

6
Informacin adicional sobre el funcionamiento de la impresora

Ejemplo 6.6: etc/lpdlter/test/duplexoff.ps: deshabilitar la impresin dplex


%!PS statusdict /setduplexmode known {statusdict begin false setduplexmode end} if {} pop

Para girar 180 grados el reverso de la hoja en la impresin dplex, puede utilizar el siguiente cdigo PostScript:
%!PS statusdict /setduplexmode known {statusdict begin true setduplexmode end} if {} pop statusdict /settumble known {statusdict begin true settumble end} if {} pop

Seleccin de la bandeja del papel Para activar la bandeja estndar con el nmero 0 por ejemplo la bandeja con el nmero 2, puede crear los archivos /etc/lpdfilter/test/tray0.ps y /etc/lpdfilter/ test/tray2.ps: Ejemplo 6.7: /etc/lpdlter/test/tray0.ps: activar bandeja 0
%!PS statusdict /setpapertray known {statusdict begin 0 setpapertray end} if {} pop

Ejemplo 6.8: /etc/lpdlter/test/tray2.ps: activar bandeja 2

SUSE LINUX Manual de Administracin

169

%!PS statusdict /setpapertray known {statusdict begin 2 setpapertray end} if {} pop

Ajuste de los mrgenes Para modicar la conguracin de los mrgenes puede crear el archivo /etc/lpdfilter/test/margin.ps: Ejemplo 6.9: /etc/lpdlter/test/margin.ps: ajuste de mrgenes
%!PS << /.HWMargins [left bottom right top] /PageSize [width height] /Margins [left-offset top-offset] >> setpagedevice

Los valores de los mrgenes left, bottom, right y topy del tamao de la hoja width y height se indican en puntos, equivaliendo el tamao de un punto a 1/72 de pulgada (unos 0,35 mm). Los desplazamientos left-offset y top-offset se especican en cambio en puntos raster, con lo cual dependen de la resolucin respectiva. Para mover la posicin de la impresin en la hoja se utiliza el archivo /etc/lpdfilter/test/offset.ps Ejemplo 6.10: /etc/lpdlter/test/offset.ps: posicin de la impresin
%!PS << /Margins [left-offset top-offset] >> setpagedevice

Correccin gamma Para ajustar el brillo de los colores puede crear los archivos /etc/lpdfilter/test/cmyk.ps y /etc/lpdfilter/ test/rgb.ps: Ejemplo 6.11: /etc/lpdlter/test/cmyk.ps: correccin gamma CMYK

170

6.5. El ltro de impresin del sistema LPRng/lpdlter

%!PS {cyan exp} {magenta exp} {yellow exp} {black exp} setcolortransfer

6
Informacin adicional sobre el funcionamiento de la impresora

Ejemplo 6.12: /etc/lpdlter/test/rgb.ps: correccin gamma RGB


%!PS {red exp} {green exp} {blue exp} currenttransfer setcolortransfer

El modelo de colores (CMYK o RGB) tiene que ser el adecuado para su impresora. Para averiguar los valores adecuados para cyan, magenta, yellow, black, red, green y blue ha de realizar las pruebas correspondientes. Normalmente, estos valores suelen estar entre 0.001 y 9.999. Suponiendo que trabaja con el sistema X Window, lo puede probar en la pantalla de un terminal introduciendo el siguiente comando: Sin correccin gamma:
gs -r60 \ /usr/share/doc/packages/ghostscript/examples/colorcir.ps

Con correccin gamma uno de los siguientes ejemplos:


gs -r60 /etc/lpdfilter/test/cmyk.ps \ /usr/share/doc/packages/ghostscript/examples/colorcir.ps gs -r60 /etc/lpdfilter/test/rgb.ps \ /usr/share/doc/packages/ghostscript/examples/colorcir.ps

Ctrl + c . Para terminar pulse Reiniciar la impresora Para devolver la impresora a su estado original puede crear el archivo /etc/lpdfilter/test/reset.ps: Ejemplo 6.13: /etc/lpdlter/test/reset.ps: reinicio de la impresora
%!PS serverdict begin 0 exitserver

SUSE LINUX Manual de Administracin

171

Para activar el uso de un archivo PostScript-Preload puede crear el script /etc/lpdfilter/test/pre: Ejemplo 6.14: /etc/lpdlter/test/pre: cargar PostScript-Preload
#!/bin/bash cat /etc/lpdfilter/test/preload.ps -

Aqu debe sustituirse preload.ps por el nombre del archivo Preload correspondiente. Adems el script debe ser ejecutable y el archivo Preload legible para cualquier usuario. Estos permisos se pueden denir con chmod:
chmod -v a+rx /etc/lpdfilter/test/pre chmod -v a+r /etc/lpdfilter/test/preload.ps

El mismo mecanismo se puede utilizar para enviar un archivo PostScript no slo antes, sino tambin despus de enviar los propios datos de impresin PostScript a la impresora. Si desea por ejemplo reiniciar la impresora despus de terminar un trabajo, puede completar el script /etc/lpdfilter/test/pre de esta forma: Ejemplo 6.15: etc/lpdlter/test/pre: PostScript-Preload y PostScript-Reset
#!/bin/bash cat /etc/lpdfilter/test/preload.ps - /etc/lpdfilter/test/reset.ps

Ejemplo de conguracin de una impresora GDI Se debe congurar una cola gdi para una impresora GDI. Tales impresoras normalmente no se pueden usar bajo Linux; vase el apartado 5.2.3 en la pgina 105 ms arriba. Existen controladores especiales para algunas impresoras GDI que sirven de complemento al controlador de Ghostscript. Estos controladores adicionales convierten la salida de Ghostscript al formato especco de la impresora. Hay que mencionar que tales controladores a menudo slo permiten una impresin limitada por ejemplo slo impresin en blanco y negro. Ghostscript y el controlador colaboran entonces de la siguiente manera (vase tambin el apartado 6.6 en la pgina 175 ms abajo).

172

6.5. El ltro de impresin del sistema LPRng/lpdlter

1. Ghostscript convierte los datos PostScript en un raster de pxeles individuales. Un controlador GhostScript adecuado para el controlador "acoplado" da como salida datos raster en el formato y la resolucin adecuados. 2. El controlador convierte los datos raster en el formato especco de la impresora. A continuacin se supone que existe un controlador de la impresora adecuado para la presente versin de SUSE LINUX o bien que lo puede descargar de Internet. Adems, este controlador debe funcionar como se ha expuesto arriba y el lector ha de estar familiarizado con el manejo de fuentes Unix (por ejemplo con archivos .zip o .tar.gz o paquetes .rpm). Despus de descomprimir tales archivos, normalmente encuentra instrucciones para la instalacin en archivos llamados README o INSTALL, o en un subdirectorio doc. Si se trata de un archivo .tar.gz, por regla general hay que compilar e instalar el propio controlador. A continuacin se supone que: El controlador es /usr/local/bin/printerdriver. Se necesita el controlador Ghostscript pbmraw con una resolucin de 600 dpi. La impresora est conectada al primer puerto paralelo /dev/lp0. La documentacin del controlador informa sobre qu controlador Ghostscript y qu resolucin deben emplear realmente. Primero hay que crear la cola gdi con lprsetup (como usuario root):
lprsetup -add gdi -lprng -device /dev/lp0 \ -driver pbmraw -dpi 600 -size a4dj -auto -sf

6
Informacin adicional sobre el funcionamiento de la impresora

A continuacin cree el siguiente script /etc/lpdfilter/gdi/post:


#!/bin/bash /usr/local/bin/printerdriver parmetros_controlador

SUSE LINUX Manual de Administracin

173

En caso necesario hay que indicar los parmetros_controlador adecuados. Consulte la documentacin del controlador para saber qu parmetros debe aplicar realmente. Hay que modicar los permisos del script a n de que cualquier usuario pueda ejecutarlo. A continuacin se reinicia el spooler de impresin:
chmod -v a+rx /etc/lpdfilter/gdi/post rclpd stop rclpd start

Ahora cualquier usuario puede imprimir mediante:


lpr -Pgdi archivo

6.5.3.

Bsqueda de errores en lpdlter

El grado de depuracin adecuado se activa quitando el smbolo de comentario # delante de la lnea correspondiente en el script principal /usr/lib/lpdfilter/bin/if del ltro de impresin. Ejemplo 6.16: /usr/lib/lpdlter/bin/if: grado de depuracin
# # # # DEBUG="off" DEBUG="low" DEBUG="medium" DEBUG="high"

Al indicar DEBUG="low" slo se guarda la salida stderr de /usr/lib/ lpdfilter/bin/if en un archivo llamado /tmp/lpdfilter.if-$$. XXXXXX (aqu debe sustituirse XXXXXX por una combinacin de smbolos aleatoria pero nica). Un valor de DEBUG="medium" signica que adems se guarda la salida stderr de los scripts en /usr/lib/lpdfilter/filter/ ejecutados por /usr/lib/lpdfilter/bin/if. La salida se guarda en archivos con la forma/tmp/lpdfilter.name-$$.XXXXXX (aqu deben sustituirse name por el nombre del script ejecutado y $$.XXXXXX como se ha descrito arriba). Con el valor DEBUG="high", adems la salida no se enva a la impresora sino que se guarda en un archivo de la forma /tmp/lpdfilter.out$$.XXXXXX (aqu debe sustituirse $$.XXXXXX como ya se ha descrito). Para no perder la orientacin, es recomendable eliminar estos achivos con rm -v /tmp/lpdfilter* antes de iniciar una prueba nueva.

174

6.5. El ltro de impresin del sistema LPRng/lpdlter

6.6.

Acerca de Ghostscript

6
Informacin adicional sobre el funcionamiento de la impresora

Ghostscript acepta como entrada datos PostScript y PDF y ofrece numerosos controladores Ghostscript para la conversin a otros formatos. En Ghostscript, estos controladores se denominan devices. Ghostscript realiza la conversin en dos pasos: 1. Los datos PostScript son rasterizados, es decir que el grco descrito en PostScript es descompuesto en un raster de pxeles. Este paso se realiza independientemente del controlador Ghostscript empleado. Cuanto ms no es el raster (por tanto cuanto ms alta es la resolucin), ms alta es la calidad de la salida. Hay que tener en cuenta que con una doble resolucin, tanto horizontal como verticalmente, se cuadruplica el nmero de puntos de raster, con lo cual se cuadruplica tambin el gasto de tiempo de CPU y de memoria. 2. El controlador Ghostscript convierte ahora el grco descompuesto en puntos de raster al formato nalmente deseado (por ejemplo al lenguaje de impresin deseado). Ghostscript no se limita a ofrecer controladores de impresoras. Tambin es capaz de procesar archivos PostScript para la salida en pantalla o de convertirlos a PDF. Para visualizar en pantalla archivos PostScript se recomienda utilizar el programa gv (paquete gv) para visualizar en pantalla archivos PostScript, ya que incorpora una interfaz grca para GhostScript. Ghostscript es un programa muy amplio con mltiples opciones para la lnea de comando. La documentacin ms importante, adems de la pgina del manual man gs y la lista de los controladores Ghostscript, se encuentra en: /usr/share/doc/packages/ghostscript/catalog.devices as como en los archivos: /usr/share/doc/packages/ghostscript/doc/index.html /usr/share/doc/packages/ghostscript/doc/Use.html /usr/share/doc/packages/ghostscript/doc/Devices.html /usr/share/doc/packages/ghostscript/doc/hpdj/gs-hpdj. txt /usr/share/doc/packages/ghostscript/doc/hpijs/hpijs_ readme.html /usr/share/doc/packages/ghostscript/doc/stp/README

SUSE LINUX Manual de Administracin

175

Despus de haber procesado en la lnea de comandos la ejecucin directa de Ghostscript, se lanza un dilogo con un prompt propio GS> del cual se puede salir con el comando quit. El comando de ayuda gs -h muestra una lista de las opciones ms importantes y de los dispositivos soportados. Si se trata de un controlador que tiene soporte para varios modelos, slo aparece la denominacin general del controlador como uniprint o stp. Los archivos de parmetros para uniprint y los modelos de stp se incluyen explcitamente en /usr/share/doc/packages/ghostscript/catalog.devices.

6.6.1.

Ejemplos de trabajo con Ghostscript

/usr/share/doc/packages/ghostscript/examples contiene numerosos archivos de muestra en formato PostScript. La elipse de color (/usr/share/doc/packages/ghostscript/examples/colorcir. ps) resulta muy adecuada para realizar pruebas de impresin. Visualizacin en X11 Para visualizar un archivo de PostScript en X Window System se puede usar el comando gs:
gs -r60 \ /usr/share/doc/packages/ghostscript/examples/colorcir.ps

Con la opcin -r se especica la resolucin, la cual tiene que ser adecuada para el dispositivo de salida correspondiente (impresora o pantalla) (prue be por ejemplo -r30). Para terminar hay que pulsar Ctrl + c dentro de la ventana de terminal desde la que ha ejecutado gs. Conversin a PCL5e Para convertir un archivo PostScript al formato especco para una impresora PCL5e o PCL6 se usa por ejemplo el comando:
gs -q -dNOPAUSE -dSAFER -sOutputFile=/tmp/out.prn \ -sDEVICE=ljet4 -r300x300 \ /usr/share/doc/packages/ghostscript/examples/colorcir.ps \ quit.ps

El comando debe introducir en una sola lnea suprimiendo la barra inversa (\), adems se supone que el archivo /tmp/out.prn an no existe.

176

6.6. Acerca de Ghostscript

Conversin a PCL3 Para convertir un archivo PostScript al formato especco para una impresora PCL3 se usa uno de los siguientes comandos:
gs -q -dNOPAUSE -dSAFER -sOutputFile=/tmp/out.prn \ -sDEVICE=deskjet -r300x300 \ /usr/share/doc/packages/ghostscript/examples/colorcir.ps \ quit.ps

6
Informacin adicional sobre el funcionamiento de la impresora

Dependiendo del modelo puede sustituirse el dispositivo deskjet por cdjmomo, cdj500 o cdj550, o bien utilizar el controlador alternativo hpdj:
gs -q -dNOPAUSE -dSAFER -sOutputFile=/tmp/out.prn \ -sDEVICE=hpdj -r300x300 \ -sModel=500 -sColorMode=mono -dCompressionMethod=0 \ /usr/share/doc/packages/ghostscript/examples/colorcir.ps \ quit.ps

Todos los comandos se han de introducir en una sola lnea sin \. Conversin a ESC/P ESC/P2 o ESC/P-Raster , Para convertir un archivo PostScript al formato especco para una impresora ESC/P2, ESC/P o ESC/P Raster, se usa por ejemplo uno de los siguientes comandos:
gs -q -dNOPAUSE -dSAFER -sOutputFile=/tmp/out.prn \ @stcany.upp \ /usr/share/doc/packages/ghostscript/examples/colorcir.ps \ quit.ps

gs -q -dNOPAUSE -dSAFER -sOutputFile=/tmp/out.prn \ -sDEVICE=stcolor -r360x360 \ -dBitsPerPixel=1 -sDithering=gsmono -dnoWeave \ -sOutputCode=plain \ /usr/share/doc/packages/ghostscript/examples/colorcir.ps \ quit.ps

Con estos comandos se ve la diferencia entre el comando de ejecucin de Ghostscript usando un archivo de parmetros stcany.upp para el controlador uniprint y usando otro controlador Ghostscript. Dado que todos los parmetros especcos del controlador se encuentran dentro del archivo de parmetros de uniprint, ya no hace falta indicar parmetros especcos, como es el caso en los demscontroladores de Ghostscript.

SUSE LINUX Manual de Administracin

177

Envo directo a la impresora Despus de ejecutar los comandos arriba indicados, los datos especcos de impresora se encuentran en /tmp/out.prn. Suponiendo que la impresora est conectada al primer puerto paralelo /dev/lp0, root puede enviar estos datos directamente a la impresora (sin ltro o spooler de impresin) mediante cat /tmp/out.prn >/dev/lp0. Procesamiento de PostScript y PDF Ghostscript puede generar archivos PostScript y PDF, convertir de un formato a otro y enlazar archivos PostScript y PDF entre s en orden alternante. Conversin de PostScript a PDF:
gs -q -dNOPAUSE -dSAFER \ -sOutputFile=/tmp/colorcir.pdf -sDEVICE=pdfwrite \ /usr/share/doc/packages/ghostscript/examples/colorcir.ps \ quit.ps

Conversin a PostScript del archivo PDF /tmp/colorcir.pdf recin creado:


gs -q -dNOPAUSE -dSAFER \ -sOutputFile=/tmp/colorcir.ps -sDEVICE=pswrite \ /tmp/colorcir.pdf quit.ps

Despus de reconvertir de PDF a PostScript, el archivo /tmp/colorcir. ps ya no coincide con el /usr/share/doc/packages/ghostscript/ examples/colorcir.ps original. No obstante, en la impresin no debera apreciarse ninguna diferencia. Enlazar archivos PostScript y PDF a un archivo PostScript:
gs -q -dNOPAUSE -dSAFER -sOutputFile=/tmp/out.ps \ -sDEVICE=pswrite \ /usr/share/doc/packages/ghostscript/examples/escher.ps \ /tmp/colorcir.pdf quit.ps

Enlazar archivos PostScript y PDF a un archivo PDF:

178

6.6. Acerca de Ghostscript

gs -q -dNOPAUSE -dSAFER -sOutputFile=/tmp/out.pdf \ -sDEVICE=pdfwrite /tmp/out.ps \ /usr/share/doc/packages/ghostscript/examples/golfer.ps \ /tmp/colorcir.pdf quit.ps

6
Informacin adicional sobre el funcionamiento de la impresora

Desgraciadamente, el enlazar archivos PostScript y PDF entre s no funciona en todos los casos y depende de los archivos utilizados.

6.7.

Acerca de a2ps

Para imprimir un archivo de texto ASCII con Ghostscript hay que convertirlo primero a PostScript con el programa a2ps (paquete a2ps). La conversin es necesaria porque Ghostscript espera PostScript como formato de entrada. Debido a que el paquete a2ps no est incluido en la instalacin estndar, normalmente ha de ser instalado manualmente. a2ps es una herramienta muy potente para convertir texto plano a un formato PostScript de calidad. a2ps es un programa muy completo y dispone de mltiples opciones para la lnea de comandos. La documentacin ms importante se encuentra en la pgina del manual mana2ps. La documentacin completa est disponible en la pgina de informacin de a2ps.

6.7.1.

Impresin directa de un archivo de texto con a2ps

Para convertir un archivo de texto a PostScript con a2ps de tal forma que se impriman 2 pginas de tamao reducido en una sola hoja, se puede usar el siguiente comando:
a2ps -2 --medium=A4dj --output=/tmp/out.ps archivo_texto

Para controlar la salida de a2ps puede ejecutar


gs -r60 /tmp/out.ps

pudiendo as visualizar en la pantalla el archivo PostScript generado. Puede pasar a la pgina siguiente del documento pulsando return en la ven tana de terminal desde la que ha ejecutado el comando gs ( Ctrl + c para terminar).

SUSE LINUX Manual de Administracin

179

La salida de a2ps puede convertirse al formato especco de impresora con


gs -q -dNOPAUSE -dSAFER -sOutputFile=/tmp/out.prn \ driver-parameter /tmp/out.ps quit.ps

Aqu es necesario introducir un parmetro driver-parameter adecuado para la impresora tal y como se ha visto en el apartado anterior. La salida de Ghostscript puede enviarse a la impresora directamente (es decir, sin spooler ni ltro de impresin) como root con
cat /tmp/out.prn >/dev/lp0

siempre y cuando la impresora est conectada al primer puerto paralelo /dev/lp0.

6.8.

Reformatear PostScript con psutils

Para reformatear es necesario en primer lugar imprimir en un archivo /tmp/in.ps desde una aplicacin y comprobar con file /tmp/in.ps que se ha creado realmente un archivo PostScript. El paquete psutils contiene diversos programas para reformatear datos PostScript. En especial el programa pstops permite llevar a cabo cambios de gran alcance. Vase la pgina del manual man pstops. Puesto que el psutils no est instalado de forma estndar, deber instalarse manualmente. Los siguientes comandos slo funcionan para archivos PostScript que han sido tan bien generados que es posible reformatearlos. Aunque ste suele ser el caso normal, dependiendo de la aplicacin que ha generado el archivo PostScript puede resultar imposible.

6.8.1.

psnup

Con psnup -2 /tmp/in.ps /tmp/out.ps se convierte /tmp/in.ps a /tmp/out.ps, con lo que se representarn dos pginas reducidas en una sola hoja. Puesto que la complejidad de la impresin por pgina se incrementa al reducir dos pginas en una hoja, algunas impresoras PostScript que no dispongan de memoria suciente pueden no funcionar correctamente.

180

6.8. Reformatear PostScript con psutils

6.8.2.

pstops

6
Informacin adicional sobre el funcionamiento de la impresora

Se puede jar un tamao y posicin individual con pstops de la forma siguiente:


pstops 1:0@0.8(2cm,3cm) /tmp/in.ps /tmp/out.ps

Aqu se escala con el factor 0.8, con lo que una pgina A4 de aproximadamente 21x30 cm se reduce a aprox. 17x24 cm. Eso provoca que haya un margen adicional a la derecha de unos 4 cm y en la parte superior de 6 cm. Adems todo se desplaza 2 cm a la derecha y 3 cm hacia arriba para que los mrgenes tengan el mismo grosor en toda la pgina. Este comando pstops ofrece un nivel muy alto de reduccin y utiliza mrgenes muy generosos a n de que tambin funcione en aplicaciones que tengan nociones un tanto optimistas de lo que debe caber en una pgina. Con esto nos referimos a aquellas en las que la impresin de la aplicacin en /tmp/in.ps es en realidad demasiado grande. Un ejemplo adicional
pstops 1:0@0.8(2cm,3cm) /tmp/in.ps /tmp/out1.ps psnup -2 /tmp/out1.ps /tmp/out.ps

Con estos comandos se consigue que quepan dos pginas reducidas en una sola hoja, pero con mucho espacio entre ambas pginas reducidas. Es mejor posicionar individualmente cada pgina:
pstops 2:0L@0.6(20cm,2cm)+1L@0.6(20cm,15cm) \ /tmp/in.ps /tmp/out.ps

El comando debe introducirse en una sola lnea sin barra inversa \. Sobre el efecto de pstops 2:0L@0.6(20cm,2cm)+1L@0.6(20cm,15cm): 2:0 ... +1 signica que dos pginas se sitan la una al lado de la otra, donde las pginas mdulo 2 se cuenta de manera alternativa como pgina 0 (mdulo 2) y pgina 1 (mdulo 2). 0L@0.6(20cm,2cm) signica que la pgina 0 (mdulo 2) respectiva se gira 90 grados a la izquierda, se escala con el factor 0.6 y se mueve 20 cm hacia la derecha y 2 cm hacia arriba.

SUSE LINUX Manual de Administracin

181

1L@0.6(20cm,15cm) de forma anloga se gira la pgina 1 (mdulo 2) correspondiente 90 grados, se escala con el factor 0.6 y se mueve 20 cm hacia la derecha y 15 cm hacia arriba. En PostScript el punto cero del sistema de coordenadas es la esquina inferior izquierda de la hoja de papel, aqu indicado con + (ver Fig. 6.1):

Figura 6.1: Ejemplicacin de los pasos con pstops

1. Aqu una pgina 0 (mdulo 2) con tres lneas de texto: 2. Despus de un giro a la izquierda de 90 grados: 3. Despus de escalar con el factor 0.6: 4. Despus de mover 20 cm a la derecha y 2 cm hacia arriba:

182

6.8. Reformatear PostScript con psutils

5. Encima se coloca una pgina 1 (mdulo 2) con dos lneas de texto: 6. Tras girar la pgina 1 (mdulo 2) a la izquierda 90 grados: 7. Despus de escalar la pgina 1 (mdulo 2) con el factor 0.6: 8. Depus de mover la pgina 1 (mdulo 2) 20 cm a la derecha y 15 cm hacia arriba:

6
Informacin adicional sobre el funcionamiento de la impresora

6.8.3.

psselect

Con psselect se pueden seleccionar pginas sueltas. Con el comando psselect -p2-5 /tmp/in.ps /tmp/out.ps se seleccionan las pginas 2, 3, 4 y 5 de /tmp/in.ps y se mandan a /tmp/out.ps. Con psselect -p-3 /tmp/in.ps /tmp/out.ps se seleccionan todas las pginas hasta la pgina 3. El comando psselect -r -p4- /tmp/in.ps /tmp/out.ps selecciona desde la pgina 4 hasta el nal y las imprime en orden inverso.

6.8.4.

Control en la pantalla con Ghostscript

Se puede mostrar el archivo PostScript /tmp/out.ps pgina por pgina en la interfaz grca de Ghostscript con gs -r60 /tmp/out.ps pulsando la tecla Enter en la ventana de terminal en la que se ha ejecutado Ghostscript. Para nalizar pulse las teclas Ctrl + C . El programa gv del paquete gv es un frontal grco para Ghostscript. Se activa desde la interfaz grca con gv /tmp/out.ps y permite la representacin apropiada de formatos apaisados, ampliaciones o reducciones de la representacin (pero no del archivo PostScript en s) y la seleccin de pginas sueltas (por ejemplo para imprimirlas directamente desde gv).

6.9.

Codicacin de texto ASCII

En texto plano cada carcter se guarda codicado como un determinado nmero. El smbolo visual que corresponde al carcter codicado est determinado en tablas de cdigo. Dependiendo de la tabla de cdigo usada por un programa o ltro de impresin, la visualizacin del mismo cdigo en la pantalla y en la impresora puede variar.

SUSE LINUX Manual de Administracin

183

Las combinaciones estndar de caracteres son cdigos numricos de 0 a 255. Los caracteres con los cdigos 0 a 127 son los llamados caracteres ASCII, que incluyen las letras normales, cifras y signos especiales (aunque sin los caracteres especcos de un pas) y siempre se determinan de la misma forma. Los cdigos 128 a 255 se utilizan para los caracteres especcos de un pas (por ejemplo los acentos). Puesto que de hecho hay ms de 128 caracteres especcos de pas, los cdigos 128 a 255 no se ocupan siempre de la misma forma, sino que dependiendo del pas, un mismo cdigo es utilizado para signos distintos. ISO-8859-1 (tambin Latin 1) es la codicacin usada para idiomas de Europa Occidental e ISO-8859-2 (tambin Latin 2) se usa para codicar los idiomas de Europa del Este y Central. As por ejemplo, el cdigo 241 (octal) signica, segn ISO-8859-1, el signo de abrir exclamacin, mientras que en ISO-8859-2 representa una A con Ogonek. ISO-8859-15 equivale en lo esencial a ISO-8859-1, si bien en l cdigo 244 (octal) representa al smbolo del Euro.

6.9.1.

Ilustracin

Todos los comandos deben introducirse en una sola lnea suprimiendo la barra inversa (\) al nal de lnea. Genere un archivo ejemplo de texto ASCII con:
echo -en "\rCode 241(octal): \ \241\r\nCode 244(octal): \244\r\f" >example

Visualizacin en pantalla Abra tres ventanas de terminal en el entorno grco mediante los comandos:
xterm -fn -*-*-*-*-*-*-14-*-*-*-*-*-iso8859-1 -title iso8859-1 & xterm -fn -*-*-*-*-*-*-14-*-*-*-*-*-iso8859-15 -title iso8859-15 & xterm -fn -*-*-*-*-*-*-14-*-*-*-*-*-iso8859-2 -title iso8859-2 &

Puede visualizar el archivo ejemplo en cada una de ellas con el comando cat example.

184

6.9. Codicacin de texto ASCII

En iso8859-1 se ve: cdigo 241 como signo de abrir exclamacin (castellano) cdigo 244 como crculo con ganchillo (signo comn de moneda) En iso8859-15 se ve: cdigo 241 como signo de abrir exclamacin (castellano), cdigo 244 como signo de Euro. En iso8859-2 se ve: cdigo 241 como A mayscula con ganchillo (A con Ogonek), cdigo 244 como crculo con ganchillo (signo comn de moneda). Debido a la codicacin establecida no es posible utilizar simultneamente diversos caracteres especcos de pases. As por ejemplo, el smbolo del Euro no se puede representar en el mismo texto junto con una A con Ogonek. Ms informacin en la visualizacin correcta respectivamente: Sobre iso8859-1: man iso_8859-1. Sobre iso8859-2: man iso_8859-2.Sobre iso8859-15: man iso_8859-15. Salida impresa Dependiendo de la codicacin establecida para la correspondiente cola de impresin, la salida impresa del texto ASCII (por ejemplo el resultado impreso del archivo example) ser anloga a estos casos. La salida impresa de documentos generados con sistemas de tratamiento de textos no suele depender de la codicacin, ya que el formato de salida de impresin de dichos sistemas es PostScript y no texto ASCII. Al imprimir el archivo example, la salida impresa presenta la codicacin utilizada en el sistema de impresin para texto ASCII. a2ps permite convertir el archivo example a PostScript y as establecer la codicacin individualmente:
a2ps -1 -X ISO-8859-1 -o example-ISO-8859-1.ps example a2ps -1 -X ISO-8859-15 -o example-ISO-8859-15.ps example a2ps -1 -X ISO-8859-2 -o example-ISO-8859-2.ps example

6
Informacin adicional sobre el funcionamiento de la impresora

Al imprimir los archivos PostScript example-ISO-8859-1.ps, example-ISO-8859-15.ps y example-ISO-8859-2.ps, la salida impresa presenta la codicacin establecida con a2ps.

SUSE LINUX Manual de Administracin

185

7
El proceso de arranque y el gestor de arranque

El proceso de arranque y el gestor de arranque

En este captulo se presentan diferentes mtodos para arrancar el sistema instalado. Para que se pueda comprender cada uno de ellos, al principio se explican algunos detalles sobre el proceso de arranque. Despus pasa a describirse detalladamente el gestor de arranque actual GRUB.

7.1. 7.2. 7.3. 7.4. 7.5. 7.6.

El proceso de arranque en el PC . . . . . . . . Concepto de arranque . . . . . . . . . . . . . Archivos map, GRUB y LILO . . . . . . . . . El arranque con GRUB . . . . . . . . . . . . . Desinstalar el cargador de arranque de Linux Crear un CD de arranque . . . . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

188 189 190 192 202 204

7.1.

El proceso de arranque en el PC

Despus de encender el ordenador, la BIOS (Basic Input Output System) inicia la pantalla y el teclado y comprueba la memoria RAM. Hasta este momento el ordenador an no utiliza ningn medio de almacenamiento (disquete, disco duro). A continuacin, de los valores que estn en la CMOS (CMOS setup) se lee la informacin sobre los perifricos ms importantes, la hora y la fecha. En este momento se ha de conocer ya el primer disco duro y su geometra, as que la carga del sistema operativo desde este disco puede comenzar. Para ello se lee desde el primer disco duro, el primer sector fsico de datos del tamao de 512 bytes y se carga a la memoria. El control pasa a este pequeo programa y la ejecucin de los comandos en este determina a partir de ahora el proceso de arranque. Estos primeros 512 bytes en el primer disco duro se denominan en ingls Master Boot Record (MBR). Hasta el mismo momento de cargar el MBR, el arranque es exactamente el mismo en cualquier PC y completamente independiente del sistema operativo instalado; el ordenador slo tiene acceso a los dispositivos a travs de las rutinas (drivers) grabadas en la BIOS.

7.1.1.

Master Boot Record

La estructura del MBR est denida por una convencin independiente de los sistemas operativos. Los primeros 446 bytes estn reservados para cdigo de programas. Los prximos 64 bytes ofrecen espacio para una tabla de particiones con hasta 4 entradas; y apartado 1.7 en la pgina 25 . Sin la tabla de particiones no puede existir ningn sistema de archivos, es decir, es prcticamente imposible usar el disco duro. Los ltimos 2 bytes deben contener una cifra mgica (AA55): un MBR que tenga otra cifra ser tratado como no vlido por parte de la BIOS y de todos los sistemas operativos de PC.

7.1.2.

Sectores de arranque

Los sectores de arranque son los primeros de cada particin, a excepcin de la particin extendida que es un contenedor para otras particiones. Los sectores de arranque ofrecen 512 bytes de espacio y sirven para albergar cdigo, que puede ser ejecutado por el sistema operativo que resida en esta particin.

188

7.1. El proceso de arranque en el PC

En el caso de los sectores de arranque de DOS, Windows u OS/2, esto es realmente as y aparte del cdigo ejecutable tambin contienen informacin importante del sistema de archivos. Por el contrario, los sectores de arranque de una particin Linux estn en principio vacos (!), incluso despus de haber generado el sistema de archivos. Por lo tanto, una particin Linux no es autoarrancable aunque tenga un kernel y un sistema de archivos raz vlidos. Un sector de arranque con cdigo de arranque vlido lleva en los ltimos 2 bytes la misma cifra mgica que el MBR (AA55).

7
El proceso de arranque y el gestor de arranque

7.1.3.

Arranque de DOS o Windows

En el MBR de DOS del primer disco duro hay una entrada de particin marcada como activa (bootable), es decir, que se busca all el sistema a cargar por lo que DOS debe estar instalado, en todo caso, en el primer disco duro. El cdigo de programa de DOS en el MBR representa el primer paso del Bootloader (rst stage bootloader) y comprueba si se encuentra un sector de arranque vlido en la particin indicada. Si fuera el caso, el cdigo en este sector de arranque se ejecuta como segundo paso del bootloader (secondary stage loader). Este cdigo carga los programas de sistema y nalmente aparece el conocido prompt del DOS o la interfaz grca de Windows. En DOS una sola particin primaria puede ser marcada como activa, lo cual signica que el sistema DOS no puede residir en una unidad lgica dentro de una particin extendida.

7.2.

Concepto de arranque

El concepto de arranque ms simple que uno se puede imaginar es el de un ordenador con un solo sistema operativo. Para este caso, acabamos de comentar los procesos que transcurren durante el inicio. Un proceso de arranque semejante tambin sera imaginable para un ordenador de slo Linux y en este caso no sera necesaria la instalacin de un cargador de arranque. Pero no se podra indicar al kernel una lnea de comandos para el inicio (con informacin adicional sobre el hardware o con indicaciones especiales respecto al arranque, etc.). En cuanto existen varios sistemas operativos instalados en un ordenador, existen tambin diferentes conceptos de arranque:

SUSE LINUX Manual de Administracin

189

Arrancar sistemas operativos adicionales de disquete El primer sistema operativo se carga desde el disco duro y los dems desde la disquetera usando un disquete de arranque. Condicin: Existe una disquetera desde la cual se puede arrancar. Ejemplo: Linux se instala como sistema adicional a Windows y se arranca siempre desde un disquete de arranque. Ventajas: Se ahorra la instalacin del gestor de arranque. Desventajas: Se debe mantener siempre un buen stock de disquetes de arranque que funcionen y el arranque tarda ms. El hecho de que Linux no pueda arrancar sin el disquete de arranque puede ser una ventaja tanto como una desventaja segn las condiciones de uso. Arrancar sistemas adicionales de un medio de almacenamiento USB La informacin necesaria para arrancar puede leerse de un medio de almacenamiento USB de la misma forma que desde un disquete. Instalacin de un gestor de arranque Un gestor de arranque (bootmanager), permite mantener varios sistemas operativos en un ordenador y alternar entre ellos. El usuario selecciona el sistema operativo durante el arranque; para cambiar de sistema operativo se debe reiniciar el ordenador. La condicin previa es que el gestor de arranque que se elija resulte adecuado para todos los sistemas operativos instalados. Los gestores de arranque de SUSE LINUX (GRUB y su predecesor LILO) permiten arrancar todos los sistemas operativos de uso extendido. Por defecto, SUSE LINUX instala el gestor de arranque deseado en el MBR para que esta opcin de conguracin no se modique durante la instalacin.

7.3.

Archivos map, GRUB y LILO

El mayor problema al arrancar el sistema operativo consiste en que el kernel se encuentra en un archivo dentro de un sistema de archivos dentro de una particin dentro de un disco duro. Sin embargo, para la BIOS los conceptos de sistema de archivos y particiones son totalmente desconocidos. Para solucionar este problema, se crearon los denominados maps y archivos map. En los mapas se anotan los bloques fsicos del disco duro que contienen los archivos lgicos.

190

7.3. Archivos map, GRUB y LILO

Cuando se trabaja con uno de estos mapas, la BIOS carga los bloques fsicos en el mismo orden en que se encuentran en el archivo de mapas, y de este modo produce los archivos lgicos en la memoria. Al contrario que LILO, que confa casi por completo en los maps, GRUB intenta liberarse de los maps jos durante el arranque lo ms rpidamente posible y lo consigue mediante el cdigo del sistema de archivos (le system code), que le posibilita acceder a los archivos a travs de la ruta y no mediante los nmeros de bloque. Esta diferencia tiene un fundamento histrico. En los primeros das de Linux existan muchos sistemas de archivos distintos que se peleaban por la supremaca. Werner Almesberger desarroll un gestor de arranque (LILO) que no necesitaba saber el tipo de archivos en que se encontraba el kernel que se quera arrancar. La idea que se esconde detrs de GRUB se remonta ms atrs, a los das del Unix y BSD tradicionales. Estos sistemas se haban acostumbrado a un determinado tipo de sistema de archivos y, desde el principio, haban reservado un espacio para el gestor de arranque. Este gestor conoca la estructura del sistema de archivos al que estaba ligado, por lo que era capaz de encontrar el kernel con su nombre en el directorio root.

7
El proceso de arranque y el gestor de arranque

Atencin
Cundo hay que instalar qu cargador de arranque? En caso de que actualice desde una versin anterior de SUSE LINUX en la que se utilizaba LILO, se recomienda volver a instalar LILO. En el caso de una nueva instalacin se emplea GRUB, a no ser que la particin raz se instale en los siguientes sistemas Raid: Controladora Raid dependiente del CPU (como por ejemplo numerosas controladoras Promise o Highpoint) Software RAID LVM Para obtener informacin sobre la instalacin y conguracin de LILO, utilice el trmino de bsqueda LILO en la base de datos de soporte (http://portal.suse.de/sdb/de/index.html).

Atencin

SUSE LINUX Manual de Administracin

191

7.4.

El arranque con GRUB

Al igual que LILO, GRUB (Grand Unied Bootloader) est compuesto por dos etapas: la primera (stage1) es de 512 bytes y est guardada en el MBR o en el bloque de arranque de una particin de disco o disquete; la segunda etapa (stage2), ms grande, se carga a continuacin y contiene el el cdigo del programa. En GRUB, la nica funcin de la primera etapa es cargar la segunda etapa del cargador de arranque. Pero a partir de este punto, GRUB se diferencia de LILO, ya que stage2 puede acceder directamente al sistema de archivos. Actualmente, se soportan ext2, ext3, reiser FS, jfs, xfs, minix y el sistema DOS FAT FS utilizado por Windows. GRUB puede acceder a los sistemas de archivos en los dispositivos de disco BIOS soportados (disquetes o discos duros detectados por la BIOS) antes de arrancar, por lo que los cambios en el archivo de conguracin de GRUB no obligan a reinstalar el gestor de arranque. Al arrancar, GRUB vuelve a cargar los archivos de men incluyendo las rutas y particiones actuales hacia el kernel o el ramdisk de inicio (initrd) y encuentra estos archivos automticamente. GRUB presenta la enorme ventaja de que es posible cambiar todos los parmetros de arranque antes de arrancar. Por ejemplo, si se ha cometido un error al editar el archivo de mens, puede resolverse fcilmente de este modo. Adems se permite introducir los comandos de arranque de forma interactiva mediante una especie de cursor. GRUB le ofrece la posibilidad de comprobar el estado del kernel e initrd antes de arrancar. De esta forma puede arrancar sistemas operativos que todava no dispongan de una entrada propia en el men de arranque.

7.4.1.

El men de arranque de GRUB

Tras la pantalla de bienvenida con el men de arranque se encuentra el archivo de conguracin de GRUB, /boot/grub/menu.lst. Este archivo contiene toda la informacin sobre todas las particiones o sistemas operativos que pueden ser arrancados con ayuda del men. En cada arranque del sistema, GRUB vuelve a leer el archivo de men del sistema de archivos. Por lo tanto, no hay ninguna necesidad de actualizar GRUB despus de modicar el archivo; sencillamente utilice YaST2 o su editor favorito para realizar los cambios.

192

7.4. El arranque con GRUB

Este archivo de men contiene comandos de sintaxis es muy sencilla. Cada lnea incluye un comando seguido de los parmetros opcionales separados por espacios en blanco, al igual que en la shell. Por razones histricas, algunos comandos tienen un signo de igualdad como primer parmetro. Las lneas de comentarios comienzan con #. Para reconocer las entradas de men en la vista del men, debe dar un nombre o title a cada entrada. El texto que aparece tras la palabra clave title ser mostrado (incluyendo espacios en blanco) en el men como opcin para seleccionar. Despus de seleccionar una entrada determinada del men, se ejecutarn todos los comandos que se encuentren antes del siguiente title. El caso ms sencillo es la ramicacin al cargador de arranque de otro sistema operativo. El comando es chainloader y el argumento suele ser el bloque de arranque de otra particin en GRUB anotacin por bloque (blocknotation), por ejemplo:
chainloader (hd0,3)+1

7
El proceso de arranque y el gestor de arranque
193

Los nombre de dispositivo que se encuentran en GRUB se explican en el apartado 7.4.1 en la pgina siguiente. El ejemplo anterior determina el primer bloque de la cuarta particin del primer disco duro. Con el comando kernel se puede especicar una copia o imagen del kernel (kernel image). El primer argumento es la ruta a la copia del kernel de una particin. El resto de los argumentos mostrarn el kernel en la lnea de comandos. Si en el kernel no est compilado el controlador adecuado para el acceso a la particin root, se debe introducir initrd. Aqu se trata de un comando GRUB que tiene la ruta al archivo initrd como nico argumento. Puesto que la direccin de carga del initrd se encuentra en la copia del kernel cargada, el comando initrd debe seguir a kernel. El comando root facilita la especicacin de los archivos del kernel y de initrd. root tiene como nico argumento un dispositivo GRUB o una particin de este. Todas las rutas del kernel, de initrd o de otros archivos en las que no se ha introducido explcitamente un dispositivo, anticiparn el dispositivo hasta el siguiente comando root. Este comando no aparece en un menu.lst generado durante la instalacin. Al nal de cada entrada de men se encuentra implcito el comando boot, por lo que no es necesario escribirlo en el archivo de men. Si tiene ocasin de utilizar GRUB de forma interactiva en el arranque, debe introducir el comando boot al nal. boot no tiene argumentos, simplemente controla la copia cargada del kernel o el chain loader indicado.

SUSE LINUX Manual de Administracin

Si ha introducido todas las entradas de men, debe jar una entrada como default o predeterminada. De no ser as, se utilizar la primera (entrada 0) como valor predeterminado. Tambin tiene la posibilidad de asignar un tiempo de espera en segundos (timeout) antes de que se inicie el arranque de la opcin predeterminada. timeout y default se escriben normalmente antes de las entradas de men. Puede encontrar un ejemplo explicado de un archivo en la seccin 7.4.1 en la pgina siguiente. Convencin de nombres para discos duros y particiones Para denominar a los discos duros y particiones, GRUB utiliza convenciones distintas a las ya habituales de los dispositivos Linux normales (por ejemplo /dev/hda1). El primer disco duro se denomina siempre hd0, la unidad de disquetes fd0.

Atencin
Numeracin de las particiones en GRUB La numeracin de las particiones en GRUB empieza por cero. (hd0,0) corresponde a la primera particin en el primer disco duro. En una estacin de trabajo ordinaria a la que est conectado un disco como Primary Master, el nombre de dispositivo es /dev/hda1.

Atencin
Las cuatro particiones primarias posibles ocupan los nmeros de particiones 0 a 3. Las particiones lgicas se designan con los nmeros a partir de 4:
(hd0,0) (hd0,1) (hd0,2) (hd0,3) (hd0,4) (hd0,5) ... primera particin primaria en el primer disco duro segunda particin primaria tercera particin primaria cuarta particin primaria (y normalmente particin extendida) primera particin lgica segunda particin lgica

Atencin
IDE, SCSI o RAID GRUB no distingue entre dispositivos IDE, SCSI o RAID. Todos los discos duros detectados por la BIOS u otras controladoras se numeran segn el orden de arranque denido en la BIOS.

Atencin

194

7.4. El arranque con GRUB

El problema, tanto en LILO como en GRUB, es que no resulta fcil realizar la correspondencia entre los nombres de dispositivos Linux y los nombres de dispositivo de la BIOS. Ambos utilizan algoritmos parecidos para generar esta asignacin. No obstante, GRUB guarda esta correspondencia en un archivo (device.map) que puede ser editado. Para encontrar ms informacin sobre el archivo device.map, consulte la seccin 7.4.2 en la pgina 198. Una ruta completa de GRUB consta de un nombre de dispositivo que se escribe entre parntesis as como de la ruta del archivo del sistema de archivos a la particin indicada. Al principio de la ruta se coloca una barra. Por ejemplo, en un sistema con un solo disco duro IDE y Linux en la primera particin, el kernel arrancable ser:
(hd0,0)/boot/vmlinuz

7
El proceso de arranque y el gestor de arranque

Ejemplo de un archivo de men Para comprender mejor la estructura de un archivo de men GRUB, presentamos a continuacin un breve ejemplo. El sistema de nuestro ejemplo contiene una particin de arranque de Linux en /dev/hda5, una particin root en /dev/hda7 y un sistema Windows en /dev/hda1.
gfxmenu (hd0,4)/message color white/blue black/light-gray default 0 timeout 8 title linux kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791 initrd (hd0,4)/initrd title windows chainloader(hd0,0)+1 title floppy chainloader(fd0)+1 title failsafe kernel (hd0,4)/vmlinuz.shipped root=/dev/hda7 ide=nodma \ apm=off acpi=off vga=normal nosmp maxcpus=0 3 initrd (hd0,4)/initrd.shipped

El primer bloque se ocupa de la conguracin de la pantalla de bienvenida: gfxmenu (hd0,4)/message La imagen de fondo se encuentra en /dev/ hda5 y se llama message

SUSE LINUX Manual de Administracin

195

color white/green black/light-gray El esquema de colores: blanco (primer plano), azul (fondo), negro (seleccin) y gris claro (fondo de la seleccin). El esquema de colores no se ve reejado en la pantalla de bienvenida sino al salir de ella con Esc . default 0 Por defecto se arranca la primera entrada del men con title linux. timeout 8 Si transcurren 8 segundos sin que el usuario realice ninguna accin, GRUB arrancar automticamente. El segundo bloque (y tambin el ms grande) contiene una lista con los diversos sistemas operativos arrancables. La primera entrada (title linux) se encarga del arranque de SUSE LINUX. El kernel (vmlinuz) se encuentra en la primera particin lgica (aqu la particin de arranque) del primer disco duro. Aqu se aaden los parmetros del kernel como la especicacin de la particin raz, el modo VGA, etc. La denicin de la particin raz se realiza de acuerdo con el esquema Linux (/dev/hda7/), ya que esta informacin va dirigida al kernel y no tiene mucha relacin con GRUB. initrd se encuentra tambin en la primera particin lgica del primer disco duro. La segunda entrada se ocupa de cargar Windows. Este sistema operativo se inicia desde la primera particin del primer disco duro (hd0,0). La carga y ejecucin del primer sector de la particin especicada se controla por medio de chainloader +1. La siguiente seccin permite el arranque desde un disquete sin tener que cambiar la conguracin de la BIOS. La opcin de arranque failsafe sirve para iniciar Linux con una seleccin determinada de parmetros del kernel que permiten el arrancar Linux incluso en sistemas problemticos. El archivo de men puede modicarse en cualquier momento; GRUB lo aplicar automticamente la prxima vez que arranque el sistema. Si desea editar este archivo con carcter permanente, puede utilizar cualquier editor o bien YaST. Si slo desea efectuar cambios temporales, puede hacerlo de forma interactiva con la funcin edit de GRUB.

196

7.4. El arranque con GRUB

Atencin
Modicar el orden de los discos duros Algunos sistemas operativos (como por ejemplo Windows) slo pueden arrancar desde el primer disco duro. Si ha instalado un sistema operativo de este tipo en otro disco duro, puede hacer que se produzca un cambio lgico entre las entradas de men correspondientes. No obstante, para ello es necesario que el sistema operativo acceda a los discos duros a travs de la BIOS durante el arranque.
... title windows map (hd0) (hd1) map (hd1) (hd0) chainloader(hd1,0)+1 ...

7
El proceso de arranque y el gestor de arranque

En el ejemplo, Windows debe arrancar desde el segundo disco duro. Para ello se cambia el orden lgico de los discos duros por medio de map. No obstante, hay que tener presente que este cambio no modica la lgica dentro del archivo de men de GRUB. Es decir, como chainloader se seguir introduciendo el segundo disco duro.

Atencin
Modicar las entradas de men durante el proceso de arranque Por medio de las teclas de cursor puede seleccionar en el men grco de GRUB el sistema operativo que debe ser arrancado. Si selecciona un sistema Linux, puede aadir sus propios parmetros en el cursor de arranque como en LILO. No obstante, GRUB va incluso ms all de este concepto: pulse Esc para salir de la pantalla de bienvenida e introduzca a continua cin e (edit). Una vez hecho esto podr editar directamente cada una de las entradas del men. Ahora bien, los cambios realizados slo tienen validez para ese proceso de arranque y no se adoptarn de forma permanente.

Atencin
Disposicin del teclado durante el proceso de arranque Tenga presente que al arrancar estar trabajando con un teclado norteamericano. Preste atencin a los caracteres especiales intercambiados.

Atencin

SUSE LINUX Manual de Administracin

197

Despus de activar el modo de edicin, seleccione por medio de las teclas de cursor la entrada del men cuya conguracin desea modicar. Para acceder a la conguracin en modo de edicin ha de volver a pulsar e. De este modo, puede corregir datos incorrectos de las particiones o rutas antes de que los fallos repercutan negativamente en el proceso de arranque. Para salir del modo de edicin y volver al men de arranque pulse Intro . A b . Un continuacin arranque esa entrada por medio texto de ayuda en la parte inferior de la pantalla le informa sobre el resto de opciones de las que dispone. Si desea guardar de forma permanente las opciones de arranque modicadas, abra el archivo menu.lst como usuario root y aada los parmetros del kernel adicionales a la lnea existente separndolos entre s con espacios:
title linux kernel (hd0,0)/vmlinuz root=/dev/hda3 <prametros adicionales> initrd (hd0,0)/initrd

La prxima vez que el sistema arranque, GRUB cargar automticamente los nuevos parmetros. Otra posibilidad para los cambios consiste en activar el mdulo del cargador de arranque de YaST. En este procedimiento, el parmetro tambin es aadido a una lnea ya existente separndolo mediante un espacio.

7.4.2.

El archivo device.map

El ya mencionado archivo device.map contiene la correspondencia entre los nombres de dispositivo GRUB y los nombres de dispositivo Linux. Si dispone de un sistema mixto con discos duros IDE y SCSI, GRUB debe intentar averiguar el orden de arranque a partir de un procedimiento concreto. En este caso, GRUB no tiene acceso a la informacin de la BIOS sobre el orden de arranque. GRUB guarda el resultado de esta comprobacin en /boot/grub/device.map. A continuacin vemos un ejemplo para el que asumimos que el orden de arranque denido en la BIOS es de IDE antes que SCSI:
(fd0) (hd0) (hd1) (hd2) (hd3) /dev/fd0 /dev/hda /dev/hdb /dev/sda /dev/sdb

198

7.4. El arranque con GRUB

Debido a que el orden de IDE, SCSI y otros discos duros depende de diversos factores y a que Linux no es capaz de detectar dicha correspondencia, existe la posibilidad de determinar el orden manualmente en el archivo device.map. Si al arrancar el sistema se producen problemas, compruebe si el orden de arranque en el archivo coincide con el orden especicado en la BIOS y modifquelo si es necesario con ayuda de la shell GRUB (vase la seccin 7.4.3 en la pgina siguiente). Una vez que el sistema Linux ha arrancado, puede modicar el archivo device.map de forma permanente mediante el mdulo del cargador de arranque de YaST o cualquier otro editor. Tras modicar el archivo device.map manualmente, ejecute el siguiente comando para reinstalar GRUB:
grub --batch --device-map=/boot/grub/device.map < /etc/grub.conf

7
El proceso de arranque y el gestor de arranque

7.4.3.

El archivo /etc/grub.conf

/etc/grub.conf es el tercer archivo de conguracin ms importante de GRUB por detrs de menu.lst y device.map. Este archivo contiene las opciones y los parmetros que grub necesita para instalar correctamente el cargador de arranque:
root (hd0,4) install /grub/stage1 d (hd0) /grub/stage2 0x8000 (hd0,4)/grub/menu.lst quit

A continuacin se explica el signicado de cada una de las entradas: root (hd0,4) Con este comando se le indica a GRUB que los comandos que vienen a continuacin se reeren slo a la primera particin lgica del primer disco duro donde GRUB encontrar sus archivos de arranque. install parameter El comando grub ha de iniciarse con el parmetro install. stage1 ha de ser instalado en el MBR del primer disco duro como primera etapa del cargador de arranque (/grub/stage1 d (hd0)). stage2 ha de cargarse en la direccin de memoria 0x8000 (/grub/stage2 0x8000). La ltima entrada (hd0,4)/grub/menu.lst informa a grub de la ubicacin del archivo de men.

SUSE LINUX Manual de Administracin

199

La shell GRUB Existen dos variantes de GRUB: una como cargador de arranque y otra como un programa normal Linux en /usr/sbin/grub. Este programa se denomina shell GRUB. La funcionalidad de instalar GRUB como cargador de arranque en un disco duro o disquete est directamente integrada en GRUB en forma del comando install o setup. De este modo, esta funcin est disponible en la shell GRUB cuando Linux se est ejecutando. No obstante, estos comandos tambin estn disponibles durante el proceso de arranque sin necesidad de que Linux se est ejecutando, lo que simplica en gran medida la recuperacin de un sistema defectuoso. El algoritmo de correspondencia de los nombres de dispositivo GRUB y Linux se activa slo cuando la shell GRUB se ejecuta como programa Linux (para lo que se emplea el comando grub como se describe en la seccin 7.4.2 en la pgina 198). El programa lee a tal efecto el archivo device.map. Puede obtener informacin adicional en la seccin 7.4.2 en la pgina 198.

7.4.4.

Denir la contrasea de arranque

GRUB soporta el acceso a sistemas de archivos ya desde el mismo momento del arranque. Esto tambin signica que es posible ver algunos archivos del sistema Linux a los que los usuarios sin privilegios root no tendran acceso normalmente en un sistema iniciado. Mediante la denicin de una contrasea, no slo puede evitar este tipo de accesos no autorizados durante el proceso de arranque, sino tambin bloquear la ejecucin de determinados sistemas operativos por parte de los usuarios. Para denir una contrasea de arranque, realice los siguientes pasos como usuario root: Introduzca el comando grub en el smbolo de espera de rdenes de root. Codique la contrasea en la shell GRUB:
grub> md5crypt Password: **** Encrypted: $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/

200

7.4. El arranque con GRUB

Introduzca el valor codicado en la seccin global del archivo menu. lst:


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

7
El proceso de arranque y el gestor de arranque

De esta forma se impide la ejecucin de comandos GRUB en el cursor de arranque. Para poder volver a ejecutar comandos es necesario introducir la contrasea. No obstante, aqu sigue siendo posible p y para todos los usuarios el arrancar un sistema operativo del men de arranque. Si desea impedir adems el arranque de uno o varios sistemas operativos del men de arranque, aada la entrada lock a cada una de las secciones que no deba iniciarse sin introducir previamente la contrasea. Por ejemplo:
title linux kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791 initrd (hd0,4)/initrd lock

As, despus de reiniciar el sistema y seleccionar la entrada Linux en el men de arranque, aparece el siguiente mensaje de error:
Error 32: Must be authenticated

Pulse Intro para acceder al men y a continuacin p para obtener un cursor en el que introducir la contrasea. Despus de escribir la contrasea y pulsar inicia el proceso de arranque del sistema Intro , se operativo seleccionado (en este caso Linux).

Atencin
Contrasea de arranque y pantalla de bienvenida Al utilizar la contrasea de arranque en GRUB, no aparece la habitual pantalla de bienvenida.

Atencin

SUSE LINUX Manual de Administracin

201

7.4.5.

Posibles problemas e informacin adicional

Atencin
Problemas de arranque con GRUB GRUB slo comprueba la geometra de los discos duros conectados durante el arranque. En algunos casos excepcionales, los datos proporcionados por la BIOS pueden ser contradictorios y GRUB emite un GRUB Geom Error (vase a este respecto el artculo de nuestra base de datos de soporte http://portal.suse.com/ sdb/en/2003/03/fhassel_geom-error.html. Si esto sucede, utilice LILO o actualice la BIOS si es necesario. Para obtener informacin detallada sobre la instalacin, conguracin y mantenimiento de LILO, consulte nuestra base de datos de soporte http: //portal.suse.de/sdb/de/2004/01/lilo_overview.html.

Atencin
La pgina web http://www.gnu.org/software/grub/ contiene abundante informacin sobre GRUB en ingls y alemn. el manual online est disponible slo en ingls. En caso de que texinfo est instalado en su sistema, puede utilizar el comando info grub para ver en la shell las pginas de informacin sobre GRUB. Tambin puede consultar nuestra base de datos de soporte http://portal.suse.de/sdb/de/index.html utilizando el trmino de bsqueda GRUB.

7.5.

Desinstalar el cargador de arranque de Linux

Existen dos mtodos para desinstalar el cargador de arranque de Linux: Utilice el mdulo de cargador de arranque de YaST para instalar la copia de seguridad del MBR original. YaST crea dicha copia automticamente. Encontrar una descripcin del mdulo de cargador de arranque de YaST en la seccin del Manual de Usuario dedicada a la instalacin. Instale otro cargador de arranque o restaure el MBR de DOS o Windows.

202

7.5. Desinstalar el cargador de arranque de Linux

Aviso
La copia de seguridad de un sector de arranque deja de ser vlida cuando la particin correspondiente ha recibido un nuevo sistema de archivos. La tabla de particiones en una copia de seguridad de MBR pierde completamente su validez cuando el disco ha sido reparticionado. Una copia de seguridad de este tipo es una bomba de tiempo que puede estallar en cualquier momento, por eso lo mejor es borrar inmediatamente copias de seguridad caducadas de /boot/backup.mbr.

7
El proceso de arranque y el gestor de arranque
Aviso

7.5.1.

Recuperar el MBR (DOS/Win9x/ME)

Para recuperar un MBR de DOS o Windows se utiliza el comando de MSDOS fdisk /MBR(disponible a partir de la versin DOS 5.0 en adelante) o bien el comando de OS/2 fdisk /newmbr. Estos comandos solamente escriben los primeros 446 bytes en el MBR (el cdigo de arranque) y no modican la tabla de particiones, salvo que el MBR (ver 7.1.1 en la pgina 188) tenga el estatus de no vlido por una cifra mgica falsa. En este caso la tabla de particiones ser sobreescrita con ceros. No olvide activar con fdisk la particin de arranque, ya que es necesario para las rutinas del MBR de DOS, Windows y OS/2.

7.5.2.

Recuperar el MBR (Windows XP)

Arranque con el CD de Windows XP y pulse la tecla el Setup para R en iniciar la consola de recuperacin. A continuacin seleccione en la lista su instalacin de Windows XP e introduzca la contrasea del administrador. Introduzca en el prompt el comando FIXMBR y responda con y a la pregunta de conrmacin. Finalmente, reinicie el ordenador con exit.

7.5.3.

Recuperar el MBR (Windows 2000)

Arranque con el CD de Windows 2000 CD y pulse la tecla el Setup y R en K en la tecla el siguiente men para iniciar la consola de recuperacin. A continuacin seleccione en la lista su instalacin de Windows 2000 e introduzca la contrasea del administrador. Introduzca en el prompt el comando FIXMBR y responda con y a la pregunta de conrmacin. Finalmente, reinicie el ordenador con exit.

SUSE LINUX Manual de Administracin

203

7.6.

Crear un CD de arranque

En caso de que tenga problemas para arrancar con un gestor de arranque el sistema instalado o bien no quiera o pueda instalar LILO o Grub en el MBR de su ordenador o en un disquete, puede crear un CD de arranque en el que haya grabado los archivos de inicio de Linux. Para ello es necesario que el ordenador disponga de una grabadora de CDs congurada.

7.6.1.

CD de arranque con ISOLINUX

La forma ms sencilla de crear un CD de arranque es utilizar el gestor de arranque Isolinux. Con Isolinux tambin se puede convertir los CDs de instalacin de SuSE en CDs de arranque. Inicie el sistema instalado de la siguiente forma: arranque con el CD o DVD de instalacin, tal y como lo hizo en la instalacin. Despus escoja la opcin Instalacin en el men de arranque y la opcin Arrancar sistema instalado en el siguiente men. A continuacin se reconocer automticamente la particin root y el sistema arrancar. Instale el paquete syslinux con ayuda de YaST. Abra una shell como root. Con ayuda de los siguientes comandos se crear un directorio temporal para el CD, en el que copiar todos los archivos necesarios para el arranque del sistema Linux (el gestor de arranque Isolinux, as como el kernel y el initrd.
mkdir /tmp/CDroot cp /usr/share/syslinux/isolinux.bin /tmp/CDroot/ cp /boot/vmlinuz /tmp/CDroot/linux cp /boot/initrd /tmp/CDroot

Ahora edite con su editor preferido el archivo de conguracin del gestor de arranque /tmp/CDroot/isolinux.cfg. Introduzca el siguiente contenido:
DEFAULT linux LABEL linux KERNEL linux APPEND initrd=initrd root=/dev/hdXY [parmetros de arranque]

204

7.6. Crear un CD de arranque

Introduzca en el parmetro root=/dev/hdXY su particin de root. Si no est seguro de la descripcin de la particin, la encontrar en el archivo /etc/fstab. Puede utilizar otras opciones para el valor [parmetros de arranque] que se utilizarn al arrancar. El archivo de conguracin podra parecerse al siguiente:
DEFAULT linux LABEL linux KERNEL linux APPEND initrd=initrd root=/dev/hda7 hdd=ide-scsi

7
El proceso de arranque y el gestor de arranque

Finalmente, el siguiente comando crear un sistema de archivos ISO9660 para el CD sacado de los archivos (escriba todo el comando en una sola lnea):
mkisofs -o /tmp/bootcd.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table /tmp/CDroot

Ahora se puede grabar el archivo /tmp/bootcd.iso en el CD, ya sea con un programa grco como K3b o desde la lnea de comandos: cdrecord -v -eject speed=2 dev=0,0,0 /tmp/bootcd.iso. Puede que el parmetro dev=0,0,0 deba modicarse en funcin del ID SCSI de la grabadora (lo que puede comprobar ejecutando el comando cdrecord -scanbus. Vase tambin la pgina del manual man cdrecord. Pruebe el CD de arranque! Para ello reinicie el ordenador y compruebe si su sistema Linux arranca correctamente desde el CD.

SUSE LINUX Manual de Administracin

205

8
Uso de dispositivos porttiles con Linux

Uso de dispositivos porttiles con Linux

Este captulo describe las particularidades del uso de dispositivos porttiles y en particular de los ordenadores porttiles con Linux. Entre los temas tratados se encuentra la conguracin de las tarjetas PC (PCMCIA) as como la administracin de distintos perles del sistema por medio de SCPM y la comunicacin inalmbrica a travs IrDA y Bluetooth.

8.1. 8.2. 8.3. 8.4.

PCMCIA . . . . . . . . . . . . . . . . . . . . . . . . . SCPM System Conguration Prole Management IrDA Infrared Data Association . . . . . . . . . . . Bluetooth: conexin inalmbrica de dispositivos . .

208 219 227 230

8.1.

PCMCIA

PCMCIA es la abreviatura de Personal Computer Memory Card International Association y se usa por extensin para denominar todo el hardware y software relacionado.

8.1.1.

El hardware

El componente clave es la tarjeta PCMCIA, de la que se distinguen dos tipos diferentes: Tarjetas PC Son las tarjetas que se emplean ms a menudo y usan un bus de 16 bits para la transferencia de datos. Estas tarjetas suelen ser econmicas y por lo general son estables y no presentan problemas. Tarjetas CardBus Son tarjetas de un estndar ms nuevo con un bus de 32 bits de anchura, por lo que son ms rpidas pero tambin ms caras. El gasto adicional de estas tarjetas normalmente no est justicado, ya que el cuello de botella de la transferencia de datos suele estar en otra parte, y no en el bus. Ya existen varios drivers para estas tarjetas; aunque algunos de ellos an son inestables (en funcin de la combinacin de la controladora PCMCIA y la tarjeta). Cuando el servicio PCMCIA est activo, el comando cardctl ident indica la tarjeta introducida en la ranura. Una lista de las tarjetas soportadas se encuentra en SUPPORTED.CARDS en el directorio /usr/share/ doc/packages/pcmcia/. All se encuentra tambin la ltima versin del PCMCIA-HOWTO. El segundo componente que se necesita para el soporte PCMCIA es la controladora o bien el PC-Card/CardBus-Bridge. Este puente establece la comunicacin entre la tarjeta y el bus PCI o (en caso de mquinas antiguas) el bus ISA. Casi siempre las controladoras son compatibles con el chip i82365 de Intel por lo que todos los modelos corrientes se soportan. Con el comando pcic_probe se puede averiguar el tipo de controladora. Si la controladora conecta al bus PCI se puede conseguir ms informacin con lspci -vt.

208

8.1. PCMCIA

8.1.2.

El software

8
Uso de dispositivos porttiles con Linux

Diferencias entre los dos sistemas PCMCIA Existen dos sistemas PCMCIA: el externo y el integrado en el kernel. El sistema PCMCIA externo de David Hinds es el ms antiguo, por lo que ha sido probado y mejorado durante ms tiempo. Las fuentes de los mdulos que emplea no estn integrados en las del kernel, y es por esto por lo que se denomina sistema externo. Sin embargo, a partir del kernel 2.4, existe otro mdulo alternativo en las fuentes: las del sistema PCMCIA integrado en el kernel (Kernel-PCMCIA). Los mdulos bsicos fueron escritos por Linus Torvalds y soportan mejor los puentes Cardbus ms actuales. Desgraciadamente, ambos sistemas son incompatibles. Adems, en ambos sistemas se encuentran entradas diferentes para los drivers. Por esta razn, dependiendo del hardware, slo se puede emplear uno de los dos sistemas. La norma en SUSE LINUX es utilizar el PCMCIA integrado en el kernel, aunque tambin se puede cambiar de sistema. Para ello, se debe asignar a la variable PCMCIA_SYSTEM del archivo /etc/sysconfig/pcmcia el valor external o kernel, y despus arrancar de nuevo PCMCIA con rcpcmcia restart. Para un cambio temporal tambin se puede utilizar rcpcmcia [re]start external,kernel. Puede encontrar informacin ms detallada en /usr/share/doc/packages/pcmcia/README. SuSE Los mdulos base Los mdulos del kernel para ambos sistemas se encuentran en los paquetes del kernel. Tambin se necesitan el paquete pcmcia y hotplug. Al arrancar un PCMCIA se cargan los mdulos pcmcia_core, i82365 (PCMCIA externo) o yenta_socket (PCMCIA integrado en el kernel) y ds.En muy raras ocasiones se necesita el mdulo tcic en vez de i82365 o yenta_socket. Estos inician las controladoras PCMCIA que se encuentran disponibles y proporcionan funciones bsicas. El administrador de tarjetas Para que las tarjetas PCMCIA puedan intercambiarse, debe existir un daemon que controle la actividad de las ranuras de conexin. Segn el sistema PCMCIA elegido y el hardware utilizado, esta tarea ser realizada por el administrador de tarjetas (cardmanager) o por el sistema Hotplug del kernel. Para los PCMCIA externos se emplea el administrador de tarjetas.

SUSE LINUX Manual de Administracin

209

En el caso de los PCMCIA integrados en el kernel, el administrador slo manipula la tarjeta PC, mientras que las tarjetas CardBus son controladas por Hotplug. El script de arranque del PCMCIA inicia el administrador de tarjetas despus de que el mdulo bsico se haya cargado. Puesto que el Hotplug tambin soporta otros subsistemas adems del PCMCIA, dispone de un script de arranque propio. Cuando se introduce una tarjeta, el administrador de tarjetas o el Hotplug averigua el tipo y la funcin para cargar los mdulos correspondientes. Una vez que todos los mdulos se hayan cargado correctamente y segn la funcin de la tarjeta, el administrador de tarjetas o el Hotplug inicia determinados scripts de arranque que se encargan de establecer la conexin de red, de montar particiones de discos SCSI externos o llevan a cabo otras acciones especcas del hardware. Los scripts del administrador de tarjetas se encuentran en /etc/pcmcia/ y los del Hotplug en /etc/hotplug/. Al retirar la tarjeta, tanto el administrador de tarjetas como el Hotplug se encarga de desactivar, utilizando los mismos scripts, todas las actividades de la tarjeta. Finalmente, los mdulos que ya no se necesitan se descargan de la memoria. Tanto los protocolos de inicio de los sistemas PCMCIA como todas las acciones de la tarjeta quedan guardados en el archivo log del sistema (/var/log/messages). All se puede comprobar el sistema PCMCIA, el daemon y el script utilizados para la instalacin. En teora una tarjeta PCMCIA puede retirarse fcilmente, especialmente si se trata de una tarjeta RDSI, de mdem o de red, siempre que ya se hayan acabado las conexiones a la red. Sin embargo no funciona en combinacin con particiones de un disco externo o con directorios NFS. En este caso se debe tener un cuidado especial para que las unidades estn sincronizadas y se desmonten correctamente. Por supuesto, esto no es posible cuando la tarjeta ya se ha sacado. En caso de duda, utilice cardctl eject. Este comando desactiva todas las tarjetas que se encuentren en el porttil. Si quiere desactivar solamente una tarjeta, aada el nmero de ranura. por ejemplo cardctl eject 0.

8.1.3.

La conguracin

Para especicar si se debe iniciar el PCMCIA o Hotplug al encender el ordenador, utilice el editor de runlevels de YaST o utilice chkconfig en la lnea de comandos. En el /etc/sysconfig/pcmcia se encuentran cuatro variables: PCMCIA_SYSTEM determina el sistema PCMCIA que se emplear.

210

8.1. PCMCIA

PCMCIA_PCIC incluye el nombre del mdulo hacia el que se dirige la controladora PCMCIA. En casos normales, el script de inicio ya facilita este nombre, y esta variable queda vaca. Introduzca aqu el mdulo slo si se producen errores. PCMCIA_CORE_OPTS est pensada como parmetro para el mdulo pcmcia_core, pero casi nunca es necesario utilizarlo. Estas opciones estn descritas en las pginas del manual de pcmcia_core. PCMCIA_PCIC_OPTS recoge el parmetro para el mdulo i82365. Tambin para este caso se recomienda consultar la pgina del manual de i82365. Si se utiliza yenta_socket, olvdese de estas opciones, puesto que yenta_socket no reconoce ninguna opcin. La disposicin de los controladores de las tarjetas PCMCIA para el administrador de tarjetas se encuentra en los cheros /etc/pcmcia/config y /etc/pcmcia/*.conf. En primer lugar se lee config y despus *.conf siguiendo un orden alfabtico. La ltima entrada para una tarjeta es la decisiva. Los detalles sobre la sintaxis se encuentran en la pgina del manual de pcmcia. Tarjetas de red (Ethernet, Wireless LAN y TokenRing) Estas tarjetas se pueden instalar como tarjetas de red corrientes con YaST, escogiendo la opcin PCMCIA en tipo de tarjeta. Todos los detalles adicionales de la conguracin de red se encuentran en el captulo 14.4 en la pgina 356. Preste atencin a las indicaciones sobre las tarjetas que funcionan con Hotplug. RDSI La conguracin de las tarjetas PC RDSI funciona en gran medida como la del resto de tarjetas RDSI con YaST. No importa cul de las dos tarjetas RDSI PCMCIA se escoja; lo que importa es que sea una tarjeta PCMCIA. Al congurar el hardware y el proveedor, compruebe que el modo de funcionamiento es hotplug y no onboot. Tambin existen modems RDSI para tarjetas PCMCIA. Son tarjetas de mdem o multitarea que incorporan un kit de conexin RDSI y se comportan como un mdem.

8
Uso de dispositivos porttiles con Linux
211

SUSE LINUX Manual de Administracin

Mdem Las tarjetas PC de mdem normalmente no conocen ninguna conguracin especca para PCMCIA. Cuando se inserta un mdem, este est disponible directamente en /dev/modem. Tambin existen los llamados Softmodems para las tarjetas PCMCIA, pero por lo general no estn soportados. En caso de que exista un controlador, debe unirse al sistema de forma individual. SCSI e IDE El administrador de tarjetas o Hotplug carga el mdulo adecuado. Nada ms insertar una tarjeta SCSI o IDE, se encuentran disponibles los dispositivos asociados, cuyos nombres se averiguan dinmicamente. Puede encontrar ms informacin sobre los dispositivos SCSI e IDE disponibles en /proc/scsi/ o /proc/ide/. Los discos duros externos, los lectores CD-ROM y otros dispositivos similares deben estar encendidos antes de introducir la tarjeta PCMCIA. La terminacin de los dispositivos SCSI debe realizarse de forma activa.

Aviso
Hay que desmontar todas las particiones de los dispositivos que estn conectados a una tarjeta SCSI o IDE antes de extraerla. En caso de haberlo olvidado, no se puede acceder a estos dispositivos antes de un reinicio del sistema, aunque el resto del sistema funcione perfectamente.

Aviso
Puede instalar Linux completamente en un disco duro externo, pero el procedimiento de arranque resulta un poco ms complicado. En todo caso se necesita un disquete de arranque que incluya el kernel y un Ramdisk inicial initrd; ms informacin en el apartado 12.3 en la pgina 289. initrd contiene un sistema de archivos virtual con todos los mdulos y programas necesarios para el soporte PCMCIA. El disquete de arranque y las imgenes de este disquete tienen esta misma estructura. Esto le permite arrancar siempre la instalacin externa mediante estos disquetes. La desventaja es que se debe cargar manualmente el soporte PCMCIA en cada inicio. Para los usuarios avanzados existe la posibilidad de generar un disquete de arranque hecho a medida. Puede encontrar ms informacin en ingls en el apartado 5.3 Booting from a PCMCIA device del HOWTO de PCMCIA.

212

8.1. PCMCIA

8.1.4.

Si a pesar de todo no funciona

8
Uso de dispositivos porttiles con Linux

Puede ocurrir que haya problemas con el uso de PCMCIA en algunos ordenadores porttiles o en combinacin con determinadas tarjetas. La mayora de las problemas se pueden solucionar sin demasiado esfuerzo, siempre que se proceda sistemticamente.

Aviso
Puesto que en SUSE LINUX coexisten tanto PCMCIA externos como integrados en el kernel, se debe tener en cuenta una peculiaridad al cargar los mdulos manualmente. Ambos sistemas PCMCIA emplean mdulos que tienen el mismo nombre pero que se encuentran en subdirectorios diferentes en /lib/modules/<versin_kernel>/. Estos subdirectorios se llaman pcmcia/ para el PCMCIA integrado en el kernel y pcmcia-external/ para el PCMCIA externo. Por lo tanto, al cargar estos mdulos manualmente se debe indicar el subdirectorio correspondiente:
modprobe -t <directorio> <nombre_mdulo>

Aviso
Lo primero es averiguar si la causa del problema est relacionada con una tarjeta o con el sistema base PCMCIA. Por eso hay que iniciar el ordenador sin ninguna tarjeta insertada. Todos los mensajes de inters son registrados en /var/log/messages/, por lo que se recomienda observar este archivo mientras se realicen las pruebas con tail -f /var/log/messages. Esto permite determinar uno de los siguientes casos como causa del error. El sistema base PCMCIA no funciona Si el sistema llega a pararse durante el arranque con el mensaje "PCMCIA: Starting services" o si se producen otras incidencias extraas, se puede deshabilitar el servicio PCMCIA para el prximo arranque, indicando NOPCMCIA=yes en la prompt de arranque. Para conocer mejor la causa del error, se deben cargar manual y secuencialmente los tres mdulos bsicos. Pare ello deben ejecutarse los siguientes comandos como usuario root:
modprobe -t <dir> pcmcia_core modprobe -t pcmcia-external i82365

en el caso de PCMCIA externo o bien:

SUSE LINUX Manual de Administracin

213

modprobe -t pcmcia yenta_socket

en el caso de Kernel-PCMCIA o en raras ocasiones , modprobe -t <dir> tcic y


modprobe -t <dir> ds

Los mdulos crticos son los dos primeros. La pgina man de pcmcia_core le ser de ayuda cuando el error aparezca en el momento de cargar pcmcia_core. Las opciones que se mencionan en la pgina del manual se pueden usar en combinacin con el comando modprobe. Como ejemplo, se puede deshabilitar el soporte APM de los mdulos PCMCIA, ya que en pocos casos resulta problemtico. Para realizarlo existe la opcin doapm; con do_apm=0 se desactiva la gestin de energa:
modprobe -t <dir> pcmciacore do_apm=0

Una vez que la opcin probada tenga xito, esta se guarda en el archivo /etc/sysconfig/pcmcia mediante la variable PCMCIA_CORE_OPTS:
PCMCIA_CORE_OPTS="do_apm=0"

En muy pocas ocasiones, la comprobacin de reas de memoria libres es problemtica, debido a interferencias con los componentes del hardware. Para evitar esto, se puede utilizar probe_io=0. Para combinar varias opciones, estas se han de separar con un espacio en blanco:
PCMCIA_CORE_OPTS=do_apm=0 probe_io=0

Para resolver problemas que surjan al cargar los mdulos i82365, se puede recurrir a la pgina del manual de i82365. Un problema tpico a la hora de cargar este mdulo es un conicto de recursos, una interrupcin, un puerto de E/S (I/O-Port) o un rango de memoria que se ocupa dos veces. En realidad el mdulo i82365 comprueba los recursos antes de asignarlos a la tarjeta pero justamente esta comprobacin es la que a veces produce un error. Por ello, hay ordenadores que bloquean el teclado y/o el ratn en el momento de comprobar la interrupcin 12 (dispositivos PS/2). En tal caso sirve como remedio el parmetro irq_list=<lista_IRQs>. La lista debe contener todos los IRQs que se pueden usar, As, modprobe i82365 irq_list=5,7,9,10 o, para jarlo, en /ets/sysconfig/pcmcia:

214

8.1. PCMCIA

PCMCIA_PCIC_OPTS="irq_list=5,7,9,10"

8
Uso de dispositivos porttiles con Linux

Adems el administrador de tareas (cardmanager) evala los archivos /etc/pcmcia/config y /etc/pcmcia/config.opts. Los parmetros denidos en estos archivos no tienen relevancia antes de la carga de los mdulos de controladores para las tarjetas PCMCIA. En /etc/pcmcia/config.opts tambin se puede indicar las IRQs, los puertos E/S y los rangos de memoria a incluir o excluir. A diferencia de la opcin irqlist, los recursos excluidos en config.opts no se usan para una tarjeta PCMCIA pero s que se comprueban mediante el mdulo base i82365i82365. La tarjeta PCMCIA no funciona (bien) Fundamentalmente, hay tres razones por las que una tarjeta PCMCIA no funciona bien: no se reconoce la tarjeta, no se puede cargar el controlador, o la interfaz que el controlador pone a disposicin est mal congurada. Se debe comprobar que la tarjeta es manipulada por el administrador de tarjetas o por el Hotplug. Como recordatorio: el administrador gestiona los PCMCIA externos, el administrador de tarjetas PC-Card maneja los PCMCIA integrados en el kernel y Hotplug se encarga de las tarjetas Cardbus. Aqu slo se trata del administrador de tarjetas. No se reconoce la tarjeta. Si no se reconoce la tarjeta, aparece el mensaje "unsupported Card in Slot x" en /var/log/messages. El mensaje slo indica que el administrador de tarjetas no es capaz de asignar un controlador a la tarjeta, ya que se necesita /etc/pcmcia/config o /etc/pcmcia/*.conf para esta asignacin. Estos archivos son, por as decirlo, una base de datos de controladores, que se puede ampliar fcilmente usando entradas existentes como plantilla para las nuevas. Para identicar la tarjeta, puede emplear el comando cardctl ident. Para ms informacin sobre el tema, consulte el apartado 6 del PCMCIA-HOWTO y la pgina del manual de pcmcia. Despus de modicar /etc/pcmcia/config o /etc/pcmcia/*. conf debe cargar de nuevo la asignacin de controladores mediante rcpcmcia reload. El controlador no se carga Una de las causas es que exista una asignacin incorrecta en la base de datos de controladores. Esto puede ocurrir por ejemplo si el fabricante ha insertado un chip distinto en un modelo de tarjeta que no ha cambiado externamente.

SUSE LINUX Manual de Administracin

215

A veces se dispone de controladores opcionales que funcionan mejor (o slo entonces) con modelos distintos al controlador especicado. En estos casos se necesita informacin exacta sobre la tarjeta. Tambin sirve de ayuda preguntar en listas de correo o en el Servicio de Soporte Avanzado. Otra causa puede ser un conicto de recursos. Con la mayora de las tarjetas PCMCIA no importa qu IRQ, puerto E/S o rango de memoria utilizan, pero hay excepciones. Por eso, se debe siempre probar una tarjeta y, en determinadas ocasiones tambin, desconectar temporalmente otros componentes del sistema por ejemplo tarjetas de sonido, IrDA, modems e impresoras. Se puede ver la distribucin de recursos del sistema con lsdev. (Es normal que varios dispositivos PCI empleen el mismo IRQ). Una posible solucin consiste en emplear la opcin adecuada para el mdulo i82365 (ver arriba PCMCIA_PCIC_OPTS). No obstante, existen opciones para determinados controladores de tarjeta; dichas opciones se pueden averiguar con modinfo /lib/modules/ <directoriocorrectopcmcia>/<controlador>.o (se necesita toda la ruta para dirigirse al sistema PCMCIA correspondiente). Para la mayora de los mdulos existe una pgina man. Consejo: rpm -ql pcmcia | grep man elabora una lista de todas las pginas del manual relacionadas con pcmcia. Para probar las opciones, los controladores de tarjeta se pueden descargar manualmente. Una vez ms, compruebe que el mdulo utiliza el sistema PCMCIA empleado. Lea el aviso en lneas superiores. Cuando encuentre la solucin, se puede permitir o prohibir el empleo de un determinado recurso en /etc/pcmcia/config.opts; tambin se encuentran aqu las opciones para los controladores de tarjeta. Si por ejemplo el mdulo pcnet_cs slo se puede gestionar con el IRQ 5, se deber realizar la siguiente entrada:
module pcnet_cs opts irq_list=5

Un problema especco de las tarjetas de red 10/100 Mbit es una seleccin automtica equivocada del modo de transferencia. El problema se puede remediar con el comando ifport o mii_tool, que permiten averiguar y modicar el modo de transferencia. Para que estos comandos se ejecuten automticamente, es necesario adaptar individualmente el script /etc/pcmcia/network.

216

8.1. PCMCIA

Interfaz mal congurada En este caso, es aconsejable comprobar adecuadamente la conguracin de la interfaz para descartar errores de conguracin. Adems, con tarjetas de red es posible aumentar el rango de dilogo del script de red mediante la asignacin de la variable DEBUG=yes en /etc/sysconfig/network/config. Con otro tipo de tarjetas, o en caso de que eso no sirva, existe la posibilidad de incluir una lnea set -x en el script activado por el administrador de tarjetas (ver /var/log/messages). De esta forma, cada uno de los comandos del script quedarn registrados en el log del sistema. Si encuentra la posicin crucial en un script, puede introducir y probar dichos comandos en una terminal.

8
Uso de dispositivos porttiles con Linux

8.1.5.

Instalacin va PCMCIA

En ciertas ocasiones ya se requiere el soporte PCMCIA en la instalacin, al instalar a travs de la red o al usar el CDROM mediante PCMCIA. Para ello es necesario iniciar el sistema con un disquete de arranque. Tambin se requiere un disquete de mdulos. Despus de arrancar con el disquete (o de haber elegido Instalacin manual al arrancar con CD) se inicia el programa linuxrc. Entonces, en el men Mdulos del kernel (controlador de hardware), se debe elegir la opcin Cargar controlador PCMCIA. En primer lugar, aparecen dos cuadros de dilogo que permiten introducir opciones para los mdulos pcmcia_core y i82365. Normalmente estos campos se quedan vacos. Las pginas man para pcmcia_core y i82365 se encuentran en el primer CD como archivos de texto dentro del directorio docu/. En SUSE LINUX se instala el sistema PCMCIA externo. Durante la instalacin aparecen mensajes del sistema en las distintas consolas virtuales, a las . Alt + teclas de funcin que se puede acceder mediante Ms adelante, cuando una interfaz grca est activa, se debe utilizar Ctrl + Alt + teclas de funcin . Tambin durante la instalacin existen terminales en las que se puede ejecutar comandos. Mientras linuxrc est en funcionamiento, esta terminal se encuentra en la consola 9 (una shell muy rudimentaria); una vez cargado el sistema de instalacin (YaST se ha iniciado), hay una bash y muchas de las herramientas del sistema ms comunes en la consola 2. Si durante la instalacin se ha cargado el controlador equivocado para una tarjeta PCMCIA, se debe ajustar el disquete de arranque manualmente. Para ello, necesita tener conocimientos avanzados de Linux. Despus del primer paso de instalacin, el sistema se reinicia total o parcialmente.

SUSE LINUX Manual de Administracin

217

Raras veces el sistema se para al iniciar PCMCIA, pero en este punto la instalacin ya est tan avanzada que se puede iniciar Linux sin PCMCIA y en modo texto usando la opcin de arranque NOPCMCIA=yes. Para solventar este problema consulte el apartado 8.1.4 en la pgina 213. Ocasionalmente, tambin se pueden realizar diversos ajustes del sistema en la consola 2, antes de que nalice la primera parte de la instalacin, para que no sucedan fallos en el arranque.

8.1.6.

Utilidades adicionales

El programa cardctl ya ha sido mencionado varias veces. Es la herramienta principal para conseguir informacin sobre PCMCIA, as como para ejecutar determinadas acciones. Puede encontrar detalles sobre el programa en el archivo cardctl. Tambin se puede introducir cardctl para que aparezca una lista con los comandos vlidos. Para este programa tambin existe una interfaz grca cardinfo que permite controlar los aspectos ms importantes. Para utilizarla, el paquete pcmcia-cardinfo debe estar instalado. Otras utilidades del paquete pcmcia son ifport, ifuser, probe y rcpcmcia, pero no se usan con frecuencia. Para conocer exactamente el contenido completo del paquete pcmcia, se puede usar el comando rpm -ql pcmcia.

8.1.7.

Actualizar el paquete Kernel o PCMCIA

Si quiere actualizar el kernel, utilice los paquetes del kernel ya preparados por SUSE. Si necesita compilar un kernel propio, tambin debe compilar el mdulo PCMCIA. Es esencial que el kernel nuevo ya se est ejecutando, ya que cierta informacin se extrae de aqu. El paquete pcmcia ya debe estar instalado pero no iniciado; en caso de duda, ejecute un rcpcmcia stop. Despus instale el paquete fuente PCMCIA y a continuacin introduzca:
rpm -ba /usr/src/packages/SPECS/pcmcia.spec

Ya est todo listo. En /usr/src/packages/RPMS/ se encuentra ahora un nuevo paquete. El paquete pcmcia-modules incluye los mdulos PCMCIA para el PCMCIA externo. Este paquete se debe instalar con rpm --force, ya que los archivos del mdulo pertenecen ocialmente al paquete del kernel.

218

8.1. PCMCIA

8.1.8.

Informacin adicional

8
Uso de dispositivos porttiles con Linux

Si est interesado en conocer ms sobre el funcionamiento de determinados ordenadores porttiles, visite el sitio web de Linux Laptop en http: //linux-laptop.net. Otra buena fuente de informacin es el sitio web de TuxMobil http://tuxmobil.org/ (TuxMobil Ordenadores Mviles y Unix). All puede encontrar, adems de informacin muy interesante, un Howto para ordenadores porttiles y otro para IrDA. La base de datos de soporte tambin contiene varios artculos sobre el uso de ordenadores porttiles con SUSE LINUX. Para consultarlos utilice el trmino de bsqueda laptop en http://portal.suse.de/sdb/de/index.html.

8.2.

SCPM System Conguration Prole Management

Hay situaciones en las que es necesario modicar la conguracin del sistema. Esto ocurre a menudo en ordenadores porttiles con los que se trabaja desde lugares distintos. Pero tambin puede ocurrir que un ordenador de sobremesa utilice algunos componentes del hardware de forma temporal. O simplemente se quiere probar algo nuevo. En cualquier caso debera ser fcil volver al sistema de partida. An mejor si fuera posible volver a reproducir fcilmente la conguracin modicada. Hasta ahora esto slo era posible con hardware PCMCIA. All se podan establecer distintas conguraciones en ciertos esquemas. Partiendo de esta base hemos desarrollado SCPM, que constituye una alternativa a PCMCIA. Con System Conguration Prole Management se puede congurar una parte de la conguracin del sistema partiendo de diferentes perles de conguracin. Dicho de otro modo, sera como sacar instantneas de las distintas conguraciones del sistema, para que puedan volver a recrearse en cualquier momento. En los porttiles, las aplicaciones principales dependen de la conguracin de red. Sin embargo, las distintas conguraciones de red inuyen en muchos casos en otros elementos, como por ejemplo la conguracin para correo electrnico o proxies. A esto se le aade la conguracin de distintas impresoras en casa o en el trabajo, la conguracin especial de XFree para realizar presentaciones con un proyector, los distintos modos de ahorro de energa para cuando se trabaja con bateras o una zona horaria distinta para el extranjero.

SUSE LINUX Manual de Administracin

219

Estas herramientas estn cada vez ms extendidas y deben cumplir ms exigencias. Si tiene alguna crtica o sugerencia respecto a SCPM, no dude en ponerse en contacto con nosotros. Estamos muy interesados en su opinin. Hemos procurado jar unos fundamentos exibles para SCPM, para que tambin sea posible por ejemplo el control de distintos perles de servidores. Contacte con nosotros en: http://www.suse.de/feedback

8.2.1.

Fundamentos y conceptos bsicos

A continuacin se exponen unos conceptos bsicos que se utilizarn en el resto de la documentacin sobre SCPM y en el mdulo de YaST. Por conguracin del sistema entendemos toda la conguracin del ordenador; todas las conguraciones bsicas, como por ejemplo el uso de las particiones de los discos duros o conguraciones de red, seleccin de zona horaria o disposicin del teclado. Un perl o perl de conguracin es el estado de la conguracin del sistema que ha quedado jado y puede recrearse si se solicita. Perl activo se reere al ltimo perl activado. Eso no quiere decir que la conguracin actual del sistema se corresponda exactamente con este perl, puesto que la conguracin puede modicarse en cualquier momento. Recursos en relacin a SCPM son todos los elementos que contribuyen a la conguracin del sistema. Puede tratarse de un archivo o de un enlace suave junto con los metadatos correspondientes, tales como usuarios, permisos, o tiempo de acceso. Pero tambin puede ser un servicio del sistema, que se ha ejecutado una vez y ha sido desactivado en otro perl. Los recursos estn organizados en resource groups o grupos de recursos. Estos grupos engloban recursos que concuerdan desde un punto de vista lgico. Esto se traduce para la mayora de los grupos en que contienen un servicio y los archivos de conguracin correspondientes. Este mecanismo permite agrupar los recursos manejados por SCPM sin que sea necesario saber qu archivos de conguracin son requeridos para qu recursos. SCPM incluye ya una preseleccin de grupos de recursos activados que debera bastar para la mayora de usuarios.

220

8.2. SCPM System Conguration Prole Management

8.2.2.

El gestor de perles de YaST y documentacin adicional

8
Uso de dispositivos porttiles con Linux

Existe un frontal grco de YaST para SCPM (paquete scpm) que sirve de alternativa a la lnea de comandos. Se trata del mdulo de YaST yast2-profile-manager. Puesto que la funcionalidad de ambos es esencialmente la misma y es interesante para algunos nes conocer la pantalla de lnea de comandos, aqu slo se describir esta ltima. Gracias al texto de ayuda incluido en el mdulo SCPM de YaST, el manejo de este es muy sencillo. Las pocas particularidades del mdulo YaST se mencionan en el lugar apropiado. La documentacin actual se encuentra en la seccin SCPM de las pginas de informacin. Estas se pueden consultar con herramientas como Konqueror o Emacs (konqueror info:scpm). En la consola se puede usar info o pinfo. La informacin tcnica para aquellos que quieran congurar SCPM est en /usr/share/doc/packages/scpm. Si escribe scpm sin ms argumentos aparecer un resumen del comando.

8.2.3.

Congurar SCPM

Antes de poder trabajar con SCPM, hay que iniciarlo. De manera estndar, SCPM engloba la conguracin de redes e impresoras as como la conguracin de XFree86 y algunos servicios de red. Si adems desea administrar servicios o archivos de conguracin, debe activar tambin los grupos de recursos correspondientes. Puede ver una lista de los grupos de recursos ya denidos con el comando scpm list_groups. Si slo quiere ver los grupos activos, introduzca scpm list_groups -a. Todos los comandos deben ser ejecutados como usuario root. Para activar o desactivar grupos puede utilizar scpm activate_group NAME o bien scpm deactivate_group NAME, debiendo sustituir NAME por el autntico nombre de grupo. Otra posibilidad consiste en congurar cmodamente los grupos de recursos mediante el gestor de perles de YaST. Con scpm enable se arranca SCPM. La primera vez que se inicia tarda unos segundos. Con scpm disable se puede apagar SCPM en cualquier momento, para evitar el cambio no intencionado de perles. SCMP continuar inicindose en los arranques posteriores del sistema.

SUSE LINUX Manual de Administracin

221

8.2.4.

Crear y administrar perles

Al encender SCPM, ya existe un perl denominado default (por defecto). El comando scpm list le ofrece una lista de los perles disponibles. Este nico perl es por fuerza el perl activo, lo que se puede ver con scpm active. El perl default est pensado como conguracin bsica, de la cual se derivarn el resto de los perles. Por ello primero se deben realizar todas las conguraciones que aparezcan en todos los perles. scpm reload guarda las modicaciones en el perl activo. Puede utilizar, renombrar o eliminar el perl default. Hay dos maneras de crear un perl. Si el nuevo perl (aqu con el nombre work) por ejemplo debe partir del perl default, escriba scpm copy default work. A continuacin escriba scpm switch work para cambiar al nuevo perl y congurarlo. Pero a veces ya se ha modicado la conguracin del sistema para unos determinados nes y estas se quieren guardar en un nuevo perl; para esto escriba scpm add work. Ahora la conguracin actual del sistema ha quedado guardada en el perl work, que se marcar como activo; esto es, scpm reload guarda los cambios en el perl work. Por supuesto que se puede renombrar o eliminar perles. Para ello estn los comandos scpm rename x y y scpm delete x. Para renombrar por ejemplo work como trabajo y eliminarlo posteriormente, escriba scpm rename work trabajo y luego scpm delete trabajo. Slo se eliminar el perl activo. De nuevo los comandos por separado: scpm list muestra todos los perles disponibles scpm active muestra el perl activo scpm add <nombre> guarda la conguracin actual del sistema en un perl nuevo y lo vuelve activo scpm copy <nombre_origen> <nombre_destino> copia un perl scpm rename <nombre_origen> <nombre_destino> cambia el nombre de un perl scpm delete <nombre> elimina un perl Indicaciones sobre el mdulo YaST: Aqu slo existe el botn Aadir, lo que puede originar la pregunta de si es posible copiar un perl existente o guardar la conguracin actual. Para renombrar utilice el botn Editar.

222

8.2. SCPM System Conguration Prole Management

8.2.5.

Cambiar de un perl a otro

8
Uso de dispositivos porttiles con Linux

Para cambiar a otro perl (aqu llamado work) escriba el comando scpm switch work. Es lcito cambiar al perl activo para guardar las opciones modicadas de la conguracin del sistema. De forma alternativa, se puede utilizar el comando scpm reload. Para comprender mejor el proceso de cambio entre perles y las preguntas que esto pueda causar, se lo explicaremos con un poco ms de detalle. Primero, SCPM comprueba los recursos del perl activo que fueron modicados desde el ltimo cambio de un perl a otro. La lista de grupos modicados se genera a partir de la lista de recursos cambiados. A continuacin se pregunta para cada uno de estos grupos si los cambios realizados deben guardarse en el perl activo. Si en lugar de los grupos preere ver la lista de recursos individuales como era el caso en las versiones anteriores de SCPM, ejecute el comando switch con el parmetro -r: scpm switch -r work. Despus SCPM compara la conguracin actual del sistema con el perl nuevo al que se quiere cambiar. En este proceso se averiguar qu servicios del sistema se deben conservar o (re)iniciar debido a las modicaciones realizadas en la conguracin o a las dependencias mutuas. Nos podramos imaginar esto como un reinicio parcial del sistema que slo afecta a una pequea parte del sistema mientras que el resto sigue trabajando. A continuacin se llevan a cabo las siguientes acciones: 1. Se detienen los servicios del sistema. 2. Se escriben todos los recursos modicados (por ejemplo los archivos de conguracin). 3. Se (re)inician los servicios del sistema.

8.2.6. Conguracin avanzada del perl


Para cada perl puede dar una descripcin que aparezca con scpm list. Para dar una descripcin para el perl activo utilice el comando scpm set description "texto". Para perles no activos, debe dar adems el nombre del perl: scpm set description set description "texto" work. A veces ocurre que, al cambiar de un perl a otro, se ejecutan acciones que (an) no estn previstas en SCPM. Por eso se puede aadir a cada perl cuatro programas ejecutables o scripts que se ejecuten en distintos momentos del proceso de cambio de un perl a otro. Estos momentos son:

SUSE LINUX Manual de Administracin

223

prestop antes de la parada de los servicios al abandonar un perl poststop despus de la parada de los servicios al abandonar un perl prestart antes del inicio de servicios al activar un perl poststart despus del inicio de servicios al activar un perl El cambio del perl work al perl home transcurre de la siguiente forma: 1. Se ejecuta la accin prestop del perl work. 2. Parada de servicios. 3. Se ejecuta la accin poststop del perl work. 4. Cambio de la conguracin del sistema. 5. Se ejecuta la accin prestart del perl home. 6. Inicio de los servicios. 7. Se ejecuta la accin poststart del perl home. Con el comando set tambin se pueden aadir estas acciones, y ms concretamente, con los comandos scpm set prestop <nombre_archivo>, scpm set poststop <nombre_archivo>, scpm set prestart <nombre_archivo> o scpm set poststart <nombre_archivo>. Se debe tratar de un programa ejecutable, es decir, los scripts deben incluir los intrpretes adecuados y al menos poder ser ejecutados por el superusuario (root).

Aviso
Puesto que se pueden ejecutar estos scripts o programas con permisos de superusuario, no deberan poder ser modicados por cualquier usuario. Puesto que los scripts pueden contener informacin condencial, se recomienda que el superusuario sea el nico que los pueda leer. Lo mejor es que proteja estos programas con los permisos -rwx---root root.

Aviso

224

8.2. SCPM System Conguration Prole Management

Se puede preguntar por las conguraciones aadidas con set mediante el comando get. Por ejemplo scpm get poststart ofrece el nombre del programa poststart o nada si no se ha aadido ningn programa. Se puede eliminar estas conguraciones con "", es decir, el comando scpm set prestop "" retira el programa poststop. Al igual que al incluir la descripcin, se puede utilizar todos los comandos set y get para cualquier perl. Para ello se aadir al nal el nombre del perl. Por ejemplo scpm get prestop <nombre_archivo> work o scpm get prestop work.

8
Uso de dispositivos porttiles con Linux

8.2.7.

Seleccin de perles al arrancar

Se puede escoger un perl nada ms arrancar. Para ello slo se debe introducir el parmetro de arranque PROFILE=<nombre del perfil> en el cursor de arranque. En la conguracin del cargador de arranque (/boot/grub/menu.lst) tambin se utiliza el nombre del perl para la opcin title. GRUB es el cargador de arranque predeterminado. Puede encontrar abundante informacin sobre este cargador de arranque en la seccin 7.4 en la pgina 192 o bien introduciendo el comando info grub. La conguracin de GRUB podra ser por ejemplo la siguiente: Ejemplo 8.1: El archivo /boot/grub/menu.lst
gfxmenu (hd0,5)/boot/message color white/green black/light-gray default 0 timeout 8 title work kernel (hd0,5)/boot/vmlinuz root=/dev/hda6 PROFILE=work initrd (hd0,5)/boot/initrd title home kernel (hd0,5)/boot/vmlinuz root=/dev/hda6 PROFILE=home initrd (hd0,5)/boot/initrd title road kernel (hd0,5)/boot/vmlinuz root=/dev/hda6 PROFILE=road initrd (hd0,5)/boot/initrd

SUSE LINUX Manual de Administracin

225

Para sistemas que todava utilizan el cargador de arranque LILO, puede tomarse como ejemplo el archivo 8.2. Ejemplo 8.2: Archivo /etc/lilo.conf
boot = /dev/hda change-rules reset read-only menu-scheme = Wg:kw:Wg:Wg prompt timeout = 80 message = /boot/message image label root initrd append image label root initrd append image label root initrd append = = = = = = = = = = = = = = = /boot/vmlinuz home /dev/hda6 /boot/initrd "vga=0x317 hde=ide-scsi PROFILE=home" /boot/vmlinuz work /dev/hda6 /boot/initrd "vga=0x317 hde=ide-scsi PROFILE=work" /boot/vmlinuz road /dev/hda6 /boot/initrd "vga=0x317 hde=ide-scsi PROFILE=road"

Ahora al arrancar se puede seleccionar fcilmente el perl deseado.

8.2.8.

Problemas y soluciones

Por regla general, SCPM debera funcionar sin problemas. No obstante, existen algunos casos problemticos que se describen a continuacin. Hasta el momento de escribir estas lneas, SCPM todava no es capaz de administrar una actualizacin del sistema. El principal problema radica en que los datos almacenados en los distintos perles no pueden ser actualizados por los mecanismos de actualizacin.

226

8.2. SCPM System Conguration Prole Management

SCPM detecta que se ha realizado una actualizacin y se niega a prestar sus servicios. El usuario obtiene un mensaje de error de SCPM informando de que la instalacin del sistema se ha modicado o es desconocida. En este caso, la solucin consiste en reiniciar SCPM con scpm -f enbale. Sin embargo, al realizar esta accin los perles se pierden y deben ser congurados de nuevo. En algunos casos, SCPM se interrumpe de forma repentina durante un proceso de switch o cambio de perl. La causa puede provenir del exterior (proceso terminado por el usuario, batera del porttil vaca, etc.) o bien puede tratarse de un fallo interno de SCPM. Al intentar reiniciar SCPM, obtendr un mensaje de error diciendo que SCPM est bloqueado. El objeto de este bloqueo es proteger el sistema, ya que los datos guardados en la base de datos de SCPM pueden no coincidir con el estado actual de su sistema. En este caso, borre simplemente el archivo de bloqueo con el comando rm /var/lib/scpm/#LOCK y recargue SCPM con scpm -s reload para que el sistema vuelva a ser coherente. A continuacin ya puede trabajar como de costumbre. Una ltima indicacin: Normalmente no supone ningn problema el modicar la conguracin de un grupo de recursos una vez que ya se ha iniciado SCPM. Lo nico que debe tener en cuenta es ejecutar scpm rebuild cuando haya terminado de aadir o eliminar grupos. Este comando se encarga de aadir nuevos recursos a todos los perles y eliminar los recursos borrados. No obstante, estos recursos no se eliminan denitivamente hasta que no los congura de forma distinta en los diversos perles, momento en el que pierde estos datos de conguracin (excepto la versin actual de los datos en su sistema, la cual no es modicada por SCPM). Si edita la conguracin con YaST no es necesario que ejecute ningn comando rebuild; YaST se ocupa de ello automticamente.

8
Uso de dispositivos porttiles con Linux

8.3.

IrDA Infrared Data Association

IrDA (Infrared Data Association) es un estndar industrial para la comunicacin inalmbrica por onda infrarroja. Muchos de los porttiles que se venden hoy en da incorporan un emisor/receptor que permite la comunicacin con otros dispositivos tales como impresoras, modems, LAN u otros porttiles. La tasa de transferencia se sita entre 2400 bps y 4 Mbps. Hay dos modos de funcionamiento para IrDA. El modo estndar SIR se comunica con el puerto infrarrojo a travs de una conexin serie. Este modo funciona con casi todos los dispositivos y cumple todas las exigencias.

SUSE LINUX Manual de Administracin

227

El modo ms rpido FIR requiere un controlador especial para el chip IrDA, pero no existen controladores para todos los chips. Adems se debe congurar el modo deseado en el setup de la BIOS. All se puede averiguar la conexin serie que se utiliza para el modo SIR. Puede encontrar informacin sobre IrDA en el IrDA-Howto de Werner Heuser en http://tuxmobil.org/Infrared-HOWTO/InfraredHOWTO.html y en la pgina web del Proyecto IrDA de LInux http: //irda.sourceforge.net/.

8.3.1.

Software

Los mdulos necesarios se incluyen en el paquete del kernel. El paquete irda contiene los programas de ayuda necesarios para el soporte de la conexin de infrarrojos. Una vez instalado el paquete, la documentacin al respecto se encuentra en /usr/share/doc/packages/irda/README.

8.3.2.

Conguracin

IrDA no se instala automticamente al arrancar. Utilice el mdulo Runlevel de YaST para cambiar las conguraciones de este servicio del sistema. Otra opcin es utilizar el programa chkconfig. Desgraciadamente, IrDA requiere ms energa (corriente externa o batera), puesto que enva un paquete Discovery cada dos segundos con el n de reconocer automticamente otros dispositivos perifricos. Por esto, si trabaja con batera, debera arrancar IrDA slo cuando lo vaya a utilizar. Con el comando rcirda start puede activar manualmente la conexin, o desactivarla con el parmetro stop. Al activar la conexin se cargarn automticamente los mdulos del kernel necesarios. En el archivo /etc/sysconfig/irda slo hay una variable IRDA_PORT. All puede congurar la conexin que se va a utilizar en modo SIR; el script /etc/irda/drivers se encarga de esta conguracin cuando se inicia el soporte de infrarrojos.

8.3.3.

Uso

Para imprimir por va infrarroja, es posible enviar los datos a travs del archivo de dispositivo /dev/irlpt0. Este se comporta igual que la interfaz o archivo de dispositivo /dev/lp0 con conexin por cable, slo que los datos viajan por va infrarroja.

228

8.3. IrDA Infrared Data Association

Se puede congurar una impresora que trabaja con el puerto IrDA del mismo modo que una impresora en el puerto paralelo o puerto serie. Al imprimir, asegrese de que la impresora est a la vista del puerto IrDA del ordenador y de que el soporte de infrarrojos se haya iniciado. El archivo de dispositivo /dev/ircomm0 permite comunicarse con otros ordenadores, con telfonos mviles o con dispositivos similares. Con el programa wvdial se puede entrar va infrarrojos a Internet usando por ejemplo el mvil S25 de Siemens. Tambin es posible sincronizar datos con el PDA Palm Pilot, para lo cual slo tiene que introducir /dev/ircomm0 como dispositivo en el programa correspondiente. Tenga en cuenta que slo se puede comunicar directamente con dispositivos que soportan los protocolos Printer o IrCOMM. Con programas especiales (como irobexpalm3 o irobexreceive, vase la descripcin en IRHOWTO) tambin es posible establecer comunicacin con dispositivos que utilizan el protocolo IROBEX (3Com Palm Pilot). En la distribucin de nombres de dispositivos de irdadump se muestra entre parntesis los protocolos soportados por el dispositivo. El soporte del protocolo IrLAN est en proceso (work in progress): en este momento an no es estable, pero estar disponible con Linux prximamente.

8
Uso de dispositivos porttiles con Linux

8.3.4.

Resolucin de problemas

Si los dispositivos en el puerto de infrarrojos no reaccionan, se puede comprobar si el ordenador detecta el otro dispositivo ejecutando el comando irdadump como usuario root:
irdadump

Si hay una impresora Canon BJC-80 a la vista del ordenador, aparece el siguiente mensaje en la pantalla, repitindose peridicamente (ver salida en pantalla 8.3). Ejemplo 8.3: Salida de irdadump
21:41:38.435239 21:41:38.525167 21:41:38.615159 21:41:38.705178 21:41:38.795198 21:41:38.885163 21:41:38.965133 xid:cmd xid:cmd xid:cmd xid:cmd xid:cmd xid:cmd xid:rsp 5b62bed5 5b62bed5 5b62bed5 5b62bed5 5b62bed5 5b62bed5 5b62bed5 > > > > > > < ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 6cac38dc S=6 S=6 S=6 S=6 S=6 S=6 S=6 s=0 s=1 s=2 s=3 s=4 s=5 s=5 (14) (14) (14) (14) (14) (14) BJC-80

SUSE LINUX Manual de Administracin

229

hint=8804 [Printer IrCOMM ] (23) 21:41:38.975176 xid:cmd 5b62bed5 > ffffffff S=6 s=* tierra hint=0500 [ PnP Computer ] (21)

Si no aparece nada en pantalla o el otro dispositivo no responde, debe comprobar primero la conguracin de la interfaz. Est usando la interfaz correcta? La interfaz infrarroja se encuentra a veces tambin en /dev/ttyS2 o /dev/ttyS3. Igualmente, puede que se use otra interrupcin que no sea la 3. En casi todos los porttiles es posible modicar esta conguracin en la BIOS. Con una sencilla cmara de vdeo puede comprobar si el diodo LED se ilumina realmente; en contraposicin a los ojos humanos, la mayora de las cmaras de vdeo pueden ver la luz infrarroja.

8.4.

Bluetooth: conexin inalmbrica de dispositivos

Bluetooth es una tecnologa de radio que permite conectar dispositivos entre s. Bluetooth se diferencia de IrDA en algunos aspectos importantes: por una parte, los distintos dispositivos no deben verse necesariamente; por otra, varios dispositivos pueden agruparse y formar redes completas. No obstante, actualmente slo pueden alcanzarse tasas de datos de hasta 720 Kbps como mximo (al menos en la versin actual 1.1). En teora, con Bluetooth es posible establecer conexiones entre dispositivos separados por una pared. En la prctica, esto depende en gran medida de la pared y de la clase de dispositivo. Esta ltima determina el alcance mximo de la transmisin, que vara de 10 a 100 metros dependiendo de cul de las tres clases se utilice.

8.4.1.

Perles

Los servicios en Bluetooth se denen por medio de perles. As por ejemplo, en la versin estndar de Bluetooth existen perles para la transferencia de archivos (File Transfer Prole), la impresin (Basic Printing Prole) y las conexiones en red (Personal Area Network Prole).

230

8.4. Bluetooth: conexin inalmbrica de dispositivos

Para que un dispositivo pueda utilizar un servicio de otro, ambos deben entender el mismo perl. Desgraciadamente, ni la documentacin ni la caja del dispositivo incluyen con frecuencia esta informacin. Otra dicultad aadida es que algunos fabricantes respetan escrupulosamente la denicin de cada perl y otros no. No obstante, en la prctica los dispositivos consiguen entenderse por regla general.

8
Uso de dispositivos porttiles con Linux

8.4.2.

Software

Para poder utilizar Bluetooth es necesario contar con un adaptador Bluetooth (integrado en el dispositivo o bien como llave de hardware externa o dongle), controladores y la pila de protocolo para Bluetooth (Bluetooth Protocol Stack). El kernel de Linux contiene ya los controladores bsicos para el uso de Bluetooth. En cuanto a la pila de protocolo se utiliza el sistema Bluez. Asimismo deben estar instalados los siguientes paquetes relacionados con Bluetooth (bluez-libs, bluez-bluefw, bluez-pan, bluez-sdp y bluez-utils). Dichos paquetes proporcionan algunos servicios o programas de servicio que el sistema necesita. Algunos de estos paquetes se explicarn posteriormente.

8.4.3.

Conguracin

Los archivos de conguracin que se describen a continuacin slo pueden ser modicados por root. Desgraciadamente todava no existe ninguna interfaz grca para congurar los parmetros, por lo que debe utilizarse un editor de textos para modicar los archivos. Un nmero de identicacin personal (PIN) constituye la primera medida de proteccin frente a conexiones no deseadas. Los telfonos mviles suelen preguntar este PIN en el primer contacto (o al congurar en el telfono el contacto con el dispositivo). Para que dos dispositivos puedan comunicarse entre s, ambos deben identicarse con el mismo PIN. Este se encuentra almacenado en el ordenador en el archivo /etc/bluetooth/pin. Actualmente en Linux slo existe un PIN independientemente del nmero de dispositivos Bluetooth instalados. El acceso a varios dispositivos con PINs diferentes todava no est soportado. En este caso habra que denir el mismo PIN en todos los dispositivos o bien desactivar completamente la autenticacin por PIN.

SUSE LINUX Manual de Administracin

231

Atencin
Seguridad en las conexiones Bluetooth El uso de PINs no garantiza que la conexin entre dos dispositivos est libre de escuchas por parte de terceros.

Atencin
La conguracin se lleva a cabo en el archivo de conguracin /etc/ bluetooth/hcid.conf. Aqu es posible modicar algunas opciones de conguracin tales como nombres de dispositivos y modos de seguridad. Los valores predeterminados de las opciones de conguracin resultarn adecuados en casi todas las ocasiones. El archivo incluye comentarios que describen los parmetros posibles en las distintas opciones. Aqu nos limitaremos a mencionar dos de ellas. Una de las principales opciones de conguracin es security auto;, en la que puede regularse la autenticacin por PIN. El parmetro auto la activa pero hace que en caso de problemas se cambie a no utilizar PIN. El que utilice none (no utilizar nunca la autenticacin por PIN) o user (utilizarla siempre) depende de usted y de sus requisitos individuales en materia de seguridad. En el apartado que comienza con device { se puede especicar el nombre con el que el ordenador ser mostrado al otro extremo de la conexin. Tambin se dene la clase de dispositivo (laptop, server, etc.) as como la autenticacin y la codicacin.

8.4.4.

Componentes del sistema y herramientas

El uso de Bluetooth slo es posible gracias a la combinacin de varios servicios. Como mnimo es necesario que dos daemons se estn ejecutando en segundo plano: hcid (Host Controller Interface), el cual acta de interfaz con el dispositivo Bluetooth y lo controla, y sdpd (Service Discovery Protocol), que informa a un dispositivo de los servicios que ofrece el ordenador. Tanto hcid como sdpd pueden iniciarse en caso de que no haya sucedido automticamente al arrancar el sistema con el comando rcbluetooth start, que debe ser ejecutado como usuario root. A continuacin se describen las principales herramientas necesarias para trabajar con Bluetooth. Por desgracia, estas slo estn disponibles actualmente como programas de lnea de comandos.

232

8.4. Bluetooth: conexin inalmbrica de dispositivos

En el momento de escribir estas lneas, todava no era seguro si una extensin de Konqueror (escritorio de KDE) o de Nautilus (escritorio de GNOME) estara lista hasta la fecha de produccin de la distribucin. En caso de que as fuera, la URL sdp:// debera mostrarle los dispositivos Bluetooth locales (conectados al ordenador) y remotos (accesibles slo a travs de una conexin por radio).

8
Uso de dispositivos porttiles con Linux

Atencin
Todos los programas que se mencionan a continuacin disponen de funciones adicionales que puede consultar por medio de man <nombre_programa>.

Atencin
Algunos comandos slo pueden ejecutarse como usuario root, como por ejemplo l2ping <direccin_dispositivo>, con el que se puede probar la conexin a un dispositivo remoto. hcitool Por medio de hcitool es posible averiguar si se han encontrado dispositivos locales y/o remotos. El comando hcitool dev muestra el propio dispositivo. Para cada dispositivo encontrado localmente se muestra una lnea con la siguiente estructura: <nombre_interfaz> <direccin_dispositivo>. Con hcitool name <direccin_dispositivo> se puede averiguar el nombre de un dispositivo remoto. Si se trata por ejemplo de otro ordenador, la clase y nombre de dispositivo mostrados deben coincidir con la informacin recogida en el archivo /etc/bluetooth/hcid.conf de este ordenador. Las direcciones de dispositivos locales generan un mensaje de error. hcicong Puede obtener informacin adicional sobre el dispositivo local por medio de /sbin/hciconfig. Los dispositivos remotos (que no estn conectados fsicamente al ordenador) se buscan con el comando hcitool inq. La salida de este comando muestra tres valores por cada dispositivo encontrado: la direccin y la clase de dispositivo y una diferencia horaria. El valor ms importante es la direccin de dispositivo, que es usada por otros comandos para identicar el dispositivo destino. La diferencia horaria es slo interesante desde el punto de vista tcnico. En cuanto a la clase de dispositivo, en ella se recoge el tipo de dispositivo y de servicio en forma de valor hexadecimal.

SUSE LINUX Manual de Administracin

233

sdptool El programa sdptool proporciona informacin sobre los servicios ofrecidos por un dispositivo determinado. El comando sdptool browse <direccin_dispositivo> muestra todos los servicios de un dispositivo, mientras que sdptool search <abreviatura_servicio> permite buscar un servicio concreto. Este comando pregunta a todos los dispositivos disponibles por el servicio deseado. Si este es ofrecido por alguno de los dispositivos, el programa proporciona al usuario el nombre completo del servicio ofrecido por el dispositivo junto con una breve descripcin del mismo. Al ejecutar sdptool sin ningn parmetro se muestra una lista de todas las abreviaturas de servicios posibles.

8.4.5.

Ejemplos

A continuacin se incluyen dos ejemplos que ilustran las posibles aplicaciones de Bluetooth. Conexin de red entre dos ordenadores C1 y C2 En el primer ejemplo se va a establecer una conexin de red entre dos ordenadores. Para ello se utiliza el programa pand (Personal Area Networking). Los siguientes comandos han de ser ejecutados por el usuario root. En estas lneas no se incluye una explicacin detallada de los comandos de red (ip), sino slo de las acciones directamente relacionadas con Bluetooth: En uno de los dos ordenadores (denominado en adelante C1) se inicia el programa pand con el comando pand -s. En el segundo ordenador C2 se ejecuta el comando hcitool inq para averiguar su direccin de dispositivo. Ahora es posible establecer una conexin con pand -c <direccin_dispositivo>. A continuacin se pide al sistema una lista de las interfaces de red disponibles por medio del comando ip link show. Dicha lista incluir una entrada semejante a:
bnep0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000 link/ether 00:12:34:56:89:90 brd ff:ff:ff:ff:ff:ff

(en lugar de 00:12:34:56:89:90 aparecer la direccin local del dispositivo). Ahora es necesario asignar una direccin IP a esta interfaz y seguidamente activarla.

234

8.4. Bluetooth: conexin inalmbrica de dispositivos

Para ello se ejecutan por ejemplo los siguientes comandos en C1)


ip addr add 192.168.1.3/24 dev bnep0 ip link set bnep0 up

8
Uso de dispositivos porttiles con Linux

o de forma anloga en C2
ip addr add 192.168.1.4/24 dev bnep0 ip link set bnep0 up

Observe aqu que el 3 se ha convertido en un 4. Por consiguiente, es posible acceder a C1 desde C2 con la direccin IP 192.168.1.3. El comando ssh 192.168.1.4 le permite acceder a C2 desde C1 (siempre que sshd est ejecutndose en C2, como es el caso en la conguracin estndar de SUSE LINUX). El comando ssh 192.168.1.4 tambin puede ejecutarse como usuario normal. Transmisin de datos desde un telfono mvil al ordenador En el segundo ejemplo, vamos a transmitir una imagen creada con un telfono mvil con cmara a un ordenador sin incurrir en gastos adicionales como sera por ejemplo el envo de un mensaje multimedia. Tenga en cuenta que cada telfono mvil dispone de una estructura de mens diferente, pero el proceso ser parecido en casi todos ellos. En caso necesario, consulte las instrucciones del telfono. A continuacin se describe la transmisin de una fotografa desde un telfono Sony Ericsson a un ordenador porttil. Para ello es necesario que el servicio Obex-Push est disponible en el ordenador y que el ordenador permita el acceso del telfono mvil. En el primer paso se activar el servicio en el porttil. Esto se realiza con el daemon opd incluido en el paquete bluez-utils. Para iniciar este daemon, ejecute el comando:
opd --mode OBEX --channel 10 --daemonize --path /tmp --sdp

En este comando merece la pena destacar dos parmetros: el parmetro --sdp registra el servicio en sdpd y --path /tmp comunica al programa dnde debe almacenar los datos recibidos (en este caso en /tmp/). Aqu tambin es posible introducir otras rutas. Para ello slo necesita permiso de escritura en el directorio especicado. A continuacin, el telfono debe conocer al ordenador. Con este n, busque en el telfono el men Conexiones y seleccione la entrada Bluetooth.

SUSE LINUX Manual de Administracin

235

Si es necesario, pulse Activar antes de escoger el punto Dispositivos propios. Seleccione Nuevo dispositivo y espere a que el telfono encuentre el porttil. Cuando se encuentra un dispositivo, este se muestra con su nombre en la pantalla del mvil. Seleccione el dispositivo que corresponda al porttil. A continuacin se le preguntar por el PIN (aqu debe introducir el PIN que aparece en /etc/bluetooth/pin). Una vez introducido el PIN correcto, el telfono y el porttil se conocen y pueden intercambiar datos. Salga del men y pase al men de fotografas. Seleccione la imagen que desea transmitir y pulse la tecla Ms. Pulsando Enviar en el men que aparece a continuacin, podr elegir la forma de envo: seleccione Bluetooth. Ahora debera poder denir el porttil como dispositivo destino. Tras efectuar esta seleccin, la fotografa es transmitida al porttil y guardada en el directorio especicado al ejecutar opd. Este procedimiento tambin puede emplearse para trasmitir otro tipo de datos, como por ejemplo un archivo de msica.

8.4.6.

Resolucin de problemas

En caso de problemas de conexin se recomienda comprobar los siguientes puntos: Compruebe la salida del comando hcitool dev. Aparece el dispositivo local? En caso negativo, es posible que hcid no se haya iniciado o que el dispositivo no sea detectado como dispositivo Bluetooth (bien porque el controlador no pueda o porque el dispositivo est roto). Reinicie el daemon con rcbluetooth restart y observe en el archivo /var/log/messages si se ha producido algn error. Ve el ordenador otro dispositivo cuando ejecuta hcitool inq? Si es as, vuelva a probar de nuevo; puede que hubiera algn problema con la conexin la primera vez. La banda de frecuencia de Bluetooth es utilizada tambin por otros dispositivos. Compruebe si el PIN en /etc/bluetooth/pin y el PIN del otro dispositivo coinciden. Intente iniciar la conexin desde otro dispositivo y compruebe si el nuevo dispositivo ve al ordenador. Si el primer ejemplo (conexin de red) no funciona puede deberse a distintas causas. Por ejemplo, puede ser que uno de los dos ordenadores no entienda el protocolo ssh. Pruebe a ejecutar el comando

236

8.4. Bluetooth: conexin inalmbrica de dispositivos

ping 192.168.1.3 o ping 192.168.1.4. En caso de obtener respuesta, compruebe si sshd est activo. Otra posible causa es que ya disponga de otras direcciones que entren en conicto con las direcciones utilizadas en el ejemplo 192.168.1.X. Repita el proceso con otras direcciones, como por ejemplo 10.123.1.2 y 10.123.1.3. En el segundo ejemplo, el porttil no aparece como dispositivo destino: detecta el telfono mvil el servicio Obex-Push en el porttil? Vaya al men Dispositivos propios, seleccione el dispositivo correspondiente y consulte la Lista de servicios. Si en ella no aparece Obex-Push (an despus de actualizar la lista), la causa del problema es opd en el porttil. Se ha iniciado opd? Tiene permiso de escritura en el directorio especicado? Funciona el segundo ejemplo tambin a la inversa? S, si ha instalado obexftp. En este caso, la transmisin de datos funciona en algunos telfonos con obexftp -b <direccin_dispositivo> -B 10 -p <nombre_imagen> (se han probado Siemens y Sony Ericsson, lo que no signica que no funcione tambin en otros).

8
Uso de dispositivos porttiles con Linux

8.4.7. Informacin adicional


Puede encontrar una amplia lista de documentacin relacionada con el funcionamiento y la conguracin de Bluetooth en: http://www.holtmann. org/linux/bluetooth/ Otras fuentes de informacin: Conexin con PDAs PalmOS: http://www.cs.ucl.ac.uk/ staff/s.zachariadis/btpalmlinux.html HOWTO ocial del Bluetooth Protocol Stack integrado en el kernel: http: //bluez.sourceforge.net/howto/index.html

SUSE LINUX Manual de Administracin

237

9
Gestin de energa

Gestin de energa

Este captulo le presenta las distintas tcnicas de gestin de energa en Linux y describe con detalle la conguracin de las ms importantes, como por ejemplo APM (Advanced Power Management ), ACPI (Advanced Conguration and Power Interface) o los ajustes de frecuencia de la CPU (CPU Frequency Scaling).

9.1. 9.2. 9.3. 9.4. 9.5. 9.6.

Funciones para el ahorro de energa . . . APM . . . . . . . . . . . . . . . . . . . . . ACPI . . . . . . . . . . . . . . . . . . . . . Parar el disco duro . . . . . . . . . . . . . El paquete powersave . . . . . . . . . . . El mdulo de gestin de energa de YaST

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

240 242 245 251 252 260

En este campo se ha evolucionado desde la mera gestin de energa en porttiles por medio de APM hasta ACPI, que constituye una herramienta de informacin y conguracin de hardware disponible en todos los ordenadores de fabricacin reciente (porttiles, equipos de sobremesa y servidores). Asimismo, en muchas clases de hardware moderno es posible adaptar la frecuencia de la CPU a la situacin correspondiente (CPU Frequency Scaling), lo que reduce el consumo de la batera en los dispositivos mviles. Todas las tcnicas de gestin de energa (powermanagement ) requieren un hardware y una rutina de la BIOS apropiados. La mayora de los ordenadores porttiles y muchos ordenadores de sobremesa y servidores cumplen estos requisitos. En el hardware ms antiguo se utiliza con frecuencia el estndar APM (Advanced Power Management ). Debido a que APM consiste bsicamente en un conjunto de funciones implementadas en la BIOS, existen diferencias en el soporte de APM en las distintas clases de hardware. ACPI es todava ms complejo y la calidad de su soporte depende incluso en mayor medida del hardware utilizado. Por este motivo no tiene mucho sentido abogar por uno u otro sistema. Le aconsejamos probar en su hardware las distintas tcnicas posibles y optar por la que mejor soporte tenga.

Atencin
Gestin de energa en procesadores AMD64 Los procesadores AMD64 soportan exclusivamente ACPI con un kernel de 64 bits.

Atencin

9.1.

Funciones para el ahorro de energa

Si bien muchas de estas funciones son de inters general, cobran una especial importancia en conexin con los ordenadores porttiles. A continuacin se describen estas funciones y se explica en qu sistema se pueden llevar a cabo. Stand-by (en reposo) Slo se desactiva la pantalla y en algunos dispositivos se reduce tambin el rendimiento del procesador. No todas las implementaciones APM ofrecen esta funcin. En ACPI este estado se corresponde con S1.

240

9.1. Funciones para el ahorro de energa

Suspend (to memory) Para este modo toda la informacin sobre el estado del sistema se guarda en la memoria y, aparte de esta, todo el resto del sistema se para. Es un estado en el cual el ordenador gasta muy poca energa, as que se puede pasar desde 12 horas hasta varios das con la batera. La gran ventaja es la de volver dentro de pocos segundos al estado anterior de trabajo, sin necesidad de arrancar y cargar de nuevo los programas usados. El atractivo especial de realizar esto con Linux es el no tener que parar el ordenador nunca; hay otros sistemas operativos que se vuelven inestables despus de cierto tiempo. En la mayora de los porttiles actuales basta con cerrar la tapa para suspender y abrirla despus para seguir trabajando. En ACPI este estado se corresponde con S3. El soporte de este estado depende enormemente del hardware utilizado. Hibernation (suspend to disk) En este modo, el ordenador vuelca todo el contenido de la memoria al disco duro y el sistema se para despus. El ordenador tarda de 30 a 90 segundos de salir de este periodo de hibernacin. Tras este periodo se restablece por completo el estado anterior al suspend. Algunos fabricantes ofrecen ciertos modos hbridos (por ejemplo RediSafe en IBM Thinkpads). En ACPI el estado de hibernacin se corresponde con S4. Control de batera Junto a la informacin del estado de la batera tambin es importante tener algo previsto en caso de que disminuyan las reservas de energa. ACPI o APM desempean aqu esta funcin de control. Apagado automtico Despus de un shutdown el ordenador se para completamente sin necesidad de pulsar el botn de apagar. Esto es importante en caso de que se realice un apagado automtico poco antes de que se agote la batera. Apagado de los componentes del sistema El componente esencial a la hora de ahorrar energa es el disco duro. Dependiendo de la abilidad del sistema, este se puede poner a dormir durante ms o menos tiempo. El riesgo de una prdida de datos se incrementa con la duracin del perodo de reposo de los discos. Se puede desactivar otros componentes via ACPI (al menos en teora) o de forma duradera en el setup de la BIOS. Control del rendimiento del procesador PowerNow! de AMD y SpeedStep de Intel son dos conceptos diseados para disminuir el consumo de energa en todo el sistema.

9
Gestin de energa
241

SUSE LINUX Manual de Administracin

Con este n se reduce la energa utilizada por el componente que normalmente ms consume: el procesador. La menor produccin de calor constituye un agradable efecto secundario, ya que los ventiladores regulables pueden trabajar de forma ms silenciosa. Las funciones CPU Frequency Scaling del kernel de Linux se encargan de regular estos procesos. En este contexto se distingue entre tres niveles de rendimiento del procesador: performance Mximo nivel de rendimiento del procesador; se recomienda utilizarlo cuando se trabaja con el sistema conectado a la red del suministro elctrico. powersave Mnimo nivel de rendimiento del procesador para el uso del porttil con bateras. dynamic Ajuste automtico del rendimiento del procesador a la carga actual del procesador. Esta es la opcin ms recomendable en la operacin con o sin bateras para ahorrar energa, evitar ruidos y lograr un rendimiento ptimo. El cambio de frecuencia o estado es tan suave que el usuario ni siquiera lo nota en un entorno operativo normal. Puede obtener informacin adicional sobre el control del rendimiento del procesador en el apartado 9.5 en la pgina 252.

9.2.

APM

Algunas de las funciones de ahorro de energa las realiza slo el APM de la BIOS. El estado de reposo y el de suspensin se pueden activar con una combinacin de teclas o cerrando la tapa en la mayora de los ordenadores porttiles. Estos modos de operacin se realizan sin intervencin del sistema operativo. Para iniciarlos mediante un comando hace falta que se ejecuten ciertas acciones antes de pasar al modo de suspensin. Quien adems desee que se muestre el nivel de carga de la batera, debe instalar determinados paquetes y un kernel adecuado. El soporte APM forma parte integral de los kernels de SuSE Linux, pero slo se activa si en la BIOS no se ha implementado ACPI y si se encuentra un APM-BIOS. Para activar el soporte APM, ACPI ha desactivarse en el prompt de arranque con acpi=off. Puede comprobar si APM ha sido activado ejecutando el comando cat /proc/apm. Si aparece una lnea con diversos nmeros, todo est en orden. A continuacin deber apagar el ordenador con el comando shutdown -h.

242

9.2. APM

Algunas BIOS no cumplen el estndar APM al cien por cien, por lo que puede aparecer un comportamiento extrao. Algunos problemas se pueden resolver con parmetros especiales (antiguamente eran opciones de conguracin del kernel). Todos los parmetros se introducen en un prompt de arranque con la forma apm=<parameter>: on/off Activar o desactivar el soporte APM. (no-)allow-ints Permitir interrupciones durante la ejecucin de funciones de la BIOS. (no-)broken-psr La funcin GetPowerStatus de la BIOS no funciona correctamente. (no-)realmode-power-off Pasa el procesador al modo real antes del apagado. (no-)debug Registrar acontecimientos APM en Syslog. (no-)power-off Desconectar todo el sistema tras el apagado. bounce-interval= n Tiempo en 1/100 segundos, durante el cual se deben pasar por alto otros acontecimientos de suspensin tras haberse producido el primero. idle-threshold= n Porcentaje de la actividad del sistema, a partir del cual la funcin de la BIOS se volver inactiva o idle (0=siempre, 100=nunca). idle-period= n Tiempo en 1/100 segundos, por encima del cual se deducir la actividad o inactividad del sistema.

9
Gestin de energa

9.2.1.

El daemon APM (apmd)

El daemon apmd controla el estado de la batera y es capaz de iniciar ciertas actividades cuando se pone el ordenador en estado de stand-by o suspend. Se encuentra en el paquete apmd y, aunque no es imprescindible para trabajar, s resulta muy til. El apmd no se inicia automticamente en el arranque. Pero si se requiere, se puede cambiar la conguracin de los servicios del sistema con el editor de niveles de ejecucin de YaST. De forma alternativa se puede emplear el programa chkconfig. Para iniciarlo manualmente utilice rcapmd start. El daemon se congura mediante algunas variables que se encuentran en /etc/sysconfig/powermanagement/. Este archivo ya contiene comentarios por lo que a continuacin slo se dan algunas indicaciones.

SUSE LINUX Manual de Administracin

243

APMD_ADJUST_DISK_PERF De esta forma se puede determinar que el comportamiento del disco duro se adapte al suministro de energa. Para esto hay una gran cantidad de variables que comienzan con APMD_BATTERY o con APMD_AC. La primera contiene las opciones de la batera; la ltima, el funcionamiento de la fuente de alimentacin externa. APMD_BATTERY/AC_DISK_TIMEOUT Indica el tiempo que durar la inactividad del disco. Los valores se encuentran en el apartado 9.4 en la pgina 251 o en las pginas man de hdparm con la opcin -S. APMD_BATTERY/AC_KUPDATED_INTERVAL El tiempo que debe transcurrir entre dos acciones del Kernel Update Daemon. APMD_BATTERY/AC_DATA_TIMEOUT La antigedad mxima de los datos en el bfer. APMD_BATTERY/AC_FILL_LEVEL La capacidad mxima del bfer del disco duro APMD_PCMCIA_EJECT_ON_SUSPEND Aunque para SUSE LINUX se compila PCMCIA con soporte APM, a veces surgen problemas. Algunos controladores de tarjetas PCMCIA no vuelven a un estado correcto despus de suspender el sistema (por ejemplo xirc2ps_cs). Por eso el apmd es capaz de desactivar el sistema PCMCIA antes de suspender el sistema y despus activarlo nuevamente. Para realizar esta caracterstica, la variable APMD_PCMCIA_EJECT_ON_SUSPEND debe estar en yes. APMD_INTERFACES_TO_STOP Aqu se pueden indicar interfaces de red que deben ser apagadas antes de suspender el sistema y reiniciadas despus. APMD_INTERFACES_TO_UNLOAD Si adems hay que descargar el mdulo de las interfaces, utilice esta variable. APMD_TURN_OFF_IDEDMA_BEFORE_SUSPEND A veces no funciona el sistema no vuelve a reactivarse despus de una suspensin , si un dispositivo IDE (disco duro) an se encuentra en modo DMA.

244

9.2. APM

Existen ms posibilidades, como por ejemplo el tiempo de repeticin del teclado o la hora, que se deben corregir tras una suspensin o un apagado automtico del porttil, al enviar el APM de la BIOS un acontecimiento de estado crtico de la batera. Para los usuarios avanzados queda la posibilidad de aadir funcionalidades al script /usr/sbin/apmd_proxy, que lleva a cabo las acciones mencionadas arriba.

9
Gestin de energa

9.2.2.

Comandos adicionales

apmd contiene algunas utilidades adicionales. apm indica la capacidad actual de la batera y pone el sistema en stand-by (apm -S) o suspend (apm -s); vase tambin la pgina del manual de apm. Con el comando apmsleep se puede suspender el sistema por un tiempo determinado. Para visualizar un archivo log sin necesidad de mantener el disco duro girando, se puede usar tailf como reemplazo de tail -f. Adems existen herramientas para sistema X Window como por ejemplo xapm tambin en apmd, que indica de forma grca la carga de la batera. Usando el entorno KDE, o al menos kpanel, se puede visualizar con kbatmon el estado de carga de la batera y suspender el sistema. Como alternativa tambin es interesante xosview.

9.3.

ACPI

ACPI signica Advanced Conguration and Power Interface. La funcin de ACPI es permitir al sistema operativo congurar y controlar cada componente de hardware por separado. De este modo, ACPI sustituye tanto a Plug and Play como a APM. Asimismo, ACPI proporciona diversos datos sobre la batera, interfaz de red, temperatura y ventilador e informa de acontecimientos en el sistema como Cerrar la cubierta o Bateras poco cargadas. La BIOS dispone de tablas donde se recoge informacin sobre cada componente y sobre los mtodos para acceder al hardware. El sistema operativo utiliza esta informacin, por ejemplo, para asignar Interrupts o para activar y desactivar componentes de hardware. No obstante, debido a que el sistema operativo sigue las instrucciones almacenadas en la BIOS, aqu tambin se est supeditado a la implementacin de la BIOS. Los mensajes producidos durante el arranque se almacenan en /var/log/boot.msg. All, ACPI informa de qu tablas ha encontrado y evaluado con xito. Para obtener ms informacin sobre la resolucin de problemas en ACPI consulte el apartado 9.3.1 en la pgina 249.

SUSE LINUX Manual de Administracin

245

9.3.1.

ACPI en la prctica

Cuando el kernel reconoce una BIOS ACPI durante el arranque, ACPI es activado automticamente (y APM desactivado). El parmetro de arranque acpi=on podra ser necesario, como mximo, en mquinas antiguas. No obstante, el ordenador tiene que soportar ACPI 2.0 o superior. Para comprobar si ACPI est activado, consulte los mensajes de arranque del kernel en /var/log/boot.msg. Tambin existe un directorio /proc/acpi que se explicar ms adelante. A continuacin es necesario cargar una serie de mdulos, de lo que se ocupa el script de inicio del daemon ACPI. Si alguno de estos mdulos causa problemas, puede impedirse su carga o descarga en /etc/sysconfig/ powersave/common. En el registro del sistema (/var/log/messages) se encuentran los mensajes del mdulo y puede observarse qu componentes han sido detectados. En /proc/acpi/ aparecen ahora varios archivos que informan sobre el estado del sistema o permiten modicar de forma activa algunos de estos estados. No obstante, esta funcionalidad no es ni mucho menos completa porque, o bien est todava en desarrollo, o bien depende de lo que haya implementado el fabricante. Se puede leer todos los archivos (excepto dsdt y fadt) con cat. En algunos se puede incluso modicar opciones pasando a X valores adecuados con echo X <archivo>. (Todo lo que se encuentra en /proc no son archivos en el disco duro sino ms bien una interfaz al kernel). A continuacin se describen los archivos ms importantes: /proc/acpi/info Informacin general sobre ACPI /proc/acpi/alarm Aqu puede denirse cundo el sistema despierta de un estado de sueo. El soporte actual de esta funcin es insuciente. /proc/acpi/sleep Proporciona informacin sobre los posibles estados de sueo. /proc/acpi/event Aqu se registran los eventos del sistema. Estos son procesados por daemons como acpid o powersaved. Si no interviene ningn daemon, los eventos de pueden leer con Ctrl + C ). cat /proc/acpi/event (salir con Un ejemplo de evento es pulsar el interruptor principal o cerrar la cubierta del porttil.

246

9.3. ACPI

/proc/acpi/dsdt y /proc/acpi/fadt Aqu se almacenan las tablas ACPI DSDT (Differentiated System Description Table) y FADT (Fixed ACPI Description Table). Estas pueden leerse con acpidmp, acpidisasm y dmdecode. Puede encontrar estos programas junto con la correspondiente documentacin en el paquete pmtools. Por ejemplo: acpidmp DSDT | acpidisasm. /proc/acpi/ac_adapter/AC/state Est conectado el adaptador de red? /proc/acpi/battery/BAT*/{alarm,info,state} Contienen abundante informacin sobre el estado de la batera. Para comprobar el nivel de carga es necesario comparar last full capacity de info con remaining capacity de state. Aunque esto tambin puede hacerse ms fcilmente con la ayuda de programas especiales que se describirn ms adelante. En alarm se puede introducir qu cantidad de carga provocar un evento en la batera. /proc/acpi/button Este directorio contiene informacin sobre diversos interruptores. /proc/acpi/fan/FAN/state Muestra si el ventilador est funcionando en ese momento. Tambin puede encenderse o apagarse manualmente escribiendo en el archivo 0 (=encender) 3 (=apagar). No obstante, hay que tener en cuenta que tanto el cdigo ACPI del kernel como el hardware (o la BIOS) sobreescriben estos valores cuando la temperatura es demasiado elevada. /proc/acpi/processor/CPU*/info Informacin sobre las posibilidades de ahorro de energa del procesador. /proc/acpi/processor/CPU*/power Informacin sobre el estado actual del procesador. Un asterisco en C2 signica inactividad y es el estado ms frecuente, como puede apreciarse en el nmero usage. /proc/acpi/processor/CPU*/performance Esta interfaz ya no se utiliza. /proc/acpi/processor/CPU*/throttling Permite aumentar de forma lineal el ahorro de energa del procesador.

9
Gestin de energa
247

SUSE LINUX Manual de Administracin

Esta interfaz ha quedado obsoleta y su funcin la desempean ahora las opciones de conguracin en /etc/sysconfig/powersave/ common (vase a este respecto el apartado 9.5.2 en la pgina 255). /proc/acpi/processor/CPU*/limit Si un daemon se encarga de regular automticamente la potencia y el throttling, aqu se pueden denir los lmites que no se deben sobrepasar en ningn caso. Existen algunos lmites que ja el sistema y otros que ja el usuario. La funcin de esta interfaz la desempean ahora las opciones de conguracin en /etc/sysconfig/powersave/common (vase a este respecto el apartado 9.5.2 en la pgina 255). /proc/acpi/thermal_zone/ Aqu se encuentra un subdirectorio para cada zona trmica. Una zona trmica es una seccin con caractersticas trmicas semejantes, cuyo nmero y nombre de fabricante de hardware puede ser seleccionado. Muchas de las posibilidades ofrecidas por ACPI se implementan rara vez. En su lugar, la BIOS se ocupa normalmente de controlar la temperatura sin que el sistema operativo intervenga, ya que aqu se trata nada menos que de la duracin del hardware. Por lo tanto, las descripciones siguientes son en parte puramente tericas. /proc/acpi/thermal_zone/*/temperature La temperatura actual de la zona trmica. /proc/acpi/thermal_zone/*/state El estado indica si todo est en orden (ok) o si (ACPI) refrigera de forma activa o pasiva. En los casos donde el control del ventilador no depende de ACPI, el estado es siempre ok. /proc/acpi/thermal_zone/*/cooling_mode Bajo un control total por parte de ACPI, aqu se puede seleccionar el mtodo de refrigeracin preferido: pasivo (menor rendimiento pero mayor ahorro) o activo (siempre mximo rendimiento pero con el ruido del ventilador a toda potencia). /proc/acpi/thermal_zone/*/trip_points Aqu se puede denir la temperatura a partir de la cual se emprende alguna accin. Esta accin puede abarcar desde la refrigeracin activa o pasiva hasta apagar el ordenador (critical), pasando por suspend (hot).

248

9.3. ACPI

/proc/acpi/thermal_zone/*/polling_frequency Si el valor de temperature no se actualiza automticamente cuando se modica la temperatura, se puede cambiar aqu al modo polling. El comando echo X > /proc/acpi/thermal_zone/*/polling_frequency hace que cada X segundos se pregunte la temperatura. El modo polling se desconecta con X=0. El daemon ACPI (acpid) De forma semejante al daemon APM, el daemon ACPI procesa determinados eventos ACPI, tales como los que activan el encendido y apagado o el contacto de la tapa. Todos los acontecimientos quedan registrados en el log del sistema. En /etc/sysconfig/powermanagement con las variables ACPI_BUTTON_POWER y ACPI_BUTTON_LID se puede establecer qu debe ocurrir en esos acontecimientos. Si no es suciente, puede adaptar el script /usr/sbin/acpid_proxy o cambiar la conguracin de acpid en /etc/acpi/. Al contrario que en apmd, aqu no hay muchas opciones preconguradas ya que ACPI para Linux est todava en pleno desarrollo. Dado el caso, es necesario congurar acpid por s mismo. Puede enviarnos sus sugerencias de acciones preconguradas a http://www.suse.de/feedback. Otras herramientas Existe una serie de herramientas ACPI ms o menos completas. Entre ellas se encuentran herramientas puramente informativas que muestran el estado de la batera o la temperatura (acpi, klaptopdaemon, wmacpimon, etc.). Otras facilitan el acceso a las estructuras bajo /proc/acpi o ayudan a observar cambios (akpi, kacpi, gtkacpiw), y otras permiten editar las tablas ACPI en la BIOS (paquete pmtools). Posibles problemas y soluciones Se puede distinguir entre dos tipos de problemas. Por una parte, puede haber fallos en el cdigo ACPI del kernel que no se han detectado a tiempo. En este caso se proporcionar una solucin para descargar. Otros problemas ms incmodos y, por desgracia, tambin ms frecuentes, son los problemas en la BIOS del ordenador. Se da incluso el caso de que se integran en la BIOS desviaciones de las especicaciones ACPI para evitar fallos en la implementacin ACPI en otros sistemas operativos de uso extendido. Existe tambin hardware en el que se conocen fallos graves en la implementacin ACPI. Por este motivo, estos componentes de hardware se incluyen en una lista negra para que el kernel de Linux no utilice en ellos ACPI.

9
Gestin de energa
249

SUSE LINUX Manual de Administracin

En caso de problemas, en primer lugar se debe actualizar la BIOS, lo que funciona con xito en muchas ocasiones. Si el ordenador ni siquiera arranca correctamente, pruebe a utilizar algunos de los siguientes parmetros de arranque: pci=noacpi No utilizar ACPI para congurar los dispositivos PCI. acpi=oldboot Ejecutar slo recursos simples de conguracin, en caso contrario no utilizar ACPI. acpi=off No utilizar ACPI en absoluto.

Aviso
Problemas al arrancar sin ACPI Algunos ordenadores de ltima generacin, especialmente los sistemas SMP y AMD64M, requieren ACPI para que el hardware se congure correctamente. Por lo tanto, el desactivar ACPI puede ocasionar problemas.

Aviso
Es muy importante examinar los mensajes de arranque cuidadosamente. Para ello lo mejor es utilizar el comando dmesg | grep -2i acpi despus del arranque (o incluso examinar todos los mensajes, ya que el problema no debe radicar necesariamente en ACPI). Si ocurre un error durante el anlisis sintctico de una tabla ACPI, existe la posibilidad (al menos para la tabla ms importante, DSDT) de pasar una versin mejorada al sistema. De esta forma la tabla DSDT incorrecta de la BIOS ser ignorada. El proceso correspondiente se describe en el apartado 9.5.4 en la pgina 257. En la conguracin del kernel existe un botn para activar los mensajes de depuracin de ACPI. Si se ha compilado e instalado un kernel con depuracin ACPI, puede ayudar con informacin detallada a los expertos que busquen un posible fallo. En cualquier caso, siempre resulta una buena idea ponerse en contacto con el fabricante del aparato si ocurriesen problemas con el hardware o la BIOS. An cuando los fabricantes no siempre pueden ayudar cuando se trata de Linux, es importante que escuchen el trmino Linux lo ms a menudo posible. No tomarn a Linux en serio hasta que no se den cuenta de que un nmero importante de sus clientes lo utilizan. Aunque no tenga ningn problema, tampoco est de ms que informe al fabricante de su hardware de que lo usa con Linux.

250

9.3. ACPI

Puede encontrar ayuda y documentacin adicional (en ingls) en: http://www.cpqlinux.com/acpi-howto.html (HOWTO para ACPI, incluye parches para la tabla DSDT) http://www.intel.com/technology/iapc/acpi/faq.htm (preguntas de uso frecuente sobre ACPI de @Intel) http://acpi.sourceforge.net/ (el proyecto ACPI4Linux en Sourceforge) http://www.poupinou.org/acpi/ (parches DSDT de Bruno Ducrot)

9
Gestin de energa

9.4.

Parar el disco duro

En Linux es posible parar el disco duro cuando no se necesita. Esto se realiza mediante el programa hdparm, que tiene varias opciones. por ejemplo -y pone el disco duro inmediatamente en modo de reposo, mientras que -Y (cuidado!) lo para completamente. Con hdparm -S <x> se consigue que el disco duro se apague tras un determinado perodo de inactividad. La posicin x posee los siguientes signicados: 0 apaga el mecanismo, el disco sigue funcionando; los valores entre 1 y 240 se multiplican por 5 segundos; entre 241 y 251 corresponden desde 1 a 11 veces 30 minutos. Sin embargo a menudo no es tan sencillo parar el disco duro puesto que existe una gran cantidad de procesos en Linux que escriben datos en el disco y lo reactivan una y otra vez. Por tanto es importante comprender la forma en que Linux trabaja con los datos que se deben escribir en el disco. Primero se envan todos los datos a un bfer que escribe en la memoria de trabajo, el cual es controlado por el Kernel Update Daemon (kupdated. Siempre que un dato alcance una determinada antigedad o el bfer se llena hasta un determinado nivel, el bfer se vaca y se pasan los datos al disco duro. El tamao del bfer es dinmico y depende del tamao de la memoria y del sistema. Puesto que la prioridad es la seguridad de los datos, el kupdated funciona a pequeos intervalos de tiempo: prueba el bfer cada 5 segundos e informa al daemon bdush de qu datos llevan ms de 30 segundos en el bfer o si este se encuentra lleno al 30 %. Entonces el daemon bdush escribe los datos en el disco, aunque tambin lo hace independientemente de kupdated. Si tiene un sistema estable puede cambiar estas conguraciones, pero no olvide que puede disminuir el nivel de seguridad de sus datos.

SUSE LINUX Manual de Administracin

251

Aviso
Peligro para la seguridad de los datos Las modicaciones en la conguracin del Kernel Update Daemon pueden inuir en la seguridad de los datos. Si no est seguro, es mejor que no cambie nada.

Aviso
Las opciones del timeout del disco duro, del intervalo kupdated, del nivel de llenado del bfer y de la antigedad de los datos se pueden depositar dos veces en /etc/sysconfig/powermanagement: una para la batera y otra para el funcionamiento del suministro externo de energa. Las variables se describen en el apartado apmd 9.2.1 en la pgina 243 y en el mismo archivo. Tambin puede encontrar informacin adicional sobre este tema en /usr/share/doc/packages/powersave. Adems de todo lo anterior, los denominados sistema de archivos Journaling o transaccionales como por ejemplo reiserfs o ext3, escriben sus metadatos en el disco duro independientemente de bdush, lo cual tambin impide que el disco duro quede inactivo. Para evitarlo se ha desarrollado una ampliacin del kernel especca para dispositivos mviles. Esta ampliacin se describe en /usr/src/linux/Documentation/laptop-mode.txt. Naturalmente tambin se debe tener en cuenta la forma en que se comportan los programas que se estn utilizando. por ejemplo los buenos editores de texto escriben con regularidad los archivos modicados en el disco, lo cual hace que el disco se reactive una y otra vez. Tales propiedades se pueden desactivar pero esto provoca una disminucin en el nivel de seguridad de los datos. En este contexto, el daemon de correo postx dispone de una variable llamada POSTFIX_LAPTOP. Cuando esta variable contiene el valor yes, postx accede con mucha menos frecuencia al disco duro. No obstante, esto carece de importancia si el intervalo de kupdated ha sido ampliado.

9.5.

El paquete powersave

El paquete powersave est concebido en primera lnea para ser utilizado en ordenadores porttiles. All se ocupa de la funcin de ahorro de energa cuando se trabaja con bateras.

252

9.5. El paquete powersave

No obstante, algunas de sus funciones resultan tambin muy interesantes para estaciones de trabajo o servidores, como por ejemplo el modo suspend/standby, la funcin de las teclas ACPI y la activacin o desactivacin automtica de discos duros IDE. Este paquete incorpora todas las funciones de gestin de energa del ordenador y soporta cualquier hardware que utilice ACPI, APM, discos IDE y las tecnologas PowerNow! o SpeedStep. powersave agrupa todas las prestaciones de los paquetes apmd, acpid, ospmd y cpufreqd (actualmente cpuspeed). Por este motivo, ningn daemon de estos paquetes debe ejecutarse de forma paralela al daemon de powersave. Incluso cuando su sistema no disponga de todos los componentes de hardware mencionados arriba (APM y ACPI se excluyen mutuamente), se recomienda utilizar el daemon de powersave para regular la funcin de ahorro de energa. Este daemon detecta automticamente cualquier cambio en la conguracin del hardware.

9
Gestin de energa

Atencin
Informacin sobre powersave Puede obtener informacin adicional sobre el paquete powersave en /usr/share/doc/packages/powersave/README_POWERSAVE.

Atencin 9.5.1. Conguracin del paquete powersave

En general, la conguracin de powersave est distribuida en varios archivos: /etc/powersave.conf El daemon de powersave necesita este archivo para delegar a powersave_proxy el procesamiento de los eventos que se produzcan en el sistema. Asimismo, aqu pueden congurarse opciones denidas por el usuario para controlar el funcionamiento del daemon. /etc/sysconfig/powersave/common Mediante este archivo se realiza la conguracin general del script de arranque (rcpowersave) y del proxy. Los valores predeterminados pueden utilizarse tal y como estn en la mayora de los casos.

SUSE LINUX Manual de Administracin

253

/etc/sysconfig/powersave/scheme_* Este archivo contiene los esquemas o perles que regulan el ajuste del consumo de energa en funcin de los distintos escenarios de aplicacin. Algunos de estos perles estn ya precongurados y pueden utilizarse sin ms. No obstante, aqu tambin puede almacenar sus propios perles.

9.5.2.

Conguracin de APM y ACPI

Suspend y standby En el archivo /etc/sysconfig/powersave/common se pueden denir los mdulos o servicios crticos que deben descargarse o pararse antes de pasar al modo suspend o standby. Si el sistema vuelve a arrancarse posteriormente, estos se cargan o inician de nuevo. Las opciones predeterminadas de conguracin afectan sobre todo a los mdulos USB y PCMCIA. POWERSAVE_SUSPEND_RESTART_SERVICES="" Aqu puede especicar los servicios que deben reiniciarse despus de un suspend. POWERSAVE_STANDBY_RESTART_SERVICES="" Aqu puede especicar los servicios que deben reiniciarse despus de un standby. POWERSAVE_UNLOAD_MODULES_BEFORE_SUSPEND="" Introduzca aqu los mdulos que deben descargarse antes de un suspend. POWERSAVE_UNLOAD_MODULES_BEFORE_STANBY="" Introduzca aqu los mdulos que deben descargarse antes de un standby. Asimismo, asegrese de que se ha asignado los valores adecuados a las siguientes opciones para procesar correctamente suspend/standby y occurence/resume (estos son normalmente los valores predeterminados despus de instalar SUSE LINUX):
POWERSAVE_EVENT_GLOBAL_SUSPEND="prepare_suspend" POWERSAVE_EVENT_GLOBAL_STANDBY="prepare_standby" POWERSAVE_EVENT_GLOBAL_RESUME_SUSPEND="restore_after_suspend" POWERSAVE_EVENT_GLOBAL_RESUME_STANDBY="restore_after_standby"

254

9.5. El paquete powersave

En el archivo de conguracin del daemon de powersave, /etc/ powersave.conf, estos eventos son asignados al script powersave_proxy que se ejecuta cuando se producen dichos eventos (esta es la conguracin predeterminada despus de la instalacin):
global.suspend=/usr/sbin/powersave_proxy global.standby=/usr/sbin/powersave_proxy global.resume.suspend=/usr/sbin/powersave_proxy global.resume.standby=/usr/sbin/powersave_proxy

9
Gestin de energa

Estados de la batera denidos por el usuario En el archivo /etc/powersave.conf puede denir tres estados de carga de la batera (expresados en forma de porcentaje). Cuando se alcanzan dichos estados, el sistema avisa al usuario o lleva a cabo una accin determinada.
POWERSAVED_BATTERY_WARNING=20 POWERSAVED_BATTERY_LOW=10 POWERSAVED_BATTERY_CRITICAL=5

En el archivo de conguracin del daemon de powersave (/etc/ powersave.conf) se denen las acciones/scripts que han de ejecutarse cuando se rebasa un determinado nivel de carga. El tipo de accin en cuestin se dene en el archivo /etc/sysconfig/powersave/common:
POWERSAVE_EVENT_BATTERY_NORMAL="ignore" POWERSAVE_EVENT_BATTERY_WARNING="notify" POWERSAVE_EVENT_BATTERY_LOW="notify" POWERSAVE_EVENT_BATTERY_CRITICAL="suspend"

Existen tambin opciones adicionales que puede consultar directamente en el archivo de conguracin. Ajuste del consumo de energa en funcin de las condiciones de trabajo Es posible hacer que el funcionamiento del sistema dependa directamente de la forma de suministro de energa. As por ejemplo, el consumo de energa puede reducirse al utilizar el sistema con bateras y, a la inversa, el rendimiento del sistema puede aumentar de manera automtica en cuanto se conecte de nuevo a la red de suministro elctrico.

SUSE LINUX Manual de Administracin

255

Entre los parmetros sobre los que se puede inuir directamente cabe destacar la frecuencia de la CPU y la funcin de ahorro de energa de los discos IDE. Tal y como se dene en el archivo /etc/powersave.conf, el script powersave_proxy se encarga de ejecutar determinadas acciones al conectar/desconectar el ordenador a la red elctrica. En /etc/sysconfig/ powersave/common puede denir los escenarios (denominados perles o schemes) que deben utilizarse:
POWERSAVE_AC_SCHEME="performance" POWERSAVE_BATTERY_SCHEME="powersave"

Los perles se almacenan en diversos archivos del directorio /etc/sysconfig/powersave/. Su nombre est compuesto de scheme_<nombre_perfil>. En el ejemplo se hace referencia a dos perles: scheme_performance y scheme_powersave. Los perles performance, powersave y acoustic estn ya precongurados. El mdulo de gestin de energa de YaST le permite editar o borrar perles ya existentes, crear nuevos perles o modicar la correspondencia entre los perles y las formas de suministro de energa.

9.5.3.

Prestaciones adicionales de ACPI

En caso de que utilice ACPI, puede controlar la reaccin del sistema a las teclas ACPI ( Power Sleep como cubierta abierta o cubierta ce, as rrada). Segn se ha denido en el archivo /etc/powersave.conf, el script powersave_proxy se ocupa de ejecutar las acciones correspondientes. Dichas acciones pueden especicarse en el archivo /etc/sysconfig/ powersave/common. En este mismo archivo puede obtener informacin sobre cada una de las opciones posibles. POWERSAVE_EVENT_BUTTON_POWER="wm_shutdown" Al pulsar la tecla Power sistema apaga el gestor de ventanas co, el rrespondiente (KDE, GNOME, fvwm...). POWERSAVE_EVENT_BUTTON_SLEEP="suspend" Si se pulsa la tecla Sleep sistema pasa a modo suspend. , el POWERSAVE_EVENT_BUTTON_LID_OPEN="ignore" El abrir la tapa del porttil no provoca ninguna reaccin. POWERSAVE_EVENT_BUTTON_LID_CLOSED="screen_saver" Al cerrar la tapa del porttil se activa el salvapantallas.

256

9.5. El paquete powersave

Si el uso del procesador no sobrepasa un nivel determinado durante un periodo de tiempo denido, puede reducir todava ms su potencia. Para ello, dena en POWERSAVED_CPU_LOW_LIMIT el nivel de uso que el procesador no debe rebasar durante un periodo de tiempo determinado (que puede especicar en POWERSAVED_CPU_IDLE_TIMEOUT) para que se reduzca la potencia de la CPU.

9
Gestin de energa

9.5.4.

Resolucin de problemas

Las siguientes preguntas y respuestas cubren los problemas ms frecuentes que pueden aparecer en relacin con powersave. Hay un problema, pero no consigo localizarlo. . . Consulte el archivo /var/log/messages donde se registran todos los mensajes de error y avisos del sistema. Si a primera vista tampoco encuentra aqu la causa del problema, asigne el valor 7 o incluso 15 a la variable DEBUG en el archivo /etc/sysconfig/powersave/ common y reinicie el daemon para que los mensajes de powersave sean ms extensos e informativos. Ahora los mensajes de error en /var/log/messages sern algo ms detallados, lo que le ayudar a identicar el problema. A pesar de haber activado ACPI, los estados de la batera y las teclas ACPI no funcionan como se han congurado. . . Si surgen problemas con ACPI, utilice el comando dmesg|grep -i acpi para buscar los mensajes relacionados con ACPI en la salida de dmesg. Para solucionar el error puede ser necesario actualizar la BIOS. Con este n visite la pgina web del fabricante del porttil, busque una versin actual de la BIOS e instlela. Informe al fabricante de su sistema de que debe observar la especicacin actual de ACPI. Si el fallo sigue ocurriendo despus de actualizar la BIOS, busque en las siguientes pginas web un DSDT ms actual para sustituir la tabla DSDT de su sistema, la cual parece estar defectuosa: 1. Descargue de http://acpi.sourceforge.net/dsdt/ tables un DSDT adecuado para su sistema y asegrese de que el archivo est descomprimido y compilado (lo reconocer por la extensin .aml, ACPI Machine Language, del archivo). Si este es el caso, pase al punto 3.

SUSE LINUX Manual de Administracin

257

2. Si la extensin del archivo descargado es .asl (ACPI Source Language), debe compilarlo con la herramienta iasl incluida en el paquete pmtools. Para ello ejecute el comando iasl -sa <nombre_archivo>.asl. La versin ms actual de iasl (Intel ACPI Compiler) est disponible en http://developer. intel.com/technology/iapc/acpi/downloads.htm. 3. Copie el archivo DSDT.aml a su sistema (por ejemplo a /etc/ DSDT.aml). A continuacin edite /etc/sysconfig/kernel y modique la ruta del archivo DSDT en caso necesario. Inicie mkinitrd (paquete mkinitrd). Cuando desinstale el kernel y utilice mkinitrd para crear un initrd, el nuevo DSDT ser integrado y cargado durante el arranque. La frecuencia de la CPU no funciona. . . Compruebe por medio de las fuentes del kernel (paquete kernel-source) si su procesador est soportado y si debe utilizar un mdulo del kernel u opcin de mdulo especcos para activar la frecuencia de la CPU. Esta informacin est disponible en /usr/src/linux/Documentation/cpu-freq/*. En caso de que sea necesario emplear un mdulo u opcin determinados, congrelo en las variables CPUFREQD_MODULE y CPUFREQD_MODULE_OPTS del archivo /etc/sysconfig/powersave/common. Los modos suspend/standby no funcionan. . . Se conocen varios problemas relacionados con el kernel que pueden ser causa de que el modo suspend/standby no funcione en sistemas ACPI: Los sistemas con ms de 1 GB de RAM no soportan (todava) el modo suspend. Los sistemas con multiprocesador o con un procesador P4 (con hyperthreading) no soportan actualmente el modo suspend. El problema tambin puede deberse a una implementacin defectuosa del DSDT (BIOS). En este caso instale un nuevo DSDT como se describe bajo el ttulo A pesar de haber activado ACPI, los estados de la batera y las teclas ACPI no funcionan como se han congurado. . . . En sistemas ACPI y APM: Cuando el sistema trata de descargar mdulos defectuosos, el proxy se cuelga y el modo suspend no se desencadena.

258

9.5. El paquete powersave

Tambin puede ocurrir que no se descarguen o detengan mdulos o servicios que eviten el paso al modo suspend. En ambos casos se recomienda manipular las siguientes opciones de conguracin en el archivo /etc/sysconfig/powersave/common hasta averiguar qu mdulo causa el problema:
POWERSAVE_UNLOAD_MODULES_BEFORE_SUSPEND="" POWERSAVE_UNLOAD_MODULES_BEFORE_STANDBY="" POWERSAVE_SUSPEND_RESTART_SERVICES="" POWERSAVE_STANDBY_RESTART_SERVICES=""

9
Gestin de energa

Al utilizar ACPI, el daemon de powersave no reacciona cuando se alcanza un nivel determinado de la batera. . . En sistemas con ACPI, el sistema operativo puede pedir a la BIOS una noticacin cuando se rebasa un nivel determinado de carga de la batera. La ventaja de este mtodo es que no es necesario leer continuamente el nivel de la batera, lo que repercutira negativamente en el rendimiento del ordenador. No obstante, puede ocurrir que, a pesar de que debera funcionar segn la BIOS, esta noticacin no se produzca ni siquiera al rebasar el lmite. Si observa este fenmeno en su sistema, asigne el valor yes a la variable POWERSAVED_FORCE_BATTERY_POLLING en el archivo /etc/powersave.conf para forzar la lectura del estado de la batera.

SUSE LINUX Manual de Administracin

259

9.6.

El mdulo de gestin de energa de YaST

El mdulo de gestin de energa de YaST le permite congurar todas las opciones relacionadas con la gestin de energa descritas en las secciones anteriores. Despus de iniciar el mdulo desde el centro de control de YaST (Sistema Gestin de energa), aparece la primera mscara del mdulo (ver gura 9.1). En esta mscara puede seleccionar los perles o schemes que deben emplearse con los distintos modos de operacin del sistema (con batera o conectado a la red de suministro elctrico).

Figura 9.1: Gestin de energa en YaST: seleccin de perles En esta mscara puede seleccionar del men desplegable cualquiera de los perles disponibles, o bien acceder a una lista de los perles existentes por medio del botn Editar perles (gura 9.2 en la pgina siguiente).

260

9.6. El mdulo de gestin de energa de YaST

9
Gestin de energa

Figura 9.2: Gestin de energa en YaST: perles disponibles

Seleccione en la lista el perl que desea modicar y pulse en Editar para pasar al dilogo de edicin (ver gura 9.3 en la pgina siguiente). Otra posibilidad consiste en crear un nuevo perl con el botn Aadir. El dilogo que aparece a continuacin es idntico en ambos casos. En primer lugar, asigne un nombre y una descripcin al perl que desea crear o modicar. En la seccin relativa al disco duro ha de denir unas normas de comportamiento para el modo standby (Standby Policy) orientadas bien a conseguir un rendimiento mximo o un bajo consumo de energa. Las directrices acsticas (Acoustic Policy) regulan el nivel de ruido del disco duro. Pulsando en Siguiente pasa al dilogo de conguracin de las secciones CPU y Cooling Policy. CPU incluye las opciones CPU Frequency Scaling y Throttling, las cuales permiten regular hasta qu punto debe reducirse la frecuencia de la CPU en caso necesario. La seccin Cooling Policy regula el tipo de refrigeracin que debe emplearse. Una vez que ha seleccionado todas las opciones para el perl, abandone este dilogo con Aceptar y vuelva al dilogo de inicio (gura 9.1 en la pgina anterior). All puede seleccionar el perl recin creado para uno de los dos modos de operacin. La nueva conguracin se activa al cerrar el dilogo con Aceptar.

SUSE LINUX Manual de Administracin

261

Figura 9.3: Gestin de energa en YaST: crear un nuevo perl

Adems de seleccionar el perl para los distintos modos de operacin, en el dilogo de inicio (ver gura 9.1 en la pgina 260) tiene tambin la posibilidad de congurar opciones globales para la gestin de energa, para lo que puede utilizar los botones Avisos de la batera o Conguracin ACPI. Pulse Avisos de la batera para acceder al dilogo sobre el estado de carga de la batera ( 9.4 en la pgina siguiente). En cuanto se rebasa un nivel de capacidad previamente denido, la BIOS enva una noticacin al sistema operativo que puede dar lugar a diversas acciones. Este dilogo le permite denir tres lmites que, al ser rebasados, desencadenarn unos procesos determinados. Estos tres lmites se reeren a los estados Aviso del nivel de batera, Batera baja y Nivel crtico de batera. Al alcanzar los dos primeros valores, el usuario suele recibir un mensaje de aviso. En cambio, el sobrepasar el ltimo nivel crtico hace que el ordenador pase al modo suspend, ya que la energa restante resulta insuciente para garantizar el funcionamiento adecuado del sistema incluso a corto plazo.

262

9.6. El mdulo de gestin de energa de YaST

9
Gestin de energa

Figura 9.4: Gestin de energa en YaST: estado de carga de la batera

Seleccione aqu los estados de carga adecuados para sus necesidades as como las acciones correspondientes. Despus de abandonar el dilogo con Aceptar, vuelve al dilogo de inicio. Para acceder desde aqu al dilogo de conguracin de las teclas ACPI (ver gura 9.5 en la pgina siguiente), pulse el botn Conguracin ACPI.

SUSE LINUX Manual de Administracin

263

Figura 9.5: Gestin de energa en YaST: conguracin ACPI Mediante la conguracin de las teclas ACPI puede denir la reaccin del sistema ante eventos tales como el accionamiento de un botn determinado. En ACPI se conoce a estos botones/eventos como teclas. Aqu pue de congurar la reaccin del sistema al pulsar las teclas Power Sleep , o al hecho de cerrar la tapa del porttil. Una vez denidas las opciones de conguracin, pulse Aceptar para salir de la mscara y volver al dilogo de inicio (gura 9.1 en la pgina 260). Pulsando de nuevo Aceptar, abandonar el mdulo por completo y se aplicar la nueva conguracin de la gestin de energa.

264

9.6. El mdulo de gestin de energa de YaST

Parte III El sistema

10
SUSE LINUX en sistemas AMD64

SUSE LINUX en sistemas AMD64

AMD present a la opinin pblica su procesador AMD Athlon 64 en septiembre de 2003. Este nuevo procesador es de 64 bits y puede por tanto ejecutar los nuevos programas AMD64 de 64 bits al mismo tiempo que permite la ejecucin de programas x86 de 32 bits ya existentes con igual rendimiento.

10.1. SUSE LINUX de 64 bits para AMD64 . . . . . . . . . 268 10.2. Informacin adicional . . . . . . . . . . . . . . . . . 270

Los programas de 64 bits admiten espacios de direcciones ms grandes y ofrecen un mejor rendimiento gracias a registros adicionales (soportados exclusivamente en modo de 64 bits) y a otras novedades como las modernas convenciones de llamada (Calling conventions) para funciones. Con este producto, SUSE LINUX soporta el nuevo procesador por partida doble: SUSE LINUX de 32 bits para x86 lo soporta como procesador de 32 bits al igual que soporta los procesadores Athlon de AMD y Pentium de Intel. El nuevo SUSE LINUX de 64 bits para AMD64 lo soporta en modo de 64 bits. Asimismo se soporta la ejecucin y el desarrollo de programas x86 de 32 bits.

Atencin
Por razones histricas, la salida del comando uname -m es x86_64, ya que este era el nombre de la primera especicacin de AMD.

Atencin

10.1.
10.1.1.

SUSE LINUX de 64 bits para AMD64


Hardware

En la parte del hardware, AMD64 no se diferencia de los sistemas Athlon normales desde el punto de vista del usuario. Las interfaces y buses de uso corriente son idnticos en ambas plataformas y continan soportndose. Debido a que los controladores de hardware para Linux en AMD64 han de ser de 64 bits, puede que tengan que ser adaptados parcialmente. Algunas tarjetas antiguas no funcionan en la actualidad, pero el soporte de hardware actual debera ser el mismo en sistemas de 32 y de 64 bits.

268

10.1. SUSE LINUX de 64 bits para AMD64

10.1.2. Software
En la parte del software, casi todos los paquetes son de 64 bits si bien tambin se soporta la ejecucin de programas de 32 bits. Con este n se han desarrollado especialmente paquetes de libreras de 32 bits incluidas en la instalacin estndar. Para posibilitar la instalacin de libreras de 32 y 64 bits homnimas en el mismo sistema, las libreras de 32 bits se instalan en directorios /lib/ mientras que las de 64 bits lo hacen en /lib64/. De esta forma se consigue que los paquetes RPM de 32 bits puedan ser instalados sin cambios. Desde el punto de vista del administrador y el usuario, la distincin entre 32 y 64 bits no se aprecia directamente, ya que todos los programas presentan el mismo aspecto y comportamiento.

10
SUSE LINUX en sistemas AMD64

10.1.3. Instalacin de software de 32 bits


Puede que sea necesario convencer al software de 32 bits que ejecuta uname para determinar la arquitectura de que funcione en sistemas AMD64. Con este n puede utilizarse el programa linux32. Una vez empleado, la salida de uname -m se modica:
uname -m x86_64 linux32 uname -m i686

10.1.4. Desarrollo de software en sistemas de 64 bits


Con SUSE LINUX para sistemas AMD64 pueden desarrollarse programas 32 y de 64 bits. Los compiladores GNU generan normalmente cdigo AMD64 de 64 bits. El conmutador -m32 se encarga de crear cdigo x86 de 32 bits que funcione tambin en sistemas AMD Athlon de 32 bits o Intel Pentium. Para desarrollar cdigo de 64 bits es necesario utilizar libreras de 64 bits. Aunque las rutas /lib64/ y /usr/lib64/ se examinan siempre, para cdigo X11 es necesario por ejemplo emplear -L/usr/X11R6/lib64. Por lo tanto, puede que haga falta adaptar los makeles.

SUSE LINUX Manual de Administracin

269

Una opcin para depurar el cdigo es GDB, el cual se llama gdb para programas AMD64 de 64 bits y gdb32 para programas x86 de 32 bits. La herramienta strace es capaz de examinar ambas clases de programas y la librera Tracer ltrace dispone tambin de un programa especco para 32 bits: ltrace32.

10.2.

Informacin adicional

Puede obtener informacin adicional en la pgina web de AMD (http: //www.amd.com) y en la pgina del proyecto Linux en AMD64 (http: //www.x86-64.org).

270

10.2. Informacin adicional

11
El kernel de Linux

El kernel de Linux

El kernel se encarga de administrar el hardware en los sistemas Linux y de ponerlo a disposicin de los diversos procesos. Las siguientes pginas no le servirn para convertirse en un hacker del kernel, pero le ayudarn a realizar una actualizacin del mismo y a ser capaz de compilar e instalar un kernel congurado. Si sigue las instrucciones de este captulo, el kernel funcionar adecuadamente y lo podr arrancar en cualquier momento.

11.1. Actualizacin del kernel . . . . . . . . . . . . . 11.2. Las fuentes del kernel . . . . . . . . . . . . . . . 11.3. Conguracin del kernel . . . . . . . . . . . . . 11.4. Mdulos del kernel . . . . . . . . . . . . . . . . 11.5. Ajustes en la conguracin del kernel . . . . . 11.6. Compilacin del kernel . . . . . . . . . . . . . . 11.7. Instalacin del kernel . . . . . . . . . . . . . . . 11.8. Limpieza del disco despus de la compilacin

. . . . . . . .

. . . . . . . .

. . . . . . . .

272 273 273 275 277 278 278 280

El kernel, que se copia al directorio /boot/ durante la instalacin, est congurado de tal forma que cubre un amplio espectro de hardware. Por eso en la mayora de los casos no es necesario generar un kernel propio, a no ser que quiera probar utilidades o controladores en fase de experimentacin. Ya existen makefiles para la creacin de un nuevo kernel; con ayuda de estas el proceso se realiza casi de forma automtica. Slo la seleccin del hardware y prestaciones que el kernel debe soportar tiene que realizarse de forma interactiva. Puesto que para realizar la seleccin correcta, debe conocer su sistema bastante bien, le recomendamos al menos en el primer intento que modique archivos de conguracin ya existentes y en funcionamiento, con el n de disminuir el riesgo de una realizar una conguracin inadecuada.

11.1.

Actualizacin del kernel

Para instalar un kernel de actualizacin de SUSE, descargue en su ordenador el paquete de actualizacin del servidor FTP de SUSE o de una rplica como por ejemplo: ftp://ftp.gwdg.de/pub/linux/suse/. Si no sabe qu versin del kernel est presente en su sistema, puede examinar la secuencia de versin con el comando cat /proc/version. Tambin puede averiguar a qu paquete pertenece el kernel /boot/ vmlinuz con el comando rpm -qf /boot/vmlinuz. Antes de la instalacin haga una copia de seguridad del kernel original y del initrd correspondiente. Para ello ejecute los siguientes comandos como root:
cp /boot/vmlinuz /boot/vmlinuz.old cp /boot/initrd /boot/initrd.old

Instale ahora el nuevo paquete con el comando rpm -Uvh <nombre_paquete>. No olvide introducir el nmero de versin correspondiente. A partir de SUSE LINUX 7.3 se utiliza reiserfs como sistema de archivos estndar, lo que presupone un initial ramdisk. Este se escribir de nuevo con el comando mk_initrd. En el caso de versiones actuales de SUSE LINUX, esto sucede automticamente durante la instalacin del kernel. Si se da el caso de que quiere arrancar el antiguo kernel, debe congurar el cargador de arranque (bootloader) de forma correspondiente. Para obtener ms informacin consulte el captulo 7 en la pgina 187.

272

11.1. Actualizacin del kernel

Si desea instalar el kernel original de los CDs de SUSE Linux, el proceso es similar. En el directorio boot/ del CD1 o DVD puede encontrar el kernel estndar como paquete rpm. Instlelo como se ha descrito anteriormente. En caso de que reciba un mensaje de error indicando que ya existe un nuevo paquete instalado, aada la opcin --force al comando rpm.

11
El kernel de Linux

11.2.

Las fuentes del kernel

Para poder generar un kernel propio se deben instalar las fuentes del kernel (paquete kernel-source). El resto de los paquetes necesarios como el compilador de C (gcc), los GNU Binutils (binutils) y las libreras de C (Include-les) (glibc-devel), se instalarn automticamente. Tras la instalacin, las fuentes del kernel se encuentran en el directorio /usr/src/linux-<versin_kernel>/. Si le gusta experimentar con el kernel y tener varias versiones en el disco, resulta bastante prctico desempaquetar las fuentes de los diferentes kernel en diferentes directorios y acceder a las actualmente vlidas mediante un enlace, ya que existen paquetes de software que esperan encontrar las fuentes del kernel de /usr/src/linux. YaST instala los paquetes de esta forma automticamente.

11.3.

Conguracin del kernel

La conguracin del kernel ejecutndose actualmente se encuentra en el archivo /proc/config.gz. Para modicar esta conguracin conforme a sus necesidades, cambie como usuario root al directorio /usr/src/ linux/ y ejecute el siguiente comando:
zcat /proc/config.gz > .config make oldconfig

El comando make oldconfig utiliza el archivo /usr/src/linux/ .config como plantilla para la conguracin actual del kernel. En caso de haber aadido nuevas opciones a las fuentes del kernel empleadas actualmente, el script le pregunta ahora sobre las mismas. Si el archivo .config no existe, se utilizar una conguracin predeterminada (default) incluida en las fuentes del kernel.

SUSE LINUX Manual de Administracin

273

11.3.1.

Conguracin en la lnea de comandos

Para congurar el kernel, cambie a /usr/src/linux e introduzca el comando make config. A continuacin aparece una serie de preguntas sobre las funciones que el kernel debe soportar y para contestarlas existen generalmente dos o tres posibilidades: Ya sea el sencillo bien y o n o y (yes), n (no) o m (mo m signica que el controlador correspondiente no se incorpora jo dule). en el kernel, sino que es posible aadirlo en tiempo de ejecucin. Por supuesto, todos los controladores que se necesitan para arrancar el sistema y. deben incorporarse de forma ja al kernel; para estos mdulos pulse Intro para conrmar la seleccin que se leer de .config. Al presioPulse nar cualquier otra tecla, aparece una ayuda corta sobre la correspondiente opcin.

11.3.2.

Conguracin en modo texto

Una va ms asequible para congurar el kernel se consigue con menucong, para lo que debe instalar el paquete ncurses-devel con YaST. Arranque la conguracin del kernel con el comando make menuconfig. Si el cambio en la conguracin es pequeo, no tiene por qu pasar por todas las preguntas. sino que tambin puede elegir directamente en el men los campos que le interesan. Las conguraciones predeterminadas se encuentran en .config. Para cargar otra conguracin, escoja el punto del men Load an Alternate Conguration File e introduzca el nombre del archivo.

11.3.3.

Conguracin en el sistema X Windows

Si en su sistema estn instalados el sistema X Window (paquete xf86) y Tcl/Tk (paquetes tcl y tk), tambin puede iniciar el proceso de instalacin con el comando make xconfig. De este modo se dispone de una interfaz grca ms confortable pero es preciso iniciar el sistema X Window como superusuario root o bien introducir primero en Shell xhost + como usuario normal para poder tener acceso a la pantalla como root. Las conguraciones predeterminadas se encuentran en .config, por lo que mientras no realice una nueva conguracin, las conguraciones en este archivo son las que se corresponden con el kernel estndar de SuSE.

274

11.3. Conguracin del kernel

Tenga presente que el mantenimiento en la conguracin mediante make xconfig no es tan bueno como con las otras opciones de conguracin. Por este motivo, siempre debera ejecutar un make oldconfig despus de este mtodo de conguracin.

11
El kernel de Linux

11.4.

Mdulos del kernel

Existe una gran cantidad de componentes de hardware para PCs. Para utilizar este hardware correctamente, se necesita un controlador que haga de intermediario entre el sistema operativo (en Linux es el kernel) y el hardware. Normalmente existen dos mecanismos para integrar controladores en el kernel: Controladores unidos al kernel. En este manual denominaremos a este tipo de kernel de una sola pieza como kernel monoltico. Algunos controladores slo pueden funcionar de esta forma. Controladores cargados en el kernel cuando se necesitan, lo que denominaremos como kernel modularizado. La ventaja aqu es que slo se cargan los controladores que se necesitan realmente y por lo tanto el kernel no contiene ninguna carga innecesaria. En la conguracin del kernel se dene qu controladores se unirn al mdulo y cules se aadirn como mdulos. Todos los componentes del kernel que no sean necesarios durante el proceso de arranque debern aadirse como mdulos. De esta forma nos aseguramos de que el kernel no aumente excesivamente de tamao, lo que provocara dicultades al ser cargado por la BIOS y por el cargador de arranque. El controlador de los discos duros, soporte para ext2 y similares se suelen compilar directamente en el kernel; mientras que el soporte para isofs, msdos o sound se debe compilar como mdulo. Los mdulos del kernel se guardan en el directorio /lib/ modules/pathversin, donde versin corresponde a la versin actual del kernel.

11.4.1.

Detectar el hardware actual con hwinfo

SUSE LINUX incluye el programa hwinfo con el que puede detectar el hardware actual de su ordenador para asignar as los controladores disponibles. Puede obtener unas lneas de ayuda sobre este programa con el comando hwinfo --help.

SUSE LINUX Manual de Administracin

275

Por ejemplo, para obtener los datos del dispositivo SCSI integrado, utilice el siguiente comando:
hwinfo --scsi

El resultado de este programa de ayuda se encuentra tambin en el mdulo de informacin de hardware de YaST.

11.4.2.

Manejo de los mdulos

Existen los siguientes comandos para trabajar con mdulos: insmod El comando insmod carga el mdulo indicado que se busca en un subdirectorio de /lib/modules//<version>. Se recomienda dejar de usar insmod en favor del comando modprobe. rmmod Este comando descarga el mdulo indicado, lo cual solo es posible cuando se ha dejado de usar esta funcin del mdulo, y no es posible descargar por ejemplo el mdulo isofs cuando todava hay un CD montado. depmod Este comando genera en el directorio /lib/modules/ <version> el archivo modules.dep que registra la dependencia de los mdulos entre s. De este modo hay seguridad de que se cargan automticamente todos los mdulos que dependen del primero. El archivo con las dependencias de los mdulos se genera automticamente cuando Linux se inicia (salvo que el archivo ya exista). modprobe Carga o descarga de un mdulo considerando las dependencias con otros. El comando es muy verstil as que se puede usar para muchas otras cosas (por ejemplo para probar todos los mdulos de un determinado tipo hasta que se cargue uno exitosamente). Al contrario de insmod, modprobe evala el archivo /etc/modprobe.conf y por eso solo se debera usar para cargar mdulos. La pgina de manual de modprobe explica todas las posibilidades. lsmod Muestra los mdulos actualmente cargados y sus dependencias. Los mdulos que fueron cargados por el daemon del kernel se identican por autoclean al nal de la lnea. Esta palabra indica que se trata de un mdulo que se descarga automticamente cuando deja de ser usado para un determinado tiempo y si se hayan tomado las medidas necesarias para ello, ver 11.4.4 en la pgina siguiente.

276

11.4. Mdulos del kernel

modinfo Muestra informacin sobre un mdulo.

11
El kernel de Linux

11.4.3.

/etc/modprobe.conf

Los archivos /etc/modprobe.conf, /etc/modprobe.conf.local y el directorio /etc/modprobe.d controlan la carga de mdulos (ver la pgina del manual man modprobe.conf). Este archivo permite indicar los parmetros para aquellos mdulos que acceden directamente al hardware y por lo tanto deben ser adaptados especcamente al ordenador (por ejemplo controlador de unidades CD-ROM o controlador para tarjetas red). Los parmetros aqu mencionados se describen en las fuentes del kernel. Instale con este n el paquete kernel-source y lea la documentacin en el directorio /usr/src/linux/Documentation/.

11.4.4.

Kmod el cargador de mdulos del kernel (Kernel Module Loader)

El modo ms elegante para emplear mdulos de kernel es el uso del cargador de mdulos del kernel. Kmod permanece en segundo plano y se ocupa de cargar automticamente los mdulos con llamadas a modprobe cuando se necesita la correspondiente funcin del kernel. Para usar el Kmod se debe activar, durante la conguracin del kernel, la opcin Kernel module loader (CONFIG_KMOD). Kmod no est diseado para descargar automticamente mdulos; pensando en la cantidad de memoria RAM de los ordenadores de hoy en da, se trata de un operacin no necesaria, ya que con la descarga de un mdulo se desocupara muy poca memoria. Los servidores que cumplen tareas muy especcas trabajan ms rpido con un kernel monoltico.

11.5.

Ajustes en la conguracin del kernel

Debido a su gran nmero, no es posible detallar en este manual todas las opciones que ofrece la conguracin del kernel, pero se puede usar la completa ayuda en lnea de la que se dispone durante la conguracin del kernel. Lo ms nuevo en cuanto a documentacin se encuentra siempre en el paquete de las fuentes del kernel en el directorio /usr/src/linux/ Documentation/ (siempre y cuando el paquete kernel-source est instalado).

SUSE LINUX Manual de Administracin

277

11.6.

Compilacin del kernel

Recomendamos generar un bzImage con el cual se evita el efecto de un kernel demasiado grande. Es algo que ocurre a menudo cuando se han seleccionado demasiadas caractersticas y luego se genera un zImage. Con bzImage se evitan entonces los mensajes tpicos como "kernel too big" o "System is too big". Una vez adaptado el kernel a sus necesidades, debe iniciar la compilacin en /usr/src/linux/:
make clean make bzImage

Puede introducir tambin ambos comandos en una sola lnea:


make clean bzImage

Despus de una compilacin correcta, puede encontrar el kernel comprimido en /usr/src/linux/arch/<arch>/boot/. La imagen del kernel el archivo que contiene el kernel se llama bzImage. Si este no se encuentra en el mencionado directorio, lo ms probable es que haya ocurrido un error durante la compilacin. Si trabaja con el bash, puede utilizar:
make bzImage 2> &1 | tee kernel.out

para volver a iniciar el proceso de compilacin y dejar que se escriba en el archivo kernel.out. Si hay funciones del kernel que se realizan con mdulos, es preciso compilarlos, lo cual se consigue con el comando make modules.

11.7.

Instalacin del kernel

Despus de la compilacin del kernel se debe procurar tambin que este se inicie; para lo que es preciso reinstalarlo. Si se usa LILO para arrancar, tambin es preciso reinstalarlo. Lo ms fcil es copiar el nuevo kernel a /boot/vmlinuz e iniciar despus LILO. Sin embargo, es mejor conservar el kernel antiguo (como /boot/vmlinuz. old) para evitar sorpresas en caso de que el nuevo no funcione como se espera:

278

11.6. Compilacin del kernel

11
cp /boot/vmlinuz /boot/vmlinuz.old cp arch/i386/boot/bzImage /boot/vmlinuz lilo

El kernel de Linux

El comando make bzlilo realiza estos tres pasos con una sola orden.

Atencin
En caso de utilizar GRUB como cargador de arranque, no es necesario reinstalarlo. As pues, realice slo los dos primeros pasos para copiar el kernel en el lugar adecuado del sistema.

Atencin
Los mdulos compilados tambin se deben instalar. El comando make modules_install los copia en los directorios de destino correctos (/lib/modules//<version>/). Los mdulos antiguos de la misma versin de kernel se suprimen. Esto no representa mucho problema ya que se pueden instalar nuevamente desde los CDs, junto con el kernel.

Atencin
Si se incorporan mdulos al kernel, es necesario eliminarlos de /lib/modules/<version>/, ya que en caso contrario pueden aparecer efectos extraos. Por eso se ruega encarecidamente a los principiantes en materia de Linux, no compilar un kernel propio.

Atencin
Para que LILO o GRUB puedan arrancar el kernel antiguo (ahora /boot/ vmlinuz.old), introduzca en el archivo /etc/lilo.conf o /boot/ grub/menu.lst una etiqueta adicional Linux.old como imagen de arranque. Este procedimiento se describe de forma detallada en el captulo 7 en la pgina 187. Si utiliza LILO como cargador de arranque, ha de volver a ejecutar lilo cada vez que modique el archivo /etc/lilo.conf. En el caso de GRUB no es necesario reinstalarlo. Adems debe tener en cuenta lo siguiente: el archivo /boot/System.map contiene los smbolos del kernel necesarios para que los mdulos puedan acceder correctamente a las funciones del kernel. Este archivo depende de la versin actual del kernel por lo que se debera copiar el archivo actual (despus de cada compilacin este archivo se genera de nuevo) /usr/src/linux/System.map al directorio /boot/ una vez que la compilacin haya nalizado. Si se usa el comando make bzlilo o make zlilo para generar el kernel, la mencionada copia se realiza automticamente.

SUSE LINUX Manual de Administracin

279

Si obtiene un mensaje como "System.map does not match actual kernel" durante el arranque del sistema, signica que el archivo System.map no se ha copiado al directorio /boot/ despus de compilar el kernel.

11.8.

Limpieza del disco despus de la compilacin

Los archivos objeto que se generan durante la compilacin del kernel se pueden borrar si ocupan demasiado espacio de disco:
cd /usr/src/linux make clean

Sin embargo, si dispone de suciente espacio de disco y adems piensa modicar la conguracin del kernel puede saltarse este paso. De este modo la nueva compilacin se lleva a cabo mucho ms rpido, ya que slo se compilan las partes del sistema que han sido modicadas.

280

11.8. Limpieza del disco despus de la compilacin

12
Caractersticas del sistema

Caractersticas del sistema

Este captulo le proporciona informacin sobre Filesystem Hierarchy Standard (FHS) y Linux Standard Base (LSB). Asimismo, en estas pginas se describen algunos paquetes de software y particularidades del sistema tales como el arranque con initrd, el programa linuxrc y el sistema de rescate.

12.1. Estndares de Linux . . . . . . . . . . . . 12.2. Observaciones sobre paquetes especiales 12.3. Arrancar con initial ramdisk . . . . . . . . 12.4. linuxrc . . . . . . . . . . . . . . . . . . . . 12.5. El sistema de rescate de SUSE . . . . . . . 12.6. Consolas virtuales . . . . . . . . . . . . . . 12.7. Distribucin del teclado . . . . . . . . . . 12.8. Conguracin nacional I18N/L10N . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

282 283 289 294 301 305 305 306

12.1.
12.1.1.

Estndares de Linux
Linux Standard Base (LSB)

SUSE apoya activamente la labor del proyecto Linux Standard Base. Puede obtener informacin adicional sobre el mismo en http://www. linuxbase.org. La versin de la especicacin LSB disponible actualmente es 1.3.x. El estndar de la jerarqua del sistema de archivos o FHS (Filesystem Hierarchy Standard) forma parte de la especicacin y determina, entre otras cosas, el formato de los paquetes y el arranque del sistema (ver captulo 13 en la pgina 311).

12.1.2.

Filesystem Hierarchy Standard (FHS)

En conformidad con la especicacin LSB, SUSE LINUX cumple el estndar de la jerarqua del sistema de archivos (Filesystem Hierarchy Standard ) (FHS, paquete fhs), vase http://www.pathname.com/fhs/. Por lo tanto, a veces es necesario mover archivos o directorios al lugar correcto en el rbol de directorios tal y como est establecido en FHS. Uno de los objetivos de FHS es, por ejemplo, denir una estructura que permita montar (mount) /usr en modo read-only.

12.1.3. teTeX TeX en SuSE Linux


TeX es un complejo juego de caracteres que funciona en una gran cantidad de plataformas y se puede ampliar mediante paquetes macros como LaTeX. Est compuesto de muchos archivos individuales, que se combinan conforme a la estructura de directorios TeX (TDS, TeX Directory Structure) (vase ftp://ftp.dante.de/tex-archive/tds/). teTeX es una recopilacin del software TeX actual. En SUSE LINUX, teTeX est disponible con una conguracin que cumple las exigencias tanto de TDS como de FHS.

12.1.4. Sobre FTP


El paquete ftpdir contiene un entorno de muestra para facilitar la conguracin de un servidor FTP. Este entorno se instala en /srv/ftp.

282

12.1. Estndares de Linux

12.1.5. Sobre HTTP


El servidor web estndar en SUSE LINUX es Apache, que se instala junto con algunos documentos de muestra en el directorio /srv/www. Para poner en marcha un servidor web propio se recomienda denir un DocumentRoot personalizado en el archivo /etc/httpd/httpd.conf en el que colocar sus archivos (documentos, imgenes, etc.).

12
Caractersticas del sistema

12.2.

Observaciones sobre paquetes especiales

12.2.1. El paquete bash y /etc/prole


Cuando se inicia como shell de login bash evala los los archivos de inicializacin el siguiente orden: 1. /etc/profile 2. ~/.profile 3. /etc/bash.bashrc 4. ~/.bashrc Los usuarios pueden efectuar sus propias entradas en ~/.profile o en ~/.bashrc. Para garantizar que estos archivos sean procesados correctamente, recomendamos reproducir la conguracin bsica de /etc/skel/ .profile o /etc/skel/.bashrc en el directorio del usuario. Por tanto, despus de una actualizacin le aconsejamos adoptar las opciones de conguracin de /etc/skel. Para no perder las opciones personalizadas, ejecute los siguiente comandos en la shell:
mv cp mv cp ~/.bashrc ~/.bashrc.old /etc/skel/.bashrc ~/.bashrc ~/.profile ~/.profile.old /etc/skel/.profile ~/.profile

Una vez hecho esto, puede copiar las opciones personalizadas de los archivos *.old.

SUSE LINUX Manual de Administracin

283

12.2.2.

El paquete cron

Las tablas de cron se encuentran en /var/spool/cron/tabs. El archivo /etc/crontab se congura como tabla vlida para todo el sistema. En este archivo hay que introducir, adems de la hora, como qu usuario ha de ejecutarse la tarea correspondiente (ver archivo 12.1, en el que gura root como usuario); las tablas especcas de los paquetes (en /etc/cron.d/) siguen la misma losofa ver la pgina del manual man cron. Ejemplo 12.1: Ejemplo de entrada en /etc/crontab
1-59/5 * * * * root test -x /usr/sbin/atrun && /usr/sbin/atrun

No se puede usar el comando crontab -e para modicar /etc/ crontab; se debe modicar y guardar con un editor. Hay algunos paquetes que instalan scripts dentro de los directorios /etc/ cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/ y /etc/ cron.monthly/. De la ejecucin de estos se encarga /usr/lib/cron/ run-crons, que se inicia cada 15 minutos desde la tabla principal (/etc/ contrab). Las tareas diarias de mantenimiento del sistema estn divididas en varios scripts en aras de la claridad (paquete aaa_base). Por tanto, en /etc/cron.daily/ puede encontrar, junto a aaa_base, por ejemplo los componentes backup-rpmdb, clean-tmp o clean-vi.

12.2.3. Archivos de registro el paquete logrotate


Muchos servicios del sistema (daemons) y tambin el kernel mismo vuelcan peridicamente el estado del sistema y sucesos especiales en archivos de registro (logles). As el administrador puede controlar de forma ecaz en que estado se encontr el sistema en un momento determinado, detectar errores o funciones errneas y solucionarlos adecuadamente. Estos archivos de registro se guardan segn el FHS en /var/log y aumentan cada da su tamao. Con ayuda del logrotate se puede controlar el crecimiento de los archivos de registro.

284

12.2. Observaciones sobre paquetes especiales

Migracin a logrotate (8.0) Al actualizar una versin anterior a SUSE LINUX 8.0 se guardan parmetros de la conguracin anterior: Se mueven a /etc/logrotate.d/aaa_base las entradas de /etc/logfile, que no estn relacionadas con un paquete concreto. La antigua variable de rc.config MAX_DAYS_FOR_LOG_FILES se representa como dateext y maxage en el archivo de conguracin; ver man logrotate. Conguracin El archivo de conguracin /etc/logrotate.conf dene el comportamiento general. Mediante la indicacin include se determina principalmente qu archivos se deben evaluar; en SUSE LINUX est previsto que los paquetes individuales instalen archivos en /etc/logrotate.d (por ejemplo syslog o yast). Ejemplo 12.2: Ejemplo de /etc/logrotate.conf
# see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # uncomment this if you want your log files compressed #compress # RPM packages drop log rotation information into this directory include /etc/logrotate.d # no packages own lastlog or wtmp - well rotate them here #/var/log/wtmp { # monthly # create 0664 root utmp # rotate 1 #} # system-specific logs may be also be configured here.

12
Caractersticas del sistema

logrotate se controla con cron; se arranca una vez al da mediante /etc/ cron.daily/logrotate.

SUSE LINUX Manual de Administracin

285

Atencin
La opcin create no reconsidera eventuales ajustes efectuados como administrador en los archivos /etc/permissions*. Por favor, asegrese de que no se produzcan conictos al realizar sus propios ajustes .

Atencin 12.2.4. Pginas man

Para algunos programas GNU, no se siguen manteniendo las pginas man (por ejemplo tar). En su lugar se puede usar como ayuda rpida la extensin --help o los archivos del tipo info. Info (info) es el sistema de hipertexto de GNU cuyo uso se explica con el comando info info. Se puede iniciar info a travs de Emacs con el comando emacs -f info o tambin slo con el comando info. De uso agradable son tkinfo, xinfo o el acceso a travs del sistema de ayuda.

12.2.5.

El comando ulimit

El comando ulimit (user limits) permite limitar los recursos del sistema o visualizarlos. ulimit es especialmente til para limitar el uso de la memoria por parte de las aplicaciones. As es posible evitar que una aplicacin se reserve demasiada o toda la memoria, lo que podra provocar el cuelgue del sistema. ulimit puede ejecutarse con varias opciones. Por ejemplo, las que limitan el gasto de memoria guran en la tabla 12.1. Cuadro 12.1: ulimit: Limitar los recursos para el usuario -m -v -s -c -a Tamao mximo de memoria RAM Tamao mximo de la memoria virtual Tamao mximo de la pila Tamao mximo de los archivo core Mostrar lmites establecidos

Los lmites para todo el sistema se pueden denir en /etc/profile.

286

12.2. Observaciones sobre paquetes especiales

Tambin es en este archivo donde se debe dar de alta la creacin de los archivos core que necesitan los programadores para depurar (debug) cdigo. Los usuarios no pueden aumentar los valores que el administrador del sistema dene en /etc/profile, pero s que pueden hacer una conguracin personal en ~/.bashrc. Ejemplo 12.3: Opciones de conguracin de ulimit en /.bashrc
# Limitar la memoria RAM ulimit -m 98304 # Limitar la memoria virtual ulimit -v 98304

12
Caractersticas del sistema

Todos los valores se han de indicar en KB. Informacin ms detallada se encuentra en la pgina del manual man bash.

Atencin
No todas las shells soportan instrucciones ulimit. Si debe realizar una conguracin ms compleja, PAM (por ejemplo pam_limits) le ofrece ms posibilidades.

Atencin 12.2.6. El comando free


El comando free es bastante engaoso cuando se trata de averiguar cmo se est utilizando la memoria RAM. Puede encontrar informacin til en /proc/meminfo. Hoy en da no se debera preocupar por esto ningn usuario que utilice un sistema operativo moderno como Linux. El concepto de memoria de trabajo libre viene de la poca en que an no exista ningn administrador de memoria unicado (unied memory management. En Linux existe el lema: memoria libre es memoria mala (free memory is bad memory). Como consecuencia, Linux siempre se esfuerza por equilibrar el uso de la memoria cach sin llegar nunca a dejar memoria libre (=sin usar). Bsicamente, el kernel no sabe directamente de programas o datos de usuarios; se dedica a administrar programas y datos en los denominados page cache. Cuando la memoria escasea, algunas partes se escriben en la zona de intercambio (swap) o en los archivos de los cuales lea al principio con ayuda de mmap; vase la pgina del manual de mmap.

SUSE LINUX Manual de Administracin

287

Adems el kernel dispone de otra memoria cach adicional, como la slab cache, que por ejemplo contiene los bferes empleados para el acceso a redes. De esta forma se solucionan las diferencias que puedan surgir entre los contadores de /proc/meminfo. La mayora, pero no todos, se pueden consultar en /proc/slabinfo.

12.2.7.

El archivo /etc/resolv.conf

La resolucin de nombres se regula en el archivo /etc/resolv.conf; vase apartado 14.6 en la pgina 361. Slo el script /sbin/modify_ resolvconf se encarga de modicar el archivo /etc/resolv.conf. Ningn programa por s mismo tiene el derecho de actualizar /etc/ resolv.conf. La conguracin de red y los datos correspondientes slo se pueden mantener coherentes si se cumple siempre esta regla.

12.2.8.

Conguracin de GNU Emacs

GNU Emacs es un entorno de trabajo bastante complejo. Puede encontrar ms informacin sobre el mismo en: ver http://www.gnu.org/ software/emacs/. En los siguientes prrafos se mencionan los archivos de conguracin que GNU Emacs procesa durante el inicio. Al iniciarse, Emacs lee diversos archivos para adaptarse o precongurarse conforme a las especicaciones del usuario, administrador de sistemas o del distribuidor segn corresponda. El archivo de inicio ~/.emacs es instalado en el directorio local de cada usuario por /etc/skel/; .emacs lee a su vez el archivo /etc/skel/ .gnu-emacs. Si un usuario desea modicar este archivo, se recomienda copiarlo en el propio directorio local de usuario y all realizar los cambios deseados:
cp /etc/skel/.gnu-emacs ~/.gnu-emacs

El archivo ~/.gnu-emacs-custom es creado en .gnu-emacs como custom-file. Si el usuario quiere realizar su propia conguracin por medio de la opcin customize, los cambios se guardarn en ~/.gnuemacs-custom. Junto con emacs se instala en SUSE LINUX el archivo site-start.el en el directorio /usr/share/emacs/site-lisp. El archivo site-start.

288

12.2. Observaciones sobre paquetes especiales

el se carga antes que el archivo de inicio ~/.emacs. site-start.el se ocupa, por ejemplo, de cargar automticamente archivos de conguracin que han sido instalados con paquetes complementarios de Emacs incluidos en la distribucin (ej.psgml). Tales archivos de conguracin se encuentran tambin en /usr/share/emacs/site-lisp y comienzan siempre con suse-start-. El administrador local de sistemas puede denir opciones de conguracin vlidas en todo el sistema con default.el. El archivo info sobre Emacs en el nodo Init File: info:/emacs/InitFile, contiene ms informacin sobre estos archivos. All tambin se describe cmo evitar que se carguen los mismos (en caso de que sea necesario). Los componentes de Emacs estn distribuidos en varios paquetes: Paquete bsico emacs. Adems hay que instalar normalmente el paquete emacs-x11, el cual contiene el programa con soporte para X11. En el paquete emacs-nox se incluye el programa sin soporte X11. emacs-info: documentacin en lnea en formato info. emacs-el contiene los archivos de libreras no compiladas en Emacs Lisp. Actualmente no es necesario. Numerosos paquetes adicionales que pueden ser instalados en caso necesario: emacs-auctex (para LaTeX); psgml (para SGML/XML); gnuserv (para el uso de cliente y servidor), etc.

12
Caractersticas del sistema

12.3. Arrancar con initial ramdisk


12.3.1. Planteamiento del problema
En cuanto el kernel de Linux est cargado y el sistema de archivos raz (/) montado, es posible ejecutar programas y cargar otros mdulos del kernel para proporcionar funciones adicionales. Para poder montar el sistema de archivos raz, se tienen que cumplir varias condiciones. Por una parte, el kernel necesita el controlador para acceder al dispositivo que contiene el sistema de archivos raz (sobre todo los controladores SCSI) y por otra parte, el kernel tiene que contener el cdigo necesario para leer el sistema de archivos (ext2, reiserfs, romfs, etc.).

SUSE LINUX Manual de Administracin

289

Adems es posible que el sistema de archivos raz ya est codicado, con lo cual se tendra que introducir la contrasea para montarlo. Hay diferentes soluciones para resolver el problema de los controladores SCSI. Una posibilidad sera un kernel que incluyera todos los controladores existentes, lo que tendra como desventaja el aumento de su tamao y el riesgo de que pudiera haber conictos entre todos los controladores. Otra solucin sera proporcionar diferentes kernels con uno o dos controladores SCSI cada uno. Esta solucin es tambin complicada ya que requiere una gran cantidad de kernels diferentes, cantidad que adems se multiplica por las diferentes optimizaciones para Athlon o SMP. La solucin ptima consiste en cargar el controlador SCSI como mdulo. Esta solucin requiere la posibilidad de ejecutar programas del rea (de memoria) de usuario antes de montar el sistema de archivos raz. Este procedimiento se puede realizar mediante el concepto de initial ramdisk (disco de memoria inicial).

12.3.2.

El concepto initial ramdisk

Los problemas mencionados arriba se resuelven mediante el initial ramdisk (tambin denominado initdisk o initrd). El kernel de Linux ofrece la posibilidad de cargar un sistema de archivos pequeo en un disco de memoria (ramdisk) para ejecutar programas dentro del mismo antes del montaje real del sistema de archivos raz. El cargador de arranque o bootloader (GRUB, LILO, etc.) se encarga de cargar el initrd. Todos los cargadores de arranque necesitan nicamente rutinas de la BIOS para leer los datos del disco. Si el cargador de arranque es capaz de cargar el kernel, este tambin puede cargar el disco de memoria inicial por lo que ya no se necesitan controladores especiales.

12.3.3.

Procedimiento de arranque con initrd

El cargador de arranque carga el kernel e initrd en la memoria e inicia el kernel, indicndole la existencia de un disco de memoria initrd as como su posicin en la memoria. Normalmente el initrd est comprimido, por lo que el kernel lo descomprime y lo monta como sistema de archivos temporal. A continuacin se inicia un programa denominado linuxrc dentro del disco initrd que se encarga de que pueda montarse el sistema de archivos raz autntico. En el momento en que linuxrc naliza, el disco temporal initrd se desmonta y el proceso de arranque reanuda su secuencia habitual montando el sistema de archivos raz verdadero.

290

12.3. Arrancar con initial ramdisk

El montaje de initrd y la ejecucin de linuxrc pueden considerarse como incisos dentro del proceso de arranque normal. Despus de montar las particiones raz verdaderas, el kernel intenta montar initrd en el directorio /initrd. En caso de error, por ejemplo porque el punto de montaje no existe, el kernel intentar desmontar el initrd. Si no lo consigue, el sistema es completamente operativo pero nunca ser posible liberar el espacio de memoria ocupado por initrd. El programa linuxrc Las condiciones que debe cumplir linuxrc dentro de initrd son las siguientes: debe tener el nombre especco linuxrc y se debe encontrar dentro del directorio raz de initrd. Por lo dems slo es necesario que el kernel lo pueda ejecutar. Esto signica que linuxrc puede ser un programa con enlace dinmico a las libreras, pero en este caso las libreras compartidas (shared libraries) se deben encontrar como es habitual bajo /lib en initrd. linuxrc tambin podra ser un script de la shell, pero para ello debera existir una shell en /bin. Resumiendo, se puede decir que initrd debe contener un sistema Linux mnimo que permita ejecutar el programa linuxrc. Durante la instalacin de SUSE LINUX se usa un linuxrc enlazado estticamente para mantener initrd lo ms pequeo posible. linuxrc se ejecuta con derechos de superusuario root. El autntico sistema de archivos raz Tan pronto como linuxrc termina, initrd se desmonta y el proceso de arranque contina con el kernel montando el sistema de archivos raz verdadero. linuxrc puede inuir sobre el tipo de sistema de archivo raz que se va a montar. Para ello slo es necesario que linuxrc monte el sistema de archivos /proc y escriba el valor del sistema de archivos raz en forma numrica en /proc/sys/kernel/real-root-dev.

12
Caractersticas del sistema

12.3.4. Cargadores de arranque


La mayora de los cargadores de arranque funciona con initrd (especialmente GRUB, LILO y syslinux). La forma de indicar a los cargadores de arranque que usen initrd es la siguiente: GRUB Introducir la siguiente lnea en /boot/grub/menu.lst:
initrd (hd0,0)/initrd

SUSE LINUX Manual de Administracin

291

Puesto que la direccin de carga de initrd se escribe en la imagen del kernel ya cargada, el comando initrd ha de ejecutarse a continuacin del comando del kernel. LILO Introducir la siguiente lnea en /etc/lilo.conf:
initrd=/boot/initrd

El archivo /boot/initrd es el disco de memoria inicial (initial ramdisk). Aunque no es necesario, es posible que se encuentre comprimido. syslinux Introducir la siguiente lnea en syslinux.cfg:
append initrd=initrd

A continuacin puede introducir en la misma lnea parmetros adicionales.

12.3.5.

Uso de initrd en SUSE

Instalacin del sistema Ya hace tiempo que se usa initrd para la instalacin. En el caso de la instalacin manual, el usuario puede cargar mdulos del kernel en linuxrc e introducir los datos necesarios para la instalacin (sobre todo el medio fuente). linuxrc inicia a continuacin YaST, que se encarga de la instalacin. Una vez que esta ha terminado, YaST indica a linuxrc el lugar donde se encuentra el sistema recin instalado. linuxrc anota este valor en /proc y reinicia el sistema. A continuacin YaST se vuelve a iniciar e instala los paquetes restantes en el sistema. Arrancar el sistema instalado Anteriormente YaST ofreca ms de 40 kernels para la instalacin, diferencindose unos de otros por incluir diferentes controladores SCSI. Esto era necesario para el montaje del sistema de archivos raz despus del arranque. Los dems controladores se podan cargar posteriormente como mdulos. Debido a que actualmente existen kernels optimizados, este concepto tuvo que abandonarse ya que haran falta ms de 100 imgenes de kernel diferentes.

292

12.3. Arrancar con initial ramdisk

Por lo tanto, hoy en da initrd se usa tambin para el inicio normal del sistema. El funcionamiento es anlogo al de la instalacin, con la salvedad de que linuxrc es ahora un sencillo script que slo se ocupa de cargar unos determinados mdulos. Por lo general se carga un solo mdulo que es el controlador SCSI, necesario para el acceso al sistema de archivos raz. Generar un initrd El initrd (initial ramdisk ) se genera mediante el script mkinitrd (antes mk_initrd). Los mdulos que se han de cargar se denen, en el caso de SUSE LINUX, con la variable INITRD_MODULES en /etc/sysconfig/ kernel. Despus de una instalacin esta variable contiene automticamente los valores correctos, ya que linuxrc detecta los mdulos que se han cargado. Estos se cargan exactamente en el orden en el que aparecen en la variable INITRD_MODULES, lo cual es importante cuando se cargan varios controladores SCSI porque la denominacin de los discos cambia cuando los mdulos se cargan en orden diferente. En realidad sera suciente cargar slo el controlador SCSI que proporciona acceso al sistema de archivos raz. La carga automtica posterior de controladores SCSI es complicada, por lo que preferimos cargar todos los controladores SCSI mediante el initrd.

12
Caractersticas del sistema

Atencin
La carga de initrd por parte del cargador de arranque funciona igual que la carga del kernel (LILO anota en su archivo map la ubicacin de estos datos) y por eso se requiere una nueva instalacin del cargador de arranque despus de cada cambio en initrd. Esto no es necesario en el caso de GRUB.

Atencin 12.3.6. Posibles problemas kernel compilado a medida


Despus de haber compilado un kernel a medida es posible que aparezcan ciertos problemas comunes. Por ejemplo, por descuido se ha creado un enlace jo para el controlador SCSI en el kernel, pero el initrd permanece invariable. A la hora de arrancar, el kernel ya contiene el controlador SCSI y el hardware es detectado. Por su parte, initrd trata de cargar el controlador otra vez como mdulo, lo que puede paralizar el sistema (especialmente en caso de aic7xxx).

SUSE LINUX Manual de Administracin

293

En realidad es un fallo del kernel, ya que no debera ser posible cargar de nuevo un controlador ya existente el problema ya se conoce por afectar tambin a los controladores para el puerto serie. Existen varias soluciones para solventar este problema: el controlador puede congurarse como mdulo (con lo que se carga correctamente con initrd) o bien, se quita la entrada initrd de /etc/grub/menu.lst o de /etc/lilo.conf. Una solucin equivalente sera eliminar el controlador de INITRD_MODULES y ejecutar mk_initrd; este comando reconoce entonces que no se requiere ningn initrd.

12.3.7.

El futuro

En el futuro es posible que se use initrd para tareas ms sosticadas que la sencilla carga de mdulos necesarios para el acceso a /. Sistema de archivos raz sobre un software RAID (linuxrc congura los dispositivos md). Sistema de archivos raz sobre LVM. Sistema de archivos raz codicado (linuxrc pide una contrasea). Sistema de archivos raz sobre un disco SCSI conectado a una tarjeta PCMCIA. Informacin adicional /usr/src/linux/Documentation/ramdisk.txt (Slo disponible si se han instalado las fuentes del kernel). /usr/src/linux/Documentation/initrd.txt La pgina man de initrd.

12.4.

linuxrc

linuxrc es un programa que se empieza a ejecutar durante el inicio del kernel, antes de arrancar realmente. Esta propiedad es muy ventajosa, ya que permite arrancar un kernel pequeo y modularizado y posibilita que los pocos controladores que realmente se necesitan se carguen como mdulos,

294

12.4. linuxrc

lo cual puede hacerse incluso desde un disquete de mdulos. linuxrc ayuda en caso necesario a cargar manualmente los controladores relevantes para el hardware, si bien generalmente se puede conar en la deteccin automtica de hardware que se realiza antes de arrancar YaST. linuxrc no slo sirve para la instalacin sino tambin como herramienta de arranque para un sistema Linux instalado o incluso para arrancar un sistema de rescate autnomo (basado en un ramdisk). Puede obtener informacin adicional en el apartado 12.5 en la pgina 301.

12
Caractersticas del sistema

12.4.1. Men principal


Despus de haber ajustado el idioma y el teclado se entra al men principal de linuxrc (ver gura 1.2 en la pgina 11). Normalmente se usa linuxrc para arrancar Linux. Por consiguiente, la opcin del men relevante para nuestros propsitos es Iniciar instalacin / sistema. El que pueda seleccionar directamente esta opcin depender del hardware de su ordenador y del propsito de la instalacin. Puede encontrar informacin adicional en el apartado 1.1 en la pgina 8

12.4.2. Opciones de conguracin


Puede congurar las opciones Idioma, Pantalla, Teclado y Debug (experto).

12.4.3. Informacin del sistema


Con la opcin Informacin del sistema (gura 12.1 en la pgina siguiente) no slo se pueden ver los mensajes del kernel sino tambin otros datos importantes como son las direcciones de entrada y salida (I/O address) de las tarjetas PCI o el tamao de la memoria principal. Las siguientes lneas muestran cmo se presenta un disco duro y un lector CD-ROM conectados a una controladora EIDE. En este caso no es necesario cargar ningn mdulo del kernel para la instalacin:
hda: ST32140A, 2015MB w/128kB Cache, LBA, CHS=1023/64/63 hdb: CD-ROM CDR-S1G, ATAPI CDROM drive Partition check: hda: hda1 hda2 hda3 < hda5 >

SUSE LINUX Manual de Administracin

295

Figura 12.1: Informacin del sistema

Por otra parte, si se ha arrancado con un kernel que incorpora un controlador SCSI, tampoco hace falta cargar ningn mdulo SCSI adicional. Las siguientes lneas muestran un mensaje tpico de reconocimiento de una controladora SCSI y de los dispositivos conectados:
scsi: 1 host. Started kswapd v 1.4.2.2 scsi0: target 0 accepting period 100ns offset 8 10.00MHz FAST SCSI-II scsi0: setting target 0 to period 100ns offset 8 10.00MHz FAST SCSI-II Vendor: QUANTUM Model: VP32210 Rev: 81H8 Type: Direct-Access ANSI SCSI revision: 02 Detected scsi disk sda at scsi0, channel 0, id 0, lun 0 scsi0: target 2 accepting period 236ns offset 8 4.23MHz synchronous SCSI scsi0: setting target 2 to period 248ns offset 8 4.03MHz synchronous SCSI Vendor: TOSHIBA Model: CD-ROM XM-3401TA Rev: 0283 Type: CD-ROM ANSI SCSI revision: 02 scsi: detected 1 SCSI disk total. SCSI device sda: hdwr sector= 512 bytes. Sectors= 4308352 [2103 MB] [2.1 GB] Partition check: sda: sda1 sda2 sda3 sda4 < sda5 sda6 sda7 sda8 >

296

12.4. linuxrc

12.4.4. Carga de mdulos


Aqu se puede elegir qu tipo de mdulo se necesita. linuxrc ofrece los controladores disponibles en una lista. A la izquierda se ve el nombre de cada mdulo y a la derecha una breve descripcin del hardware para el cual est hecho el mdulo (controlador). Para algunos dispositivos existen varios controladores o tambin algunos muy nuevos que an se encuentran en fase alpha. Estos se incluyen tambin aqu.

12
Caractersticas del sistema

Figura 12.2: Cargar mdulos

12.4.5. Introduccin de parmetros


Si se ha encontrado el controlador que corresponde al hardware, se coloca el cursor sobre la lnea en cuestin y se pulsa Return . Aparece una pantalla con la posibilidad de introducir parmetros que pasarn al mdulo que se cargue. Aqu hay que tener en cuenta que, al contrario de lo que sucede en la introduccin de parmetros en el prompt del kernel, si se introducen mltiples parmetros estos han de estar separados por espacios. Por lo general no hace falta especicar el hardware porque la mayora de los controladores encuentran los componentes por s mismos.

SUSE LINUX Manual de Administracin

297

Figura 12.3: Seleccin de los controladores SCSI

Solamente las tarjetas de red y lectores CD-ROM con controladora propia exigen a veces la indicacin de parmetros. De todos modos se puede pro bar sencillamente pulsando Return pasar ningn parmetro. sin Algunos mdulos necesitan algn tiempo para detectar e iniciar el hardwa re. Cambiando a la consola virtual 4 ( es posible ver los mensajes Alt + F4 ) del kernel durante la carga del mdulo. Sobre todo las controladoras SCSI son las que ms pueden tardar durante la carga, ya que esperan algn tiempo la respuesta de todos los dispositivos conectados. Cuando se haya cargado el mdulo correctamente, linuxrc muestra los mensajes del kernel, permitindole as comprobar el xito de la operacin. En caso contrario, los mensajes pueden servir para encontrar la razn del fracaso.

12.4.6.

Iniciar instalacin / sistema

Una vez que el kernel soporta por completo su hardware, puede pasar a la opcin Iniciar instalacin / sistema. Desde este punto es posible iniciar diversos procesos: Comenzar la instalacin (desde aqu comienza tambin la actualizacin), Iniciar el sistema instalado (hace falta conocer la particin raz), Iniciar sistema de rescate (ver apartado 12.5 en la pgina 301) y Sacar CD (eject).

298

12.4. linuxrc

12
Caractersticas del sistema

Figura 12.4: Introduccin de los parmetros para cargar un mdulo

La opcin Iniciar Live Eval-CD slo existe despus de haber arrancado desde un CD de evaluacin (Live-CD). Imgenes de este CD en formato ISO estn disponibles en el servidor FTP (live-eval-<VERSION>): ftp: //ftp.suse.com/pub/suse/i386/

Atencin
La opcin Iniciar Live Eval-CD es bastante til a la hora de comprobar la compatibilidad de un determinado ordenador o de un porttil con Linux sin tener que realizar una instalacin real en el disco duro.

Atencin
Se pueden elegir diversas fuentes para la instalacin (gura 12.5 en la pgina siguiente) as como para generar un sistema de rescate (gura 12.6 en la pgina 302).

12.4.7. Paso de parmetros a linuxrc


Cuando no est en modo manual, linuxrc busca un archivo de informacin que puede encontrarse en un disquete o bien en initrd bajo /info. Slo entonces lee linuxrc los parmetros del prompt del kernel.

SUSE LINUX Manual de Administracin

299

Figura 12.5: Seleccin del medio fuente en linuxrc

Los valores predeterminados pueden modicarse en el archivo /linuxrc. config, que es el primero en ser ledo. No obstante, se recomienda introducir los cambios en un archivo de informacin. Un archivo de informacin est formado por palabras claves y sus valores respectivos y presenta la siguiente estructura: key: value. Estos pares compuestos de palabra clave y valor pueden pasarse al kernel tal y como estn. El archivo /usr/share/doc/packages/linuxrc/linuxrc. html contiene una lista de las posibles palabras clave. Algunas de las ms importantes se mencionan a continuacin con valores de muestra: Install: URL (nfs, ftp, hd, ...) HostIP: 10.10.0.2 Proxy: 10.10.0.1 Netdevice: eth0 Textmode: 0|1 AutoYast: ftp://autoyastle VNC: 0|1 VNCPassword: password

300

12.4. linuxrc

UseSSH: 0|1 SSHPassword: password ForceInsmod: 0|1 (utilice la opcin -f cuando se invoque insmod). Insmod: parmetro del mdulo AddSwap: 0|3|dev/hda5 Si el valor es 0, swap no se requiere nunca; si es un nmero positivo, se activa la particin con ese nmero. Como alternativa tambin puede introducir el nombre de la particin.

12
Caractersticas del sistema

12.5.

El sistema de rescate de SUSE

SUSE LINUX contiene un sistema de rescate que, en caso de emergencia, le permite acceder desde fuera a sus particiones Linux. Puede cargar el sistema de rescate (rescue system) desde un CD, desde la red o desde el servidor FTP de SUSE. Asimismo existe un CD arrancable (el LiveEval-CD) que puede actuar igualmente como sistema de rescate. El sistema de rescate contiene adems una buena seleccin de programas de ayuda que le permiten solucionar problemas tales como discos duros a los que no se puede acceder o archivos de conguracin incorrectos. Parted (parted) tambin forma parte del sistema de rescate y sirve para modicar el tamao de las particiones. En caso de necesidad puede ser iniciado manualmente desde el sistema de rescate si no quiere utilizar el redimensionador integrado en YaST. Puede encontrar ms informacin sobre Parted en: http://www.gnu.org/software/parted/

12.5.1.

Iniciar el sistema de rescate

El sistema de rescate se inicia desde el CD o DVD de SUSE LINUX. Es importante que se pueda arrancar desde la unidad de CD-ROM/DVD. Tambin puede que sea necesario cambiar el orden de arranque en la BIOS. A continuacin se detallan los pasos para iniciar el sistema de rescate: 1. Introduzca el primer CD o DVD de SUSE LINUX en la unidad correspondiente y encienda el sistema.

SUSE LINUX Manual de Administracin

301

Figura 12.6: Medio fuente para el sistema de rescate

2. Se puede dejar que el sistema arranque sin intervencin o bien se puede seleccionar Manual Installation y, si fuera necesario, indicar parmetros de arranque especcos en el apartado boot options. 3. Escoja las opciones correspondientes al idioma y al teclado en linuxrc. 4. A continuacin puede cargar los mdulos del kernel que requiera el sistema. Le aconsejamos cargar todos los mdulos que a su juicio sern posteriormente necesarios en el sistema de rescate. Por motivos de espacio, el sistema de rescate no incluye prcticamente ningn mdulo. 5. En el men principal seleccione Iniciar instalacin / sistema. 6. En el men Iniciar instalacin / sistema seleccione la opcin Iniciar sistema de rescate (ver gura 1.3 en la pgina 13) e indique despus el medio fuente (ver gura 12.6). CD-ROM Se utiliza el sistema de rescate del CD-ROM.

302

12.5. El sistema de rescate de SUSE

Red El sistema de rescate se inicia por medio de una conexin de red. Para ello es necesario que el mdulo del kernel que corresponde a la tarjeta de red haya sido creado previamente (ver tambin informacin general en el apartado 1.3.2 en la pgina 17). En un submen puede elegir entre varios protocolos (ver gura 12.7): NFS, FTP, SMB, etc. Disco duro Si ha copiado previamente el sistema de rescate a un disco duro accesible, aqu puede especicar dnde se encuentra. Este sistema de rescate ser el que se utilice.

12
Caractersticas del sistema

Figura 12.7: Protocolos de red Independientemente del medio seleccionado, el sistema de rescate se descomprime y se carga, monta e inicia como nuevo sistema de archivos raz en un ramdisk (disco virtual), quedando as operativo.

12.5.2.

Trabajar con el sistema de rescate

Por medio de las teclas Alt + F1 hasta sistema de rescate proAlt + F3 , el porciona tres consolas virtuales diferentes a travs de las cuales se puede entrar al sistema como usuario root sin necesidad de contrasea. Con las teclas accede a la consola del sistema para ver los mensajes Alt + F10 se del kernel y de syslog.

SUSE LINUX Manual de Administracin

303

En el directorio /bin se encuentran las shells y las utilidades (por ejemplo mount). En /sbin dispone de un conjunto de utilidades para archivos y red que sirven por ejemplo para comprobar y arreglar sistemas de archivos (e2fsck). Aqu se encuentran tambin los binarios ms importantes para la administracin del sistema como fdisk, mkfs, mkswap, init y shutdown, as como ifcong, route y netstat para la operacin en red. Como editor se incluye vi en /usr/bin. Este directorio contiene adems herramientas adicionales (grep, nd, less etc.) adems del programa telnet. Acceso al sistema normal Como punto de montaje del sistema SUSE LINUX en el disco duro est previsto el directorio /mnt, lo que no impide generar otros directorios y usarlos como puntos de montaje. Supongamos que el sistema normal consta de las siguientes particiones Linux especicadas en /etc/fstab, tal y como se observa en el ejemplo del archivo 12.4. Ejemplo 12.4: Ejemplo /etc/fstab
/dev/sdb5 /dev/sdb3 /dev/sdb6 swap / /usr swap ext2 ext2 defaults defaults defaults 0 1 1 0 1 2

Aviso
Observe en el siguiente apartado el orden en el que han de montarse los distintos dispositivos.

Aviso
Para tener acceso a todo el sistema hay que montarlo paso a paso mediante /mnt con los siguientes comandos:
mount /dev/sdb3 /mnt mount /dev/sdb6 /mnt/usr

Ahora tiene acceso a todo el sistema y puede, por ejemplo, corregir errores en archivos de conguracin como /etc/fstab, /etc/passwd o /etc/inittab. Estos archivos se encuentran ahora en /mnt/etc y no en /etc. Es posible recuperar particiones totalmente perdidas, crendolas nuevamente con fdisk. Para ello se recomienda imprimir previamente el directorio /etc/fstab as como la salida del comando fdisk -l.

304

12.5. El sistema de rescate de SUSE

Reparar sistemas de archivos Un sistema de archivos daado es una razn seria para recurrir al sistema de rescate. En principio no es posible reparar un sistema de archivos mientras el sistema est en funcionamiento. En casos graves ni siquiera se puede montar el sistema de archivos raz y el arranque termina con el mensaje kernel panic. En tal caso slo queda la posibilidad de repararlo desde fuera con un sistema de rescate. El sistema de rescate de SUSE LINUX contiene las utilidades e2fsck y dumpe2fs para nes de diagnstico, con las que se resuelven la mayora de problemas. Generalmente en casos de emergencia no se puede acceder a la pgina man de e2fsck, por lo que se encuentra impresa en el anexo C en la pgina 587. Ejemplo: cuando un sistema de archivos no puede montarse debido a un superbloque no vlido, lo ms probable es que e2fsck tampoco pueda arreglarlo. La solucin consiste en utilizar las copias de seguridad de superbloques que se encuentran cada 8192 bloques (bloque 8193, 16385. . . ) en el sistema de archivos. Esto se puede hacer con el comando:
e2fsck -f -b 8193 /dev/<particin_defectuosa>

12
Caractersticas del sistema

La opcin -f fuerza la comprobacin del sistema de archivos para evitar que e2fsck asuma que todo est en orden por el hecho de haber detectado la copia intacta del superbloque.

12.6.

Consolas virtuales

Linux es un sistema multitarea y multiusuario. Las ventajas que aportan estas prestaciones se agradecen incluso en ordenadores con un solo usuario. El modo texto ofrece 6 consolas virtuales a las que se puede acceder me diante las combinaciones de teclas sptima conAlt + F1 a Alt + F6 . La sola est reservada para X11. Modicando el archivo /etc/inittab se puede disponer de ms o menos consolas. Si estando en X11 desea trabajar en una consola virtual sin cerrar X11, pulse las combinaciones Ctrl + Alt + F1 a Ctrl + Alt + F6 . Para volver a X11, pulse Alt + F7 .

12.7.

Distribucin del teclado

Para normalizar la distribucin del teclado de los distintos programas, se han modicado los siguientes archivos:

SUSE LINUX Manual de Administracin

305

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

Estas modicaciones slo tienen efecto sobre las aplicaciones que leen los parmetros terminfo o sobre aquellas cuyos archivos de conguracin fueron modicados directamente (vi, less, etc.). Se recomienda adaptar otras aplicaciones que no sean de SUSE a estas deniciones. Dentro del entorno X se puede acceder a la tecla Compose (Multi_key) me diante la combinacin de teclas Ctrl + Shift (derecha).Vase a este respecto la entrada en /usr/X11R6/lib/X11/Xmodmap. Puede encontrar informacin sobre la introduccin de los idiomas chino, japons o coreano (CJK) en la pgina web de Mike Fabian: http://www. suse.de/~mfabian/suse-cjk/input.html.

12.8.

Conguracin nacional I18N/L10N

Dado el nivel de internacionalizacin de SUSE LINUX, es muy exible para la adaptacin a necesidades locales. En trminos tcnicos: La internacionalizacin (I18N) permite implementar extensiones locales (L10N). Las abreviaciones I18N y L10N reemplazan los trminos internationalization y localization, mencionando siempre la letra inicial y nal as como el nmero de caracteres que faltan entremedio. La conguracin se realiza mediante las variables LC_ que se denen en el chero /etc/sysconfig/language. Aparte del idioma para la interfaz grca de los programas y sus mensajes, se conguran tambin las categoras moneda, cifras, fecha y hora, el tipo de caracteres, el tipo de mensajes y el criterio de ordenar. Todas estas categoras se pueden denir dentro del archivo language mediante una variable individual o de forma indirecta mediante una variable de un nivel ms alto (vase la pgina del manual man locale).

306

12.8. Conguracin nacional I18N/L10N

1. RC_LC_MESSAGES, RC_LC_CTYPE, RC_LC_COLLATE, RC_LC_TIME, RC_LC_NUMERIC, RC_LC_MONETARY: Estas variables se pasan a la shell sin el prejo RC_ y determinan las categoras arriba mencionadas. A continuacin se detalla el signicado de las distintas variables. Mediante el comando locale es posible consultar la conguracin actual. 2. RC_LC_ALL: En caso de estar denido, esta variable sobreescribe los valores de las variables mencionadas en 1.. 3. RC_LANG: Al no denir ninguna de las variables arriba mencionadas, esta sirve de denicin por defecto Fallback. SUSE LINUX por defecto solo dene RC_LANG para que el usuario tenga ms facilidad de introducir valores propios. 4. ROOT_USES_LANG: Una variable booleana de valor yes/no. Si tiene no root siempre trabaja en el entorno POSIX. Las dems variables se determinan mediante el editor sysconfig. El valor de estas variables se compone de la identicacin para el idioma (language code), del pas o territorio (country code), del conjunto de caracteres (encoding) y de la opcin (modier). Todas estas indicaciones se unen mediante caracteres especiales: LANG= language [[_ COUNTRY ]. Encoding [@ Modier ]]

12
Caractersticas del sistema

12.8.1.

Algunos ejemplos

Idioma y pas se deben denir juntos. La indicacin del idioma sigue la norma ISO 639 (http://www.evertype.com/egt/standards/ iso639/iso639-1-en.html y http://www.loc.gov/standards/ iso639-2/) y los cdigos de pas estn denidos en la norma ISO 3166 (http://www.din.de/gremien/nas/nabd/iso3166ma/codlstp1/ en_listp1.html). Slo se puede seleccionar valores que encuentran su homlogo en un archivo de descripcin dentro del directorio /var/lib/ locale. Es posible crear archivos de descripcin a partir de los archivos /usr/share/i18n usando localedef. LANG=es_ES.UTF-8 Esta es la opcin predeterminada cuando se instala en castellano. Si la instalacin se realiza en otro idioma, UTF-8 sigue siendo el juego de caracteres seleccionado y el otro idioma se adopta para el sistema.

SUSE LINUX Manual de Administracin

307

LANG=es_ES.ISO-8859-1 Esta el la forma de congurar el idioma espaol en Espaa con el juego de caracteres ISO-8859-1. Este an no incorpora el smbolo del Euro pero sigue siendo necesario para los programas que an no han sido adaptados a UTF-8. Por ejemplo, el programa Emacs es uno de los que lee la opcin de conguracin del juego de caracteres (aqu ISO-8859-1). LANG=es_ES@euro Este es un ejemplo para la denicin de una opcin (euro). SuSEcong lee las variables de /etc/sysconfig/language y escribe los valores en los archivos /etc/SuSEconfig/profile y /etc/ SuSEconfig/csh.cshrc. /etc/profile lee el archivo /etc/ SuSEconfig/profile (lo usa como fuente) y /etc/csh.cshrc lee /etc/SuSEconfig/csh.cshrc. De esta forma la conguracin est disponible para todo el sistema. La conguracin del sistema puede ser modicada por los usuarios con el archivo de conguracin individual de usuario ~/.bashrc. Por ejemplo, cuando la conguracin del sistema es es_ES y el usuario preere los mensajes en ingls, es posible modicarlo mediante: LC_MESSAGES=en_US

12.8.2. Conguracin del soporte de idioma


Los archivos de la categora mensajes normalmente slo se encuentran dentro del directorio de idioma (por ejemplo de) para tener una solucin de reserva. Por ejemplo cuando el valor de LANG sea de_AT y el archivo de mensajes no se encuentre en /usr/share/locale/de_AT/LC_MESSAGES, se recurrir al archivo /usr/share/locale/de/LC_MESSAGES para los mensajes. Otra posibilidad es la de denir una cadena de soluciones de reserva, por ejemplo para bretn -> francs o para gallego -> espaol -> portugus: LANGUAGE="br_FR:fr_FR" LANGUAGE="gl_ES:es_ES:pt_PT" O para dependiendo de las preferencias cambiar a las variantes noruegas nyorsk o bien bokml (con no como alternativa): LANG="nn_NO" LANGUAGE="nn_NO:nb_NO:no" o bien

308

12.8. Conguracin nacional I18N/L10N

LANG="nb_NO" LANGUAGE="nb_NO:nn_NO:no" En el caso del noruego tambin hay que tener en cuenta que LC_TIME se trata de forma diferente. Posibles problemas En cadenas de nmeros no se reconoce el punto como separador de miles. Probablemente el valor de LANG sea es. Como la descripcin que usa la glibc se encuentra en /usr/share/locale/es_ES/LC_ NUMERIC, LC_NUMERIC debe tener por ejemplo el valor es_ES. Informacin adicional: The GNU C Library Reference Manual, captulo Locales and Internationalization, est incluido en glibc-info. Jochen Hein, bajo la palabra clave NLS. Spanish-HOWTO de Gonzalo Garca-Agull file:/usr/share/ doc/howto/en/html/Spanish-HOWTO.html Markus Kuhn, UTF-8 and Unicode FAQ for Unix/Linux, actualizado en http://www.cl.cam.ac.uk/~mgk25/unicode.html. Unicode-Howto de Bruno Haible file:/usr/share/doc/howto/ en/html/Unicode-HOWTO.html. Soporte CJK en SuSE Linux en ingls por Mike Fabian http://www. suse.de/~mfabian/suse-cjk/suse-cjk.html.

12
Caractersticas del sistema
309

SUSE LINUX Manual de Administracin

13
El concepto de arranque de SUSE LINUX

El concepto de arranque de SUSE LINUX

El arranque e inicio de un sistema UNIX provoca un hormigueo incluso al administrador de sistemas ms experimentado. Este captulo es una breve introduccin al concepto de arranque de SUSE LINUX. La implementacin actual de la iniciacin del sistema utiliza la especicacin LSB versin 1.3.x (vase el apartado 12.1.1 en la pgina 282.

13.1. El programa init . . . . . . . . . . . . . . . 13.2. Los niveles de ejecucin runlevels . . . 13.3. Cambio de nivel de ejecucin . . . . . . . 13.4. Los scripts de inicio . . . . . . . . . . . . . 13.5. El editor de niveles de ejecucin de YaST 13.6. SuSEcong y /etc/syscong . . . . . . . . 13.7. El editor Syscong de YaST . . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

312 313 315 316 320 322 324

Con las lapidarias palabras "Uncompressing Linux..." el kernel toma las riendas de todo el hardware del sistema; comprueba y ja la consola ms exactamente el registro de la BIOS de la tarjeta grca y el formato de salida de la pantalla , para despus leer los valores predeterminados de la BIOS e iniciar las interfaces elementales de la placa base. En los prximos pasos los distintos controladores que forman parte del kernel prueban el hardware presente para iniciarlo en caso necesario. Despus del chequeo de la particin y la carga del Root-Filesystem, el kernel ejecuta el init, el cual realiza el autntico arranque del sistema con sus mltiples programas auxiliares y sus conguraciones El kernel sigue gestionando el sistema completo, el tiempo de clculo de los programas y los accesos al hardware.

13.1.

El programa init

El programa init es el proceso encargado de iniciar correctamente el sistema, por lo que puede decirse que todos los procesos del sistema son hijos de init. Dentro de todos los programas, init tiene una jerarqua especial: init es ejecutado directamente por el kernel y por lo tanto es inmune a la seal 9 con la cual todos los procesos pueden ser interrumpidos. Los procesos siguientes son ejecutados directamente por init o por uno de sus procesos subordinados. init se congura de forma centralizada a travs del archivo /etc/ inittab; aqu se denen los llamados niveles de ejecucin (runlevel ) (se comenta con ms detalle en el apartado 13.2 en la pgina siguiente) y se determina qu servicios y daemons deben estar disponibles en los diferentes niveles. Dependiendo de la escritura en /etc/inittab, init ejecuta diferentes scripts que por razones de organizacin se reunen en el directorio /etc/init.d/. As, todo el proceso de arranque y naturalmente la secuencia de apagado es controlado por el proceso init; en este sentido se puede considerar al kernel prcticamente como proceso en segundo plano, el cual tiene como objetivo gestionar los procesos arrancados, dedicarles tiempo de clculo y posibilitar y controlar el acceso al hardware.

312

13.1. El programa init

13.2.

Los niveles de ejecucin runlevels

13
El concepto de arranque de SUSE LINUX

Bajo Linux existen diferentes runlevels (niveles de ejecucin), que denen qu estado debe tener el sistema. El nivel estndar, en el cual arranca el sistema, est recogido en el archivo /etc/inittab mediante initdefault; normalmente es 3 o 5 (ver resumen en la tabla 13.1 en la pgina siguiente). Alternativamente se puede introducir el nivel de ejecucin requerido en el proceso de arranque (por ejemplo en el prompt de LILO); el kernel pasa los parmetros que no puede evaluar al proceso init sin modicarlos. Se puede cambiar a otro nivel de ejecucin introduciendo slo init con el nmero correspondiente. Naturalmente, el cambio a otro nivel slo puede ser gestionado por el administrador de sistema. Por ejemplo, con el comando init 1 o shutdown now se logra entrar en el modo monousuario (single user mode), el cual se ocupa del mantenimiento y administracin del sistema. Despus de que el administrador del sistema haya acabado su trabajo, puede utilizar init 3 para arrancar el sistema en el nivel de ejecucin normal, en el cual se ejecutan todos los programas necesarios y los usuarios individuales pueden entrar al sistema. Con init 0 o shutdown -h now se puede parar el sistema y con init 6 o shutdown -r now reiniciarlo.

Atencin
Nivel de ejecucin 2 con la particin /usr/ montada va NFS El nivel de ejecucin 2 no debe utilizarse en sistemas en los que la particin /usr/ haya sido montada va NFS. La particin /usr/ contiene programas muy importantes necesarios para manejar correctamente el sistema. Debido a que el servicio NFS todava no est disponible en el nivel de ejecucin 2 (modo multiusuario local sin red remota), las funciones del sistema estaran muy limitadas.

Atencin

SUSE LINUX Manual de Administracin

313

Cuadro 13.1: Lista de los niveles de ejecucin disponibles en Linux Nivel de ejecucin 0 S 1 2 3 4 5 6 Signicado Parada de sistema (system halt ) Modo monousuario (single user mode); desde el prompt de arranque con distribucin de teclado inglesa Modo monousuario (Single user mode) Modo multiusuario local sin red remota (local multiuser without remote network ) (e.g. NFS) Modo multiusuario completo con red (full multiuser with network ) Libre (Not used ) Modo multiusuario completo con red y KDM (estndar), GDM o XDM (full multiuser with network and xdm) Reiniciar el sistema (system reboot )

En una instalacin estndar de SUSE LINUX normalmente se congura el nivel de ejecucin 5 como valor por defecto, de modo que los usuarios puedan entrar directamente al entorno grco del sistema. Si por un ajuste manual la conguracin de nivel de ejecucin 5 no se hubiera realizado, es posible efectuar posteriormente una reconguracin. Si quiere cambiar el valor del nivel de ejecucin estndar de 3 a 5, tiene que asegurarse de que sistema X Window ya est correctamente congurado ; (apartado 4 en la pgina 79). Para comprobar que el sistema funciona de la forma deseada, introduzca init 5. En caso armativo, puede cambiar el nivel de ejecucin por defecto mediante YaST al valor 5.

314

13.2. Los niveles de ejecucin runlevels

Aviso
Modicaciones en /etc/inittab Un /etc/inittab alterado puede provocar que el sistema ya no arranque correctamente. Hay que tener mucho cuidado al modicar este archivo y no olvidarse de conservar siempre una copia del archivo intacto. Para remediar el problema se puede intentar transferir el parmetro init=/bin/sh desde el prompt de LILO para arrancar directamente dentro de una shell y desde all recuperar el archivo. Despus del arranque, se puede recuperar la copia de seguridad con cp.

13
El concepto de arranque de SUSE LINUX
Aviso

13.3.

Cambio de nivel de ejecucin

En un cambio de nivel de ejecucin suele ocurrir lo siguiente. Los llamados scripts de parada del nivel actual se ejecutan los diferentes programas que se estn ejecutando en este nivel se nalizan y los scripts de arranque del nuevo nivel se inician. En un procedimiento como este, en la mayora de los casos se ejecutan varios programas. Para que sea ms claro, veamos en un ejemplo qu ocurre si cambiamos del nivel 3 al 5: El administrador (root) comunica al proceso init que debe cambiar el nivel de ejecucin introduciendo init 5. init consulta el archivo de conguracin /etc/inittab y detecta que el script /etc/init.d/rc debe ser ejecutado con el nuevo nivel de ejecucin como parmetro. Ahora el programa rc ejecuta todos los scripts de parada del nivel actual para los cuales no existe un script de arranque en el nivel nuevo. En nuestro ejemplo son todos los scripts que se encuentran en el subdirectorio /etc/init.d/rc3.d/ (el ltimo nivel de ejecucin era 3) y que comienzan con la letra K. El nmero que sigue a la K asegura que se mantenga un cierto orden en el proceso, ya que algunos programas pueden depender de otros.

SUSE LINUX Manual de Administracin

315

Atencin
Los nombres de los scripts de parada comienzan siempre con K (kill ), los de los scripts de arranque con S (start ).

Atencin
Por ltimo se llama a los scripts de arranque del nuevo nivel de ejecucin. Estos estn en nuestro ejemplo en /etc/init.d/rc5.d/ y comienzan con una S. Tambin aqu se mantiene un orden determinado, el cual queda jado por el nmero que sigue a la S. Si cambia al mismo nivel en el que se encuentra, init lee solamente el /etc/inittab, comprueba el archivo buscando cambios y en caso necesario realiza los procedimientos adecuados (por ejemplo ejecuta un getty en otra interfaz).

13.4.

Los scripts de inicio

Los scripts bajo /etc/init.d/ se dividen en dos categoras: scripts llamados directamente por init: Esto slo sucede en el caso del arranque as como tambin en caso de un apagado instantneo (en caso de un corte del suministro elctrico o por pulsar el usuario la combinacin de teclas Ctrl + Alt + Supr ). scripts llamados indirectamente por init: Esto ocurre en el caso de un cambio del nivel de ejecucin; aqu generalmente se ejecuta el script superior /etc/init.d/rc, el cual se encarga de que los scripts correspondientes sean ejecutados en el orden correcto. Todos los scripts se encuentran bajo /etc/init.d/. Los que se usan para el cambio del nivel de ejecucin se encuentran tambin en este directorio, pero son ejecutados siempre como un enlace simblico desde uno de los subdirectorios /etc/init.d/rc0.d/ hasta /etc/init.d/rc6.d/. Esto tiene nes organizativos y evita que los scripts tengan que estar presentes varias veces si son utilizados en diferentes niveles. Para que cada uno de los scripts pueda ser ejecutado como script de arranque o de parada, estos tienen que admitir los dos parmetros start y stop. Aparte de estos dos parmetros, los scripts son capaces de procesar las opciones restart, reload, force-reload y status, cuyo signicado se explica con ms detalle en la tabla 13.2 en la pgina siguiente.

316

13.4. Los scripts de inicio

Cuadro 13.2: Resumen de las opciones de los scripts de inicio Opcin start stop restart reload force-reload status Signicado Iniciar el servicio Parar el servicio Con el servicio en ejecucin, pararlo y reiniciarlo; en caso contrario, iniciarlo Leer la conguracin del servicio nuevamente sin parada y reinicio del servicio Leer nuevamente la conguracin del servicio si este lo soporta; en caso contrario igual que restart Mostrar estado actual

13
El concepto de arranque de SUSE LINUX

Los enlaces en los subdirectorios especcos de los niveles de ejecucin slo sirven para unir cada script a un determinado nivel. Los enlaces necesarios se crean y se quitan mediante insserv(o mediante el enlace /usr/lib/lsb/install_initd) en el momento de instalar o desinstalar el paquete; ver man insserv. A continuacin se ofrece una breve descripcin del primer script de arranque y del ltimo script de parada, as como del script de control: boot Este script es ejecutado directamente por init en el arranque del sistema, es independiente del nivel de ejecucin requerido por defecto y se ejecuta slo una vez. Fundamentalmente, se montan los volmenes proc/ y devpts/, se arranca el blogd y despus de la primera instalacin o de una actualizacin se ejecuta una conguracin bsica. blogd es el primer daemon que inician boot y el script rc y vuelve a cerrarse una vez realizado el trabajo correspondiente (por ejemplo activar subscripts). Este daemon escribe en el archivo de registro /var/log/boot.msg en caso de que /var/ est montado con permisos de lectura y escritura, o bien almacena temporalmente todos los datos de la pantalla hasta que /var/ se monta con permisos de lectura y escritura. Puede obtener informacin adicional sobre blogd en man blogd. Adicionalmente, este script se hace cargo del directorio /etc/init.d/boot.d/. Al arrancar el sistema se ejecutan en este directorio todos los scripts cuyos nombres comienzan con S.

SUSE LINUX Manual de Administracin

317

Se realiza la comprobacin de los sistemas de archivos, se eliminan los archivos sobrantes en /var/lock/ y se congura la red para el Loopback-Device. Acto seguido se ja el tiempo real del sistema. Si aparece un fallo grave durante la comprobacin y reparacin automtica de los sistemas de archivo, el administrador del sistema tiene la posibilidad de resolver el problema manualmente despus de haber introducido la contrasea de root. Por ltimo se ejecuta el script boot.local. boot.local Aqu se pueden introducir programas o servicios adicionales que deban ejecutarse en el arranque antes de que el sistema entre en uno de los niveles de ejecucin. Por su funcin es equiparable al archivo AUTOEXEC.BAT de DOS. boot.setup Opciones de conguracin bsicas que se deben realizar cuando se cambia desde el modo de usuario nico a cualquier otro nivel de ejecucin. Aqu se cargan la distribucin del teclado y la conguracin de la consola. halt Este script slo se ejecuta entrando en los niveles 0 o 6 y puede ejecutarse con el nombre halt o reboot. Dependiendo del nombre asignado a halt, el sistema se reinicia o se apaga totalmente. rc Es el script superior, el cual es invocado en cada cambio del nivel de ejecucin. Ejecuta los scripts de parada del nivel actual y a continuacin los scripts de arranque del nuevo.

13.4.1. Aadir scripts init


Resulta muy fcil aadir scripts init adicionales al concepto descrito en las lneas superiores. Puede obtener informacin referente al formato, asignacin de nombres y organizacin de los scripts init en el diseo del LSB as como en las pginas del manual de init, init.d/ e insserv. Las pginas del manual de startproc y killproc tambin le sern de gran ayuda.

318

13.4. Los scripts de inicio

Aviso
Elaboracin de scripts de arranque propios: Los scripts defectuosos pueden provocar el bloqueo del ordenador. Tenga mucho cuidado a la hora de elaborar scripts propios y prubelos tanto como le sea posible antes de ejecutarlos en un entorno multiusuario. Para ms informacin bsica sobre cmo manejar scripts de arranque y niveles de ejecucin, vea el apartado 13.2 en la pgina 313.

13
El concepto de arranque de SUSE LINUX
Aviso

Si desea crear un script init para un programa o servicio (service) propio, puede utilizar el archivo /etc/init.d/skeleton como plantilla. Guarde este archivo bajo un nombre nuevo y edite los nombres de programas o archivos y las rutas. Dado el caso tambin puede aadir al script nuevos componentes propios que sean necesarios para ejecutar correctamente el comando de inicio. Edite el bloque obligatorio INIT INFO al principio del archivo: Ejemplo 13.1: Bloque INIT INFO mnimo
### BEGIN INIT INFO # Provides: # Required-Start: # Required-Stop: # Default-Start: # Default-Stop: # Description: ### END INIT INFO FOO $syslog $remote_fs $syslog $remote_fs 3 5 0 1 2 6 Start FOO to allow XY and provide YZ

En la primera lnea de la cabecera INFO, a continuacin de Provides:, se introduce el nombre del programa o servicio que va a controlarse por medio del script. En las entradas Required-Start: y Required-Stop: se incluyen todos los servicios que deben ser iniciados o terminados antes del inicio o parada del servicio o programa en cuestin. Esta informacin se analiza para generar la numeracin de los scripts de arranque y parada resultantes en los directorios de niveles de ejecucin. En las entradas Default-Start: y Default-Stop: se introducen los niveles de ejecucin en los que la aplicacin ha de iniciarse o detenerse automticamente. Una breve descripcin de la aplicacin en Description: pone punto y nal a este bloque.

SUSE LINUX Manual de Administracin

319

Utilice el comando insserv <nombre_nuevo_script> para crear los enlaces desde /etc/init.d/ a los directorios de niveles de ejecucin correspondientes (/etc/init.d/rc?.d/). insserv analiza automticamente los datos introducidos en la cabecera del script init y guarda los enlaces para los scripts de arranque y parada en los directorios de niveles de ejecucin respectivos. insserv tambin se encarga de mantener el orden de inicio y parada dentro de un nivel de ejecucin mediante la numeracin de los scripts. El editor de niveles de ejecucin de YaST constituye una herramienta grca para crear los enlaces; vase la seccin 13.5 . Si se trata nicamente de integrar un script ya existente en /etc/init.d/ en el concepto de los niveles de ejecucin, cree los enlaces a los directorios de niveles de ejecucin respectivos con insserv o el editor de niveles de ejecucin de YaST y active el servicio. La prxima vez que inicie el sistema, los cambios sern aplicados y el nuevo servicio se activar automticamente.

13.5.

El editor de niveles de ejecucin de YaST

Al iniciar este mdulo se abre una mscara resumen que muestra todos los servicios disponibles y su estado de activacin. Un botn le permite seleccionar uno de los dos modos posibles, Modo sencillo o Modo experto. La opcin predeterminada es Modo sencillo, la cual suele resultar suciente para la mayora de los casos de aplicacin. Un resumen en forma de tabla muestra en orden alfabtico todos los servicios y daemons disponibles en el sistema. En la columna de la izquierda aparece el nombre del servicio, en la columna central su estado de activacin y a la derecha una breve descripcin del mismo. Debajo de la tabla se muestra una descripcin ms larga del servicio seleccionado en ese momento. Para activar un servicio, seleccinelo en la tabla y pulse Activar. Proceda de la misma forma para desactivar un servicio.

320

13.5. El editor de niveles de ejecucin de YaST

13
El concepto de arranque de SUSE LINUX

Figura 13.1: YaST: Editor de niveles de ejecucin

Si desea controlar nicamente el nivel de ejecucin en el que un servicio ha de iniciarse o detenerse, o cambiar el nivel de ejecucin predeterminado, cambie al Modo experto por medio del botn. En la mscara que aparece a continuacin se muestra primero el nivel de ejecucin predeterminado. Este modo de operacin es el que se inicia al arrancar el ordenador. El nivel predeterminado en SUSE LINUX suele ser el nmero 5 (modo multiusuario completo con red y XDM). Otro nivel adecuado sera por ejemplo el nmero 3 (modo multiusuario completo con red). YaST le permite denir en esta mscara otro nivel de ejecucin predeterminado, ver tabla 13.1 en la pgina 314. La activacin/desactivacin de servicios y daemons se produce en la tabla resumen. Esta tabla le informa sobre qu servicios y daemons estn disponibles, cules estn activos en el sistema y en qu niveles de ejecucin. Marcando una lnea con el ratn puede activar una de las casillas 0, 1, 2, 3, 5, 6 y S para determinar el nivel de ejecucin en el que se debe iniciar el servicio en cuestin. El nivel de ejecucin 4 se mantiene libre para una conguracin individual del usuario. Justo debajo del resumen se ofrece una breve descripcin del servicio o daemon seleccionado. Con Iniciar/parar/actualizar puede activar o desactivar un determinado servicio. Actualizar estado comprueba el estado actual en caso de que esto no se produzca automticamente.

SUSE LINUX Manual de Administracin

321

Mediante Aplicar/restaurar puede decidir si desea trabajar con la conguracin modicada por usted o bien recuperar la conguracin predeterminada (el estado posterior a la instalacin del sistema). Terminar guarda la conguracin de sistema.

Aviso
Editar las conguraciones del Runlevel La conguracin defectuosa de los servicios del sistema y de los niveles de ejecucin pueden provocar un fallo general en su sistema. Infrmese antes de realizar una modicacin en las conguraciones de las posibles consecuencias, con el n de proteger el funcionamiento del sistema.

Aviso

13.6.

SuSEcong y /etc/syscong

Gran parte de la conguracin de SUSE LINUX se puede realizar mediante los archivos de conguracin en /etc/sysconfig/. Las antiguas versiones de SUSE LINUX utilizaban el archivo /etc/rc.config para la conguracin del sistema. Este archivo es obsoleto y ya no se crea al realizar una nueva instalacin de SUSE LINUX. La conguracin completa del sistema se lleva a cabo en los archivos situados en /etc/sysconfig/. No obstante, el archivo /etc/rc.config ya existente se mantiene al actualizar. A los archivos en /etc/sysconfig/ slo se accede de forma puntual desde determinados scripts; de esta forma se garantiza que las conguraciones de red slo sean utilizadas por los scripts de red. Adems se pueden generar muchos ms archivos de conguracin del sistema dependientes de los archivos generados en /etc/sysconfig/; de lo cual se encarga /sbin/SuSEcong. As por ejemplo, despus de un cambio en la conguracin de la red se genera de nuevo el archivo /etc/host.conf, puesto que depende del tipo de conguracin. Por tanto, si se realizan cambios en los archivos mencionados, se debe ejecutar posteriormente SuSEcong para garantizar que la nueva conguracin se aplique en todos los sitios relevantes. Este no es el caso si modica la conguracin con el editor syscong de YaST, ya que este ejecuta automticamente SuSEcong con lo cual ya se actualizan los archivos correspondientes.

322

13.6. SuSEcong y /etc/syscong

Este concepto permite realizar cambios fundamentales en la conguracin del ordenador, sin necesidad de arrancar de nuevo; no obstante algunos cambios son muy profundos y, segn las circunstancias, algunos programas tienen que ser arrancados nuevamente. Si por ejemplo ha modicado la conguracin de red, al ejecutar manualmente los comandos rcnetwork stop y rcnetwork start se consigue que los programas de red afectados se reinicien. Se recomienda el siguiente procedimiento para la conguracin del sistema: Ejecutar el comando init 1 para cambiar el sistema al nivel de ejecucin 1 single user mode. Realizar los cambios requeridos en los archivos de conguracin . Esto se puede hacer con un editor de texto o mejor con el editor de syscong de YaST; ver apartado 13.7 en la pgina siguiente.

13
El concepto de arranque de SUSE LINUX

Aviso
Edicin manual de la conguracin del sistema Si no utiliza YaST para editar los archivos de conguracin en /etc/sysconfig/, escriba los parmetros vacos como dos signos sucesivos de comillas (por ejemplo KEYTABLE="") y entrecomille tambin los parmetros que contengan espacios. Esto no es necesario para las variables formadas por una nica palabra.

Aviso
Ejecutar SuSEcong para realizar los cambios en los diferentes archivos de conguracin. Esto ocurre automticamente si las modicaciones se realizan con YaST. Devolver el sistema al nivel de ejecucin anterior (3 en este ejemplo) mediante el comando init 3. Este procedimiento slo es necesario en caso de cambios amplios en la conguracin del sistema (por ejemplo conguracin de la red). Para tareas sencillas de administracin no es necesario entrar en el single user mode; sin embargo, as se asegura que todos los programas afectados por las modicaciones arranquen de nuevo.

SUSE LINUX Manual de Administracin

323

Atencin
Para desconectar por completo la conguracin automtica va SuSEcong, se puede activar la variable ENABLE_SUSECONFIG en /etc/sysconfig/suseconfig dndole el valor no. Si quiere recurrir al soporte de la instalacin, debe dar el valor yes a la variable ENABLE_SUSECONFIG. Tambin es posible deshabilitar la conguracin automtica selectivamente.

Atencin

13.7.

El editor Syscong de YaST

En el directorio /etc/sysconfig/ se encuentran los archivos que contienen las conguraciones ms importantes de SUSE LINUX. El editor Syscong de YaST muestra un resumen de todas las posibilidades de conguracin. Se pueden modicar los valores para pasarlos posteriormente a los archivos de conguracin que los albergan. Por lo general no hace falta realizar este tipo de modicacin manualmente, ya que cuando un paquete se instala o se congura un determinado servicio, los archivos se modican automticamente.

Aviso
Modicaciones en los archivos /etc/syscong/* No se deben realizar modicaciones en /etc/sysconfig/*/ sin tener suciente conocimiento previo, ya que partes importantes del sistema podran dejar de funcionar. Todas las variables syscong de los archivos /etc/sysconfig/ incluyen breves comentarios donde se documenta la funcin de la variable en cuestin.

Aviso
El editor syscong de YaST se inicia con una ventana dividida en tres partes. En la parte izquierda aparece una vista de rbol en la que puede seleccionarse la variable que se va a congurar. Una vez seleccionada la variable, aparece en la ventana de la derecha el nombre de la seleccin y la conguracin actualmente activa de esa variable. Por debajo de la variable se muestra una breve descripcin de la misma, sus valores posibles, el valor por defecto y los archivos en los que se almacena esta variable. La mscara incluye adems qu script de conguracin se ejecutar en caso de modicar esta variable y qu servicio ser reiniciado.

324

13.7. El editor Syscong de YaST

13
El concepto de arranque de SUSE LINUX

Figura 13.2: YaST: Conguracin con el editor syscong

YaST le pide una conrmacin de los cambios y le informa de los scripts que deben ser ejecutados tras abandonar el mdulo con Finalizar. Tambin tiene la posibilidad de saltarse el inicio de determinados servicios y scripts si todava no desea iniciarlos.

SUSE LINUX Manual de Administracin

325

Parte IV La red

14
Fundamentos de conexin a redes

Fundamentos de conexin a redes

Linux, que de hecho naci en Internet, proporciona todas las herramientas y prestaciones de red necesarias para la integracin en estructuras de red de todo tipo. A continuacin se expone una introduccin al protocolo de red TCP/IP normalmente utilizado por Linux con sus caractersticas y particularidades. Despus de los fundamentos se explica cmo congurar una tarjeta de red mediante YaST. Se explica el signicado de los cheros de conguracin ms importantes y algunas de la herramientas ms comunes. Puesto que la conguracin de una red puede llegar a ser muy compleja, en este captulo slo le explicaremos los conceptos ms fundamentales. Con YaST tambin puede congurar cmodamente la conexin a Internet va PPP, mdem, RDSI o DSL, lo cual se explica en Manual del usuario. 14.1. TCP/IP: el protocolo de red utilizado por Linux 14.2. IPv6 La prxima generacin de Internet . . . 14.3. Conguracin manual de la red . . . . . . . . . . 14.4. El acceso a la red . . . . . . . . . . . . . . . . . . 14.5. Enrutamiento en SuSE Linux . . . . . . . . . . . 14.6. DNS Domain Name System . . . . . . . . . . . 14.7. El servicio de directorio LDAP . . . . . . . . . . 14.8. NIS Network Information Service . . . . . . . . 14.9. NFS Sistema de archivos distribuidos . . . . . 14.10. HCP . . . . . . . . . . . . . . . . . . . . . . . . . D 14.11. incronizacin horaria con xntp . . . . . . . . . . S . . . . . . . . . . . . . . . . . . . . . . 330 339 347 356 360 361 373 389 394 399 405

14.1.

TCP/IP: el protocolo de red utilizado por Linux

Linux utiliza al igual que otros sistemas operativos un protocolo de comunicacin que se llama TCP/IP. En realidad no se trata de un solo protocolo de red sino de una familia de protocolos con diferentes prestaciones. TCP/IP se desarroll a base de una aplicacin militar y su especicacin actual se j en el ao 1981 en un documento RFC (Request For Comments). Los RFC son documentos que describen los diferentes protocolos de Internet y la implementacin de ellos en un sistema operativo o en aplicaciones. Estos documentos se encuentran en Internet en la direccin http://www.ietf.org/. Desde 1981 el protocolo slo se ha modicado en algunos detalles; la base del protocolo sigue siendo la misma.

Atencin
Los documentos RFC describen la estructura de los protocolos de Internet. Para profundizar sobre un determinado protocolo, en el documento RFC del protocolo concreto, encuentra una fuente de informacin muy buena; consulte http://www.ietf.org/rfc.html.

Atencin
Para el intercambio de datos va TCP/IP entre dos ordenadores con Linux, existen los servicios que se mencionan en la tabla 14.1. Cuadro 14.1: Diferentes protocolos de la familia TCP/IP Protocolos TCP Descripcin (Transmission Control Protocol ) es un protocolo asegurado orientado a la conexin. Desde el punto de vista de las aplicaciones, los datos se transmiten como un caudal y es el sistema operativo el que se encarga de convertirlos al formato adecuado para su transmisin. Las aplicaciones en la mquina remota reciben el caudal de datos tal como fue enviado y TCP se encarga de que el caudal llegue completo y ordenado. Por eso TCP se utiliza cuando el orden de los datos importa y cuando se puede hablar de una conexin.

330

14.1. TCP/IP: el protocolo de red utilizado por Linux

UDP

(User Datagram Protocol ) es un protocolo no asegurado y sin conexin. La transferencia de datos est orientada a paquetes creados directamente por la aplicacin. El orden de llegada de los paquetes no est garantizado y tampoco la llegada en s. UDP sirve para aplicaciones que transmiten bloques de datos y tiene menos tiempo de respuesta que TCP. (Internet Control Message Protocol ) es un protocolo que bsicamente no puede ser usado por el usuario, ya que su tarea es la de transmitir errores y de controlar los ordenadores que participan en el intercambio de datos. Adems ICMP incorpora un modo especial de eco, que se puede comprobar mediante ping. (Internet Group Management Protocol ) es un protocolo que controla el comportamiento de los ordenadores utilizando IP multicast. Lamentablemente no se puede presentar este protocolo dentro del marco de este libro.

14
Fundamentos de conexin a redes

ICMP

IGMP

Todas las redes interconectadas va TCP/IP a nivel mundial forman una sola red que se suele llamar Internet. Casi todos los protocolos de hardware estn basados en paquetes. Los datos a transmitir se han de dividir en pequeos paquetes, ya que es imposible transmitirlos de golpe. TCP/IP tambin trabaja con paquetes cuyo tamao mximo es de casi 64 kilobytes. En realidad los paquetes suelen tener un tamao mucho menor, ya que el tamao mximo de un paquete sobre una Ethernet es de 1500 bytes. Por eso el tamao de cada paquete TCP/IP se limita a estos 1500 bytes cuando el paquete pasa por una red del tipo Ethernet. Para transmitir ms datos, el sistema operativo tiene que enviar la cantidad correspondiente de paquetes.

14.1.1. Modelo de capas


Para ser exactos, el protocolo no se debera llamar TCP/IP sino slo IP. Con IP (Internet Protocol ) no se asegura la transferencia. TCP (Transmission Control Protocol ) es una capa de control por encima del protocolo IP que garantiza la transmisin de los datos.

SUSE LINUX Manual de Administracin

331

Finalmente el protocolo IP es superpuesto al protocolo que se encuentre por debajo y que depende directamente del hardware (por ejemplo Ethernet). Los expertos hablan aqu de modelo de capas. Ver la gura 14.1.

Figura 14.1: Modelo de capas simplicado para TCP/IP La imagen muestra uno o dos ejemplos para cada capa. Las capas se ordenan segn su nivel de abstraccin; la capa inferior se encuentra ms prxima al hardware, mientras que la capa superior envuelve el nivel de abstraccin mas alto. Cada capa tiene una determinada funcin que se explica a continuacin. La funcin de cada capa se deduce en buena medida de su denominacin. La red est representada por la capa de transmisin de bits y por la capa de seguridad. La primera capa se encarga de detalles como los tipos de cables, tipos de seales, la codicacin de las mismas, etc y se denomina capa fsica. La segunda capa se encarga del procedimiento de acceso a los datos y de la correccin de errores, por eso la capa se denomina capa de enlace. La tercera capa es la capa de red que se encarga de la transmisin de datos a travs de grandes distancias. Esta capa asegura que los datos encuentren el camino al destinatario a travs de diversas redes.

332

14.1. TCP/IP: el protocolo de red utilizado por Linux

La capa de transporte como cuarta capa se encarga de la llegada de los datos de las aplicaciones y del orden de los mismos. La capa de enlace slo asegura la llegada correcta de los datos, mientras que la capa de transporte evita la prdida de estos. La quinta capa representa nalmente el procesamiento de datos por parte de la aplicacin. Cada capa necesita un cierta informacin adicional para poder cumplir con su tarea. Esta informacin se encuentra en la cabecera (header) de cada paquete. Cada capa aade un pequeo bloque de datos (denominado cabecera de protocolo (protocol header) al paquete que se est formando. La gura 14.2 muestra el ejemplo de la composicin de un paquete TCP/IP que viaja sobre un cable de una red tipo Ethernet.

14
Fundamentos de conexin a redes

Figura 14.2: Paquete TCP/IP sobre Ethernet Una excepcin de la estructura de la cabecera son los dgitos de control que no se encuentran en la cabecera sino al nal. De esta forma el hardware de red lo tiene ms fcil. Como se puede observar, el mximo til de datos en un paquete sobre una red Ethernet es de 1460 bytes. Cuando una aplicacin quiere enviar datos por la red, los datos pasan por las diferentes capas que se encuentran (con excepcin de la primera) implementadas en el kernel de Linux. Cada capa se encarga de preparar los datos de tal forma que puedan ser pasados a la capa inferior. La capa ms baja se encarga nalmente del envo de los datos. Al recibir los datos, todo el proceso se invierte. Similar al proceso de pelar una cebolla, cada capa separa los encabezamientos de la parte til de datos. Finalmente la cuarta capa se encarga de preparar los datos para la aplicacin en la mquina remota.

SUSE LINUX Manual de Administracin

333

Durante el proceso de transferencia, cada capa slo se comunica con aquella que se encuentra directamente encima o debajo. Por eso para una aplicacin es totalmente irrelevante si los datos viajan a travs de una red de 100 MBit/s-FDDI o a travs de una lnea de mdem de 56 kbit/s. Igualmente para la lnea no son importantes los datos que se han de transferir sino que estos estn correctamente empaquetados.

14.1.2.

Direcciones IP y routing

Atencin
Las siguientes secciones se reeren a las redes IPv4. Puede obtener ms informacin sobre su sucesor, el protocolo IPv6, en el apartado 14.2 en la pgina 339.

Atencin
Direcciones IP Cada ordenador en Internet dispone de una direccin IP nica de 32 bits. Estos 32 bits o 4 bytes se representan normalmente como se muestra en la segunda la del ejemplo 14.1. Ejemplo 14.1: Formas de anotar una direccin IP
Direccin IP (binario): Direccin IP (decimal): 11000000 10101000 00000000 00010100 192. 168. 0. 20

Como se puede observar, los cuatros bytes se anotan en el sistema decimal como cuatro cifras de 0 a 255 separadas por un punto. Esta direccin asignada al ordenador o a su interfaz de red es nica y no puede ser utilizada en ningn otro lugar del mundo. Hay excepciones, pero estas no tienen relevancia en el ejemplo expuesto. La tarjeta Ethernet posee un nmero nico llamado MAC (Media Access Control ). Este nmero es de 48 bits y nico en el mundo; su fabricante lo almacena de forma ja en la tarjeta red. La asignacin de los nmeros MAC por parte de los fabricantes tiene una desventaja fatal: No hay ninguna jerarqua entre las tarjetas, sino que estn distribuidas al azar. Por eso no es posible utilizarlas para comunicarse con un ordenador a mucha distancia. Sin embargo la direccin MAC es de mucha importancia en una red local (es la parte importante de la cabecera del protocolo en la capa 2).

334

14.1. TCP/IP: el protocolo de red utilizado por Linux

Volviendo a las direcciones IP: Los puntos separadores ya indican la estructura jerrquica de las direcciones. Hasta mediados de los noventa, haba una separacin estricta en clases. Este sistema result muy poco exible por lo que se ha dejado de utilizar. Ahora se usa routing sin clases (CIDR (classless inter domain routing)). Routing y mscaras de red Puesto que los ordenadores con la direccin IP 192.168.0.0 no pueden saber dnde se encuentra la mquina con la direccin IP 192.168.0.20, se crearon las mscaras de red. Simplicando se puede decir que la mscara de (sub)red dene para un ordenador lo que se encuentra fuera y lo que se encuentra dentro. Se puede acceder directamente a aquellos ordenadores que se encuentren dentro (dentro de la misma subred) mientras que a las mquinas que estn fuera slo se llega a travs de un enrutador (router) o una pasarela (gateway). Como cada interfaz de red recibe una IP propia, todo puede llegar a ser muy complejo. Antes de que un paquete empiece a tomar rumbo por la red, el ordenador realiza lo siguiente: la direccin de destino se enlaza bit a bit con la mscara de red (por medio de la operacin lgica Y) y la direccin del remitente se enlaza con la mscara (ver tabla 14.2). Si existen varias interfaces de red disponibles se comprueban todas las direcciones de remitente posibles. Los resultados de los enlaces se comparan; en caso de que fueran idnticas, la mquina remota se encuentra en la misma subred que la mquina local. En cualquier otro caso hace falta acceder al ordenador remoto a travs de una pasarela. Es decir, cuantos ms bits con valor 1 se encuentren en la mscara de red, ms ordenadores se accedern a travs de la pasarela y menos se encontrarn en la propia subred. Para una mejor compresin, la tabla 14.2 contiene algunos ejemplos. Ejemplo 14.2: Enlace de direcciones IP con una mscara de red
Direccin IP (192.168.0.20): 11000000 10101000 00000000 00010100 Mscara de red (255.255.255.0): 11111111 11111111 11111111 00000000 ___________________________________________________________________ Resultado binario: 11000000 10101000 00000000 00000000 Resultado decimal: 192. 168. 0. 0 Direccin IP (213.95.15.200): 11010101 10111111 00001111 11001000 Mscara de red (255.255.255.0): 11111111 11111111 11111111 00000000 ------------------------------------------------------------------Resultado binario: 11010101 10111111 00001111 00000000 Resultado decimal: 213. 95. 15. 0

14
Fundamentos de conexin a redes
335

SUSE LINUX Manual de Administracin

La mscara de red se expresa al igual que la direccin IP por medio de valores decimales separados por puntos. Esta mscara es tambin un valor de 32 bit y por eso se anota igualmente en forma de cuatro cifras de tres dgitos cada una. El usuario se encarga de denir qu ordenadores trabajan como pasarelas y a qu rangos de direcciones se accede mediante qu interfaces de red. Un ejemplo prctico son todas las mquinas que se encuentran conectadas al mismo cable Ethernet. Estas se encuentran por lo general en la misma subred y se puede acceder a ellas directamente. Asimismo, si la Ethernet est dividida por switches o bridges, sigue siendo posible acceder directamente a estos ordenadores. Para atravesar distancias largas, ya no se puede utilizar Ethernet sino que hace falta pasar los paquetes IP por un soporte diferente (por ejemplo FDDI o RDSI). Tales aparatos se denominan router (enrutador) o gateway (pasarela). Un ordenador con Linux tambin se puede encargar de ello; esta funcionalidad se denomina ip_forwarding. En caso de trabajar con una pasarela, el paquete IP se manda a esta y la pasarela trata de pasar el paquetes segn el mismo esquema. Este proceso se repite hasta el momento de alcanzar el ordenador de destino o hasta que el tiempo de vida del paquete TTL (time to live) se haya agotado. Cuadro 14.2: Direcciones especiales Tipo de direcciones Direccin base Descripcin Es la direccin de la mscara de red operada con la conjuncin lgica AND (Y) con cualquier direccin de la red. Es exactamente lo que se reeja en la tabla 14.2 en la pgina anterior como Resultado de la conjuncin. No se puede asignar esta direccin a ningn ordenador. Con esta direccin se puede contactar con todas las computadoras de la subred al mismo tiempo. La direccin se crea invirtiendo su valor binario y realizando una OR lgica con la direccin base de la red. En el caso del ejemplo mencionado resulta el valor 192.168.0.255. Esta direccin tampoco puede ser asignada a ninguna computadora.

Direccin broadcast

336

14.1. TCP/IP: el protocolo de red utilizado por Linux

Localhost

En cada ordenador la direccin 127.0.0.1 corresponde al dispositivo loopback. La direccin sirve para crear una conexin en la propia mquina.

14
Fundamentos de conexin a redes

No se pueden utilizar direcciones IP al azar, ya que estas deben ser nicas en todo el mundo. Para congurar un red privada con direcciones IP existen tres rangos de direcciones que pueden ser utilizados sin problema. Como desventaja, no es posible realizar con estas direcciones una conexin directa a Internet sin realizar algunas conversiones. Los tres rangos reservados en RFC 1597 son los siguientes: Cuadro 14.3: Rangos para direcciones IP privadas Red/mscara de red 10.0.0.0/255.0.0.0 172.16.0.0/255.240.0.0 192.168.0.0/255.255.0.0 Rango 10.x.x.x 172.16.x.x - 172.31.x.x 192.168.x.x

14.1.3.

Domain Name System DNS

Gracias al DNS no hace falta recordar direcciones IP, ya que este sistema realiza la asignacin de una direccin IP a uno o varios nombres as como la asignacin inversa de un nombre a una direccin IP. En Linux, un software especial llamado bind es el que se encarga de establecer el vnculo entre nombres y direcciones IP. Un ordenador que presta este servicio se denomina servidor de nombres (name server). Los nombres tambin estn estructurados dentro de una jerarqua; las diferentes partes funcionales de los nombres se separan por puntos. Esta jerarqua de nombres es independiente de la ya mencionada jerarqua de direcciones IP. laurent.suse.de escrito en formato nombre_ordenador.dominio. Un nombre completo se denomina nombre de dominio totalmente cualicado (Fully Qualied Domain Name o FQDN ) y se compone del nombre del ordenador y de la parte del dominio. Este nombre de dominio se compone de una parte de libre eleccin en el ejemplo suse y del dominio de primer nivel (Top Level Domain TLD ).

SUSE LINUX Manual de Administracin

337

Por razones histricas la asignacin de los TLDs resulta algo confusa. En los EE.UU. se utilizan TLDs de tres letras mientras que el resto del mundo utiliza los cdigos de pas ISO de dos letras. Desde el ao 2000 existen TLDs adicionales para campos especcos que en ocasiones cuentan con ms de 3 letras (por ejemplo .info, .name, .museum, etc.). En los primeros das de Internet (antes de 1990) el archivo /etc/hosts albergaba los nombres de todos los ordenadores disponibles en Internet. Esta forma de resolucin de nombre se torn poco prctica debido al rpido crecimiento de Internet. Por eso se dise una base de datos descentralizada, capaz de guardar los nombres de las mquinas de forma distribuida. Esta base de datos o un servidor de nombres no dispone de los datos de todos los ordenadores en Internet, sino que es capaz de consultar otros servidores de nombres en un nivel ms alto. En la cspide de la jerarqua de servidores de nombres se encuentran los Root-Nameserver que administran los dominios de primer nivel (TLD). El Network Information Center (NIC) se encarga de la administracin de estos servidores. El Root-Nameserver conoce los servidores de nombres que se encargan de cada dominio de primer nivel. En el caso de la TLD de Alemania (de) es DE-NIC que se encarga de todos los dominios de este tipo. En la pgina web http://www.denic.de hay ms informacin sobre DE-NIC; http://www.internic.net informa sobre el NIC. El ordenador de sobremesa tiene que conocer la direccin IP de al menos un servidor de nombres para que sea capaz de convertir nombres en direcciones IP. Con YaST es muy fcil congurar el servidor de nombres. En el caso de una conexin va mdem, puede que no sea necesario congurarlo manualmente, ya que el protocolo utilizado para la conexin proporciona esta informacin durante el proceso de conexin. DNS es capaz de realizar otras tareas adems de la resolucin de nombres. El servidor de nombres conoce igualmente el ordenador que acepta los mensajes de todo un dominio. Este ordenador se conoce como Mail Exchanger (MX). El apartado 14.6 en la pgina 361 explica la conguracin de un servidor de nombres en SUSE LINUX. whois El protocolo whois es muy similar al de DNS y sirve para averiguar rpidamente quin se responsabiliza de un determinado dominio.

338

14.1. TCP/IP: el protocolo de red utilizado por Linux

14.2.

IPv6 La prxima generacin de Internet

14
Fundamentos de conexin a redes

Debido a la aparicin de la WWW (World Wide Web ), Internet y la cantidad de ordenadores que se comunican va TCP/IP han crecido vertiginosamente. Desde la invencin de la WWW por parte de Tim Berners-Lee, que trabajaba en el CERN (http://public.web.cern.ch/) en el ao 1990, la cantidad de los ordenadores en Internet ha crecido de algunos miles hasta alrededor de 100 millones actualmente. Como ya sabemos, una direccin IP slo tiene 32 bits. Muchas de las direcciones IP se pierden por su estructuracin. Internet se divide en subredes. Cada subred dispone de 2 elevado a N - 2 direcciones. Por eso una subred se compone por ejemplo de 2, 6, 14, 30, etc. direcciones IP. Para conectar por ejemplo 128 ordenadores a Internet, se necesita una subred con 256 direcciones IP de las que hay 254 tiles. Hay que restar dos direcciones para la direccin base de la red y para la de broadcast. Para contrarrestar la previsible escasez de direcciones, en el protocolo utilizado actualmente, IPv4, se emplean mecanismos como DHCP o NAT (Network Address Translation). Ambos procedimientos atenan relativamente la escasez de direcciones en Internet junto con la convencin de zonas de direcciones de red pblicas y privadas. El mayor inconveniente de estos mtodos radica en su compleja conguracin, que requiere adems un mantenimiento muy intensivo. Para congurar un ordenador en la red IPv4 es necesario introducir numerosos datos como la direccin IP propia, la mscara de subred, direccin de la pasarela y en ocasiones incluso un servidor de nombres. Tiene que saber esta informacin que no puede deducirse de ningn sitio. Con IPv6, la escasez de direcciones y la compleja conguracin pertenecen al pasado. En las secciones siguientes le ofrecemos informacin adicional sobre las novedades y ventajas de IPv6 y sobre la transicin del antiguo al nuevo protocolo.

14.2.1. Ventajas de IPv6


La ventaja ms importante y llamativa del nuevo protocolo es la considerable ampliacin del espacio direccional. Una direccin IPv6 contiene 128 bits en lugar de los tradicionales 32, con lo que el nmero de direcciones IP disponibles asciende a miles de billones (!).

SUSE LINUX Manual de Administracin

339

Las direcciones IPv6 se diferencian de sus predecesoras no slo en la longitud, sino tambin en su estructura interna. Esta estructura permite codicar informacin especial sobre el sistema correspondiente y su red. Esta informacin se ampla en la seccin 14.2.2 en la pgina siguiente. Entre las ventajas importantes del nuevo protocolo cabe tambin destacar: Conguracin automtica IPv6 aplica a la red el principio plug and play. Un sistema recin instalado puede integrarse sin problemas en la red (local). El mecanismo automtico de conguracin del terminal deduce la propia direccin de la informacin transmitida a travs del protocolo ND (Neighbor Discovery Protocol) por los enrutadores adyacentes. Este procedimiento no requiere la intervencin del administrador y tiene la ventaja adicional de que, a diferencia del distribuidor de direcciones DHCP usado en IPv4, hace innecesario el mantenimiento de un servidor central con las direcciones disponibles. Movilidad IPv6 permite asignar varias direcciones paralelas a una interfaz de red. Esto signica para usted como usuario que puede acceder a diversas redes cmoda y fcilmente. Puede comparar este mecanismo con el roaming de las redes de telefona mvil: aunque usted se encuentre en otro pas, su telfono mvil se introduce en la nueva red garantizando que siga disponible bajo el mismo nmero de telfono. Usted llama por telfono en la red externa como si se tratase de su red habitual. Comunicacin segura Mientras que en IPv4 la comunicacin segura constitua una funcin adicional, IPv6 incluye IPSec y por tanto la comunicacin segura entre dos sistemas mediante un tnel a travs de Internet. Compatibilidad con la versin anterior No es realista creer que la migracin de la totalidad de Internet de IPv4 a IPv6 se va a llevar a cabo rpidamente. Por eso es importante que ambas versiones puedan coexistir en Internet e incluso en un mismo sistema. La coexistencia de ambos protocolos en Internet est asegurada por el uso de direcciones compatibles (las direcciones IPv4 pueden convertirse fcilmente a direcciones IPv6) y la utilizacin de distintos tneles (vase la seccin 14.2.3 en la pgina 345). El uso de las direcciones IP de doble pila (dual-stack-IP) posibilita el soporte de ambos protocolos en el mismo sistema. Cada protocolo utiliza su propia pila de red para que no se produzcan conictos entre ambas versiones.

340

14.2. IPv6 La prxima generacin de Internet

Multicasting: servicios a la medida Mientras que en IPv4 algunos servicios (por ej. SMB) tenan que enviar por broadcast sus paquetes a todos los miembros de la red local, IPv6 permite un procedimiento muy distinto: con multicast es posible dirigirse al mismo tiempo a un grupo de ordenadores. Es decir, no a todos (broadcast ) o slo a uno (unicast ), sino a un grupo. De qu grupo se trate depende de la aplicacin. No obstante, existen algunos grupos ya denidos como todos los servidores de nombres (all nameservers multicast group) o todos los enrutadores (all routers multicast group).

14
Fundamentos de conexin a redes

14.2.2.

El sistema de direcciones de IPv6

Como ya se ha mencionado, el protocolo IP utilizado hasta la fecha presenta dos inconvenientes importantes. Por un lado, las direcciones IP disponibles son cada vez ms escasas y por otro, la conguracin de red y la administracin de tablas de enrutamiento son cada vez ms complicadas y requieren un gran esfuerzo de mantenimiento. IPv6 resuelve el primer problema con la ampliacin del espacio de direcciones a 128 bits. En cuanto al segundo problema, la solucin se encuentra en la estructura jerrquica de direcciones, los sosticados mecanismos de asignacin de direcciones en la red y la posibilidad del multi-homing, es decir, la existencia de varias direcciones para cada interfaz con acceso a distintas redes. En relacin a IPv6 se distingue entre tres tipos de direcciones: unicast Las direcciones de este tipo pertenecen a una nica interfaz de red y los paquetes con una direccin unicast se entregan a un solo destinatario. Las direcciones de esta clase se utilizan para dirigirse a ordenadores individuales en una red local o en Internet. multicast Las direcciones de este tipo hacen referencia a un grupo de interfaces. Los paquetes con una direccin multicast se entregan a todos los destinatarios pertenecientes a ese grupo. Este tipo de direcciones es utilizado principalmente por ciertos servicios de red para dirigirse a grupos determinados. anycast Las direcciones de este tipo hacen referencia a un grupo de interfaces. Los paquetes con una direccin anycast se entregan a los miembros del grupo ms cercano al remitente segn lo determine el protocolo de enrutamiento utilizado. Las direcciones de este tipo son utilizadas por terminales para encontrar servidores que ofrezcan un servicio determinado en su sector de red.

SUSE LINUX Manual de Administracin

341

Todos los servidores reciben la misma direccin anycast. Cuando un terminal solicita un servicio, el servidor que responde es aquel que se encuentre ms cercano al ordenador segn el protocolo de enrutamiento empleado. Si este servidor no est disponible, se utiliza automticamente el segundo ms cercano y as sucesivamente. Estructura de una direccin IPv6 Las direcciones IPv6 se representan de forma hexadecimal y estn formadas por ocho bloques de 16 bits cada uno separados por dos puntos (:). Est permitido suprimir bytes de cero al principio, pero no en medio ni al nal de un grupo. Es posible sustituir ms de cuatro bytes de cero sucesivos con el comodn ::. No se permite utilizar ms de un comodn en una direccin. El proceso de suprimir los ceros se denomina en ingls collapsing. En el extracto 14.3 se ilustra este procedimiento a travs de una misma direccin escrita de tres formas equivalentes. Ejemplo 14.3: Ejemplo de direccin IPv6
fe80 : 0000 : 0000 : 0000 : 0000 : 10 : 1000 : 1a4 fe80 : 0 : 0 : 0 : 0 : 10 : 1000 : 1a4 fe80 : : 10 : 1000 : 1a4

Cada parte de una direccin IPv6 tiene un signicado determinado. Los primeros bytes forman un prejo que indica el tipo de la direccin. La parte central hace referencia a una red o bien no representa nada, y el nal de la direccin es la parte del ordenador o host. Las mscaras de red se denen en IPv6 mediante la longitud del prejo que se indica al nal de la direccin con /. Segn la direccin representada en el extracto 14.4, los ltimos 64 bits integran la parte del ordenador y los primeros 64 la parte de red de la direccin. En otras palabras, la cifra 64 signica que la mscara de red se rellena bit por bit comenzando por la izquierda. Por eso la mscara de red tiene 64 bits. Al igual que en IPv4, un enlace del tipo Y de la mscara de red con la direccin IP determina si el ordenador se encuentra en la misma subred o en otra. Ejemplo 14.4: Direccin IPv6 con prejo
fe80::10:1000:1a4/64

IPv6 admite distintos prejos con un signicado denido (ver la tabla 14.4 en la pgina siguiente).

342

14.2. IPv6 La prxima generacin de Internet

Cuadro 14.4: Diferentes prejos IPv6 Prejo (hexadecimal) 00 Uso Direcciones IPv4 y compatibles con IPv4 sobre IPv6. Son direcciones compatibles con IPv4. Un router adecuado tiene que convertir el paquete IPv6 a IPv4. Hay otras direcciones especiales (por ejemplo loopback device) que utilizan este prejo. (Aggregatable Global Unicast Address) Igual que ahora, tambin en el caso de IPv6 se puede recibir la asignacin de subredes a travs de un proveedor. En la actualidad existen los siguientes espacios de direcciones: 2001::/16 (production quality address space) y 2002::/16 (6to4 address space). (link-local ) Las direcciones con este prejo no pueden ser enrutadas y por tanto slo se puede acceder a ellas en la misma subred. (site-local ) Estas direcciones pueden ser enrutadas pero solamente dentro de una misma organizacin. Estas direcciones corresponden a las direcciones privadas actuales (por ejemplo 10.x.x.x). (multicast ) Las direcciones IPv6 que comienzan por ff son direcciones multicast.

14
Fundamentos de conexin a redes

Primera cifra 2 3

fe80::/10

fec0::/10

ff

La estructura de las direcciones se divide en tres partes: Public topology La primera parte, que incluye entre otras cosas uno de los prejos mencionados en las lneas superiores, sirve para enrutar el paquete en Internet. Contiene informacin codicada sobre el proveedor o la institucin que proporciona la conexin de red. Site topology La segunda parte contiene informacin de ruta sobre la subred en la que ha de entregarse el paquete.

SUSE LINUX Manual de Administracin

343

Interface ID La tercera parte identica de forma unvoca la interfaz a la que va dirigida el paquete. Aqu se permite utilizar la direccin MAC como parte de la direccin, lo que simplica enormemente la conguracin del ordenador al ser una direccin nica en el mundo y estar determinada por el fabricante de hardware. De hecho, los primeros 64 bits se agrupan incluso en un identicador EUI-64 en el que los ltimos 48 bits se toman de la direccin MAC y los 24 restantes incluyen informacin especial sobre el tipo de identicador. Esto tambin permite asignar un identicador EUI-64 a dispositivos sin direccin MAC (conexiones PPP y RDSI). Partiendo de esta estructura bsica, se distinguen cinco tipos de direcciones unicast: :: (unspecied) Esta es la direccin de salida utilizada por un ordenador cuando su interfaz de red se inicia por primera vez y todava no dispone de informacin sobre la propia direccin. ::1 (loopback) Direccin del dispositivo loopback. Direccin compatible con IPv4 La direccin IPv6 est compuesta por la direccin IPv4 y un prejo de 96 bits 0 al principio de la direccin. Este tipo de direcciones compatibles se utiliza en el tunneling (ver el apartado 14.2.3 en la pgina siguiente). De esta forma, los ordenadores IPv4/IPv6 pueden comunicarse con otros situados en redes exclusivamente IPv4. Direcciones IPv6 asignadas a IPv4 Este tipo de direccin indica la direccin IPv6 de un ordenador IPv4. Direcciones locales Existen dos tipos de direcciones para el uso puramente local: link-local Este tipo de direccin se utiliza exclusivamente en la subred local. Los enrutadores no pueden enviar los paquetes que cuenten con una direccin de salida o destino de este tipo a Internet o a otras subredes. Estas direcciones se caracterizan por un prejo especial (fe80::/10) y el ID de interfaz de la tarjeta de red. La parte central de la direccin se compone de bytes 0 sin signicado. Este tipo de direccin se emplea en los procesos de conguracin automtica para dirigirse a ordenadores en la misma subred.

344

14.2. IPv6 La prxima generacin de Internet

site-local Este tipo de direccin puede enrutarse entre distintas subredes pero no fuera de una organizacin (site) hacia Internet. Estas direcciones se utilizan en intranets y equivalen a las direcciones privadas de IPv4. Adems de un prejo denido (fec0::/10) y del ID de interfaz, estas direcciones incluyen un campo de 16 bits en el que est codicado el ID de subred. El resto se rellena con bytes 0. En IPv6 existe adems una novedad: a una interfaz de red se le asignan por lo general varias direcciones IP, pudiendo as disponer de redes distintas. Una de ellas puede congurarse por completo automticamente con ayuda de la direccin MAC y un prejo conocido. De esta forma, todos los ordenadores de la red local (direcciones link-local) estn disponibles inmediatamente despus de iniciar IPv6 sin procesos de conguracin adicionales. Gracias a las direcciones MAC integradas en las direcciones IP, estas direcciones pueden distinguirse a nivel global. Las partes de la Site Topology o Public Topology pueden variar dependiendo de la red en la que el ordenador se encuentre en ese momento. Si un ordenador se mueve entre distintas redes, necesita al menos dos direcciones. Una de ellas (home address) contiene, adems del ID de interfaz, informacin sobre la red local en la que funciona normalmente el ordenador y el prejo correspondiente. La home address es esttica y no se modica. Todos los paquetes dirigidos a este ordenador se entregan tanto en la red local como en la externa. La entrega de paquetes en la red externa es posible gracias a importantes novedades del protocolo IPv6: stateless autoconguration y neighbor discovery. Adems de la home address, un ordenador mvil cuenta con una o varias direcciones adicionales pertenecientes a las redes externas en las que se mueve. Este tipo de direcciones se denomina care-of address. La red local del ordenador mvil debe contener una instancia que reenve los paquetes dirigidos a la home address en caso de que el ordenador se encuentre en otra red. En entornos IPv6, esta funcin la realiza un home agent que entrega todos los paquetes dirigidos a la direccin local del ordenador mvil mediante un tnel. Aquellos paquetes cuya direccin destino sea la care-of address pueden ser entregados directamente a travs del home agent.

14
Fundamentos de conexin a redes

14.2.3.

Coexistencia de IPv4 e IPv6

La migracin de todos los ordenadores en Internet de IPv4 a IPv6 no va a producirse de la noche a la maana, sino que ambos protocolos coexistirn durante algn tiempo.

SUSE LINUX Manual de Administracin

345

La coexistencia en un ordenador se resuelve gracias a la doble pila o dual stack. No obstante, queda la pregunta de cmo se comunican los ordenadores IPv6 con ordenadores IPv4 y cmo se transporta IPv6 a travs de las redes IPv4 an predominantes. El mtodo de tunneling y las direcciones compatibles (ver la seccin 14.2.2 en la pgina 342) constituyen la respuesta a estos problemas. Las islas IPv6 individuales en medio de una red (global) IPv4 intercambian sus datos a travs de tneles. Este mtodo consiste en empaquetar los paquetes IPv6 en paquetes IPv4 para poder transportarlos a travs de una red exclusivamente IPv4. Un tnel se dene como la conexin entre dos puntos nales IPv4. Aqu debe especicarse la direccin destino IPv6 (o el prejo correspondiente) a la que se dirigen los paquetes IPv6 encubiertos y la direccin remota IPv4 en la que han de recibirse los paquetes enviados por el tnel. En el caso ms sencillo, los administradores conguran manualmente estos tneles entre su red y el punto destino. Este mtodo se denomina tunneling esttico. Sin embargo, el mtodo manual no siempre basta para congurar y administrar los tneles necesarios para el trabajo diario en red. Por este motivo se han desarrollado tres mtodos que permiten el tunneling dinmico. 6over4 Los paquetes IPv6 se empaquetan automticamente en paquetes IPv4 y se envan a travs de una red IPv4 en la que se ha activado el multicasting. De cara a IPv6 se acta como si toda la red (Internet) fuese una nica LAN (Local Area Network ) de proporciones gigantescas. As se detecta automticamente el punto nal IPv4 del tnel. Los inconvenientes de este mecanismo son una escalabilidad deciente y el hecho de que el multicasting no est ni mucho menos disponible en toda Internet. Este mtodo, que se describe en el RFC 2529, resulta adecuado para empresas pequeas o redes de instituciones que dispongan de multicasting. 6to4 En este mtodo se generan automticamente direcciones IPv6 a partir de direcciones IPv4, permitiendo as que las islas IPv6 se comuniquen entre s a travs de una red IPv4. No obstante, tambin existen algunos problemas en la comunicacin entre las islas IPv6 e Internet. Este mtodo se basa en el RFC 3056. IPv6 Tunnel Broker En este mtodo se utilizan servidores especiales que se encargan de crear automticamente tneles para el usuario. Este procedimiento se describe en el RFC 3053.

346

14.2. IPv6 La prxima generacin de Internet

Atencin
La iniciativa 6Bone En medio de la anticuada Internet, existe una red mundial de subredes IPv6 conectadas entre s por medio de tneles. Dicha red se conoce como 6Bone (www.6bone.net) y en ella se prueba IPv6. Los desarrolladores de software y proveedores que desarrollan u ofrecen servicios IPv6 pueden servirse de este entorno de pruebas para acumular experiencias con el nuevo protocolo. Puede obtener informacin adicional en la pgina web del proyecto 6Bone.

14
Fundamentos de conexin a redes
Atencin

14.2.4. Literatura y enlaces sobre IPv6


El resumen de IPv6 presentado no pretende ser una introduccin completa acerca del amplio tema IPv6. Para ms informacin (en ingls), puede consultar la literatura impresa o en lnea que se presenta a continuacin: http://www.ngnet.it/e/cosa-ipv6.php Serie de artculos que describen de forma excelente los fundamentos de IPv6. Resulta muy adecuado para irse introduciendo en este tema. http://www.bieringer.de/linux/IPv6/ CMOs de IPv6 en Linux y muchos enlaces. http://www.6bone.de/ Acceder a IPv6 a travs de un tnel. http://www.ipv6.org/ Todo acerca de IPv6. RFC 1725 El RFC introductorio sobre IPv6. IPv6 Essentials Informacin general sobre IPv6. Hagen, Silvia: IPv6 Essentials. OReilly & Associates, 2002. - (ISBN 0-596-00125-8).

14.3.

Conguracin manual de la red

La conguracin manual de la red no es muy aconsejable, ya que es ms sencillo usar YaST. Lo esencial es que todas las interfaces de red estn redactadas con el script /sbin/ifup. Para detener o probar una interfaz, se puede utilizar ifdown e ifstatus.

SUSE LINUX Manual de Administracin

347

Si slo dispone de una tarjeta de red integrada en el ordenador, basta con que congure las interfaces a travs del nombre. Con ifup eth0, ifstatus eth0 e ifdown eth0 puede iniciar, probar y parar la interfaz de red eth0. Los datos de conguracin que se utilizan se encuentran en /etc/sysconfig/network/ifcfg-eth0. eth0 es aqu tanto el nombre de la interfaz como el nombre de la conguracin de la red. De forma alternativa, la conguracin de la red tambin puede asignar la direccin de hardware (direccin MAC) de una tarjeta de red. Para ello se utiliza un archivo de conguracin ifcfg<direccindehardwaresinlosdospuntos>. Se debe escribir las letras de la direccin de hardware en minsculas, tal y como se muestra con ip link (ifconfig utiliza maysculas). Cuando ifup encuentra un archivo de conguracin que se adecua a la direccin de hardware, se pasar por alto un ifcfg-eth0 que pueda estar disponible. Con las tarjetas de red que soportan hotplug es un poco ms complicado. Si no tiene este tipo de tarjeta, puede pasar a la seccin 14.3.1 en la pgina siguiente. Puesto que con tarjetas de red que soportan hotplug la asignacin del nombre de la interfaz es aleatoria, las conguraciones de este tipo de tarjetas no se encuentran bajo del nombre de la interfaz, sino bajo un denominador que describe el tipo de hardware utilizado y el punto de anclaje mencionados en la descripcin de hardware que viene a continuacin. En este caso ifup debe ser utilizado con dos argumentos: la descripcin exacta del hardware y el nombre actual de la interfaz. Finalmente, ifup proveer la conguracin que mejor se ajusta a la descripcin del hardware. Como ejemplo tenemos un porttil con dos conexiones PCMCIA y una tarjeta de red Ethernet PCMCIA. El equipo tiene adems una tarjeta de red integrada con el nombre de interfaz eth0. Cuando insertamos esta tarjeta en el lugar de conexin 0, la descripcin del hardware es eth-pcmcia-0. Ahora cardmgr o el script de red de hotplug ejecutan ifup eth-pcmcia-0 eth1. ifup busca si existe un archivo ifcfgeth-pcmcia-0 en /etc/sysconfig/network/. Si no lo hay, seguir buscando en ifcfg-eth-pcmcia, ifcfg-pcmcia-0, ifcfg-pcmcia, ifcfg-eth1 e ifcfg-eth. El primer archivo que encuentre ser el que utilice para la conguracin. Cuando se deba denir una conguracin de red vlida para todas las tarjetas de red PCMCIA (en todos los puntos de conexin), esta se deber llamar ifcfg-pcmcia. Esta servir entonces tanto para eth-pcmcia-0 como para una tarjeta Tokenring en el punto de conexin 1 tr-pcmcia-1.

348

14.3. Conguracin manual de la red

Tambin aqu tiene preferencia una conguracin en funcin de la direccin de hardware, lo cual no hemos mencionado en el ejemplo por cuestiones de claridad. YaST da un rodeo cuando se trata de congurar tarjetas de red que soporten hotplug. All se numeran las conguraciones para tales tarjetas. Por eso YaST siempre escribe las conguraciones para una tarjeta PCMCIA segn ifcfg-eth-pcmcia-<nmeroactual>. Para que a pesar de todo esta conguracin sea vlida para todos los puntos de conexin, se introduce un enlace ifcfg-eth-pcmcia en este archivo. Tngalo en cuenta si congura con YaST slo parcialmente.

14
Fundamentos de conexin a redes

14.3.1. Archivos de conguracin


En resumen, este apartado explica la funcin de los archivos de conguracin de red y expone sus formatos. /etc/syscong/network/ifcfg-* En estos archivos se incluyen los datos especcos de una interfaz de red. Se les puede denominar segn el nombre de la interfaz (ifcfgeth2), segn la direccin de hardware de una tarjeta de red (ifcfg000086386be3) o segn la descripcin de hardware de una tarjeta (ifcfg-usb). Si se utilizan alias de red, los archivos necesarios se denominan simplemente ifcfg-eth2:1 o ifcfg-usb:1. El script ifup recibe, junto al nombre de la interfaz, una precisa descripcin de hardware, tras lo que busca el archivo de conguracin ms adecuado para la conguracin. Los archivos contienen la direccin IP (BOOTPROTO=static, IPADDR=10.10.11.214) o la indicacin de utilizar DHCP (BOOTPROTO="dhcp"). Puede que la direccin IP ya contenga la mscara de red (IPADDR="10.10.11.214/16"). La lista completa de variables se encuentra en la pgina del manual de ifup. Adems se pueden utilizar todas las variables de los archivos dhcp, wireless y config en ifcfg-*, en caso de que se deba utilizar una conguracin general para una determinada interfaz. /etc/syscong/network/cong,dhcp,wireless El archivo config incluye conguraciones generales para el comportamiento de ifup, ifdown y ifstatus.

SUSE LINUX Manual de Administracin

349

Este archivo est completamente comentado; tambin hay comentarios en dhcp y wireless, en los que tiene lugar las conguraciones generales para DHCP y tarjetas de red inalmbrica. Tambin se pueden utilizar todas las variables de estos archivos en ifcfg-*, donde naturalmente tienen preferencia. /etc/resolv.conf Al igual que el archivo /etc/host.conf, este tambin juega un papel en la resolucin de nombres de ordenadores a travs de la librera resolver. En este archivo se indica el dominio al que pertenece el ordenador (palabra clave search) y la direccin del servidor de nombres (palabra clave nameserver) al que se debe dirigir. Se puede introducir ms nombres de dominio. Al resolver nombres que no estn totalmente cualicados se intentar generar un nombre vlido y cualicado aadiendo entradas nicas en search. Se puede dar a conocer otros servidores de nombres aadiendo ms lneas que comiencen con nameserver. Se puede introducir comentarios con #. En el archivo 14.5, se muestra un ejemplo para /etc/resolv.conf. Ejemplo 14.5: /etc/resolv.conf
# Our domain search example.com # # We use sol (192.168.0.20) as nameserver nameserver 192.168.0.20

YaST escribe aqu el servidor de nombres especicado. Algunos servicios, como pppd (wvdial), ipppd (isdn), dhcp (dhcpcd y dhclient), pcmcia y hotplug pueden modicar los archivos /etc/resolv. conf mediante el script modify_resolvconf. Al modicar el archivo /etc/resolv.conf con este script, aquel contendr un comentario que da informacin sobre los servicios que se han modicado, el lugar donde se encuentra el archivo original y cmo se puede detener las modicaciones automticas. Si /etc/resolv.conf es modicado ms veces, se volver a limpiar este cmulo de modicaciones cuando se recojan en otro orden; lo cual puede ocurrir con isdn, pcmcia y hotplug.

350

14.3. Conguracin manual de la red

Si un servicio no ha nalizado limpiamente,se puede restaurar el estado original con ayuda del script modify_resolvconf. Al arrancar se probar si un resolv.conf se ha quedado modicado (por ejemplo debido a un cuelgue del sistema); en ese caso se volver a restaurar el resolv.conf original (sin modicar). Por medio de modify_resolvconf check, YaST averigua si resolv. conf fue modicado, tras lo cual avisa al usuario de que se han perdido sus cambios tras la restauracin. En caso contrario, YaST no utiliza modify_resolvconf, lo que quiere decir que una modicacin en el archivo resolv.conf mediante YaST equivale a una modicacin manual. Ambas indican una modicacin duradera mientras que las realizadas por los servicios mencionados slo son pasajeras. /etc/hosts Este archivo (ver archivo 14.6) tiene una tabla de asignacin entre nombres de ordenadores y direcciones IP. En esta tabla deben aparecer todos los ordenadores con los que se quiere establecer una conexin IP cuando no se usa un servidor de nombres. Cada ordenador ocupa una lnea en la tabla que contiene el nmero IP, el nombre completo de la mquina y el nombre (abreviado), por ejemplo tierra. La lnea debe comenzar con la direccin IP y las dems indicaciones se separan con espacios o tabuladores. Los comentarios comienzan con #. Ejemplo 14.6: /etc/hosts
127.0.0.1 localhost 192.168.0.20 sol.example.com sol 192.168.0.0 tierra.example.com tierra

14
Fundamentos de conexin a redes

/etc/networks En este archivo se convierten los nombres de redes en direcciones de red. El formato se parece al del archivo hosts slo que aqu los nombres de las redes aparecen por delante de sus direcciones IP (ver archivo 14.7). Ejemplo 14.7: /etc/networks
loopback localnet 127.0.0.0 192.168.0.0

SUSE LINUX Manual de Administracin

351

/etc/host.conf La resolucin de nombres, o sea, la traduccin del nombre del ordenador o de la red mediante la librera resolver, se gestiona a travs de este archivo. El cual slo se utiliza para programas con enlaces a libc4 o libc5 (para programas glibc actuales, ver las opciones de conguracin en etc/nsswitch.conf). Un parmetro debe ocupar una sola lnea y los comentarios comienzan con #. Los parmetros posibles se muestran en la tabla 14.5. Cuadro 14.5: Parmetros de /etc/host.conf order hosts, bind Determina el orden de llamada a los servicios de resolucin de nombres. Los parmetros posibles, separados por espacios o comas, son: hosts: Bsqueda en el archivo /etc/hosts bind: Llamada a un servidor de nombres nis: Mediante NIS multi on/off Determina si un ordenador dado de alta en /etc/hosts puede tener varias direcciones IP. Estos parmetros inuyen sobre el spoong del servidor de nombres, pero no tienen ninguna inuencia adicional sobre la conguracin de red. El nombre de dominio que se indica aqu, se resta del nombre totalmente cualicado del ordenador que lo contiene (antes de asignar la direccin IP al nombre de ordenador). Se trata de una opcin muy til cuando el archivo /etc/hosts slo contiene nombres de ordenadores locales (alias) y estos deben ser reconocidos tambin cuando se aade el nombre del dominio.

nospoof on spoofalert on/off

trim domainname

352

14.3. Conguracin manual de la red

El archivo 14.8 muestra un ejemplo de /etc/host.conf. Ejemplo 14.8: /etc/host.conf


# We have named running order hosts bind # Allow multiple addrs multi on

14
Fundamentos de conexin a redes

/etc/nsswitch.conf Con la version 2.0 de la librera GNU de C comenz el uso del Name Service Switch (NSS) (ver la pgina del manual de man 5 nsswitch.conf o bien la informacin ms extensa de The GNU C Library Reference Manual, captulo System Databases and Name Service Switch ver libcinfo. El archivo /etc/nsswitch.conf determina en qu orden se solicitan determinadas informaciones. El archivo 14.9, muestra un ejemplo para nsswitch.conf en el cual las lneas de comentarios comienzan con #. Respecto a la base de datos hosts, el ejemplo siguiente indica que se enva una solicitud al servicio DNS (ver el apartado 14.6 en la pgina 361) despus de consultar /etc/hosts (files). Ejemplo 14.9: /etc/nsswitch.conf
passwd: group: hosts: networks: services: protocols: netgroup: automount: compat compat files dns files dns db files db files files files nis

Las bases de datos accesibles va NSS se recogen en la tabla 14.6 en la pgina siguiente. Para el futuro se espera tambin la disponibilidad de automount, bootparams, netmasks y publickey.

SUSE LINUX Manual de Administracin

353

Cuadro 14.6: Bases de datos accesibles a travs de /etc/nsswitch.conf aliases ethers group hosts netgroup Alias de correo usado por sendmail, ver la pgina del manual man 5 aliases. Direcciones de ethernet. Usado por getgrent para grupos de usuarios, ver la pgina del manual man 5 group. Para nombres de host y direcciones IP, utilizados por funciones como gethostbyname o similares. Lista de hosts y de usuarios vlida en la red para administrar los derechos de acceso; ver la pgina del manual man 5 netgroup. Nombres y direcciones de redes, lo usa getnetent. Contraseas de usuarios, utilizado por getpwent, ver la pgina del manual man 5 passwd. Protocolos de red, informacin utilizada por getprotoent, ver la pgina del manual man 5 protocols. Nombres y direcciones del tipo Remote Procedure Call; utilizado por getrpcbyname y funciones similares. Servicios de red; lo usa getservent. Las contraseas Shadow de los usuarios, usado por getspnam, ver la pgina del manual man 5 shadow.

networks passwd protocols

rpc

services shadow

Las opciones de conguracin de las bases de datos NSS se encuentran en tabla 14.7 en la pgina siguiente.

354

14.3. Conguracin manual de la red

Cuadro 14.7: Opciones de conguracin de las bases de datos NSS files db nis nisplus dns compat adems Parmetro adicional, solo aplicable para hosts y networks. Parmetro adicional para passwd, shadow y group. es posible conseguir diferentes resultados en caso de determinados eventos Lookup; puede encontrar informacin adicional en la pgina del manual man 5 nsswitch.conf. acceso directo a los archivos, por ejemplo a /etc/ aliases. acceso a travs de una base de datos. NIS, ver apartado 14.8 en la pgina 389.

14
Fundamentos de conexin a redes

/etc/nscd.conf Este es el archivo para congurar el nscd (Name Service Cache Daemon); ver las pginas del manual man 8 nscd y man 5 nscd.conf. La informacin en cuestin es la que se encuentra en passwd y groups. hosts no es ledo para no tener que reiniciar el daemon por ejemplo cuando se cambia la resolucin de nombres de dominio (DNS) modicando /etc/resolv.conf. Cuando est activada la caracterstica caching para passwd, normalmente pasan unos 15 segundos hasta que un usuario creado de nuevo se conozca en el sistema. Reiniciando nscdcon el comando rcnscd restart, este tiempo de espera se puede reducir. /etc/HOSTNAME Aqu se encuentra el nombre del ordenador, es decir, slo el nombre del host sin el nombre de dominio. Hay distintos scripts que leen este archivo durante el arranque del ordenador. No debe contener ms que una sola lnea con el nombre del ordenador!

SUSE LINUX Manual de Administracin

355

14.3.2.

Scripts de arranque

Adems de los archivos de conguracin mencionados, existen diferentes scripts (macros) que inician los programas de red cuando el ordenador arranca. Estos scripts se inician cuando el sistema entra en uno de los niveles de ejecucin de multiusuario (ver tabla 14.8). Cuadro 14.8: Algunos scripts de arranque de las aplicaciones de red /etc/init.d/network Este script se encarga de la conguracin de hardware y software de la red durante la fase de arranque del sistema. Inicia el xinetd. xinetd puede utilizarse para proporcionar servicios de servidor en el sistema. As por ejemplo, puede activar vsftpd cuando se inicia una conexin FTP. Inicia el portmapper, el cual se necesita para utilizar servidores RPC tales como un servidor NFS. Inicia el servidor NFS. Controla el proceso de postx. Inicia el servidor NIS. Inicia el cliente NIS.

/etc/init.d/xinetd

/etc/init.d/portmap

/etc/init.d/nfsserver /etc/init.d/postfix /etc/init.d/ypserv /etc/init.d/ypbind

14.4.

El acceso a la red

Finalmente TCP/IP se ha impuesto como el protocolo de red estndar y todos los sistemas operativos modernos son capaces de comunicarse con este protocolo. Sin embargo Linux sigue soportando otros protocolos de red como por ejemplo IPX usado (anteriormente) por Novell Netware y Appletalk utilizado por los Macintosh. Este captulo slo explica la integracin de un ordenador con Linux en una red TCP/IP. La conguracin de tarjetas de red exticas como Arcnet, Token-Ring o FDDI se explica en la documentacin de la fuentes del kernel en /usr/src/linux/Documentation que puede instalar por separado con el paquete kernel-source .

356

14.4. El acceso a la red

14.4.1. Preparativos
El ordenador debe disponer de una tarjeta red soportada. Normalmente esta se reconoce durante la instalacin y el controlador adecuado se activa. Puede comprobarse que la tarjeta ha sido detectada correctamente, por ejemplo, cuando el resultado del comando ifstatus eth0 muestra el dispositivo de red eth0. Por defecto el kernel de SUSE realiza el soporte de la tarjeta de red mediante un mdulo. En este caso el nombre del mdulo debe aparecer como alias en el archivo /etc/modules.conf. Para la primera tarjeta Ethernet por ejemplo de la siguiente forma: alias eth0 tulip. Esto funciona automticamente cuando se carga durante la primera instalacin desde linuxrc el controlador de la tarjeta de red. Posteriormente se puede realizar esta tarea con YaST. Las tarjetas de red que soportan hotplug (por ejemplo PCMCIA o USB) proporcionarn automticamente los controladores al insertarlas, por lo que no se debe congurar nada.

14
Fundamentos de conexin a redes

14.4.2. Conguracin de red con YaST


YaST permite la conguracin rpida de la tarjeta de red. Escoja en Centro de control la opcin Red/Dispositivos y despus Congurar tarjeta de red. En este dilogo, puede integrar una tarjeta de red con Aadir; con Retirar se eliminar la conguracin de la tarjeta correspondiente; y con Cambiar se puede modicar la conguracin de la tarjeta. Active la opcin Hardware para modicar con Editar los datos de hardware de una tarjeta de red ya congurada. Aparece un men para la conguracin del hardware tal como se reeja en la gura 14.3 en la pgina siguiente. YaST suele congurar y activar correctamente la tarjeta de red durante la instalacin. Por eso normalmente slo se requiere una conguracin manual trabajando con ms de una tarjeta de red o cuando la deteccin automtica del hardware falla. En tal caso hay que pulsar Aadir para seleccionar un controlador nuevo. Este dilogo permite seleccionar el tipo de tarjeta de red y, en caso de las tarjetas tipo ISA, tambin la interrupcin y la direccin de entrada y salida (IO). Algunos controladores admiten parmetros especiales como la seleccin de la interfaz entre el conector RJ-45 o el del tipo BNC. Para averiguarlo, consulte la documentacin del controlador. Para PCMCIA y USB basta con activar las casillas correspondientes.

SUSE LINUX Manual de Administracin

357

Figura 14.3: Conguracin de los parmetros de hardware

Despus de haber introducido los parmetros de hardware, se pueden congurar los parmetros adicionales de la interfaz de red. Dentro del dilogo de la Conguracin bsica de red seleccione el botn Interfaz para activar la tarjeta recientemente congurada y para asignarle una direccin IP. Despus de haber elegido la tarjeta pulse sobre Editar. Aparece un nuevo dilogo que permite asignar la direccin IP y denir datos adicionales de la red IP Al congurar una red propia, se puede asignar las direcciones IP tal como lo expone el apartado 14.1 en la pgina 330 y la tabla 14.3 en la pgina 337. Si no es as, los apartados se han de rellenar con las direcciones asignadas por parte del administrador de la red. No olvide congurar un servidor de nombres en Hostname y nameserver para que la resolucin de nombres funcione correctamente tal como se explica en el apartado 14.6 en la pgina 361. La opcin Routing permite congurar el enrutamiento y mediante Conguracin para expertos se pueden realizar ajustes avanzados. Si utiliza tarjetas de red inalmbricas, active la casilla Dispositivo wireless. Ahora podr llevar a cabo las conguraciones ms importantes en el dilogo apropiado. En esencia estas son el modo de funcionamiento, el nombre de la red y la clave de codicacin la transmisin de datos.

358

14.4. El acceso a la red

Aqu se termina la conguracin de la red y YaST inicia SuSEcong, que se encarga de introducir las indicaciones hechas en los correspondientes archivos. Para activar los ajustes y usar la nueva conguracin hay que iniciar de nuevo los daemons correspondientes. Esto se consigue introduciendo el comando rcnetwork restart como usuario root.

14
Fundamentos de conexin a redes

14.4.3. Hotplug/PCMCIA
Las tarjetas de red compatibles con hotplug, como por ejemplo dispositivos PCMCIA o USB, son un caso especial dado que su denominacin como dispositivo puede variar. Las tarjetas de red jas siempre se identican igual (por ejemplo eth0) mientras que a este otro tipo se les asigna un nombre variable. Para evitar conictos con tarjetas jas, el servicio PCMCIA o hotplug se inicia siempre despus de los servicios de red. Por eso no hace falta iniciar los servicios PCMCIA antes de los servicios de red. Al contrario: Si estas tarjetas slo fueran accionadas por el script de arranque de la red, existe la posibilidad de que se pierdan segn avanza el funcionamiento del sistema.

14.4.4. Congurar IPv6


Para utilizar IPv6 normalmente no hace falta congurar nada especial en el lado de los clientes. Lo nico que hace falta es cargar el soporte de IPv6 por ejemplo ejecutando el comando modprobe ipv6 como usuario root. De acuerdo con la losofa de autoconguracin en IPv6, se asigna a la tarjeta una direccin de red dentro de la red link-local. Normalmente no se mantiene ninguna tabla de routing en un ordenador cliente, que puede consultar mediante el Router Advertisement Protocol los enrutadores que existen en la red y el prejo que se ha de utilizar. El programa radvd del paquete radvd sirve para congurar un enrutador IPv6. Este programa indica a los clientes el prejo utilizado para las direcciones IPv6 y el/los enrutador(es) en la red. Asimismo, el programa zebra tambin puede utilizarse para la conguracin automtica de direcciones y enrutadores. Para asignar cmodamente una direccin IPv6 a una estacin de trabajo, se recomienda instalar un enrutador con los programas radvd o zebra, ya que estos realizan la asignacin de las direcciones IPv6 de forma totalmente automtica. La pgina del manual de ifup (man ifup) contiene informacin muy til sobre la conguracin de tneles con ayuda de los archivos de /etc/ sysconfig/network.

SUSE LINUX Manual de Administracin

359

14.5.

Enrutamiento en SuSE Linux

A partir de SUSE LINUX 8.0, la tabla de enrutamiento se congura en los archivos de conguracin /etc/sysconfig/network/routes y /etc/ sysconfig/network/ifroute-*. En el archivo /etc/sysconfig/network/routes pueden introducirse todas las rutas estticas necesarias para las diversas tareas del sistema: la ruta a un ordenador, a un ordenador a travs de una pasarela o a una red. Por ejemplo, aqu se congura la pasarela por defecto con una ruta esttica:
default GATEWAY - -

GATEWAY debe sustituirse por la direccin IP de la pasarela. Las rutas individuales requeridas por algunas interfaces pueden introducirse en el archivo /etc/sysconfig/network/ifroute-*, en un archivo individual para cada interfaz. El signo * ha de sustituirse por el nombre de la interfaz. Las entradas podran presentar el siguiente aspecto:
DESTINATION DESTINATION DESTINATION/PREFIXLEN GATEWAY GATEWAY GATEWAY NETMASK PREFIXLEN INTERFACE [ TYPE ] [ OPTIONS ] INTERFACE [ TYPE ] [ OPTIONS ] INTERFACE [ TYPE ] [ OPTIONS ]

En caso de que no se especiquen GATEWAY, NETMASK, PREFIXLEN o INTERFACE, debe introducirse en su lugar el signo -. Las entradas TYPE y OPTIONS pueden omitirse sin ms. La primera columna contiene el destino de la ruta. Dicho destino puede tratarse de la direccin IP de una red u ordenador o del nombre completo cualicado de una red u ordenador en el caso de servidores de nombres accesibles. En la segunda columna aparece la pasarela predeterminada o una pasarela a travs de la cual puede accederse a un ordenador o a una red. La tercera columna contiene la mscara de red de una red u ordenador detrs de una pasarela. La mscara de red para ordenadores que se encuentran detrs de una pasarela es, por ejemplo, 255.255.255.255. La ltima columna slo tiene importancia en el caso de redes conectadas al ordenador local (loopback, Ethernet, RDSI, PPP, . . . ). Aqu debe aparecer el nombre del dispositivo.

360

14.5. Enrutamiento en SuSE Linux

14.6.

DNS Domain Name System

14
Fundamentos de conexin a redes

El servicio DNS (Domain Name System) se encarga de convertir nombres de dominio y nombres de ordenadores en direcciones IP; generalmente se habla de resolver nombres. Antes de congurar un DNS propio consulte la informacin general sobre DNS en el apartado 14.1.3 en la pgina 337 Los siguientes ejemplos de conguracin se reeren a BIND 9, el estndar actual en SUSE LINUX.

14.6.1. Iniciar el servidor de nombres BIND


El servidor de nombres BIND (Berkeley Internet Name Domain) ya est precongurado en SUSE LINUX por que puede iniciarse directamente despus de la instalacin. Una vez que la conexin a Internet funciona, basta con introducir 127.0.0.1 como servidor de nombres para localhost en /etc/resolv.conf para que la resolucin de nombres funcione sin necesidad de conocer el DNS del proveedor. De esta forma, BIND utiliza los root name servers para la resolucin de los nombres y el proceso es mucho ms lento. Por lo general, siempre se debera indicar la direccin IP del DNS del proveedor en el apartado forwarders del archivo de conguracin /etc/named.conf para conseguir una resolucin de nombres ecaz y segura. Funcionando de este modo, el servidor de nombres acta en modo caching-only. Congurndolo con zonas, se convierte en un DNS real. En el directorio de la documentacin hay un ejemplo sencillo para ello: /usr/share/doc/packages/bind9/sample-config. No se debera congurar ningn dominio ocial mientras este no haya sido asignado por parte de la institucin en cuestin para .es la organizacin ES-NIC es la que se encarga de ello. Aunque se disponga de un dominio propio, tampoco se debera utilizar mientras el proveedor se encargue de administrarlo. En caso contrario BIND deja de reenviar (forward) consultas para ese dominio y, por ejemplo, el servidor web que se encuentra en el centro de datos del proveedor deja de estar accesible. El servidor de nombres puede iniciarse desde la lnea de comandos como superusuario root mediante el comando:
rcnamed start

SUSE LINUX Manual de Administracin

361

Si a la derecha de la pantalla se muestra done en color verde, signica que el daemon del servidor de nombres (llamado named) se ha iniciado correctamente. Los programas host o dig permiten comprobar inmediatamente el funcionamiento en la mquina local. Como servidor predeterminado ha de constar localhost con la direccin 127.0.0.1. Si este no fuera el caso, es posible que /etc/resolv.conf contenga un servidor de nombres equivocado o que este archivo sencillamente no exista. Con el comando host 127.0.0.1 se puede comprobar si todo va bien. Si aparece un mensaje de error lo mejor es comprobar si el daemon named realmente est en funcionamiento mediante el comando:
rcnamed status

En caso de error, es posible averiguar el origen del mismo mediante los mensajes en el archivo /var/log/messages. Para utilizar el servidor de nombres del proveedor o cualquier otro que ya exista en la red local como forwarder, se introduce este u otro en la entrada forwarders del apartado options. Las direcciones IP utilizadas en el archivo 14.10 han sido escogidas al azar y deben modicarse en funcin de su sistema. Ejemplo 14.10: Opciones de reenvo o forwarding en named.conf
options { directory "/var/lib/named"; forwarders { 10.11.12.13; 10.11.12.14; }; listen-on { 127.0.0.1; 192.168.0.99; }; allow-query { 127/8; 192.168.0/24; }; notify no; };

Detrs de options se encuentran las entradas para las zonas. Al menos siempre deberan existir las entradas de localhost, 0.0.127.in-addr.arpa y . de type hint. No es necesario modicar los archivos correspondientes, ya que funcionan tal y como estn. Adems es importante que exista un ; al nal de todas las entradas y que los corchetes estn correctamente colocados. Al haber modicado el archivo de conguracin /etc/named.conf o los archivos de zona, es preciso que BIND vuelva a leer estos archivos. Esto se realiza con el comando rcnamed reload. Otra posibilidad es la de reiniciar el servidor mediante rcnamed restart; el comando para detenerlo es rcnamed stop.

362

14.6. DNS Domain Name System

14.6.2. El archivo de conguracin /etc/named.conf


La conguracin de BIND se realiza por completo con el archivo /etc/ named.conf. Los datos propios de la zona, que son los nombres de los ordenadores, direcciones IP, etc. de los dominios administrados, se han de anotar en archivos adicionales dentro del directorio /var/lib/named; en el siguiente captulo se ampla esta informacin. A grandes rasgos, /etc/named.conf se estructura en dos secciones; la primera es options para la conguracin general y la siguiente es la que contiene las entradas zone para los diferentes dominios. Tambin es posible utilizar una seccin logging o una con entradas del tipo acl (Access Control List ). Las lneas comentadas comienzan con el smbolo # o //. El archivo 14.11 representa un /etc/named.conf muy sencillo. Ejemplo 14.11: archivo /etc/named.conf muy sencillo
options { directory "/var/lib/named"; forwarders { 10.0.0.1; }; notify no; }; zone "localhost" in { type master; file "localhost.zone"; }; zone "0.0.127.in-addr.arpa" in { type master; file "127.0.0.zone"; }; zone "." in { type hint; file "root.hint"; };

14
Fundamentos de conexin a redes

14.6.3.

Las opciones ms importantes del apartado options

directory "/var/lib/named"; indica el directorio que contiene los archivos con los datos de zona.

SUSE LINUX Manual de Administracin

363

forwarders 10.0.0.1; ; se utiliza para indicar uno o varios servidores de nombres (generalmente los del proveedor) para pasarles las consultas DNS que no se pueden resolver directamente. forward rst; hace que las consultas DNS se reenven antes de tratar de resolverlas mediante un root name server. En lugar de forward first tambin es posible poner forward only para que todas las consultas sean siempre reenviadas sin acceder nunca a los root- name servers. Esta es una opcin razonable para una conguracin con cortafuegos. listen-on port 53 127.0.0.1; 192.168.0.1; ; indica las interfaces de red y el puerto que debe utilizar BIND para atender a las peticiones DNS realizadas por los clientes. Es posible suprimir port 53, ya que este es el puerto estndar. Al suprimir esta entrada completamente, BIND atiende en todas las interfaces de red. listen-on-v6 port 53 any; ; indica a BIND el puerto en el que ha de esperar las consultas de los clientes que utilizan IPv6. Adems de any slo se admite none, ya que el servidor siempre atiende a la direccin comodn de IPv6. query-source address * port 53; Esta entrada puede resultar til si un cortafuegos bloquea las consultas DNS externas, ya que BIND deja de utilizar los puertos altos (> 1024) y realiza entonces las consultas hacia fuera desde el puerto 53. query-source-v6 address * port 53; Esta entrada debe utilizarse para las consultas realizadas a travs de IPv6. allow-query 127.0.0.1; 192.168.1/24; ; determina desde qu redes est permitido hacer consultas DNS. /24 es una abreviatura de la mscara de red, en este caso 255.255.255.0. allow-transfer ! *; ; determina qu ordenadores pueden solicitar transferencias de zonas. ! * prohibe totalmente la transferencia. Suprimiendo esta entrada, cualquier ordenador puede solicitar las transferencias de zona. statistics-interval 0; Sin esta entrada, BIND crea cada hora varias lneas con datos estadsticos en /var/log/messages. Indicando 0, los mensajes se suprimen. El tiempo se expresa en minutos.

364

14.6. DNS Domain Name System

cleaning-interval 720; Esta opcin indica el intervalo de limpieza de la cache de BIND. Cada vez que se realiza esta accin se crea una entrada en /var/log/messages. El tiempo se indica en minutos y el valor predeterminado es de 60 minutos. interface-interval 0; BIND busca continuamente interfaces de red nuevas o canceladas Esta opcin se suprime introduciendo el valor 0. De este modo, BIND slo atiende las interfaces que existan en el momento del inicio. Es posible indicar un intervalo en minutos; el valor predeterminado es 60 minutos. notify no; signica que el cambio de los datos de zona o cundo se reinicia el servidor de nombres no se notica a ningn otro servidor de nombres.

14
Fundamentos de conexin a redes

14.6.4.

El apartado de conguracin Logging

Hay muchas posibilidades de protocolar eventos con BIND. Normalmente la conguracin predeterminada es suciente. El archivo 14.12 muestra la forma ms sencilla de una conguracin que suprime el Logging totalmente: Ejemplo 14.12: Logging suprimido
logging { category default { null; }; };

14.6.5.

Estructura de las entradas de zona

Despus de zone se indica el nombre de dominio a administrar (en este caso mi-dominio.es) seguido de in y un bloque de opciones entre corchetes; vase el archivo 14.13 Ejemplo 14.13: Conguracin de mi-dominio.es
zone "mi-dominio.es" in { type master; file "mi-dominio.zone"; notify no; };

SUSE LINUX Manual de Administracin

365

Para denir una Slave-Zone slo hace falta cambiar type en slave e indicar un servidor de nombres que administra esta zona como master (igualmente puede ser un slave); vase el archivo 14.14. Ejemplo 14.14: Conguracin para otro-dominio.es
zone "otro-dominio.es" in { type slave; file "slave/otro-dominio.zone"; masters { 10.0.0.1; }; };

Las opciones de zona: type master; master signica que esta zona se administra en este servidor de nombres. Es algo que requiere un archivo de zona muy bien congurado. type slave; Esta zona se transere de otro servidor de nombres. Hay que usarlo junto con masters. type hint; La zona . del tipo hint se utiliza para indicar los root name servers. Es una denicin de zona que no se modica. le "mi-dominio.zone" o le "slave/otro-dominio.zone"; Esta entrada indica el archivo que contiene los datos de zona para el dominio. En caso de un slave no hace falta que el archivo exista, ya que se trae desde otro servidor de nombres. Para separar los archivos de esclavo y de maestro, se indica slave como directorio de los archivos slave. masters 10.0.0.1; ; Esta entrada slo se requiere para zonas esclavo e indica desde qu servidor de nombres se debe transferir el archivo de zona. allow-update ! *; ; Esta opcin regula el acceso de escritura desde el exterior a los datos de zona. Es una opcin que abre la posibilidad a los clientes de crear su propia entrada en el DNS, lo que no es deseable por razones de seguridad. Sin esta entrada las actualizaciones de zona estn prohibidas, cosa que no cambia nada en este ejemplo, ya que ! * prohibe igualmente todo.

366

14.6. DNS Domain Name System

14.6.6. Sintaxis de los archivos de zona


Existen dos tipos de archivos de zona; el primero sirve para asignar la direccin IP a un nombre de ordenador y el segundo proporciona el nombre del ordenador en funcin de una direccin IP. El smbolo del punto . tiene un signicado importante en los archivos de zona. A todos los nombres de ordenadores que se indican sin el punto por detrs, se les aade la zona. Por eso es importante terminar con un . los nombres de las mquinas que se hayan anotado con el dominio completo. La falta o la posicin equivocada de un punto suele ser la causa de error ms frecuente en la conguracin de un servidor de nombres. El primer ejemplo forma el archivo de zona solar.zone que corresponde al dominio solar.sis; vase el archivo 14.15. Ejemplo 14.15: archivo /var/lib/named/solar.zone
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

14
Fundamentos de conexin a redes

$TTL 2D solar.sis.

IN SOA 2003072441 1D 2H 1W 2D ) IN NS IN MX

gateway root.solar.sis. ( ; serial ; refresh ; retry ; expiry ; minimum gateway 10 sol 192.168.0.1 192.168.1.1 192.168.0.2 192.168.0.3 192.168.1.2 192.168.1.3 luna

gateway sol luna tierra marte www

IN IN IN IN IN IN IN

A A A A A A CNAME

Lnea 1: $TTL dene el TTL estndar, que vale para todas las anotaciones en este archivo y es en este caso de 2 das (2D = 2 days). TTL time to live es el tiempo de vencimiento. Lnea 2: Aqu comienza la parte del SOA control record:

SUSE LINUX Manual de Administracin

367

En primer lugar gura el nombre del dominio a administrar solar.sis, terminado con un . para que no se aada otra vez el nombre de la zona. La alternativa es la de anotar el smbolo @ para que se busque el nombre de la zona en /etc/named. conf. Por detrs de IN SOA se anota el nombre del servidor de nombres que acta como master para esta zona. En este caso, el nombre gateway se amplia a gateway.solar.sis ya que no termina con un punto. A continuacin aparece la direccin de correo electrnico de la persona que se encarga de este servidor de nombres. Como el smbolo @ ya tiene un signicado especial, se le reemplaza por un . - en lugar de root@solar.sis se escribe entonces root.solar.sis.. No se debe olvidar el punto al nal para que no se aada la zona. Al nal hay un (, para incorporar las siguientes lneas hasta el ) con todo el SOA-Record. Lnea 3: El nmero de serie en la lnea serial es un nmero al azar que debe aumentarse despus de cada modicacin del archivo. El cambio del nmero informa a los servidores de nombres secundarios sobre la modicacin. Es tpico utilizar una cifra de diez dgitos formada por la fecha y un nmero de orden en la forma AAAAMMDDNN. Lnea 4: El intervalo de refresco en la lnea refresh indica al servidor de nombres secundario cundo debe comprobar nuevamente la zona. En este caso es un da (1D = 1 day). Lnea 5: El intervalo de reintento en la lnea retry indica cunto tiempo despus el servidor de nombres secundario debe intentar conectar nuevamente con el primario. En este caso son 2 horas (2H = 2 hours). Lnea 6: El tiempo de expiracin en la lnea expiry indica el tiempo despus del cual el servidor de nombres secundario debe descartar los datos dentro de la cach, cuando la conexin con el servidor primario haya dejado de funcionar. En este caso es una semana (1W = 1 week). Lnea 7: La ltima entrada en SOA es el negative caching TTL que indica cunto tiempo pueden mantener los otros servidores en la cach las consultas DNS hechas que no se han podido resolver. Lnea 9: IN NS indica el servidor de nombres que se encarga de este dominio. En este caso se vuelve a convertir gateway en

368

14.6. DNS Domain Name System

gateway.solar.sis porque no se termin con el punto. Puede haber varias lneas de este tipo, una para el servidor de nombres primario y otra para cada servidor de nombres secundario. Si la variable notify de /etc/named.conf tiene el valor yes, se informar de todos los servidores de nombres aqu mencionados y de los cambios en los datos de zona. Lnea 10: El MX-Record indica el servidor de correo que recibe, procesa o traspasa los mensajes para el dominio solar.sis. En este ejemplo se trata del ordenador sol.solar.sis. La cifra por delante del nombre de ordenador es el valor de preferencia. Si existen varias entradas MX, primero se utiliza el servidor de correo con el valor de preferencia ms bajo y si la entrega del correo a este servidor falla, se utiliza el servidor con el siguiente valor ms alto. Lneas 12-17: Estos son los registros de direcciones (address records) en los que se asignan una o varias direcciones IP a una mquina. Todos los nombres se anotaron sin el punto . al nal, de tal forma que a todos se les aade solar.sis. El ordenador con el nombre gateway tiene dos direcciones IP asignadas porque dispone de dos tarjetas de red. El valor A representa una direccin tradicional de ordenador; A6 hace referencia a direcciones IPv6 y AAAA es el formato obsoleto para las direcciones IPv6. Lnea 18: Con el alias www tambin es posible luna (CNAME = canonical name). Para la resolucin inversa de direcciones IP (reverse lookup) se utiliza el pseudo-dominio in-addr.arpa. Este se aade por detrs a la parte de red de la direccin IP escrita al revs. 192.168.1 se convierte as en 1.168.192.in-addr.arpa. Ejemplo 14.16: Resolucin de nombres inversa
1 2 3 4 5 6 7 8 9 10 11 12 13

14
Fundamentos de conexin a redes

$TTL 2D 1.168.192.in-addr.arpa. IN SOA gateway.solar.sis. root.solar.sis. ( 2003072441 ; serial 1D ; refresh 2H ; retry 1W ; expiry 2D ) ; minimum IN NS 1 2 3 IN PTR IN PTR IN PTR gateway.solar.sis. gateway.solar.sis. tierra.solar.sis. marte.solar.sis.

SUSE LINUX Manual de Administracin

369

Lnea 1: $TTL dene el TTL estndar que sirve en este caso para todas las conguraciones. Lnea 2: La resolucin inversa reverse lookup se debe realizar para la red 192.168.1.0. En este caso, la zona se denomina 1.168.192.in-addr.arpa y este sujo no se debe aadir a los nombres de las mquinas. Por eso, todos los nombres terminan con un punto. Para el resto se aplica lo mismo tal y como se explic en el ejemplo anterior de solar.sis. Lnea 3-7: Vase el ejemplo anterior de solar.sis. Lnea 9: Esta lnea indica tambin el servidor de nombres que se responsabiliza de la zona, pero en este caso se anota completamente con el . como terminacin. Lneas 11-13: Aqu se encuentran los registros de los punteros que apunten de una direccin IP a un nombre. Al comienzo de la lnea slo se encuentra la ltima cifra de la direccin IP sin el punto . como terminacin. Aadindole la zona y quitando mentalmente la parte .in-addr.arpa, se obtiene la direccin IP completa en orden inverso. Las transferencias de zonas entre las distintas versiones de BIND no deberan representar ningn problema.

14.6.7.

Transacciones seguras

Las transacciones seguras pueden realizarse con ayuda de las Transaction SIGnatures (TSIG). Para ello se utilizan las claves de transaccin (transaction keys) y las rmas de transaccin (transaction signatures), cuya creacin y uso se describen en las lneas siguientes. Las transacciones seguras son necesarias para la comunicacin entre servidores y para actualizar los datos de zonas dinmicamente. En este contexto, un control de los permisos basado en claves ofrece mucha ms proteccin que un control basado en direcciones IP. Para crear una clave de transaccin puede utilizar el siguiente comando (obtendr ms informacin con dnssec-keygen):
dnssec-keygen -a hmac-md5 -b 128 -n HOST host1-host2.

Al ejecutar este comando, se crean por ejemplo los archivos:

370

14.6. DNS Domain Name System

Khost1-host2.+157+34265.private Khost1-host2.+157+34265.key

14
Fundamentos de conexin a redes

La clave est incluida en ambos archivos (ej. ejIkuCyyGJwwuN3xAteKgg==). Para lograr una comunicacin segura entre host1 y host2, Khost1-host2.+157+34265.key ha de transmitirse de forma segura (por ejemplo con scp) al ordenador remoto y all ser introducida en /etc/named.conf.
key host1-host2. { algorithm hmac-md5; secret "ejIkuCyyGJwwuN3xAteKgg=="; };

Aviso
Asegrese de que los permisos de acceso a /etc/named.conf estn restringidos. El valor estndar es 0640 para root y el grupo named. De manera alternativa, tambin es posible guardar la clave en un archivo protegido propio y luego incluir este archivo.

Aviso
Para que en el servidor host1 se utilice la clave para el host2 con la direccin de ejemplo 192.168.2.3, ha de realizarse la siguiente entrada en el /etc/named.conf del servidor:
server 192.168.2.3 { keys { host1-host2. ;}; };

En los archivos de conguracin de host2 deben tambin introducirse las entradas correspondientes. Adems de las ACLs basadas en direcciones IP y zonas de direcciones, tambin es necesario aadir claves TSIG para poder llevar a cabo transacciones seguras. Un posible ejemplo sera el siguiente:
allow-update { key host1-host2.;};

Puede obtener ms informacin en el manual de administracin de BIND en el apartado update-policy.

SUSE LINUX Manual de Administracin

371

14.6.8.

Actualizacin dinmica de los datos de zonas

Actualizacin dinmica (dynamic update) es el trmino aplicado a las acciones de aadir, modicar o borrar entradas en los archivos de zona de un master.Este mecanismo se describe en RFC 2136. En funcin de la zona, las actualizaciones dinmicas se conguran con las opciones allow-update o update-policy en las entradas de zona. Las zonas que se actualicen dinmicamente no deberan editarse de forma manual. Las entradas que han de actualizarse son transmitidas al servidor con nsupdate. Puede consultar la estructura exacta en la pgina del manual de nsupdate. Por motivos de seguridad, la actualizacin debera realizarse a travs de transacciones seguras TSIG (seccin 14.6.7 en la pgina 370).

14.6.9. DNSSEC
DNSSEC (DNS Security) se describe en RFC 2535 y las herramientas disponibles para utilizar DNSSEC se encuentran recogidas en el manual de BIND. Una zona segura debe disponer de una o varias claves de zona que, al igual que las claves de ordenador, son creadas con el comando dnssec-keygen. Para la codicacin se toma actualmente DSA. Las claves pblicas (public keys) han de integrarse en los archivos de zonas con $INCLUDE. Todas las claves se agrupan en un conjunto por medio del comando dnssec-makekeyset. Este conjunto se transmite a continuacin de forma segura a la zona superior (parent zone) para ser rmado con dnssec-signkey. Los archivos generados durante la rma deben emplearse para rmar zonas con dnssec-signzone y los nuevos archivos generados deben ser a su vez integrados en /etc/named.conf para cada zona respectiva.

14.6.10.

Informacin adicional

Entre las fuentes de informacin adicionales cabe destacar el manual de administracin en ingls BIND Administrator Reference Manual, que est disponible en el sistema en /usr/share/doc/packages/bind9/. Tambin se recomienda consultar los RFCs all mencionados y las pginas del manual incluidas en BIND 9.

372

14.6. DNS Domain Name System

14.7.

El servicio de directorio LDAP

14
Fundamentos de conexin a redes

En entornos de trabajo en red es de vital importancia el poder acceder de forma rpida y estructurada a la informacin que se necesita. Los datos desorganizados no slo inuyen negativamente en el uso de Internet, sino tambin pueden dicultar los procesos de bsqueda en la intranet de la empresa: cul es la extensin telefnica del Sr. X del departamento Y? Y su direccin de correo electrnico? Los servicios de directorio son la respuesta a este problema. De manera semejante a las pginas amarillas (Yellow Pages) en la vida ordinaria, dichos servicios contienen toda la informacin necesaria de forma estructurada y accesible. En el caso ideal, un servidor central guarda los datos en un directorio y los distribuye a los clientes de la red a travs de un protocolo determinado. Los datos han de estar estructurados de tal forma que un mximo nmero de aplicaciones pueda acceder a ellos. De este modo no es necesario que cada aplicacin de calendario o cliente de correo electrnico disponga de una base de datos propia, sino basta con que puedan recurrir al depsito central, lo que reduce considerablemente el esfuerzo de administracin de la informacin. El uso de un protocolo estandarizado y abierto como LDAP garantiza que el mayor nmero posible de aplicaciones de clientes tenga acceso a esta informacin. En este contexto pues, un directorio es una especie de base de datos optimizada para poder ser examinada y leda muy fcil y rpidamente: Para permitir un alto nmero de accesos de lectura (simultneos), los permisos de escritura estn limitados a unas pocas actualizaciones por parte del administrador. Las bases de datos tradicionales estn optimizadas para recoger en poco tiempo el mayor volumen de datos posible. Debido a que los permisos de escritura slo pueden ejercerse de forma muy limitada, el servicio de directorio administra informacin esttica que cambia rara vez. En contraposicin, los datos en una base de datos convencional se modican con mucha frecuencia (se trata de informacin dinmica). Por poner un ejemplo, los nmeros de telfono de un directorio de empleados estn sujetos a muchos menos cambios que las cifras manejadas por el departamento de contabilidad.

SUSE LINUX Manual de Administracin

373

En la gestin de datos estticos, los registros de datos se actualizan con muy poca frecuencia. En cambio, cuando se trabaja con datos dinmicos, especialmente en el terreno de cuentas bancarias y datos de contabilidad, la coherencia de los datos es primordial. Si una cantidad ha de restarse de un sitio para ser aadida a otro, ambas operaciones han de ejecutarse simultneamente en una transaccin para garantizar la concordancia del conjunto de los datos. Las bases de datos soportan estas transacciones, mientras que los directorios no lo hacen. En estos ltimos, la falta de concordancia de los datos resulta aceptable durante breves periodos de tiempo. El diseo de un servicio de directorio como LDAP no est concebido para soportar complejos mecanismos de actualizacin o consulta. Todas las aplicaciones que accedan a este servicio han de poder hacerlo de la forma ms fcil y rpida posible. Han existido y existen numerosos servicios de directorio, no slo en el mundo Unix, sino tambin, por ejemplo, Novells NDS, Microsofts ADS, Banyans Street Talk y el estndar OSI X.500. Originalmente, LDAP fue planeado como una variante ms simple de DAP (Directory Access Protocol ) desarrollado para acceder a X.500. El estndar X.500 reglamenta la organizacin jerrquica de entradas de directorio. LDAP no incorpora algunas de las funciones de DAP y puede ser utilizado en mltiples plataformas y, sobre todo, con un bajo consumo de recursos, sin renunciar a la jerarqua de entradas denida en X.500. Gracias al uso de TCP/IP es mucho ms fcil implementar interfaces entre la aplicacin y el servicio LDAP. Entre tanto, LDAP ha seguido desarrollndose y se utiliza cada vez con ms frecuencia como solucin autnoma sin soporte X.500. Con LDAPv3 (la versin de protocolo disponible en su sistema con el paquete openldap2 instalado), LDAP soporta remisiones o referrals que permiten implementar bases de datos distribuidas. Otra de las novedades consiste en la utilizacin de SASL (Simple Authentication and Security Layer) como capa de autenticacin y proteccin. LDAP no slo puede aplicarse para consultar datos de servidores X.500 como era su propsito original: slapd es un servidor de cdigo abierto u Open Source que permite guardar la informacin de un objeto en una base de datos local. Este servidor se complementa con slurpd, el cual se encarga de replicar varios servidores LDAP. El paquete openldap2 est formado fundamentalmente por dos programas.

374

14.7. El servicio de directorio LDAP

slapd Un servidor LDAPv3 autnomo que gestiona la informacin de objetos en una base de datos basada en BerkeleyDB. slurpd Este programa permite replicar los cambios realizados en los datos del servidor LDAP local en otros servidores LDAP instalados en la red. Herramientas adicionales para el mantenimiento del sistema slapcat, slapadd, slapindex

14
Fundamentos de conexin a redes

14.7.1.

LDAP versus NIS

Tradicionalmente, los administradores de sistemas Unix utilizan el servicio NIS para la resolucin de nombres y distribucin de datos en la red. Los datos de conguracin procedentes de los archivos /etc/ y los directorios group/, hosts/, mail/, netgroup/, networks/, passwd/, printcap/, protocols/, rpc/ y services/ son distribuidos entre los clientes de la red desde un servidor central. Como simples archivos de texto, estos archivos pueden mantenerse sin grandes dicultades. No obstante, la administracin de cantidades mayores de datos resulta bastante ms complicada debido a la falta de estructura. NIS est dirigido nicamente a plataformas Unix, lo que hace imposible su uso para la administracin central de datos en redes heterogneas. Al contrario que NIS, el campo de aplicacin del servicio LDAP no est limitado a redes slo Unix. Los servidores Windows (2000 y superiores) soportan LDAP como servicio de directorio. Novell tambin ofrece un servicio LDAP. Adems, sus funciones no se limitan a las mencionadas en lneas superiores. El principio de LDAP puede aplicarse a cualquier estructura de datos que deba administrarse de forma centralizada. Entre los ejemplos de aplicacin cabe destacar: Uso en sustitucin de un servidor NIS Enrutamiento de correo (postx, sendmail) Libreta de direcciones para clientes de correo como Mozilla, Evolution, Outlook, . . . Administracin de descripciones de zonas para un servidor de nombres BIND9

SUSE LINUX Manual de Administracin

375

Esta enumeracin podra prolongarse indenidamente ya que LDAP, al contrario que NIS, es expandible. Su estructura de los datos claramente denida ayuda a la hora de administrar grandes cantidades de datos, ya que puede examinarse ms fcilmente.

14.7.2.

Estructura de un rbol de directorios LDAP

El directorio LDAP tiene una estructura en forma de rbol. Cada entrada (denominada objeto) del directorio ocupa una posicin determinada dentro de esa jerarqua (denominada DIT o Directory Information Tree). La ruta completa a una entrada la identica de modo inequvoco y se conoce como DN o Distinguished Name. Cada uno de los nodos en la ruta a dicha entrada se llaman RDN o Relative Distinguished Name. Por lo general, existen dos tipos de objetos: Contenedor Este tipo de objeto puede contener a su vez otros objetos. Algunos ejemplos de estos elementos son root (elemento raz del rbol de directorios que no existe en realidad), c country, ou OrganizationalUnit, y dc domainComponent. Este modelo es equiparable a los directorios (carpetas) en el sistema de archivos. Hoja Este tipo de objeto se encuentra al nal de una rama y carece de objetos subordinados. Algunos ejemplos son Person/InetOrgPerson o groupofNames. En la cspide de la jerarqua del directorio se encuentra el elemento raz Root. A este elemento le puede seguir en un nivel inferior c country, dc domainComponent o o organization. El siguiente ejemplo ilustra mejor las relaciones jerrquicas dentro de un rbol de directorios LDAP (ver Figura 14.4 en la pgina siguiente). La gura representa un DIT cticio con entradas (entries) en tres niveles. Cada entrada se corresponde con una casilla en la gura. En este caso, el nombre vlido completo (DN o Distinguished Name) del empleado cticio de Geeko Linux es cn=Geeko Linux,ou=doc,dc=suse,dc=de. Este nombre se forma al aadir el RDN al DN de la entrada precedente cn=Geeko Linux. La denicin global de qu tipo de objetos han de guardarse en el DIT se realiza mediante un esquema. El tipo de objeto se determina mediante la clase de objeto.

376

14.7. El servicio de directorio LDAP

14
Fundamentos de conexin a redes
Figura 14.4: Estructura de un directorio LDAP

La clase de objeto especica qu atributos deben o pueden ser asignados a un objeto determinado. Por lo tanto, un esquema debe contener deniciones de todas las clases de objetos y atributos que van a utilizarse en el escenario de aplicacin. Existen algunos esquemas de uso extendido (vase RFC 2252 y 2256). No obstante, si el entorno en el que va a utilizarse el servidor LDAP lo requiere, tambin pueden crearse nuevos esquemas en funcin del usuario o pueden combinarse varios esquemas entre s. La tabla 14.9 ofrece un resumen de las clases de objetos utilizadas en el ejemplo de core.schema e inetorgperson.schema junto con los atributos obligatorios y los valores adecuados de atributo. Cuadro 14.9: Clases de objetos y atributos de uso extendido Clase de objeto dcObject Signicado Entrada de ejemplo Atributo obligatorio dc

domainComponent suse (partes del nombre del dominio) organizationalUnit organizationalUnit doc (unidad organizativa)

ou

SUSE LINUX Manual de Administracin

377

inetOrgPerson

inetOrgPerson (datos sobre personal para Internet/intranet)

Geeko Linux

sn y cn

En la salida 14.17 puede ver un extracto de una instruccin de esquema con aclaraciones que le ayudarn a entender la sintaxis de nuevos esquemas. Ejemplo 14.17: Extracto de schema.core (Numeracin de lneas para facilitar la comprensin)

... #1 attributetype ( 2.5.4.11 NAME ( ou organizationalUnitName ) #2 DESC RFC2256: organizational unit this object belongs to #3 SUP name ) #4 objectclass ( 2.5.6.5 NAME organizationalUnit #5 DESC RFC2256: an organizational unit #6 SUP top STRUCTURAL #7 MUST ou #8 MAY ( userPassword $ searchGuide $ seeAlso $ businessCategory $ x121Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName $ st $ l $ description) ) ...

Como ejemplo se ha tomado el tipo de atributo organizationalUnitName y la clase de objeto correspondiente organizationalUnit. En la lnea 1 aparece el nombre del atributo, su nmero de identicacin de objeto (OID o Object Identier) (numrico) y la abreviatura del atributo. En la lnea 2, DESC introduce una breve descripcin del atributo que incluye el RFC del que procede la denicin. SUP en la lnea 3 hace referencia a un tipo de atributo superior al que pertenece este atributo. La denicin de la clase de objeto organizationalUnit comienza en la lnea 4 con un OID y el nombre de la clase de objeto, al igual que en la denicin de atributo. La lnea 5 contiene una breve descripcin de la clase de objeto. La entrada SUP top en la lnea 6 indica que esta clase de objeto no est subordinada a ninguna otra clase de objeto.

378

14.7. El servicio de directorio LDAP

La lnea 7, que empieza por MUST, enumera todos los tipos de atributo que deben ser utilizados obligatoriamente en un objeto del tipo organizationalUnit. A continuacin de MAY en la lnea 8 se incluyen todos los tipos de atributos que pueden ser utilizados en conexin con esta clase de objeto. La documentacin del programa OpenLDAP, disponible en el sistema en /usr/share/doc/packages/openldap2/admin-guide/index. html, constituye una excelente introduccin para la utilizacin de esquemas.

14
Fundamentos de conexin a redes

14.7.3. Conguracin de servidor con slapd.conf


Su sistema instalado contiene un archivo de conguracin completo para el servidor LDAP en /etc/openldap/slapd.conf. A continuacin se explicarn brevemente cada una de las entradas y las modicaciones necesarias. Tenga en cuenta que las entradas precedidas del signo # se encuentran inactivas. Para activar dichas entradas basta con borrar el signo de comentario. Instrucciones globales en slapd.conf Ejemplo 14.18: slapd.conf: Instruccin Include para esquemas
include /etc/openldap/schema/core.schema include /etc/openldap/schema/inetorgperson.schema

Con esta primera instruccin en slapd.conf se dene el esquema utilizado para organizar el directorio LDAP (ver salida 14.18). La entrada core.schema se requiere obligatoriamente. Si necesita esquemas adicionales, introdzcalos detrs de esta instruccin (como ejemplo se ha aadido aqu inetorgperson.schema). Puede encontrar otros esquemas disponibles en el directorio /etc/openldap/schema/. Si NIS va a ser sustituido por un servicio LDAP, integre aqu los esquemas cosine.schema y rfc2307bis.schema. Puede obtener informacin adicional sobre este tema en la documentacin incluida en OpenLDAP. Ejemplo 14.19: slapd.conf: pidle y argsle
pidfile /var/run/slapd.pid argsfile /var/run/slapd.args

SUSE LINUX Manual de Administracin

379

Estos dos archivos contienen el nmero de identicacin de proceso (PID o process id ) y algunos argumentos con los que se iniciar el proceso slapd. En esta seccin no es necesario realizar ningn cambio. Ejemplo 14.20: slapd.conf: Controles de acceso
# # Sample Access Control # Allow read access of root DSE # Allow self write access # Allow authenticated users read access # Allow anonymous users to authenticate # access to dn="" by * read access to * by self write by users read by anonymous auth # # if no access controls are present, the default is: # Allow read by all # # rootdn can always write!

La salida 14.20 es el fragmento de slapd.conf que regula los controles de acceso al directorio LDAP en el servidor. Las opciones denidas en esta seccin global de slapd.conf tienen validez mientras no se especiquen otras reglas de acceso en la seccin especca de las bases de datos que sobreescriban a estas. Conforme a las reglas aqu denidas, todos los usuarios tienen permiso de lectura para el directorio pero slo el administrador (rootdn) puede escribir en el mismo. Debido a que la regulacin de los permisos de acceso en LDAP es un tema muy complejo, incluimos a continuacin unas reglas generales que le ayudarn a comprender este proceso: La sintaxis de todas las reglas de acceso es la siguiente:
access to <what> by <who> <access>

what representa al objeto o atributo para el que quiere denir el acceso. Puede proteger de forma explcita diversas ramas del directorio o bien cubrir zonas enteras del rbol de directorios por medio de expresiones regulares. slapd evala todas las reglas en el orden en el

380

14.7. El servicio de directorio LDAP

que aparecen en el archivo de conguracin. Por lo tanto, anteponga siempre las reglas ms restrictivas a las ms generales. slapd analiza la primera regla aplicable que encuentra e ignora el resto. who dene quin tiene acceso a los sectores denidos en what . El uso de expresiones regulares le ahorrar aqu tambin mucho trabajo. Como en el caso anterior, slapd interrumpe el proceso de anlisis de who al encontrar la primera regla aplicable. Por lo tanto, las reglas especcas han de anteponerse de nuevo a las ms generales. Pueden utilizarse las siguientes entradas (ver tabla 14.10): Cuadro 14.10: Grupos de usuarios con acceso autorizado Identicador Signicado * anonymous users self todos los usuarios sin excepcin usuarios no autenticados (annimos) usuarios autenticados usuarios unidos al objeto destino

14
Fundamentos de conexin a redes

dn=<regex> todos los usuarios a los que puede aplicarse esta expresin regular

access especica el tipo de acceso. Aqu se distingue entre las posibilidades que aparecen en la tabla 14.11: Cuadro 14.11: Tipos de acceso Identicador none auth compare search read write Signicado acceso prohibido para contactar con el servidor para accesos comparables a objetos para utilizar ltros de bsqueda permiso de lectura permiso de escritura

SUSE LINUX Manual de Administracin

381

slapd compara los permisos solicitados por el cliente con los que han sido concedidos en slapd.conf. Si all estn autorizados derechos iguales o ms amplios que los que solicita el cliente, este obtiene autorizacin. Si por el contrario el cliente solicita ms permisos que los concedidos en slapd.conf, el acceso ser denegado. La salida 14.21 contiene un ejemplo muy simple de un control de acceso sencillo que puede congurarse de la forma deseada utilizando expresiones regulares. Ejemplo 14.21: slapd.conf: Ejemplo de control de acceso
acess to by by by dn.regex="ou=([^,]+),dc=suse,dc=de" cn=administrator,ou=$1,dc=suse,dc=de write user read *

Segn esta regla, slo el administrador tiene permiso de escritura para todas las entradas ou, los usuarios autenticados disponen de permiso de lectura, y al resto se le ha denegado el acceso.

Atencin
Denicin de reglas Access Si no es posible aplicar ninguna regla access to o instruccin by <who>, el permiso ser denegado. Slo se conceden aquellos permisos autorizados explcitamente. En caso de no existir ninguna regla, se aplica el siguiente principio: permiso de escritura para el administrador y permiso de lectura para todos los dems.

Atencin
La documentacin en lnea del paquete instalado openldap2 incluye informacin ms detallada y una conguracin de muestra de los permisos de acceso para LDAP. Adems de la administracin de los permisos de acceso a travs del archivo de conguracin central (slapd.conf), existe tambin la posibilidad de utilizar informaciones de control de acceso o ACIs (Access Control Information). Las ACIs permiten almacenar la informacin de acceso a cada objeto en el mismo rbol LDAP. Debido a que este tipo de control de acceso est todava muy poco extendido y su estado ha sido calicado por los desarrolladores como experimental, referimos aqu a la documentacin del proyecto OpenLDAP en Internet: http://www.openldap.org/faq/data/cache/758.html.

382

14.7. El servicio de directorio LDAP

Instrucciones para bases de datos en slapd.conf Ejemplo 14.22: slapd.conf: Instrucciones para bases de datos
database ldbm suffix "dc=suse,dc=de" rootdn "cn=admin,dc=suse,dc=de" # Cleartext passwords, especially for the rootdn, should # be avoided. See slappasswd(8) and slapd.conf(5) for details. # Use of strong authentication encouraged. rootpw secret # The database directory MUST exist prior to running slapd AND # should only be accessible by the slapd/tools. Mode 700 recommended. directory /var/lib/ldap # Indices to maintain index objectClass eq

14
Fundamentos de conexin a redes

En la primera lnea de esta seccin (ver salida 14.22) se dene el tipo de base de datos, LDBM en este caso. La entrada suffix de la segunda lnea especica la parte del rbol de directorios LDAP de la que se va a ocupar este servidor. En la lnea inferior, rootdn determina quin dispone de derechos de administracin para este servidor. No es necesario que el usuario indicado en esta seccin posea una entrada LDAP o que exista siquiera como usuario normal. La contrasea de administrador se dene con la instruccin rootpw. Aqu puede sustituir secret por el resumen criptogrco generado con slappasswd. La instruccin directory indica el directorio en el que estn almacenados los directorios de la base de datos en el servidor. La ltima instruccin, index objectClass eq, hace que se cree un ndice con las clases de objetos. Si lo desea, puede introducir otros atributos que en su caso particular se busquen con ms frecuencia. Cuando se denen reglas Access propias para la base de datos y se colocan detrs, se aplicarn estas en lugar de las reglas Access globales. Iniciar y parar el servidor Una vez que el servidor LDAP ha sido congurado y en el directorio LDAP se han llevado a cabo todas las entradas deseadas segn el modelo descrito abajo (ver apartado 14.7.4 en la pgina siguiente), puede iniciar el servidor LDAP como usuario root introduciendo el siguiente comando:
rcldap start

SUSE LINUX Manual de Administracin

383

Para detener el servidor de forma manual ha de introducir el comando rcldap stop y para consultar el estado del servidor, rcldap status. Tambin es posible congurar el servidor para que se inicie y detenga automticamente al encender y apagar al ordenador. Para ello puede utilizar el editor de niveles de ejecucin de YaST (vase el apartado 13.5 en la pgina 320) o bien crear directamente los enlaces correspondientes en los scripts de inicio y nal por medio de insserv en la lnea de comandos (ver apartado 13.4.1 en la pgina 318).

14.7.4. Administracin de datos en el directorio LDAP


OpenLDAP proporciona al administrador numerosos programas para gestionar los datos en el directorio LDAP. A continuacin le presentamos los cuatro programas ms importantes para aadir, eliminar, examinar y modicar los datos existentes. Introducir datos en el directorio LDAP Como condicin previa para la introduccin de nuevas entradas, la conguracin del servidor LDAP en /etc/openldap/slapd.conf ha de ser correcta y apta para su aplicacin, es decir, debe contener las instrucciones adecuadas para suffix, directory, rootdn, rootpw e index. La introduccin de entradas en OpenLDAP puede llevarse a cabo con el comando ldapadd. Por razones prcticas se recomienda aadir los objetos a la base de datos en forma de paquetes. Con este n, LDAP contempla el formato LDIF (LDAP Data Interchange Format ). Un archivo LDIF es un simple archivo de texto que puede estar formado por un nmero indeterminado de pares de atributo y valor. Puede consultar los objetos y atributos disponibles en los archivos de esquemas indicados en slapd.conf. El archivo LDIF utilizado para crear el armazn del ejemplo de la gura 14.4 en la pgina 377 podra presentar el siguiente aspecto (ver archivo 14.23): Ejemplo 14.23: Ejemplo de archivo LDIF
# La organizacin SUSE dn: dc=suse,dc=de objectClass: dcObject objectClass: organization o: SUSE AG dc: suse # La unidad de organizacin Desarrollo (devel)

384

14.7. El servicio de directorio LDAP

dn: ou=devel,dc=suse,dc=de objectClass: organizationalUnit ou: devel # La unidad de organizacin Documentacin (doc) dn: ou=doc,dc=suse,dc=de objectClass: organizationalUnit ou: doc # La unidad de organizacin Administracin de Sistemas (it) dn: ou=it,dc=suse,dc=de objectClass: organizationalUnit ou: it

14
Fundamentos de conexin a redes

Atencin
Codicacin de los archivos LDIF LDAP funciona con UTF-8 (Unicode), por lo que caracteres especiales como acentos, etc., han de introducirse con la codicacin correcta. Utilice para ello editores que soporten UTF-8, como Kate o versiones actuales de Emacs). De lo contrario, deber usar recode para convertir el texto a UTF-8.

Atencin
Guarde el archivo como <archivo>.ldif y pselo al servidor con el siguiente comando:
ldapadd -x -D <dn del administrador> -W -f <archivo>.ldif

La primera opcin -x indica que en este caso no se va a producir una autenticacin a travs de SASL. -D identica al usuario que realiza esta operacin. Introduzca aqu el DN vlido del administrador tal y como ha sido congurado en slapd.conf (en nuestro ejemplo, cn=admin,dc=suse,dc=de). -W evita tener que introducir la contrasea en la lnea de comandos (texto en claro) y activa una pregunta por separado de la contrasea. Dicha contrasea ha sido especicada previamente en slapd.conf en la entrada rootpw. -f pasa el archivo al servidor. A continuacin se muestra la salida 14.24 en la pgina siguiente de ldapadd:

SUSE LINUX Manual de Administracin

385

Ejemplo 14.24: ldapadd de ejemplo.ldif

ldapadd -x Enter LDAP adding new adding new adding new adding new

-D cn=admin,dc=suse,dc=de -W -f ejemplo.ldif password: entry "dc=suse,dc=de" entry "ou=devel,dc=suse,dc=de" entry "ou=doc,dc=suse,dc=de" entry "ou=it,dc=suse,dc=de"

Los datos de usuario de los empleados de cada uno de los departamentos pueden introducirse en archivos LDIF adicionales. Por medio del siguiente ejemplo tux.ldif (ver la salida 14.25), el empleado Tux es aadido al nuevo directorio LDAP: Ejemplo 14.25: Archivo LDIF para Tux
# El empleado Tux dn: cn=Tux Linux,ou=devel,dc=suse,dc=de objectClass: inetOrgPerson cn: Tux Linux givenName: Tux sn: Linux mail: tux@suse.de uid: tux telephoneNumber: +34 123 4567-8

Un archivo LDIF puede contener un nmero ilimitado de objetos. Es posible pasar al servidor rboles de directorios completos de una vez o slo partes de los mismos, como por ejemplo objetos sueltos. Si necesita modicar los datos con frecuencia, se recomienda el fraccionamiento en objetos individuales para evitar laboriosas bsquedas en archivos grandes del objeto que debe ser modicado. Modicar datos en el directorio LDAP Los registros de datos pueden modicarse con la herramienta ldapmodify. El mtodo ms fcil consiste en editar el archivo LDIF respectivo y pasar de nuevo el archivo modicado al servidor LDAP. Por ejemplo, para cambiar el nmero de telfono del empleado Tux de +34 123 4567-8 a +34 123 4567-10, edite el archivo LDIF como se muestra en 14.26 en la pgina siguiente.

386

14.7. El servicio de directorio LDAP

Ejemplo 14.26: Archivo LDIF tux.ldif modicado


# El empleado Tux dn: cn=Tux Linux,ou=devel,dc=suse,dc=de changetype: modify replace: telephoneNumber telephoneNumber: +34 123 4567-10

14
Fundamentos de conexin a redes

Utlice el siguiente comando para importar el archivo modicado al directorio LDAP:


ldapmodify -x -D cn=admin,dc=suse,dc=de -W -f tux.ldif

Como alternativa, tambin puede introducir directamente en la lnea de comandos los atributos que deben ser modicados con ldapmodify. En este caso proceda como se describe a continuacin: Ejecute ldapmodify e introduzca su contrasea:
ldapmodify -x -D cn=admin,dc=suse,dc=de -W Enter LDAP password:

Introduzca los cambios siguiendo la estructura denida a continuacin y el orden especicado:


dn: cn=Tux Linux,ou=devel,dc=suse,dc=de changetype: modify replace: telephoneNumber telephoneNumber: +34 123 4567-10

Puede obtener informacin detallada sobre ldapmodify y su sintaxis en la pgina del manual correspondiente (man ldapmodify). Buscar o leer datos del directorio LDAP OpenLDAP ofrece ldapsearch, una herramienta de lnea de comandos para examinar y leer datos en el directorio LDAP. La sintaxis de un comando de bsqueda sencillo sera la siguiente:
ldapsearch -x -b dc=suse,dc=de "(objectClass=*)"

SUSE LINUX Manual de Administracin

387

La opcin -b dene la base de bsqueda, es decir, la seccin del rbol donde va a efectuarse la bsqueda (en este caso, dc=suse,dc=de). Si desea realizar una bsqueda ms depurada en subsecciones determinadas del directorio LDAP (por ejemplo slo en el departamento devel), puede denir dicha seccin en ldapsearch con la opcin -b. La opcin -x especica la utilizacin de una autenticacin sencilla. (objectClass=*) indica que desea leer todos los objetos incluidos en el directorio. Puede utilizar este comando tras la creacin de un nuevo rbol de directorios para comprobar si todas las entradas han sido aceptadas correctamente y si el servidor responde en la forma deseada. Puede obtener informacin adicional sobre el uso de ldapsearch en su pgina del manual (man ldapsearch). Borrar datos del directorio LDAP Utilice el comando ldapdelete para borrar entradas del directorio LDAP. Su sintaxis es muy semejante a la de los comandos descritos en lneas superiores. Por ejemplo, para borrar la entrada completa de Tux Linux, introduzca el comando:
ldapdelete -x -D cn=admin,dc=suse,dc=de -W cn=Tux \ Linux,ou=devel,dc=suse,dc=de

14.7.5.

Informacin adicional

En este captulo se han omitido de forma consciente temas de cierta complejidad como la conguracin de SASL o de un servidor LDAP de replicacin que comparte el trabajo con varios esclavos (slaves). Puede encontrar informacin detallada sobre ambos temas en OpenLDAP 2.1 Administrators Guide (ver enlace ms abajo). La pgina web del proyecto OpenLDAP contiene abundante documentacin en ingls para usuarios de LDAP tanto noveles como expertos: OpenLDAP Faq-O-Matic Una extensa coleccin de preguntas y respuestas en torno a la instalacin, conguracin y utilizacin de OpenLDAP. http://www.openldap.org/faq/data/cache/1.html Quick Start Guide Breves instrucciones paso a paso para su primer servidor LDAP http://www.openldap.org/doc/admin21/ quickstart.html o bien en su sistema instalado en /usr/share/ doc/packages/openldap2/admin-guide/quickstart.html

388

14.7. El servicio de directorio LDAP

OpenLDAP 2.1 Administrators Guide Una detallada introduccin a todos los aspectos importantes de la conguracin de LDAP incluyendo codicacin y control de acceso http://www.openldap.org/doc/admin21/ o bien en su sistema instalado en /usr/share/doc/packages/openldap2/adminguide/index.html Los siguientes libros rojos (redbooks) de IBM tratan tambin de LDAP: Understanding LDAP Una introduccin general muy amplia a los principios bsicos de LDAP http://www.redbooks.ibm.com/ redbooks/pdfs/sg244986.pdf LDAP Implementation Cookbook Este libro est dirigido especialmente a administradores de IBM SecureWay Directory. No obstante, tambin contiene informacin general sobre LDAP http://www.redbooks.ibm.com/redbooks/pdfs/ sg245110.pdf. Bibliografa impresa (en ingls) sobre LDAP: Howes, Smith & Good: Understanding and Deploying LDAP Directory Services. Addison-Wesley, 2. Au., 2003. - (ISBN 0-672-32316-8) Hodges: LDAP System Administration. OReilly & Associates, 2003. (ISBN 1-56592-491-6) Los RFCs correspondientes (engl. Request for comments) 2251 a 2256 constituyen la obra de consulta denitiva sobre LDAP.

14
Fundamentos de conexin a redes

14.8.

NIS Network Information Service

Cuando en una red existen varios sistemas Unix que quieren acceder a recursos comunes, hay que garantizar la armona de las identidades de usuarios y de grupos en todos los ordenadores de la red. La red debe ser completamente transparente para el usuario; independientemente del ordenador en que trabaje, el usuario siempre debe encontrar el mismo entorno, lo cual se consigue mediante los servicios NIS y NFS.

SUSE LINUX Manual de Administracin

389

Este ltimo sirve para la distribucin de sistemas de archivos en la red y se describe en el apartado 14.9 en la pgina 394. NIS (Network Information Service), se puede entender como un servicio de base de datos que proporciona acceso a los archivos /etc/passwd, /etc/shadow o /etc/group en toda la red. NIS puede prestar tambin servicios adicionales, por ejemplo para /etc/hosts o /etc/services, pero estos no son objeto de discusin en estas lneas. Muchas veces se usan las letras YP como sinnimo de NIS; esta es la abreviatura de Yellow Pages, es decir, las pginas amarillas en la red.

14.8.1.

Servidores NIS: maestro y esclavo

Para realizar la instalacin, escoja en YaST la opcin Servicios de red y all Servidor NIS. En caso de que an no exista ningn servidor NIS en su red, en la mscara que aparece a continuacin debe activar el punto Congurar un servidor maestro NIS. En caso de que ya exista un servidor NIS (es decir, un master), puede aadir un servidor esclavo NIS (por ejemplo si quiere congurar una nueva subred). Lo primero que se detalla es la conguracin del servidor maestro. En caso de que alguno de los paquetes necesarios no est instalado, YaST le pedir que introduzca el CD o DVD correspondiente para que los paquetes que faltan puedan instalarse automticamente. En la primera mscara de conguracin (gura 14.5 en la pgina siguiente), introduzca arriba el nombre del dominio. En la casilla inferior puede establecer si el ordenador tambin debe ser un cliente NIS, es decir si los usuarios pueden realizar logins y por tanto acceder a los datos del servidor NIS. Si quiere congurar servidores esclavos NIS (slave) adicionales en la red, debe activar la casilla Disponer de servidor esclavo activo para NIS. Adems tambin debe activar Distribucin rpida de mapeo, lo cual provoca que las entradas de la base de datos se enven rpidamente del servidor maestro al esclavo. Para que los usuarios de la red puedan cambiar sus contraseas (con el comando yppasswd, no slo las locales sino tambin las que se encuentran en el servidor NIS), puede activar esta opcin aqu. Al hacerlo tambin se activarn las opciones Permitir el cambio de GECOS y Permitir el cambio de SHELL. GECOS signica que el usuario tambin puede modicar su nombre y direccin (con el comando ypchfn). SHELL quiere decir que tambin puede modicar su shell (con el comando ypchsh, por ejemplo de bash a sh). Pulsando en el apartado Otras conguraciones globales... accede a un dilogo (Figura 14.6 en la pgina 392) en el que puede modicar el directorio

390

14.8. NIS Network Information Service

14
Fundamentos de conexin a redes

Figura 14.5: YaST: Herramienta de conguracin de un servidor NIS

fuente del servidor NIS (por defecto /etc/). Adems aqu tambin se pueden reunir contraseas y grupos. La conguracin se debe dejar en S, para que los archivos correspondientes (/etc/passwd y /etc/shadow, o bien /etc/group y /etc/gshadow) concuerden mutuamente. Adems se puede establecer el nmero ms pequeo de usuarios y grupos. Con OK conrma las entradas realizadas y vuelve a la mscara anterior. Pulse ahora en Siguiente. Si ya ha activado Disponer de servidor esclavo activo para NIS, ahora debe introducir el nombre del ordenador que har las veces de esclavo. Tras dar el nombre, dirjase a Siguiente. Tambin puede acceder directamente al men que aparece a continuacin si no ha activado la conguracin del servidor esclavo. A continuacin se pueden especicar los maps, es decir, las bases de datos parciales que se deben enviar del servidor NIS al cliente correspondiente. En la mayora de los casos pueden usarse las conguraciones predeterminadas. Por eso, en los casos normales no se debe cambiar nada.

SUSE LINUX Manual de Administracin

391

Figura 14.6: YaST: Servidor NIS: Cambiar directorios y sincronizar archivos

Con Siguiente se llega al ltimo dilogo en el que se puede determinar qu redes pueden realizar consultas al servidor NIS (ver Fig. 14.7 en la pgina siguiente). Normalmente se tratar de la red de su empresa, por lo que deber introducir las entradas:
255.0.0.0 0.0.0.0 127.0.0.0 0.0.0.0

La primera permite las conexiones desde el propio ordenador, mientras que la segunda posibilita que todos los ordenadores que tienen acceso a la red enven solicitudes al servidor.

14.8.2.

El mdulo del cliente NIS en YaST

Este mdulo le permite congurar fcilmente el cliente NIS. Una vez que ha seleccionado en la mscara de inicio el uso de NIS y, en caso necesario, del automounter, pasar a la mscara siguiente. En ella ha de indicar si el cliente NIS tiene una direccin IP esttica o si debe recibirla a travs de DHCP.

392

14.8. NIS Network Information Service

14
Fundamentos de conexin a redes

Figura 14.7: YaST: Servidor NIS: Permiso de solicitud

En este ltimo caso no debe introducir el dominio NIS o la direccin IP del servidor, ya que estos datos sern tambin asignados a travs de DHCP. Puede encontrar informacin adicional sobre DHCP en el apartado 14.10 en la pgina 399. Si el cliente dispone de una direccin IP ja, el dominio y el servidor NIS han de introducirse manualmente (ver Fig. 14.8 en la pgina siguiente) . Con el botn Buscar YaST examinar la red en busca de un servidor NIS activo. Tambin puede aadir mltiples dominios con un dominio por defecto. Para cada dominio, con la opcin Aadir puede indicar ms servidores e incluso la funcin broadcast. En las opciones avanzadas de conguracin puede evitar que otro ordenador de la red pregunte cul es el servidor utilizado por su cliente. Al activar la opcin Servidor roto se aceptarn respuestas de un servidor en un puerto no privilegiado. Puede consultar informacin adicional sobre este tema en la pgina del manual de ypbind.

SUSE LINUX Manual de Administracin

393

Figura 14.8: YaST: Cliente NIS

14.9. NFS Sistema de archivos distribuidos


Como ya se ha mencionado en el apartado 14.8 en la pgina 389, el servicio NFS sirve, junto con el servicio NIS, para hacer una red transparente para el usuario. NFS permite la distribucin de sistemas de archivos en la red, gracias a lo cual el usuario encuentra siempre el mismo entorno, independientemente del ordenador en el que trabaje. Al igual que NIS, NFS es un servicio asimtrico de estructura clienteservidor; pero a diferencia de este, NFS puede ofrecer sistemas de archivos a la red (exportar) y a su vez montar los de otros ordenadores (importar). La constelacin ms habitual consiste en utilizar servidores con discos duros de gran capacidad para exportar sistemas de archivos que sern montados por los clientes.

394

14.9. NFS Sistema de archivos distribuidos

14.9.1. Importar sistemas de archivos con YaST


Todo usuario (al que le han asignado ciertos derechos) puede distribuir directorios NFS de servidores NFS en su propio rbol de directorios. Para ello, el mtodo ms sencillo consiste en utilizar el mdulo Cliente NFS de YaST. All se debe introducir el nombre de host del ordenador que hace las veces de servidor NFS, el directorio a exportar del servidor, y el punto de montaje en el que se debe montar en el ordenador. En la primera ventana de dilogo escoja Aadir e introduzca la informacin mencionada (Fig. 14.9).

14
Fundamentos de conexin a redes

Figura 14.9: Conguracin de un cliente NFS

14.9.2. Importar sistemas de archivos manualmente


Importar manualmente sistemas de archivos desde un servidor NFS es muy simple y tiene como nica condicin que el mapeador de puertos o portmapper RPC est activo. Para iniciar este servidor, ejecute el comando rcportmap start como usuario root. Una vez iniciado este servicio es posible incorporar sistemas de archivos externos al sistema de archivos local, siempre que puedan exportarse de las mquinas correspondientes. El procedimiento es anlogo a la incorporacin de discos locales usando el comando mount. La sintaxis del comando es la siguiente:
mount ordenador:ruta remota ruta local

Se pueden importar por ejemplo los directorios de usuario del ordenador sol con el siguiente comando:
mount sol:/home /home

SUSE LINUX Manual de Administracin

395

14.9.3.

Exportar sistemas de archivos con YaST

Con YaST puede convertir un ordenador de su red en un servidor NFS; en otras palabras, un servidor que pone archivos y directorios a disposicin de todos los ordenadores a los que se haya otorgado acceso. Muchas aplicaciones pueden por ejemplo estar disponible para los empleados sin que sea necesario instalarlas en sus PCs. Para realizar la instalacin, escoja en YaST la opcin Servicios de red y all la opcin Servidor NFS (Fig. 14.10).

Figura 14.10: Herramienta de conguracin de servidores NFS A continuacin active la opcin Arrancar el servidor NFS y pulse en Siguiente. Ahora ya slo queda introducir en la casilla superior los directorios que deben exportarse y en la inferior los ordenadores de la red a los que se les permite el acceso (gura 14.11 en la pgina siguiente). Existen cuatro opciones disponibles para los ordenadores: single host, netgroups, wildcards y IP networks. Puede encontrar una explicacin ms detalladas de estas opciones en las pginas man del paquete exports (man exports). Con Finalizar cierra la ventana de conguracin.

396

14.9. NFS Sistema de archivos distribuidos

14
Fundamentos de conexin a redes

Figura 14.11: Servidor NFS: Introducir el host y los directorios de exportacin

14.9.4.

Exportar manualmente sistemas de archivos

Si prescinde del apoyo de YaST, asegrese de que los siguientes servicios estn en funcionamiento en el servidor NFS: RPC-Portmapper (portmap) RPC-Mount-Daemon (rpc.mountd) RPC-NFS-Daemon (rpc.nfsd) Introduzca los comandos insserv /etc/init.d/nfsserver e insserv /etc/init.d/portmap para que los servicios sean activados por los scripts /etc/init.d/portmap y /etc/init.d/nfsserver al arrancar el ordenador. Aparte de iniciar estos daemons es preciso denir qu sistemas de archivos se deben exportar a qu ordenadores. Esto se realiza con el archivo /etc/ exports. Por cada directorio a exportar se necesita una lnea que dena qu ordenador debe acceder a l y de qu forma; los subdirectorios se exportan automticamente. Los ordenadores con permiso de acceso se indican generalmente por sus nombres (con el nombre del dominio incluido).

SUSE LINUX Manual de Administracin

397

Tambin puede usar los comodines * y ? con sus funciones conocidas de la shell bash. Si no se indica ningn nombre, todos los ordenadores tienen la posibilidad de montar el directorio con los derechos de acceso indicados. Los derechos con los que el directorio se exporta estn indicados entre parntesis en una lista detrs del nombre de ordenador. La siguiente tabla resume las opciones de acceso ms importantes. Cuadro 14.12: Derechos de acceso a directorios exportados Opciones ro rw root_squash Signicado Exportacin slo con derecho de lectura (por defecto). Exportacin con derecho de escritura y lectura. Esta opcin hace que el usuario root del ordenador indicado no tenga sobre el directorio los derechos especiales tpicos de root. Esto se logra modicando los accesos con la identidad de usuario (User-ID ) 0 al de 65534 (-2). Esta identidad debe estar asignada al usuario nobody (esta es la opcin por defecto). Ninguna modicacin de los derechos de root. Modicacin de enlaces simblicos absolutos (aquellos que comienzan con /) a una secuencia de ../. Esta opcin slo tiene sentido si se monta el sistema de archivos completo de un ordenador (es as por defecto). No se modican los enlaces simblicos. El cliente usa el mismo nmero de identicacin (User-ID ) que el servidor (esta es la opcin por defecto). Los nmeros de identicacin de usuario, cliente y servidor no coinciden. Con esta opcin, el nfsd genera una tabla para la conversin de los nmeros de identicacin de usuario. El requisito para ello es la activacin del daemon ugidd.

no_root_squash link_relative

link_absolute map_identity

map_daemon

398

14.9. NFS Sistema de archivos distribuidos

El archivo 14.27 en la pgina siguiente muestra un ejemplo de un archivo exports. Ejemplo 14.27: /etc/exports
# # /etc/exports # /home /usr/X11 /usr/lib/texmf / /home/ftp # End of exports

14
Fundamentos de conexin a redes

sol(rw) venus(rw) sol(ro) venus(ro) sol(ro) venus(rw) tierra(ro,root_squash) (ro)

Los programas mountd y nfsd leen el archivo /etc/exports. Despus de haberlo modicado, es preciso reiniciar mountd y nfsd para que los cambios se activen. Para ello lo ms sencillo es introducir el comando:
rcnfsserver restart

14.10.
14.10.1.

DHCP
El protocolo DHCP

El protocolo Dynamic Host Conguration Protocol tiene como funcin proporcionar conguraciones de forma centralizada desde un servidor de la red, evitando as el tener que hacerlo de forma descentralizada desde cada estacin de trabajo. Un cliente que haya sido congurado con DHCP no posee direcciones estticas sino que se congura totalmente de manera automtica segn las especicaciones del servidor DHCP. Existe la posibilidad de identicar a un cliente mediante la direccin de hardware de su tarjeta de red y proporcionarle siempre la misma conguracin, o bien de asignar dinmicamente direcciones de un depsito creado especialmente a los ordenadores interesados. En este ltimo caso, el servidor DHCP procurar asignar a un cliente siempre la misma direccin para cada consulta (aunque estn espaciadas en el tiempo) claro que esto no funcionar si en la red hay ms ordenadores que direcciones.

SUSE LINUX Manual de Administracin

399

Por lo tanto, el administrador del sistema puede beneciarse de DHCP de dos formas. Por una parte es posible realizar de forma centralizada, cmoda y automtica grandes modicaciones (de conguracin y/o de direcciones de red) en el archivo de conguracin del servidor DHCP y todo ello sin tener que congurar los clientes uno a uno. Por otra parte y sobre todo, es posible integrar fcilmente nuevos ordenadores a la red asignndoles un nmero IP del conjunto de direcciones. En el caso de porttiles que operan de forma regular en varias redes, resulta muy til la posibilidad de obtener la conguracin de red correspondiente del respectivo servidor DHCP. Adems de asignar al cliente la direccin IP y la mscara de red se le entregarn tambin el nombre del ordenador y del dominio, la pasarela (gateway) a ser usada y las direcciones de los servidores de nombres. Tambin se pueden congurar de forma central algunos parmetros, como por ejemplo un servidor de tiempo (time server), desde el cual se puede acceder a la hora actual. A continuacin le ofrecemos una descripcin a grandes rasgos del mundo de DHCP. Tambin le mostraremos cmo realizar fcilmente la conguracin de red de forma centralizada mediante DHCP y, ms concretamente, con ayuda del servidor DHCP dhcpd.

14.10.2.

Los paquetes de software DHCP

SUSE LINUX contiene un paquete de servidor DHCP y dos paquetes cliente. El servidor DHCP dhcpd publicado por el Internet Software Consortium ofrece los servicios de servidor. Como clientes DHCP disponemos de dos alternativas: por un lado, se encuentra dhcpclient, tambin realizado por ISC, y por el otro DHCP Client Daemon, incluido en el paquete dhcpcd. dhcpcd est incluido en la instalacin estndar en SuSE Linux y su manejo es muy sencillo. Ya durante el arranque del ordenador ste se ejecuta de forma automtica y busca un servidor DHCP. A dhcpcd no le hace falta un archivo de conguracin y normalmente funciona sin ninguna conguracin adicional. Para situaciones ms complejas se puede usar el dhclient de ISC, el cual se controla desde el archivo de conguracin /etc/dhclient.conf

400

14.10. DHCP

14.10.3.

El servidor DHCP: dhcpd

14
Fundamentos de conexin a redes

El Dynamic Host Conguration Protocol Daemon es el corazn de todo sistema DHCP. ste se encarga de alquilar direcciones y de vigilar su uso como est estipulado en el archivo de conguracin /etc/dhcpd.conf. El administrador del sistema puede determinar el comportamiento del DHCP segn sus preferencias mediante los parmetros y valores denidos en este archivo. Un ejemplo para un archivo /etc/dhcpd.conf sencillo: Ejemplo 14.28: El archivo de conguracin /etc/dhcpd.conf
default-lease-time 600; max-lease-time 7200; option option option option option # 10 minutes # 2 hours

domain-name "kosmos.sol"; domain-name-servers 192.168.1.1, 192.168.1.2; broadcast-address 192.168.1.255; routers 192.168.1.254; subnet-mask 255.255.255.0;

subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.20; range 192.168.1.100 192.168.1.200; }

Este sencillo archivo de conguracin es suciente para que DHCP pueda asignar direcciones IP en la red. Preste especial atencin a los signos de punto y coma al nal de cada lnea sin los cuales dhcpd no arrancar. Como se puede observar, el anterior ejemplo puede dividirse en tres bloques. En la primera parte se dene de forma estndar cuntos segundos se alquilar una direccin IP a un ordenador que lo solicite antes de que ste tenga que pedir una prrroga (default-lease-time). Aqu tambin se dene el tiempo mximo durante el cual un ordenador puede conservar un nmero IP otorgado por el servidor DHCP sin tener que tramitar para ello una prrroga (max-lease-time). En el segundo bloque se denen globalmente algunos parmetros de red bsicos: Con option domain-name se dene el dominio por defecto de su red.

SUSE LINUX Manual de Administracin

401

En option domain-name-servers se pueden introducir hasta tres servidores DNS que se encargarn de resolver direcciones IP en nombres de host (y viceversa). Lo ideal sera que en su sistema o en su red hubiese ya un servidor de nombres en funcionamiento que proporcionase los nombres de host para las direcciones dinmicas y viceversa. Obtendr ms informacin sobre la creacin de un propio servidor de nombres en el captulo sobre DNS ( 14.6 en la pgina 361). option broadcast-address dene qu direccin broadcast debe usar el ordenador que efecta la consulta. option routers dene dnde deben ser enviados los paquetes de datos que no pueden ser entregados en la red local (a causa de la direccin del host de origen y el host de destino as como de la mscara de subred). Este enrutador suele actuar como la pasarela a Internet en pequeas redes. option subnet-mask proporciona al cliente la mscara de red a entregar. Por debajo de esta conguracin general se dene una red con su mscara de subred. Por ltimo basta con seleccionar el rango de direcciones utilizado por el daemon DHCP para asignar direcciones IP a clientes que lo consulten. Para el ejemplo dado, son todas las direcciones entre 192.168.1.10 y 192.168.1.20 y tambin en el rango de 192.168.1.100 hasta 192.168.1.200. Despus de esta breve conguracin, ya debera ser posible iniciar el daemon DHCP mediante el comando rcdhcpd start. Por motivos de seguridad, el daemon DHCP se inicia por defecto en un entorno chroot en SUSE LINUX. Para poder encontrar los archivos de conguracin, es necesario copiarlos en el nuevo entorno. Esto sucede automticamente con el comando rcdhcpd start. Asimismo es posible controlar la sintaxis de la conguracin mediante el comando rcdhcpd check-syntax. Si hay algn problema y el servidor da un error en lugar de indicar done, el archivo /var/log/messages Ctrl + Alt + F10 ) as como la consola 10 ( ofrecen ms informacin.

14.10.4.

Ordenadores con direcciones IP jas

Como ya se ha mencionado, tambin existe la posibilidad de asignar a un determinado ordenador la misma direccin IP en cada consulta.

402

14.10. DHCP

Estas asignaciones explcitas de una direccin tienen prioridad sobre la asignacin de direcciones desde un conjunto de direcciones dinmicas. Al contrario de lo que sucede con las direcciones dinmicas, las jas no se pierden; ni siquiera cuando ya no quedan direcciones y se requiere una redistribucin de las mismas. Para identicar a los sistemas que deben obtener una direccin esttica, dhcpd se sirve de la direccin de hardware. sta es una direccin nica en el mundo para identicar las interfaces de red. Se compone de seis grupos de dos cifras hexadecimales, por ejemplo 00:00:45:12:EE:F4. Al ampliar el archivo de conguracin que se reeja en el extracto 14.28 en la pgina 401 con una entrada como se muestra en el extracto 14.29, DHCPD siempre entrega los mismos datos al ordenador correspondiente. Ejemplo 14.29: Ampliacin del archivo de conguracin
host tierra { hardware ethernet 00:00:45:12:EE:F4; fixed-address 192.168.1.21; }

14
Fundamentos de conexin a redes

El signicado de estas lneas se explica prcticamente por s mismo: Primero aparece el nombre del ordenador que se va a denir (host hostname) y en la lnea siguiente se introduce la direccin MAC. Es muy fcil de averiguar en Linux ejecutando el comando ifstatus seguido de la interfaz de red (por ejemplo eth0). Puede que sea necesario activar previamente la tarjeta: ifup eth0. Este comando produce una salida como:
link/ether 00:00:45:12:EE:F4

Siguiendo el ejemplo expuesto, el ordenador con la direccin MAC 00:00:45:12:EE:F4 recibe automticamente la direccin IP 192.168.1.21 y el nombre tierra. Como tipo de hardware hoy en da se suele utilizar ethernet, pero tampoco hay problemas con token-ring que se encuentra en muchos sistemas de IBM.

SUSE LINUX Manual de Administracin

403

14.10.5.

Particularidades en SUSE Linux

Por razones de seguridad, la versin del servidor ISC DHCP incluida en SUSE incorpora el parche non-root/chroot de Ari Edelkind. De este modo se consigue que dhcpd pueda ejecutarse como usuario nobody en un entorno chroot (/var/lib/dhcp/) Con este n, el archivo de conguracin /etc/dhcpd.conf debe copiarse en el directorio /var/lib/dhcp/etc/, lo que es realizado automticamente por el script de inicio durante el arranque. Este comportamiento puede denirse en el archivo /etc/sysconfig/ dhcpd. Para que dhcpd siga ejecutndose sin entorno chroot, el valor de la variable DHCPD_RUN_CHROOTED en el archivo /etc/sysconfig/ dhcpd ha de ser no. Si desea que dhcpd pueda resolver nombres de host tambin en el entorno chroot, debe copiar a /var/lib/dhcp/etc/ los siguientes archivos de conguracin adicionales: /etc/localtime /etc/host.conf /etc/hosts /etc/resolv.conf Estos archivos sern copiados a /var/lib/dhcp/etc/ al iniciar el script de arranque. Los archivos han de mantenerse en un estado actualizado en caso de que sean modicados dinmicamente por un script como /etc/ppp/ip-up. Si el archivo de conguracin contiene nicamente direcciones IP en lugar de nombres de host, no habr ningn problema. Puede copiar varios archivos en el entorno chroot por medio del parmetro DHCPD_CONF_INCLUDE_FILES en el archivo etc/sysconfig/dhcpd. Para que el daemon dhcp siga efectuando el registro (log) desde el entorno chroot incluso cuando se reinicie el daemon syslog, debe aadir la opcin "-a /var/lib/dhcp/dev/log" a la variable SYSLOGD_PARAMS en el archivo /etc/sysconfig/syslog.

404

14.10. DHCP

14.10.6.

Informacin adicional

14
Fundamentos de conexin a redes

Como se ha mencionado al principio, el captulo no pretende ms que introducir al lector en el mundo de DHCP. En la pgina web del Internet Software Consortium (http://www.isc.org/products/DHCP/) se encuentra informacin detallada sobre DHCP y sobre la versin 3 de este protocolo que actualmente se est desarrollando. Adems existen las pginas man como man dhcpd, man dhcpd.conf, man dhcpd.leases y man dhcp-options. Tambin hay una serie de libros en el mercado que detallan las posibilidades del Dynamic Host Name Conguration Protocol. Otra caracterstica interesante de dhcpd es la posibilidad de entregar un archivo con un kernel a los clientes que lo soliciten. Es algo que se dene mediante el parmetro lename en el archivo de conguracin. As se pueden congurar clientes sin disco duro y cargar tanto el sistema operativo como los datos a travs de la red, lo que puede resultar muy interesante por motivos econmicos y de seguridad.

14.11.
14.11.1.

Sincronizacin horaria con xntp


Introduccin

En muchos de los procesos que tienen lugar en un sistema informtico, la hora exacta juega un papel primordial. Por este motivo, todos los ordenadores incorporan normalmente un reloj que desgraciadamente no siempre satisface los requisitos exigidos por aplicaciones tales como bases de datos. Entre las posibles soluciones se encuentra, por un lado, el ajustar el reloj local del ordenador constantemente o, por otro, el corregir peridicamente el reloj a travs de la red. En el mejor de los casos, el reloj del ordenador no debe atrasarse nunca y los pasos realizados para adelantar el reloj no deben superar un intervalo de tiempo concreto. Comparativamente resulta mucho ms sencillo ajustar el reloj de cuando en cuando con el programa ntpdate. No obstante, este proceso implica un salto importante en el tiempo que no todas las aplicaciones toleran. xntp constituye un interesante planteamiento para resolver el problema. Por una parte, xntp corrige continuamente el reloj local del ordenador tomando como base los datos de correccin recopilados en el sistema. Por otra, utiliza servidores de tiempo en la red para corregir la hora local de forma permanente. Una tercera posibilidad consiste en administrar referentes locales de tiempo como relojes atmicos.

SUSE LINUX Manual de Administracin

405

14.11.2.

Conguracin en red

Segn la conguracin predeterminada de xntp en SUSE LINUX, el nico referente de tiempo es el reloj local del ordenador. El modo ms sencillo de utilizar un servidor de tiempo de la red es introduciendo el parmetro server. Por ejemplo, si en la red existe un servidor de tiempo llamado ntp.example.com, podemos introducir dicho servidor en el archivo /etc/ntp.conf de esta forma: server ntp.example.com. Para aadir servidores de tiempo adicionales se introducen lneas suplementarias con la palabra clave server. Una hora despus de iniciar xntpd con el comando rcxntpd start, el tiempo se estabiliza y se crea el archivo drift-File para corregir el reloj local del ordenador. La ventaja a largo plazo de drift-File radica en que al encender el ordenador se sabe ya cmo se desajusta el reloj de hardware con el tiempo. La correccin se activa entonces inmediatamente con lo que se consigue un tiempo de mquina muy estable. Mientras sea posible acceder al servidor de tiempo en la red mediante una llamada general o broadcast, no necesita un servidor de nombres. Puede denir este proceso en el archivo de conguracin /etc/ntp.conf con el parmetro broadcastclient. En este caso se recomienda congurar tambin los mecanismos de autenticacin. De no ser as, un servidor de tiempo defectuoso en la red podra modicar su tiempo de mquina. Por regla general, es posible dirigirse a cualquier xntpd en la red como a un servidor de tiempo. Para ejecutar xntpd tambin con broadcasts, utilice la opcin broadcast:
broadcast 192.168.0.255

Aqu ha de sustituir la direccin de broadcast del ejemplo por la direccin pertinente en su caso. No obstante, asegrese de que el servidor de tiempo utiliza la hora correcta. Para ello puede servirse, por ejemplo, de relojes de referencia.

14.11.3.

Instalar un reloj de referencia local

El paquete xntp incluye controladores que permiten conectar relojes de referencia locales. Los relojes soportados se encuentran en el archivo file: /usr/share/doc/packages/xntp-doc/html/refclock.htm del paquete xntp-doc. A cada controlador se le ha asignado un nmero.

406

14.11. Sincronizacin horaria con xntp

La autntica conguracin se lleva a cabo en xntp a travs de direcciones IP falsas. Los relojes se introducen en el archivo /etc/ntp.conf como si estuvieran disponibles en la red. Para ello reciben direcciones IP especiales con el formato 127.127.t.u. El valor t se toma del archivo mencionado arriba con la lista de relojes de referencia. u es el nmero de dispositivo, el cual es siempre 0 a no ser que utilice varios relojes del mismo tipo en su ordenador. As, un Type 8 Generic Reference Driver (PARSE) posee la direccin IP falsa 127.127.8.0. Cada controlador dispone normalmente de parmetros especiales que denen la conguracin con ms detalle. El archivo file:/usr/share/ doc/packages/xntp-doc/html/refclock.htm contiene un enlace a la pgina web de cada controlador donde se describen estos parmetros. Por poner un ejemplo, para los relojes de tipo 8 es necesario especicar un modo adicional que describe el reloj ms exactamente. As, el mdulo Conrad DCF77 receiver module tiene el modo 5. Tambin puede introducir la palabra clave prefer para que xntp tome este reloj como referente. Por consiguiente, la lnea server completa de un Conrad DCF77 receiver module sera:
server 127.127.8.0 mode 5 prefer

14
Fundamentos de conexin a redes

Otros relojes siguen el mismo esquema. Una vez instalado el paquete xntp-doc, la documentacin sobre xntp est disponible en su sistema en el directorio /usr/share/doc/packages/xntp-doc/html.

SUSE LINUX Manual de Administracin

407

15
El servidor web Apache

El servidor web Apache

Apache es el servidor web ms usado en todo el mundo con una cuota de mercado superior al 60 % (segn http://www.netcraft.com). En las aplicaciones web, Apache se combina frecuentemente con Linux, la base de datos MySQL y los lenguajes de programacin PHP y Perl. Esta combinacin se ha dado en llamar LAMP.

15.1. Fundamentos . . . . . . . . . . . . . . . . . 15.2. Conguracin del servidor HTTP con YaST 15.3. Los mdulos de Apache . . . . . . . . . . . 15.4. Novedades en Apache 2 . . . . . . . . . . . 15.5. Threads . . . . . . . . . . . . . . . . . . . . . 15.6. Instalacin . . . . . . . . . . . . . . . . . . . 15.7. Conguracin . . . . . . . . . . . . . . . . . 15.8. Funcionamiento de Apache . . . . . . . . . 15.9. Contenidos activos . . . . . . . . . . . . . . 15.10. quinas virtuales . . . . . . . . . . . . . . M 15.11. eguridad . . . . . . . . . . . . . . . . . . . S 15.12. denticacin y resolucin de problemas . . I 15.13. ocumentacin adicional . . . . . . . . . . D

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

410 411 412 413 414 415 417 422 423 429 433 434 435

15.1.
15.1.1.

Fundamentos
Servidor web

Un servidor web proporciona pginas HTML a los clientes que lo solicitan. Estas pginas pueden estar almacenadas en un directorio del servidor (pginas pasivas o estticas) o ser generadas de nuevo como respuesta a una solicitud (contenidos activos).

15.1.2. HTTP
Los clientes suelen ser navegadores web como Konqueror o Mozilla. La comunicacin entre el navegador y el servidor web se produce a travs del protocolo de transferencia de hipertexto (HyperText Transfer Protocol). La versin actual de dicho protocolo (HTTP 1.1) est documentada en RFC 2068 y Update RFC 2616, los cuales se encuentran en la URL http://www. w3.org.

15.1.3.

URLs

El cliente solicita una pgina al servidor a travs de una URL. Por ejemplo: http://www.suse.com/index.html Una URL se compone de: Un protocolo. Los protocolos de uso ms extendido son: http:// El protocolo HTTP. https:// Una versin de HTTP codicada y ms segura. ftp:// File Transfer Protocol, para cargar y descargar archivos. Un dominio, en este caso www.suse.com. A su vez, el dominio puede subdividirse: la primera parte (www) hace referencia a un ordenador, la segunda suse.com es el autntico dominio. La suma de ambas partes se conoce como FQDN (Fully Qualied Domain Name o nombre de dominio totalmente cualicado). Un recurso, en este caso index.html. Esta parte indica la ruta completa al recurso. Este recurso puede ser un archivo (como en este caso), un script CGI, una pgina de servidor de Java, etc.

410

15.1. Fundamentos

La solicitud es reenviada al dominio (www.suse.com) por diversos mecanismos de Internet (por ejemplo sistema de nombres de dominio DNS). Estos mecanismos reenvan el acceso a un dominio a uno o varios ordenadores responsables. El mismo Apache se encarga de proporcionar el recurso (la pgina index.html en nuestro ejemplo) de su directorio de archivos. En este caso, el archivo se encuentra en el nivel superior del directorio, pero tambin podra haber estado incluido en un subdirectorio como www.suse.com/business/services/support/index.html La ruta al archivo es relativa con respecto al documento raz o DocumentRoot, el cual puede modicarse en los archivos de conguracin. El procedimiento para ello se describe en la seccin 15.7.2 en la pgina 418.

15
El servidor web Apache

15.1.4. Reproduccin automtica de una pgina predeterminada


Indicar la pgina predeterminada no es absolutamente necesario. Si no se especica ninguna pgina, Apache aade automticamente a la URL un nombre usual para tales pginas. El nombre ms comn para una pgina de este tipo es index.html. Es posible congurar este proceso en Apache y denir los nombres de pginas a tener en cuenta. El procedimiento correspondiente se explica en el apartado 15.7.2 en la pgina 419. En este caso basta con especicar http://www.suse.com para que el servidor proporcione la pgina http://www.suse.com/index.html.

15.2.

Conguracin del servidor HTTP con YaST

Apache 2 puede congurarse con YaST rpida y fcilmente. No obstante, para poder implementarlo como servidor web es necesario un cierto nivel de conocimientos. Al seleccionar en el Centro de Control de YaST Servicios de red -> Servidor HTTP, se le preguntar si YaST debe instalar los paquetes que faltan. En caso de que est todo instalado, acceder directamente al dilogo de conguracin. En primer lugar, active el servicio HTTP. Por defecto aparecen tres opciones: Nombre del servidor, Direccin de correo del administrador del servidor y Escuchar en. Esta ltima opcin ya muestra el puerto 80 como valor predeterminado.

SUSE LINUX Manual de Administracin

411

El botn Aadir le permite seleccionar nuevas opciones, con Editar puede cambiar el valor de la opcin seleccionada y Borrar elimina la opcin. A travs del botn Avanzado se accede al registro de acceso y errores por medio de las opciones Mostrar registro de acceso y Mostrar registro de errores. Tambin es posible congurar los Mdulos del servidor que va a cargar el servidor. En este mismo dilogo puede activar o desactivar los distintos mdulos mediante el botn Cambiar estado as como agregar nuevos mdulos con Aadir mdulo.

15.3.

Los mdulos de Apache

Las funciones de Apache pueden expandirse mediante mdulos. Por ejemplo, Apache es capaz de ejecutar scripts CGI en mltiples lenguajes de programacin con ayuda de mdulos. Aqu no se trata slo de Perl y PHP, sino tambin de otros muchos lenguajes de scripts como Python o Ruby. Adems existen mdulos que posibilitan, entre otras muchas cosas, la transmisin segura de los datos (Secure Sockets Layer, SSL), la autenticacin de usuarios, el registro ampliado, etc. Apache puede ser adaptado a los requisitos y necesidades del usuario mediante mdulos escritos por l mismo. No obstante, para ello se requiere un cierto nivel de conocimientos. El apartado 15.13.4 en la pgina 436 le ofrece indicaciones para obtener informacin adicional. Cuando Apache procesa una solicitud, se puede haber denido uno o varios gestores o handlers en el archivo de conguracin para llevar a cabo ese proceso. Los gestores pueden formar parte de Apache o bien ser mdulos activados para procesar la solicitud, por lo que el proceso puede congurarse de manera muy exible. Adems existe la posibilidad de integrar en Apache mdulos propios para obtener un control an mayor sobre la tramitacin de solicitudes. La modularizacin est an ms acentuada en Apache 2. En esta versin, el servidor se ocupa de un nmero muy reducido de tareas mientras que el resto se realiza a travs de mdulos. Esto se lleva a tal extremo que incluso el procesamiento de HTTP tiene lugar a travs de mdulos. Por lo tanto, Apache 2 no debe ser necesariamente un servidor web; tambin puede asumir otras tareas muy distintas a travs de mdulos diferentes. Un ejemplo es el servidor de correo Proof-of-Concept (POP3) como mdulo basado en Apache. Apache soporta un amplio abanico de prestaciones muy tiles. Las ms importantes se describen a continuacin.

412

15.3. Los mdulos de Apache

Mquinas virtuales (virtual hosts) El soporte de mquinas virtuales signica que es posible manejar varias pginas web con una instancia de Apache en un nico ordenador, si bien el servidor web se maniesta como varios servidores web independientes de cara al usuario. Las mquinas virtuales pueden estar conguradas en distintas direcciones IP o en funcin de los nombres. As se evita el tener que adquirir y administrar ordenadores adicionales. Reescritura exible de URLs Apache ofrece mltiples posibilidades para manipular y reescribir URLs (URL rewriting). Puede encontrar informacin adicional en la documentacin sobre Apache. Negociacin del contenido (content negotiation) En funcin de las prestaciones del cliente (navegador), Apache puede proporcionar una pgina web a la medida de ese cliente. Por ejemplo, en el caso de navegadores antiguos o aquellos que trabajen slo en modo texto (como por ejemplo Lynx), se entregar una versin simplicada de la pgina web sin tramas. Al proporcionar una versin de la pgina apropiada para cada navegador, es posible evitar la incompatibilidad entre muchos navegadores en lo que a JavaScript se reere. Flexibilidad en el tratamiento de errores Al producirse un fallo (por ejemplo una pgina no est disponible), es posible reaccionar de forma exible y responder convenientemente. El modo de respuesta puede congurarse de forma activa por ejemplo mediante CGI.

15
El servidor web Apache

15.4.

Novedades en Apache 2

A continuacin se describen las novedades incluidas en Apache 2. La pgina http://httpd.apache.org/docs-2.0/de/ le ofrece abundante documentacin sobre la versin 2 del servidor HTTP Apache. El modo de ejecutar simultneamente varias solicitudes: en el caso de Apache 2 pueden utilizarse hebras o threads y procesos. La administracin de procesos se produce en un mdulo propio, el mdulo multiproceso o MPM. Apache 2 reacciona de forma distinta a las solicitudes dependiendo del MPM. Las diferencias se reejan en el rendimiento y la utilizacin de los mdulos. Este tema se describe con detalle ms adelante.

SUSE LINUX Manual de Administracin

413

La organizacin interna de Apache ha mejorado considerablemente: ahora se utiliza una nueva librera base (Apache Portable Runtime, APR) como interfaz para las funciones del sistema y para la administracin de memoria. Asimismo, mdulos tan importantes y extendidos como mod_gzip (o su sucesor mod_deate) y mod_ssl, que participan activamente en el tratamiento de solicitudes, estn mucho mejor integrados en Apache. Apache 2 domina el protocolo de Internet IPv6. Ya existe un mecanismo mediante el cual los fabricantes de mdulos pueden determinar el orden de carga de los mismos sin que el usuario tenga que ocuparse de ello. El orden de ejecucin de los mdulos es a menudo muy importante y antiguamente se determinaba en funcin del orden de carga. As, un mdulo que slo permita el acceso a determinados recursos a los usuarios autenticados debe activarse en primer lugar para que los usuarios sin permisos de acceso no lleguen a ver las pginas. Las solicitudes a Apache y sus respuestas pueden procesarse con ltros. Soporte de archivos mayores que 2 GB (large le support o LFS) en sistemas de 32 bits. Algunos mdulos nuevos slo estn disponibles para Apache 2. Mensajes de error en varios idiomas.

15.5.

Threads

Una hebra o thread es una especie de proceso light que requiere menos recursos que un proceso normal. Por este motivo, el rendimiento aumenta cuando se usan threads en vez de procesos. El inconveniente radica en que las aplicaciones han de ser thread-safe para poder ejecutarse en un entorno de threads. Esto signica: Las funciones (o mtodos en el caso de las aplicaciones orientadas a objetos) deben ser reentrantes, es decir, la funcin siempre debe producir el mismo resultado con los mismos datos de entrada independientemente de que est siendo ejecutada por otras hebras al mismo tiempo. Por lo tanto, las funciones deben estar programadas de tal forma que puedan ser ejecutadas por varias hebras simultneamente.

414

15.5. Threads

El acceso a recursos (variables en su mayor parte) debe estar regulado de manera que no se produzcan conictos entre las hebras ejecutndose paralelamente. Apache 2 puede ejecutar solicitudes como un proceso propio o en un modelo mixto formado por procesos y hebras. El MPM prefork se ocupa de la ejecucin en forma de proceso y el MPM worker de la ejecucin como hebra. Durante la instalacin es posible indicar qu MPM desea utilizar (ver seccin 15.6). El tercer modo, perchild an se encuentra en una fase experimental y por eso (todava) no se incluye en la instalacin de SUSE LINUX.

15
El servidor web Apache

15.6.
15.6.1.

Instalacin
Seleccin de paquetes en YaST

Para solicitudes simples basta con instalar el paquete apache2 (Apache 2). Instale adems uno de los paquetes MPM (Multiprocessing Module) como apache2-prefork o apache2-worker. A la hora de seleccionar el MPM adecuado tenga en cuenta que el MPM worker con hebras no puede emplearse con el paquete mod_php4, ya que no todas las libreras utilizadas por el paquete mod_php4 son thread-safe.

15.6.2.

Activar Apache

Apache no se inicia automticamente a pesar de estar instalado. Para iniciar Apache es necesario activarlo en el editor de niveles de ejecucin. Con el n de que siempre se inicie automticamente al arrancar el sistema, debe activar los niveles de ejecucin 3 y 5 en el editor de niveles de ejecucin. Puede comprobar si Apache est activo introduciendo la siguiente URL en un navegador http://localhost/. Si Apache est activo y el paquete apache2-example-pages est instalado, podr ver una pgina de prueba.

15.6.3.

Mdulos para contenidos activos

Para emplear contenidos activos sirvindose de los mdulos es necesario instalar tambin los mdulos para los lenguajes de programacin correspondientes.

SUSE LINUX Manual de Administracin

415

Estos son el paquete apache2-mod_perl para Perl, el paquete apache2-mod_php4 para PHP y el paquete apache2-mod_python para Python. El empleo de estos mdulos se describe en la seccin 15.9.5 en la pgina 426.

15.6.4.

Paquetes suplementarios

De manera adicional se recomienda instalar la abundante documentacin que se encuentra en el paquete apache2-doc. Existe un alias (para saber lo que es eso consulte la seccin 15.7 en la pgina siguiente) para la documentacin que proporciona un acceso directo a la misma a travs de la URL http://localhost/manual. Para desarrollar mdulos propios para Apache o compilar mdulos de terceros fabricantes es necesario instalar tambin el paquete apache2-devel, as como las herramientas de desarrollo correspondientes, como por ejemplo las herramientas apxs que se describen en el apartado 15.6.5.

15.6.5.

Instalacin de mdulos con Apxs

apxs2 constituye una herramienta muy valiosa para los desarrolladores de mdulos. Este programa permite compilar e instalar mediante un solo comando los mdulos disponibles en forma de texto fuente (incluyendo los cambios necesarios en los archivos de conguracin). Tambin posibilita la instalacin de mdulos disponibles en forma de archivos de objetos (extensin .o) o libreras estticas (extensin .a). A partir de las fuentes, apxs2 crea un objeto dinmico compartido (DSO) que puede ser utilizado directamente como mdulo por Apache. Con el siguiente comando se puede instalar un mdulo a partir del texto fuente: apxs2 -c -i -a mod_foo.c Para ver opciones adicionales de apxs2, consulte las pginas del manual. En el apartado 15.6 en la pgina anterior se describe qu paquetes deben ser instalados para que se instalen las distintas versiones de apxs. Existen varias versiones de apxs2: apxs2, apxs2-prefork y apxs2-worker. Mientras que apxs2 instala un mdulo de tal forma que pueda usarse con todos los MPMs, los otros dos programas lo instalan de forma que slo pueda ser usado por el MPM correspondiente (prefork o worker). apxs2 instala los mdulos en /usr/lib/apache2. En cambio, apxs2-prefork los instala en /usr/lib/apache2-prefork.

416

15.6. Instalacin

No se recomienda utilizar Apache 2 con la opcin -a, ya que los cambios se escribirn directamente en /etc/httpd/httpd.conf/. En su lugar, conviene activar los mdulos a travs de la entrada APACHE_MODULES en /etc/sysconfig/apache2/, tal y como se describe en la seccin 15.7.1.

15
El servidor web Apache

15.7.

Conguracin

Una vez instalado Apache, slo es necesario congurarlo si se tienen requisitos o necesidades especiales. La conguracin de Apache puede llevarse a cabo mediante SuSEcong; o bien editando directamente el archivo /etc/apache2/httpd.conf.

15.7.1. Conguracin con SuSEcong


Las opciones que puede denir en /etc/sysconfig/apache2) son integradas en los archivos de conguracin de Apache por medio de SuSEcong. Las posibilidades de conguracin incluidas deberan bastar en la mayora de los casos. En el archivo se encuentran comentarios explicativos sobre cada variable. Archivos de conguracin propios En lugar de realizar los cambios directamente en el archivo de conguracin /etc/apache2/httpd.conf, es posible denir un archivo de conguracin propio mediante las variables APACHE_CONF_INCLUDE_FILES (por ejemplo httpd.conf.local, que ser cargado posteriormente en el archivo de conguracin principal. De este modo, los cambios efectuados en la conguracin se mantienen aunque el archivo /etc/apache2/ httpd.conf se sobreescriba al realizar una nueva instalacin. Mdulos Los mdulos que han sido instalados con YaST se activan introduciendo el nombre del mdulo en la lista de la variable APACHE_MODULES. Esta variable se encuentra en el archivo /etc/sysconfig/apache2. Flags APACHE_SERVER_FLAGS permite introducir banderas que activan y desactivan secciones determinadas del archivo de conguracin.

SUSE LINUX Manual de Administracin

417

Por ejemplo, si una seccin del archivo de conguracin se encuentra dentro de


<IfDefine someflag> . . . </IfDefine>

slo est activada si la bandera correspondiente est denida en ACTIVE_SERVER_FLAGS:


ACTIVE_SERVER_FLAGS = ... someflag ...

De esta forma es posible activar y desactivar amplias secciones del archivo de conguracin con nes de prueba.

15.7.2.

Conguracin manual

El archivo de conguracin El archivo de conguracin /etc/apache2/httpd.conf permite realizar cambios que no son posibles en la conguracin con /etc/ sysconfig/apache2. A continuacin se indican algunos de los parmetros que puede denirse. Se explican aproximadamente en el mismo orden en el que aparecen en el archivo. DocumentRoot DocumentRoot es una opcin bsica de conguracin. Se trata del directorio en el cual Apache aguarda las pginas web que han de ser proporcionadas por el servidor. Este directorio es /srv/www/htdocs para las mquinas virtuales predeterminadas y normalmente no debe ser modicado. Timeout Indica el periodo que el servidor espera antes de emitir la seal de tiempo agotado para una solicitud. MaxClients El nmero mximo de clientes para los que Apache puede trabajar simultneamente. El valor predeterminado es 150, si bien este nmero podra resultar algo bajo para una pgina muy visitada.

418

15.7. Conguracin

LoadModule Las instrucciones LoadModule indican qu mdulos se cargan. En Apache 2 el orden de carga en Apache 2 est denido a travs de los mismos mdulos (vase la seccin 15.4 en la pgina 413). Asimismo, estas instrucciones especican los archivos incluidos en el mdulo. Port Dene el puerto en el que Apache aguarda las solicitudes. Este es normalmente el puerto 80, que es el puerto estndar para HTTP. Por lo general no se recomienda modicar esta opcin. Por ejemplo, un posible motivo para que Apache esperase en otro puerto sera la prueba de la nueva versin de una pgina web. De esta forma, la versin activa de dicha pgina continuara estando disponible en el puerto 80. Otra razn sera el publicar pginas web con informacin condencial disponible solamente en una red interna o intranet. Para ello se dene, por ejemplo, el puerto 8080 y los accesos externos a este puerto se bloquean mediante el cortafuegos. De esta forma, el servidor est protegido de cara al exterior. Directory Mediante esta directiva se denen los permisos (por ejemplo de acceso) para un directorio. Tambin existe una directiva de este tipo para DocumentRoot. El nombre de directorio indicado en esa directiva ha de concordar con el nombre indicado en DocumentRoot. DirectoryIndex Aqu pueden denirse los archivos que ha de buscar Apache para completar una URL cuando no se indica ningn archivo o recurso. El valor predeterminado es index.html. Por ejemplo, si el cliente solicita la URL http://www.xyz.com/foo/bar y en DocumentRoot se encuentra un directorio foo/bar que contiene un archivo llamado index.html, Apache proporciona esta pgina al cliente. AllowOverride Cualquier directorio del cual Apache obtenga documentos puede incluir un archivo que modique para ese directorio los permisos de acceso y otras opciones denidas globalmente.

15
El servidor web Apache
419

SUSE LINUX Manual de Administracin

Estas opciones de conguracin se aplican recursivamente al directorio actual y a todos sus subdirectorios hasta que sean a su vez modicadas en un subdirectorio por otro de estos archivos. Esto signica que la conguracin tiene validez global cuando se dene en un archivo de DocumentRoot. Estos archivos se llaman normalmente .htaccess, pero este nombre puede ser modicado (vase la seccin 15.7.2). En AllowOverride se determina si la conguracin denida en los archivos locales puede sobreescribir las opciones globales de conguracin. Los valores admitidos para esta variable son None y All as como cualquier combinacin posible de Options, FileInfo, AuthConfig y Limit. El signicado de estos valores se describe con detalle en la documentacin de Apache. El valor predeterminado (y ms seguro) es None. Order Esta opcin dene el orden en el que se aplican las opciones de conguracin para los permisos de acceso Allow y Deny. El valor predeterminado es:
Order allow,deny

Es decir, en primer lugar se aplican los permisos de acceso autorizados y a continuacin los permisos de acceso denegados. Los enfoques posibles son: allow all (permitir todos los accesos) ms excepciones deny all (denegar todos los accesos) ms excepciones Un ejemplo del segundo enfoque:
Order deny,allow Deny from all Allow from example.com Allow from 10.1.0.0/255.255.0.0

AccessFileName Aqu es posible introducir los nombres de archivos que pueden sobreescribir las opciones globales de conguracin en los directorios proporcionados por Apache (ver el apartado 15.7.2 en la pgina anterior). El valor predeterminado es .htaccess.

420

15.7. Conguracin

ErrorLog Esta opcin contiene el nombre del archivo en el que Apache emite los mensajes de error. El valor predeterminado es /var/log/httpd/ errorlog. Los mensajes de error para las mquinas virtuales (vase la seccin 15.10 en la pgina 429) se emiten tambin en este archivo si no se ha especicado ningn archivo de registro propio en la seccin correspondiente a la mquina virtual del archivo de conguracin. LogLevel Dependiendo de su prioridad, los mensajes de error se agrupan en distintos niveles. Esta opcin indica a partir de qu nivel de prioridad se emiten los mensajes de error. Slo se emiten los mensajes con el nivel de prioridad introducido o superior. El valor predeterminado es warn. Alias Un alias dene un atajo para un directorio que permite acceder directamente a dicho directorio. Por ejemplo, con el alias /manual/ es posible acceder al directorio /srv/www/htdocs/manual aunque en DocumentRoot se haya denido otro directorio como /srv/www/htdocs. (Mientras el documento raz tenga este valor, no hay ninguna diferencia.) En el caso de este alias, con http://localhost/manual se puede acceder directamente al directorio correspondiente. Para el directorio destino denido en una directiva Alias puede ser necesario crear una directiva Directory (vase la seccin 15.7.2 en la pgina 419) en la que se denan los permisos para el directorio. ScriptAlias Esta instruccin se asemeja a Alias, pero indica adems que los archivos del directorio destino han de ser tratados como scripts CGI. Server Side Includes Para activar estas opciones, las SSIs deben buscarse en todos los archivos ejecutables. Para ello se utiliza la instruccin
<IfModule mod_include.c> XBitHack on </IfModule>

15
El servidor web Apache
421

SUSE LINUX Manual de Administracin

Con el n de poder buscar Server Side Includes en un archivo, el archivo en cuestin ha de hacerse ejecutable con chmod +x nombre_archivo . De manera alternativa, tambin es posible indicar explcitamente el tipo de archivo que ha de ser examinado en busca de SSIs. Esto se realiza con
AddType text/html .shtml AddHandler server-parsed .shtml

No es una buena idea el introducir simplemente .html ya que Apache examina entonces todas las pginas en busca de Server Side Includes (incluyendo aquellas que con seguridad no contienen ninguna) con la consiguiente disminucin de rendimiento. Estas instrucciones ya estn incluidas en el archivo de conguracin de SUSE LINUX, por lo que normalmente no ser necesario llevar a cabo ninguna conguracin. UserDir Mediante el mdulo mod_userdir y la directiva UserDir es posible denir un directorio dentro del directorio local de usuario en el que el usuario pueda publicar sus archivos a travs de Apache. Esto se dene en SuSEcong mediante la variable HTTPD_SEC_PUBLIC_HTML. Para poder publicar archivos, la variable debe tener el valor yes. Esto conduce a la siguiente entrada en el archivo /etc/httpd/suse_public_html.conf (el cual es cargado por /etc/apache2/httpd.conf).
<IfModule mod_userdir.c> UserDir public_html </IfModule>

15.8.

Funcionamiento de Apache

Para mostrar sus propias pginas web (estticas) con Apache basta con guardar los archivos en el directorio adecuado. En SUSE LINUX este es /srv/www/htdocs. Puede que el directorio ya contenga algunas pginas de ejemplo. El propsito de dichas pginas es probar despus de la instalacin si Apache ha sido instalado y funciona correctamente. Estas pueden sobreescribirse sin problemas (o mejor an, desinstalarse). Los scripts CGI propios se guardan en /srv/www/cgi-bin.

422

15.8. Funcionamiento de Apache

Mientras est en funcionamiento, Apache escribe mensajes de registro en el archivo /var/log/httpd/access_log o bien /var/log/apache2/ access_log. All estn documentados qu recursos con qu duracin y qu mtodo (GET, POST...) se han solicitado y proporcionado. En caso de producirse fallos, encontrar la informacin correspondiente en el archivo /var/log/apache2.

15
El servidor web Apache

15.9. Contenidos activos


Apache ofrece varias posibilidades para proporcionar contenidos activos a clientes. Por contenidos activos se entienden pginas HTML creadas como resultado de datos variables introducidos por el cliente. Los buscadores constituyen un ejemplo muy conocido. En estas pginas, la introduccin de uno o varios trminos de bsqueda, quiz separados por operadores lgicos como y, o, etc., tiene como resultado una lista de pginas que incluyen el trmino buscado. Existen tres formas de crear contenidos activos con Apache: Server Side Includes (SSI) Aqu se trata de instrucciones que son integradas en una pgina HTML por medio de comentarios especiales. Apache analiza el contenido de estos comentarios e incluye el resultado en la pgina HTML. Common Gateway Interface (CGI) En este caso se ejecutan programas situados dentro de determinados directorios. Apache pasa los parmetros transmitidos por el cliente a estos programas y devuelve el resultado de los programas al cliente. Este tipo de programacin es relativamente fcil, especialmente al ser posible congurar programas de lnea de comandos ya existentes para que acepten datos de entrada de Apache y emitan su salida a Apache. Mdulos Apache incluye interfaces para ejecutar cualquier mdulo como parte del procesamiento de una solicitud y ofrece a estos programas acceso a informacin importante como la solicitud o la cabecera HTTP. De esta forma, en el procesamiento de solicitudes pueden participar programas que no slo son capaces de crear contenidos activos sino tambin de realizar otras funciones (como por ejemplo la autenticacin). La programacin de estos mdulos requiere un cierto nivel de conocimientos. Como contrapartida, se logra un alto rendimiento adems de posibilidades ms amplias que las obtenidas con SSI y CGI.

SUSE LINUX Manual de Administracin

423

Mientras los scripts CGI son activados por Apache (mediante el ID de usuario de su propietario), para utilizar los mdulos es necesario integrar en Apache un intrprete que se ejecute continuamente. (Se dice que el intrprete es persistente.) De esta forma se evita el tener que iniciar y terminar un proceso propio para cada solicitud (lo que implica un importante consumo de recursos con respecto a la administracin de procesos, gestin de memoria, etc.). En su lugar, el script se pasa al intrprete que ya est ejecutndose. Este mtodo tiene un inconveniente: mientras los scripts ejecutados a travs de CGI muestran una relativa tolerancia ante fallos de programacin, dichos fallos tienen un efecto muy negativo cuando se utilizan mdulos. La razn es que, en scripts CGI normales, los programas son nalizados tras procesar la solicitud y los fallos de recursos o memoria no compartidos no tienen tanta importancia porque la memoria o recurso vuelve a estar disponible una vez nalizado el programa. En cambio, al utilizar los mdulos, los efectos de los fallos de programacin son permanentes ya que el intrprete est en constante ejecucin. Si el servidor no es reiniciado, el intrprete puede funcionar sin interrupcin durante meses. Durante un periodo tan largo, los recursos no compartidos se hacen notar.

15.9.1.

Server Side Includes: SSI

Server Side Includes son instrucciones integradas en comentarios especiales ejecutados por Apache. El resultado se integra inmediatamente en la salida de Apache. Por ejemplo, la instruccin <!--#echo var="DATE_LOCAL" --> produce la fecha actual. Ntese aqu # inmediatamente despus del inicio del comentario <!--, que indica a Apache que se trata de una instruccin SSI y no de un comentario normal. Las instrucciones SSIs pueden activarse de diversas maneras. El modo ms sencillo consiste en examinar todos los archivos ejecutables en busca de Server Side Includes. La alternativa implica denir ciertos tipos de archivos que deben examinarse en busca de SSIs. Ambos procedimientos se explican en la seccin 15.7.2 en la pgina 421.

15.9.2.

Common Gateway Interface: CGI

CGI es la abreviatura de Common Gateway Interface. Mediante CGI, el servidor no se limita a proporcionar una pgina HTML esttica, sino que ejecuta un programa que se encarga de entregar esa pgina.

424

15.9. Contenidos activos

De esta forma es posible crear pginas fruto de una operacin de clculo, como el resultado de una bsqueda en una base de datos. Adems existe la posibilidad de pasar parmetros al programa ejecutado, permitindose as entregar una pgina individual de respuesta para cada solicitud. La principal ventaja de CGI radica en su sencillez. El programa slo tiene que estar en un directorio determinado para ser ejecutado por el servidor web como si se tratase de un programa en la lnea de comandos. El servidor simplemente entrega al cliente el resultado del programa desde el canal estndar de salida (stdout).

15
El servidor web Apache

15.9.3. GET y POST


Los parmetros de entrada pueden pasarse al servidor mediante GET o bien POST. Dependiendo del mtodo utilizado, el servidor pasa los parmetros al script de forma distinta. En el caso de POST, el servidor pasa los parmetros al programa en el canal estndar de entrada (stdin) (el programa obtiene aqu los parmetros de la misma forma que si se iniciara en una consola). Con GET, el servidor pasa los parmetros al programa en la variable de entorno QUERY_STRING. Una variable de entorno es una variable que el sistema pone a disposicin general. Un ejemplo tpico es la variable PATH, que contiene una lista de rutas que es examinada por el sistema en busca de comandos ejecutables cada vez que el usuario introduce un comando.

15.9.4. Lenguajes para CGI


En principio, los programas CGI pueden estar escritos en cualquier lenguaje de programacin. Normalmente se utilizan lenguajes de scripts (lenguajes interpretados) como Perl o PHP. En el caso de CGIs que deban ejecutarse muy rpidamente, el lenguaje elegido ser C o C++. En el caso ms sencillo, Apache espera a estos programas en un directorio concreto (cgi-bin). Este directorio puede denirse en el archivo de conguracin, vea la seccin 15.7 en la pgina 417. Asimismo es posible liberalizar varios directorios que Apache examina entonces en busca de programas ejecutables. No obstante esto conlleva cierto riesgo, ya que cualquier usuario (bien o malintencionado) ser capaz de hacer que Apache ejecute programas. Si los programas ejecutables slo se admiten en cgi-bin/, el administrador puede controlar ms fcilmente quin guarda qu programas o scripts en ese directorio y si dichos programas o scripts son peligrosos.

SUSE LINUX Manual de Administracin

425

15.9.5.

Crear contenidos activos con mdulos

Existen numerosos mdulos que pueden utilizarse en Apache. El trmino mdulo posee aqu dos acepciones. Por un lado se encuentran los mdulos que pueden integrarse en Apache y que asumen en el servidor una funcin determinada como la integracin de lenguajes de programacin en Apache. Un ejemplo son los mdulos que se explican a continuacin. Por otro lado, en los lenguajes de programacin se emplea la palabra mdulo para referirse a una cantidad determinada de funciones, clases y variables. Estos mdulos se integran en programas para proporcionar diversas prestaciones. Un ejemplo son los mdulos CGI disponibles en todos los lenguajes de scripts. Estos mdulos simplican la programacin de aplicaciones CGI al ofrecer mtodos para leer los parmetros de la solicitud y proporcionar cdigo HTML.

15.9.6. mod_perl
Perl es un lenguaje de scripts muy utilizado y de ecacia probada. Existe una multitud de mdulos y libreras para Perl (entre las que se encuentra una librera para ampliar el archivo de conguracin de Apache). La pgina web de Perl es http://www.perl.com/ Puede encontrar una amplia seleccin de libreras para Perl en la URL del proyecto Comprehensive Perl Archive Network (CPAN) http://www.cpan.org/ Congurar mod_perl Para trabajar con mod_perl en SUSE LINUX, basta con instalar el paquete correspondiente (vase la seccin 15.6 en la pgina 415). Las entradas necesarias para Apache en el archivo de conguracin ya estn incluidas, vase /etc/apache2/mod\_perl-startup.pl. Puede obtener informacin adicional sobre mod_perl en: http://perl.apache.org/ Comparacin entre mod_perl y CGI En el caso ms sencillo, es posible ejecutar un script CGI como script mod_perl simplemente activndolo a travs de otra URL. El archivo de conguracin contiene alias que apuntan al mismo directorio y ejecutan los scripts all almacenados a travs de CGI o bien mediante mod_perl. Estas entradas ya han sido introducidas en el archivo de conguracin. La entrada alias para CGI es:
ScriptAlias /cgi-bin/ "/srv/www/cgi-bin/"

426

15.9. Contenidos activos

mientras que las entradas para mod_perl son las siguientes:


<IfModule mod_perl.c> # Provide two aliases to the same cgi-bin directory, # to see the effects of the 2 different mod_perl modes. # for Apache::Registry Mode ScriptAlias /perl/ "/srv/www/cgi-bin/" # for Apache::Perlrun Mode ScriptAlias /cgi-perl/ "/srv/www/cgi-bin/" </IfModule>

15
El servidor web Apache

Las siguientes entradas tambin son necesarias para mod_perl y se encuentran ya en el archivo de conguracin.
# # If mod_perl is activated, load configuration information # <IfModule mod_perl.c> Perlrequire /usr/include/apache/modules/perl/startup.perl PerlModule Apache::Registry # # set Apache::Registry Mode for /perl Alias # <Location /perl> SetHandler perl-script PerlHandler Apache::Registry Options ExecCGI PerlSendHeader On </Location> # # set Apache::PerlRun Mode for /cgi-perl Alias # <Location /cgi-perl> SetHandler perl-script PerlHandler Apache::PerlRun Options ExecCGI PerlSendHeader On </Location> </IfModule>

Estas entradas crean nombres alias para los modos Apache::Registry y Apache::PerlRun. La diferencia entre ambos modos es la siguiente:

SUSE LINUX Manual de Administracin

427

Apache::Registry Se compilan todos los scripts y despus se guardan en la memoria cach. Cada script se crea como contenido de una subrutina. Aunque esto resulta positivo desde el punto de vista del rendimiento, presenta tambin un inconveniente: los scripts han de estar muy bien programados, ya que las variables y las subrutinas se mantienen entre los procesos de activacin. Esto signica que las variables deben devolverse a su valor original para poder ser reutilizadas cuando se vuelva a activar el script. Por ejemplo, si se guarda el nmero de tarjeta de crdito de un cliente en un script de banca a distancia, este nmero podra volver a aparecer cuando el prximo cliente utilice la aplicacin y vuelva a activar el script. Apache::PerlRun Los scripts son compilados de nuevo para cada solicitud de tal forma que las variables y subrutinas desaparecen del espacio de nombres entre los procesos de activacin. El espacio de nombres es el conjunto de todos los nombres de variables y rutinas denidos en un momento determinado durante la existencia de un script. Por tanto, con Apache::PerlRun no es necesario prestar tanta atencin a la calidad de la programacin, ya que todas las variables se inician al activar el programa y no pueden contener ningn valor procedente de procesos de activacin anteriores. Este es el motivo por el que Apache::PerlRun es ms lento que Apache::Registry, pero an as considerablemente ms rpido que CGI, ya que se evita el tener que iniciar un proceso propio para el intrprete. Apache::PerlRun se comporta de manera similar a CGI.

15.9.7.

mod_php4

PHP es un lenguaje de programacin creado especialmente para su uso con servidores web. Al contrario que otros lenguajes que guardan sus comandos en archivos independientes (scripts), los comandos en PHP estn integrados en una pgina HTML de manera similar a SSI. El intrprete PHP procesa los comandos PHP e integra el resultado del proceso en la pgina HTML. La pgina web de PHP es http://www.php.net/. Paquetes: El paquete mod_php4-core ha de estar instalado necesariamente. Para Apache 2 se requiere adems el paquete apache2-mod_php4.

428

15.9. Contenidos activos

15.9.8. mod_python
Python es un lenguaje de programacin orientado a objetos con una sintaxis muy clara y legible. La estructura del programa depende del sangrado, lo cual puede resultar un poco raro al principio pero muy cmodo cuando uno se acostumbra. Los bloques no se denen por medio de abrazaderas (como en C y en Perl) o delimitadores como begin y end, sino mediante la profundidad del sangrado. Ha de instalar el paquete apache2-mod_python. Puede encontrar informacin adicional sobre este lenguaje en http:// www.python.org/ y sobre mod_python en http://www.modpython. org/

15
El servidor web Apache

15.9.9. mod_ruby
Ruby es un lenguaje de programacin de alto nivel orientado a objetos. Ruby, un lenguaje relativamente joven, se asemeja tanto a Perl como a Python y resulta muy adecuado para su uso en scripts. Tiene en comn con Python la sintaxis clara y bien organizada y con Perl las abreviaturas del tipo $.r y el nmero de la ltima lnea leda del archivo de entrada. Atenindonos a su concepto, Ruby presenta enormes similitudes con Smalltalk. La pgina web de Ruby es http://www.ruby-lang.org/. Existe tambin un mdulo Apache para Ruby cuya pgina web es http://www. modruby.net/.

15.10.

Mquinas virtuales

Las mquinas virtuales permiten poner en la red varios dominios con un nico servidor web. De este modo se evitan los esfuerzos econmicos y de administracin derivados de contar con un servidor para cada dominio. Apache fue uno de los primeros servidores web en incluir esta caracterstica y ofrece varias posibilidades para las mquinas virtuales: Mquinas virtuales en funcin del nombre Mquinas virtuales en funcin de la direccin IP Ejecucin de varias instancias de Apache en un ordenador.

SUSE LINUX Manual de Administracin

429

15.10.1.

Mquinas virtuales en funcin del nombre

En el caso de las mquinas virtuales en funcin del nombre, una sola instancia de Apache se encarga de manejar varios dominios. Aqu no es necesario congurar varias direcciones IP para un ordenador. Esta es la alternativa ms sencilla y recomendable. Consulte la documentacin de Apache para ver los posibles inconvenientes de la utilizacin de mquinas virtuales en funcin del nombre. La conguracin se realiza directamente en el archivo de conguracin /etc/apache2/httpd.conf. Para activar las mquinas virtuales en funcin del nombre, es necesario introducir una directiva apropiada: NameVirtualHost *. Aqu basta con introducir * para que Apache acepte todas las solicitudes entrantes. A continuacin debe congurarse cada una de las mquinas:
<VirtualHost *> ServerName www.empresa1.com DocumentRoot /srv/www/htdocs/empresa1.com ServerAdmin webmaster@empresa1.com ErrorLog /var/log/httpd/www.empresa1.com-error_log CustomLog /var/log/httpd/www.empresa1.com-access_log common </VirtualHost> <VirtualHost *> ServerName www.empresa2.com DocumentRoot /srv/www/htdocs/empresa2.com ServerAdmin webmaster@empresa2.com ErrorLog /var/log/httpd/www.empresa2.com-error_log CustomLog /var/log/httpd/www.empresa2.com-access_log common </VirtualHost>

Nota: En este ejemplo y en los sucesivos, la ruta para los archivos de registro de Apache 2 /var/log/httpd a /var/log/apache2. Para el dominio alojado originalmente por el servidor (www.empresa1.com) debe crearse tambin una entrada VirtualHost. En este ejemplo el servidor aloja, adems del dominio original, un dominio adicional (www. empresa2.com). En las directivas VirtualHost se introduce * al igual que en NameVirtualHost. Apache determina la conexin entre la solicitud y la mquina virtual mediante el campo Host en la cabecera HTTP. La solicitud es reenviada a la mquina virtual cuyo ServerName coincida con el nombre introducido en este campo. En las directivas ErrorLog y CustomLog no es necesario que los archivos de registro contengan el nombre de dominio. Aqu es posible utilizar cualquier nombre.

430

15.10. Mquinas virtuales

Serveradmin representa la direccin de correo electrnico de un responsable con el que se puede contactar en caso de problemas. Si se producen errores, Apache incluye esta direccin en el mensaje de error que enva al cliente.

15
El servidor web Apache

15.10.2.

Mquinas virtuales en funcin de la direccin IP

Con este mtodo es necesario congurar varias direcciones IP en un ordenador. Una instancia de Apache maneja varios dominios, cada uno de los cuales tiene asignada una direccin IP. El siguiente ejemplo ilustra cmo se congura Apache de forma que, adems de su direccin IP original 192.168.1.10, aloje dos dominios adicionales en otras dos direcciones IP (192.168.1.20 y 192.168.1.21). Este ejemplo concreto slo funciona en una intranet, ya que las IPs del rango 192.168.0.0 a 192.168.255.0 no son reenviadas (enrutadas) en Internet. Conguracin de alias para direcciones IP Con el n de que Apache pueda alojar varias direcciones IPs, el ordenador en el que se ejecuta debe aceptar solicitudes para mltiples IPs, lo que se conoce como alojamiento de mltiples direcciones IP o multi-IP hosting. Para ello es necesario en primer lugar activar el IP aliasing en el kernel. En SUSE LINUX ya est activado de manera estndar. Una vez que el kernel est congurado para IP aliasing, ejecute como root los comandos ifconfig y route para congurar direcciones IP adicionales en el ordenador. En el ejemplo que se presenta a continuacin, el ordenador ya tiene una direccin IP propia, 192.168.1.10, que ha sido asignada al dispositivo de red eth0. El comando ifconfig le permite determinar la direccin IP utilizada por el ordenador. Puede aadir direcciones IP adicionales por ejemplo con
/sbin/ifconfig eth0:0 192.168.1.20 /sbin/ifconfig eth0:1 192.168.1.21

Todas estas direcciones IP estn asignadas al mismo dispositivo fsico de red (eth0).

SUSE LINUX Manual de Administracin

431

Mquinas virtuales con IPs Una vez que se ha congurado el IP aliasing en el sistema o el ordenador dispone de varias tarjetas de red, la conguracin de Apache puede comenzar. En primer lugar se introduce un bloque VirtualHost para cada servidor virtual:
<VirtualHost 192.168.1.20> ServerName www.empresa2.com DocumentRoot /srv/www/htdocs/empresa2.com ServerAdmin webmaster@empresa2.com ErrorLog /var/log/httpd/www.empresa2.com-error_log CustomLog /var/log/httpd/www.empresa2.com-access_log common </VirtualHost> <VirtualHost 192.168.1.21> ServerName www.empresa3.com DocumentRoot /srv/www/htdocs/empresa3.com ServerAdmin webmaster@empresa3.com ErrorLog /var/log/httpd/www.empresa3.com-error_log CustomLog /var/log/httpd/www.empresa3.com-access_log common </VirtualHost>

Aqu se introducen directivas VirtualHost slo para los dominios adicionales, ya que el dominio original (www.empresa1.com) se congura mediante las opciones correspondientes (DocumentRoot, etc.) fuera de los bloques VirtualHost.

15.10.3.

Mltiples instancias de Apache

En los dos mtodos anteriores para las mquinas virtuales, los administradores de un dominio pueden leer los datos de los dems dominios. Para separar los dominios entre s, es posible iniciar varias instancias de Apache, cada una de las cuales utiliza sus propias opciones de conguracin para user, group, etc. en el archivo de conguracin. La directiva Listen indica en el archivo de conguracin qu instancia de Apache est a cargo de qu direccin IP. Continuando con el ejemplo anterior, la directiva para la primera instancia de Apache es:
Listen 192.168.1.10:80

y para las otras dos instancias:


Listen 192.168.1.20:80 Listen 192.168.1.21:80

432

15.10. Mquinas virtuales

15.11.
15.11.1.

Seguridad
Riesgo mnimo

15
El servidor web Apache

Si no se requiere ningn servidor web en el ordenador, se recomienda desactivar Apache en el editor de niveles de ejecucin o no instalarlo siquiera (o bien desinstalarlo). Un servidor menos en el ordenador es un punto vulnerable menos para posibles ataques. Esto tiene validez sobre todo para los ordenadores con funcin de cortafuegos, en los que si es posible nunca debera ejecutarse ningn servidor.

15.11.2.

Permisos de acceso

DocumentRoot pertenece a root Por defecto, los directorios DocumentRoot (/srv/www/htdocs/) y CGI pertenecen al usuario root y se recomienda no modicar esta conguracin. Si todos tuviesen permiso de escritura sobre estos directorios, cualquier usuario sera capaz de guardar archivos en ellos. Estos archivos son ejecutados por Apache como usuario wwwrun. Apache no debera tener permisos de escritura sobre los datos y scripts que entrega, por lo que estos no han de pertenecer al usuario wwwrun, sino por ejemplo a root. Si se desea que los usuarios puedan guardar archivos en el directorio de documentos de Apache, se recomienda crear un subdirectorio en el que cualquiera pueda escribir, por ejemplo /srv/www/htdocs/usuarios, en lugar de conceder permisos de escritura para el directorio de Apache. Publicar documentos del directorio local de usuario Otra posibilidad para que los usuarios puedan publicar en la red sus propios archivos consiste en introducir en el archivo de conguracin un directorio local de un usuario en el que este guarde sus archivos para la red (por ejemplo ~/public_html). Esta posibilidad, activada por defecto en SUSE LINUX, se explica con ms detalle en el apartado 15.7.2 en la pgina 422. Puede acceder a estas pginas web introduciendo el usuario en la URL: la URL contiene la expresin nombre-usuario como abreviatura del directorio correspondiente en el directorio local del usuario. Por ejemplo, al introducir en un navegador la URL http://localhost/~tux se muestran los archivos del directorio public_html situado en el directorio local del tux.

SUSE LINUX Manual de Administracin

433

15.11.3.

Siempre al da

Quien administre un servidor web (sobre todo si dicho servidor est disponible pblicamente), debe estar siempre informado y al da en lo que se reere a fallos y posibles puntos vulnerables derivados de estos. En el apartado 15.13.3 en la pgina siguiente se incluyen algunas fuentes de informacin sobre exploits y correcciones.

15.12.

Identicacin y resolucin de problemas

Qu hacer cuando se presenta un problema? Por ejemplo: Apache muestra una pgina incorrectamente o no la muestra en absoluto. En primer lugar consultar el registro de errores: puede que el problema pueda deducirse de un mensaje de error all presente. El archivo de registro de errores se encuentra en /var/log/httpd/error_ log o /var/log/apache2/error_log. Se recomienda mostrar los archivos de registro en una consola mientras se accede al servidor para ver cmo reacciona este en cada momento. Con este n, ejecute en una consola el siguiente comando como root: tail -f /var/log/apache2/*_log. Consulte la base de datos de fallos en la pgina web http://bugs. apache.org/. Examine las listas de correo y los foros de noticias. La lista de correo para los usuarios de Apache est disponible en http://httpd. apache.org/userslist.html. En cuanto a los foros de noticias, se recomienda comp.infosystems.www.servers.unix y foros relacionados. Si no ha encontrado la informacin que buscaba en las fuentes anteriormente mencionadas y todava est seguro de haber encontrado un fallo en Apache, puede informar de ello en http://www.suse. com/feedback/.

434

15.12. Identicacin y resolucin de problemas

15.13.
15.13.1.

Documentacin adicional
Apache

15
El servidor web Apache

Apache dispone de abundante documentacin que puede instalar como se describe en el apartado 15.6 en la pgina 415. Una vez instalada, la documentacin est disponible en http://localhost/manual. La documentacin ms actual se encuentra siempre en la pgina web de Apache (en ingls): http://httpd.apache.org

15.13.2.

CGI

Puede encontrar informacin adicional (en ingls) sobre CGI en: http://apache.perl.org/ http://perl.apache.org/ http://www.modperl.com/ http://www.modperlcookbook.org/ http://www.fastcgi.com/ http://www.boutell.com/cgic/

15.13.3.

Seguridad

La pgina http://www.suse.com/security/ contiene los parches actuales para los paquetes de SUSE. Se recomienda visitar esta URL peridicamente o bien suscribirse a la lista de correo de anuncios de seguridad de SUSE. El equipo de Apache es partidario de una poltica de informacin transparente en lo que se reere a los fallos en Apache. La siguiente pgina contiene informacin actual sobre fallos encontrados y posibles puntos dbiles derivados de los mismos: http://httpd.apache.org/security_ report.html. Si cree haber encontrado un problema de seguridad nuevo (por favor, compruebe siempre en las pginas mencionadas si se trata realmente de un problema nuevo), puede informar de l por correo electrnico a security@suse.com Puede obtener ms informacin (en ingls) sobre problemas de seguridad en Apache y en otros programas de Internet en:

SUSE LINUX Manual de Administracin

435

http://www.cert.org/ http://www.vnunet.com/ http://www.securityfocus.com/

15.13.4. Fuentes adicionales


En caso de problemas le recomendamos consultar la base de datos de soporte de SUSE http://sdb.suse.com/. La siguiente URL contiene un peridico en lnea sobre Apache http:// www.apacheweek.com/. La historia de Apache est explicada en http://httpd.apache.org/ ABOUT_APACHE.html. Esta pgina contiene datos muy interesantes, como por ejemplo por qu el servidor se llama Apache.

436

15.13. Documentacin adicional

16
Sincronizacin de archivos

Sincronizacin de archivos

Hoy en da son muchas las personas que utilizan varios ordenadores: un ordenador en casa, otro en la ocina e incluso puede que un porttil o un PDA para los viajes. Algunos archivos se necesitan en todos los ordenadores. Lo ideal sera poder trabajar con todos ellos y especialmente modicar los archivos, pero que todos los ordenadores contuvieran la versin actual de los datos.

16.1. Software para sincronizar datos . . . . 16.2. Criterios para la eleccin de programa 16.3. Introduccin a InterMezzo . . . . . . . 16.4. Introduccin a unison . . . . . . . . . 16.5. Introduccin a CVS . . . . . . . . . . . 16.6. Introduccin a mailsync . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

438 440 445 447 449 453

16.1.

Software para sincronizar datos

La sincronizacin de datos no supone ningn problema en ordenadores que estn conectados entre s permanentemente a travs de una red rpida. Basta con elegir un sistema de archivos de red como NFS y guardar los archivos en un servidor. De esta forma, todos los ordenadores accedern a los mismos datos a travs de la red. Este planteamiento no es posible si la conexin en red es mala o parcialmente inexistente. Quien viaje con un ordenador porttil deber tener copias de todos los archivos que necesite en el disco duro local. No obstante, cuando los archivos son editados no tarda en surgir el problema de la sincronizacin. Al modicar un archivo en un ordenador debe intentarse actualizar la copia de ese archivo en los dems ordenadores. Esto puede realizarse manualmente con ayuda de scp o rsync en caso de que se trate de pocas copias. Pero con un nmero elevado de archivos resulta un proceso muy laborioso que requiere mucha atencin por parte del usuario para no cometer fallos como, por ejemplo, sobreescribir un nuevo archivo con uno antiguo.

Aviso
Peligro de prdida de datos En cualquier caso hay que familiarizarse con el programa utilizado y probar su funcionamiento antes de administrar los propios datos a travs de un sistema de sincronizacin. En caso de archivos importantes resulta indispensable hacer antes una copia de seguridad.

Aviso
Para evitar el procedimiento largo y propenso a fallos de la sincronizacin manual de datos, existe software que, basndose en distintos planteamientos, se encarga de automatizar este proceso. El soporte de instalacin de SuSE NO cubre los programas descritos en este captulo. El propsito de las breves descripciones que aparecen a continuacin es simplemente dar al usuario una ligera idea sobre el funcionamiento de estos programas y cmo pueden ser utilizados. En caso de querer aplicar estos programas, le recomendamos leer atentamente la documentacin de los mismos.

438

16.1. Software para sincronizar datos

16.1.1. InterMezzo
La idea de InterMezzo consiste en construir un sistema de archivos que, como NFS intercambie archivos a travs de la red, pero que al mismo tiempo guarde copias locales en cada ordenador para que los archivos estn disponibles an cuando no exista la conexin de red. Las copias locales pueden editarse y los cambios se almacenan en un archivo especial de registro. Cuando la conexin se restablece, los cambios se pasan automticamente a los dems ordenadores y los archivos son sincronizados. Si el paquete est instalado, puede encontrar ms informacin sobre el programa intersync en /usr/share/doc/packages/InterMezzo/ InterMezzo-HOWTO.html.

16
Sincronizacin de archivos

16.1.2. unison
En el caso de unison no se trata de un sistema de archivos, sino que los archivos se guardan y editan normalmente de forma local. El programa unison puede ejecutarse manualmente para sincronizar archivos. Durante la primera sincronizacin, se crea en cada una de las dos mquinas participantes una base de datos en la que se recogen la suma de control, marca de tiempo y permisos de los archivos seleccionados. La prxima vez que se ejecute, unison reconoce qu archivos han sido modicados y sugiere la transferencia de datos de uno u otro ordenador. En el mejor de los casos es posible aceptar todas las sugerencias.

16.1.3. CVS
CVS se utiliza sobre todo para administrar versiones de textos fuente de programas y ofrece la posibilidad de guardar copias de archivos en distintos ordenadores, por lo que tambin resulta adecuado para la sincronizacin. En el caso de CVS existe una base de datos central o repositorio (repository) en el servidor que no slo guarda los archivos sino tambin los cambios realizados en ellos. Las modicaciones efectuadas localmente pueden enviarse al repositorio (commit) y ser recogidos por otros ordenadores (update). Ambos procesos deben ser iniciados por el usuario. CVS tolera muchos fallos en lo que se reere a cambios en varios ordenadores. As, los cambios son fusionados y slo se produce un conicto si se han realizado cambios en la misma lnea. En caso de conicto, los datos en el repositorio mantienen su coherencia y el conicto slo es visible y puede resolverse en el cliente.

SUSE LINUX Manual de Administracin

439

16.1.4.

mailsync

A diferencia de las herramientas de sincronizacin mencionadas hasta ahora, Mailsync se ocupa nicamente de sincronizar mensajes entre varios buzones de correo. Puede tratarse de archivos de buzones locales o de buzones ubicados en un servidor IMAP. Dependiendo del message ID incluido en la cabecera de cada mensaje, se decide individualmente si este ha de borrarse o ser sincronizado. Se permite la sincronizacin tanto entre buzones sueltos como entre jerarquas de buzones.

16.2.
16.2.1.

Criterios para la eleccin de programa


Cliente-servidor o igualdad de derechos

Existen dos modelos diferentes para la distribucin de datos. Por un lado, es posible utilizar un servidor central con el que el resto de ordenadores (clientes) compare sus archivos. Para ello, todos los clientes han de poder acceder al servidor, por lo menos de vez en cuando, a travs de una red. Este modelo es el utilizado por CVS e Intermezzo. La alternativa consiste en que todos los ordenadores tengan los mismos derechos y comparen sus datos entre s. Este es el planteamiento empleado por unison.

16.2.2.

Portabilidad

InterMezzo es una solucin que hoy en da slo funciona en sistemas Linux. Anteriormente estuvo incluso limitada a arquitecturas de 32 bits con el bit menos signicativo primero (ix86). Esta restriccin ya no existe gracias a la sustitucin del programa lento basado en perl por InterSync. No obstante, se recomienda precaucin a la hora de sincronizar entre distintas arquitecturas, ya que esta funcin no ha sido probada en profundidad. CVS y unison estn disponibles para muchos otros sistemas operativos, como es el caso de otros Unix y Windows.

440

16.2. Criterios para la eleccin de programa

16.2.3. Interactivo o automtico


Con InterMezzo, la sincronizacin de datos se ejecuta normalmente de manera automtica como proceso de fondo tan pronto como la conexin al servidor se establece. Slo es necesario intervenir en caso de que se produzca algn conicto. La sincronizacin de datos en CVS y unison es iniciada por el usuario. Esto permite un mayor control sobre los archivos que se van a sincronizar y una resolucin ms fcil de posibles conictos. Por otra parte, puede suceder que la sincronizacin se lleve a cabo con demasiada poca frecuencia, lo que aumenta el riesgo de conictos.

16
Sincronizacin de archivos

16.2.4. Velocidad
Debido a su carcter interactivo, unison y CVS parecen ms lentos que intermezzo, que funciona en segundo plano. En conjunto, CVS es algo ms rpido que unison.

16.2.5. Conictos: cundo aparecen y cmo resolverlos


En CVS aparecen conictos rara vez, incluso aunque varias personas trabajen en un gran proyecto de programa. Los distintos documentos se fusionan lnea a lnea y, en caso de que ocurra un conicto, slo afectar a un cliente. Por lo general, los conictos en CVS se resuelven fcilmente. Los conictos en unison se notican al usuario y el archivo se puede entonces excluir de la sincronizacin. Por otra parte, los cambios no se fusionan tan fcilmente como en CVS. Debido al carcter no interactivo de InterMezzo, los conictos no pueden resolverse fcilmente de forma interactiva. Cuando aparece algn conicto, InterSync se interrumpe con un mensaje de error. En este caso, el administrador del sistema ha de intervenir y si es necesario transferir archivos manualmente (rsync/scp) para obtener de nuevo un estado coherente.

16.2.6.

Seleccionar y aadir archivos

InterMezzo sincroniza sistemas completos de archivos. Los nuevos archivos aadidos aparecen automticamente en los dems ordenadores. En la opcin de conguracin ms sencilla de unison se sincroniza un rbol completo de directorios. Los nuevos archivos presentes en el rbol se incorporan automticamente a la sincronizacin.

SUSE LINUX Manual de Administracin

441

En el caso de CVS es necesario aadir explcitamente nuevos directorios y archivos por medio de cvs add. La consecuencia es un mayor control sobre los archivos que van a formar parte de la sincronizacin. Por otra parte, los nuevos archivos tienden a olvidarse; sobre todo si debido al nmero de archivos se ignora el signo ? que aparece en la salida de cvs update.

16.2.7.

Historia

Como funcin adicional, CVS permite reconstruir las versiones anteriores de los archivos. Cada vez que se realiza un cambio es posible aadir una pequea nota y posteriormente reproducir el desarrollo del archivo basndose en el contenido y en los comentarios. Esto resulta de gran utilidad en el caso de tesis o textos de programas.

16.2.8.

Cantidad de datos y requisitos de espacio

En cada uno de los ordenadores participantes se necesita espacio suciente en el disco duro para todos los datos distribuidos. En el caso de CVS se necesita adems espacio adicional para la base de datos (repository) en el servidor. All tambin se guarda la historia de los archivos, por lo que los requisitos de espacio son mucho mayores que el espacio necesario en s. En el caso de archivos en formato texto, los requisitos de espacio se mantiene dentro de lmites razonables, ya que slo hay que volver a guardar las lneas que han sido modicadas. Pero en el caso de archivos binarios, el espacio requerido aumenta en el orden del tamao del archivo con cada cambio que se produce.

16.2.9.

GUI

unison est equipado con una interfaz grca que muestra la sincronizacin sugerida por unison. Se puede aceptar esta propuesta o bien excluir archivos sueltos del proceso de sincronizacin. Adems es posible conrmar cada uno de los procesos de forma interactiva en modo texto. Los usuarios ms experimentados suelen utilizar CVS desde la lnea de comandos. No obstante, tambin existen interfaces grcas para Linux (cervisia, ...) y Windows (wincvs). Numerosas herramientas de desarrollo (ej. kdevelop) y editores de texto (ej. emacs) tienen soporte para CVS. A menudo, el uso de estas frontales simplica en gran medida la resolucin de conictos.

442

16.2. Criterios para la eleccin de programa

El programa InterMezzo no es tan confortable. Por otra parte, normalmente no requiere ninguna interaccin y, una vez congurado, slo hay que dejarle ejecutarse en segundo plano.

16
Sincronizacin de archivos

16.2.10. Requisitos que debe cumplir el usuario


La conguracin de InterMezzo es relativamente difcil y debe ser realizada por un administrador de sistemas con experiencia en Linux. Para congurar el programa son necesarios permisos root. unison es muy fcil de usar y resulta adecuado tambin para usuarios principiantes. El manejo de CVS es algo ms complejo. Para utilizarlo es necesario haber comprendido la interaccin entre el repositorio y los datos locales. Siempre hay que fusionar primero los cambios en los datos locales con el repositorio. Para ello se utiliza el comando cvs update. Una vez hecho esto, los datos deben volver a enviarse al repositorio con cvs commit. Siempre que se respeten estos procesos, el uso de CVS es muy sencillo incluso para principiantes.

16.2.11.

Seguridad frente a agresiones externas

En un escenario ideal, la seguridad de la transferencia de datos debera estar garantizada en caso de accesos no autorizados o incluso de la modicacin de los datos. Tanto unison como CVS pueden utilizarse va ssh (Secure Shell) y estn por lo tanto bien protegidos frente a posibles agresiones como las mencionadas arriba. Se recomienda no utilizar CVS o unison a travs de rsh (Remote Shell) y evitar tambin el acceso a travs del mecanismo CVS pserver en redes poco protegidas. En el caso de InterMezzo, la sincronizacin de datos se lleva a cabo a travs de http, un protocolo que puede ser espiado o falsicado fcilmente. Para incrementar la seguridad puede utilizarse SSL. No obstante, esta funcin no puede utilizarse todava.

16.2.12.

Seguridad frente a prdida de datos

Numerosos desarrolladores utilizan desde hace mucho tiempo el excepcionalmente estable CVS para administrar sus proyectos de programacin.

SUSE LINUX Manual de Administracin

443

Adems, el almacenamiento de la historia de los cambios hace que en CVS se est protegido incluso frente a determinados fallos del usuario (por ejemplo la eliminacin accidental de un archivo). unison es todava relativamente nuevo, pero demuestra ya un alto grado de estabilidad. Es ms sensible frente a fallos del usuario. Una vez conrmado un proceso de eliminacin de un archivo durante la sincronizacin, no hay vuelta atrs. Actualmente InterMezzo puede todava calicarse como experimental. Debido a que los archivos estn almacenados en un sistema de archivos subyacente, la probabilidad de perder los datos es bastante pequea. No obstante, el proceso de sincronizacin en s puede salir mal y producir como resultado archivos defectuosos. La tolerancia a fallos del usuario es bastante reducida: la eliminacin local de un archivo es reproducida por todos los ordenadores sincronizados. Por este motivo, se recomienda el uso de copias de seguridad. Cuadro 16.1: Caractersticas de las herramientas de sincronizacin de datos -- = muy malo, - = malo o no disponible, o = regular, + = bueno, ++ = muy bueno, x = disponible InterMezzo CS/Igualdad Portabilidad Interaccin Velocidad Conictos Selecc.ch. Historia Esp. disco GUI Dicultad Agresiones Prdida datos C-S Linux(i386) ++ sist.ch. o o unison igualdad Lin,Un*x,Win x o directorio o + + +(ssh) + CVS C-S Lin,Un*x,Win x o ++ seleccin x -o o +(ssh) ++ mailsync igualdad Lin,Un*x + + buzn + o +(SSL) +

444

16.2. Criterios para la eleccin de programa

16.3.

Introduccin a InterMezzo

16
Sincronizacin de archivos

16.3.1. Arquitectura
InterMezzo dispone de su propio tipo de sistema de archivos. Los archivos se guardan localmente en el disco duro de cada ordenador. Para ello se utiliza uno de los sistemas de archivos Linux disponibles, preferiblemente ext3 u otro de los sistemas de archivos transaccionales. Despus de preparar la particin, se monta el sistema de archivos de tipo intermezzo y el kernel carga el mdulo con soporte para InterMezzo. A partir de ese momento, todos los cambios que se realicen en este sistema de archivos sern registrados en un archivo log. Tras completar estas tareas preliminares, puede iniciarse InterSync. Este a su vez inicia un servidor web, como por ejemplo apache, al que el resto de ordenadores puede acceder para intercambiar datos. Al congurar un cliente hay que informar a InterSync del nombre del servidor para que pueda establecer conexin con l. Para detectar el sistema de archivos se transmite una denominacin arbitraria del sistema de archivos, el llamado leset. InterSync es una versin evolucionada del antiguo sistema InterMezzo, que utilizaba un daemon llamado lento escrito en perl para la sincronizacin de datos. En la documentacin de InterSync aparecen a veces referencias a este antiguo sistema que ha sido sustituido completamente por InterSync. Desgraciadamente, el mdulo incluido en el kernel estndar est an al nivel de lento y no funciona con InterSync. El kernel SUSE contiene un nuevo mdulo. En el caso de kernels de construccin propia, el mdulo del kernel puede construirse con ayuda del paquete km_intersync. Para la conguracin de InterMezzo se requieren permisos root. Como se vi en la comparacin, la conguracin de InterMezzo es muy compleja y debe ser llevada a cabo por personas con un nivel de conocimientos equivalente al de un administrador de sistemas. La conguracin que se describe a continuacin no prev ningn mecanismo de proteccin, por lo que es posible que alguien desde la red pueda espiar y modicar sin grandes dicultades los datos sincronizados a travs de InterMezzo. Por este motivo, la instalacin y conguracin deberan tener lugar slo en un entorno de conanza como por ejemplo una red por cable privada detrs de un cortafuegos.

SUSE LINUX Manual de Administracin

445

16.3.2.

Conguracin de un servidor InterMezzo

El papel de servidor se le asigna a un ordenador que preferentemente tenga una buena conexin a la red. A travs de este servidor discurrir todo el trco para la sincronizacin de datos. Para guardar los datos es necesario congurar un sistema de archivos propio. Si ya no existe ninguna particin disponible y el usuario no utiliza LVM, la opcin ms fcil es crear el archivo en un dispositivo bucle (loop device). A travs de este procedimiento, un archivo del sistema de archivos local ser considerado como sistema de archivos propio. En el siguiente ejemplo se describe la conguracin de un sistema de archivos InterMezzo/ext3 en el directorio root con un tamao de 256MB. Al leset se le asignar la denominacin fset0.
dd if=/dev/zero of=/izo0 bs=1024 count=262144 mkizofs -r fset0 /izo0 # La advertencia puede ignorarse

Este sistema de archivos ser montado en /var/cache/intermezzo


mount -t intermezzo -ofileset=fset0,loop /izo /var/cache/intermezzo

Para que el proceso se lleve a cabo automticamente durante el proceso de arranque, debe aadirse una entrada en el archivo /etc/fstab. Ahora hay que congurar InterSync. Para ello es necesario adaptar el archivo /etc/sysconfig/intersync, para lo que se aaden las entradas
INTERSYNC_CLIENT_OPTS="--fset=fset0" INTERSYNC_CACHE=/var/cache/intermezzo INTERSYNC_PROXY=""

A continuacin intersync puede iniciarse por medio del comando /etc/init.d/intersync start. Para hacer que este proceso se realice automticamente al iniciar el sistema, basta con introducir el servicio en la lista de los servicios que deben ser iniciados: insserv intersync.

16.3.3.

Conguracin de clientes InterMezzo

La conguracin de los clientes (un servidor puede servir a numerosos clientes) apenas se distingue de la conguracin del servidor. La nica diferencia es que en la conguracin de /etc/sysconfig/intersync es necesario introducir el nombre del servidor en la variable INTERSYNC_CLIENT_OPTS:

446

16.3. Introduccin a InterMezzo

INTERSYNC_CLIENT_OPTS="--fset=fset0 --server=sol.example.com"

16
Sincronizacin de archivos

sol.example.com ha de sustituirse por el nombre de red del servidor. Adems se recomienda crear un sistema de archivos de igual tamao en todos los ordenadores.

16.3.4. Resolucin de problemas


En cuanto un cliente ha sido iniciado, los cambios realizados en archivos pertenecientes al directorio /var/cache/intermezzo/ deberan ser visibles tambin en el servidor y en los dems clientes. Si este no es el caso, puede deberse a que no se ha podido establecer conexin con el servidor o a un fallo de conguracin como que la denominacin del leset no coincide siempre. Para realizar el diagnstico correspondiente se recomienda examinar los mensajes en el registro del sistema /var/log/messages. El servidor web iniciado lleva el registro de sus datos en /var/intermezzoX/. El archivo log del kernel, el cual registra los cambios en el sistema de archivos se encuentra en /var/cache/intermezzo/.intermezzo/ fset0/kml y puede volcarse con kmlprint. En caso de conictos, uno de los procesos de InterSync suele bloquearse. Si la sincronizacin de datos se ha detenido, se aconseja analizar los mensajes correspondientes en los archivos de registro y comprobar por medio de /etc/init.d/intersync status si el servicio de sincronizacin todava est en funcionamiento. Tambin puede consultarse la documentacin del paquete en el directorio /usr/share/doc/packages/intersync o en la pgina web de Intermezzo: http://www.inter-mezzo.org/

16.4.

Introduccin a unison

16.4.1. Campos de aplicacin


Unison resulta muy adecuado para la sincronizacin y transferencia de rboles de directorios completos. La sincronizacin se lleva a cabo de manera bidireccional y puede controlarse a travs de un intuitivo frontal grco (tambin existe una versin para la consola). El proceso de sincronizacin puede automatizarse (es decir, sin necesidad de intervencin por parte del usuario) si se poseen los sucientes conocimientos.

SUSE LINUX Manual de Administracin

447

16.4.2.

Requisitos

Unison debe estar instalado tanto en el servidor como en el cliente. Por servidor se entiende aqu un segundo ordenador remoto (al contrario que en el caso de CVS, vase el apartado 16.1.3 en la pgina 439). A continuacin nos limitamos al uso de unison con ssh, por lo que en el cliente debe haber instalado un cliente ssh y en el servidor un servidor ssh.

16.4.3.

Manejo

El principio bsico de unison consiste en la unin de dos directorios (llamados roots). Esta unin no debe entenderse en sentido literal, no se trata por tanto de ninguna conexin. Asumiendo que tengamos la siguiente estructura de directorios:

Client: Server:

/home/tux/dir1 /home/geeko/dir2

Estos dos directorios han de ser sincronizados. En el cliente se conoce al usuario como tux, en el servidor como geeko. En primer lugar se comprueba si la comunicacin entre cliente y servidor funciona:
unison -testserver /home/tux/dir1 ssh://geeko@server//homes/geeko/dir2

Los problemas ms frecuentes que pueden aparecer a estas alturas son: las versiones de unison utilizadas en cliente y servidor no son compatibles el servidor no permite una conexin SSH las rutas introducidas no existen Si todo funciona correctamente, se omite la opcin -testserver. Durante la primera sincronizacin, unison todava no conoce el comportamiento de ambos directorios, por lo que sugiere el sentido de la transmisin de los archivos y directorios individuales.

448

16.4. Introduccin a unison

La echa en la columna Action dene el sentido de la transmisin. El signo ? signica que unison no puede hacer ninguna sugerencia sobre el sentido de transmisin porque ambas versiones son nuevas o porque entre tanto han sido modicadas. Las teclas de cursor permiten denir el sentido de transmisin para cada entrada. Si los sentidos de transmisin para todas las entradas mostradas son correctos, pulse Go. El comportamiento de unison (por ejemplo, si la sincronizacin debe automatizarse en casos muy claros) puede controlarse mediante parmetros de la lnea de comandos al iniciar el programa. La lista completa de todos los parmetros posibles puede consultarse con unison -help. Para cada unin se lleva un registro en el directorio de usuario (~/ .unison). En este directorio tambin pueden guardarse conjuntos de conguracin como ~/.unison/example.prefs: Ejemplo 16.1: El archivo /.unison/example.prefs
root=/home/foobar/dir1 root=ssh://fbar@server//homes/fbar/dir2 batch=true

16
Sincronizacin de archivos

Para iniciar la sincronizacin, basta con introducir este archivo como argumento en la lnea de comandos: unison example.prefs

16.4.4.

Informacin adicional

La documentacin ocial de unison es muy completa, por lo que en estas lneas slo se incluye una breve descripcin del programa. Puede encontrar un manual ntegro en http://www.cis.upenn.edu/~bcpierce/ unison/ o en el paquete SUSE unison.

16.5.
16.5.1.

Introduccin a CVS
Campos de aplicacin

El uso de CVS se recomienda para tareas de sincronizacin en el caso de archivos individuales editados muy a menudo y cuyo formato es ASCII, texto fuente de programas o similar.

SUSE LINUX Manual de Administracin

449

Si bien es posible utilizar CVS para sincronizar datos en otros formatos (como por ejemplo JPEG), esto se traduce rpidamente en grandes cantidades de datos, ya que todas las versiones de un archivo se almacenan permanentemente en el servidor CVS. Adems, en estos casos no se explota ni remotamente todo el potencial de CVS. El uso de CVS para sincronizar datos slo es posible cuando todas las estaciones de trabajo tiene acceso al mismo servidor. A diferencia de CVS, el siguiente escenario tambin sera posible en el caso de unison: A>B>C>S A, B, C son ordenadores que pueden editar los datos en cuestin.

16.5.2.

Conguracin del servidor CVS

El servidor es el lugar donde estn situados todos los archivos vlidos, es decir, especialmente la versin actual de cada archivo. Como servidor se puede utilizar una estacin de trabajo de instalacin ja. Se recomienda realizar peridicamente copias de seguridad de los datos del servidor CVS. Una forma adecuada de congurar el servidor CVS consiste, por ejemplo, en autorizar a los usuarios el acceso va SSH al mismo. De este modo, un ordenador de instalacin ja pueda actuar como servidor. Si el usuario es conocido en el servidor como tux y el software CVS est instalado tanto en el servidor como en el cliente (ej. un notebook), en la parte del cliente hay que denir adems las siguientes variables de entorno:

CVS_RSH=ssh CVS_ROOT=tux@server:/serverdir

El comando cvs init permite iniciar el servidor CVS desde la parte del cliente. Esta accin slo debe realizarse una vez. Finalmente hay que denir un nombre para la sincronizacin. Para ello, en un cliente se cambia al directorio que contiene exclusivamente datos administrados por CVS (tambin puede estar vaco). El nombre del directorio carece de importancia y en este ejemplo se llamar synchome. Para asignar a la sincronizacin el nombre de synchome, se ejecuta el comando:
cvs import synchome tux tux_0

450

16.5. Introduccin a CVS

Nota: Muchos comandos de CVS requieren un comentario. Para ello, CVS inicia un editor (aqul que ha sido denido en la variable de entorno $EDITOR o en su defecto vi). El inicio del editor se puede evitar introduciendo directamente el comentario en la lnea de comandos, como por ejemplo en
cvs import -m es una prueba synchome tux tux_0

16
Sincronizacin de archivos

16.5.3. Manejo de CVS


A partir de este momento, el repositorio de la sincronizacin puede extraerse desde cualquier ordenador:
cvs co synchome

Al ejecutar este comando se crea un nuevo subdirectorio synchome en el cliente. Si se han realizado modicaciones que quieren transmitirse al servidor, se cambia al directorio synchome (o a uno de sus subdirectorios) y se ejecuta el siguiente comando.
cvs commit

Este comando transmite por defecto todos los archivos (incluyendo subdirectorios) al servidor. Si slo se quieren transmitir determinados archivos o directorios, estos deben especicarse en el comando:
cvs commit archivo1 ... directorio1 ...

Antes de ser transmitidos al servidor, los nuevos archivos o directorios han de declararse parte integrante de CVS:
cvs add archivo1 ... directorio1 ...

y a continuacin enviarse al servidor


cvs commit archivo1 ... directorio1 ...

Si se cambia el puesto de trabajo, debe en primer lugar extraerse el repositorio de la sincronizacin (vase arriba) si no se ha hecho ya en el transcurso de sesiones anteriores en ese mismo lugar de trabajo. La sincronizacin con el servidor se inicia mediante el comando:

SUSE LINUX Manual de Administracin

451

cvs update

Tambin es posible actualizar archivos o directorios de manera selectiva:


cvs update archivo1 ... directorio1 ...

Si se quieren ver las diferencias entre las versiones almacenadas en el servidor, se utiliza el comando cvs diff o bien explcitamente con:
cvs diff archivo1 ... directorio1 ...

De manera alternativa, se puede utilizar el comando cvs -nq update para mostrar los archivos afectados por una actualizacin. En la actualizacin se utilizan entre otros, los siguientes smbolos indicadores de estado: U M P ? La versin local ha sido actualizada. Esto afecta a todos los archivos que proporciona el servidor y que no existen localmente. La versin local ha sido modicada pero no actualizada. La versin local ha sido parcheada. Es decir, CVS ha intentado fusionar la versin en el servidor CVS con la versin local. Este archivo no se encuentra en CVS.

El estado M sealiza los archivos que se encuentran actualmente en edicin. La copia local con los cambios puede enviarse al servidor por medio del comando cvs commit. Si por el contrario se preere prescindir de los cambios y adoptar la versin del servidor, puede eliminarse la copia local y llevar a cabo una actualizacin, con lo que el archivo que falta se obtiene del servidor. Si sucede que diversos usuarios realizan cambios en idntico pasaje de un mismo archivo, CVS no es capaz de decidir qu versin ha de ser utilizada. En este caso, la actualizacin se sealara con el smbolo C de conicto. Existen diversos procedimientos para resolver un conicto. Los pasajes afectados del archivo en cuestin se marcan como conictivos y pueden ser editados manualmente. Para los principiantes es ms recomendable el uso de un programa de ayuda como cervisia. Tambin existe la posibilidad de asignar un nuevo nombre al propio archivo y volver a realizar una actualizacin. En todo caso se aconseja enviar el archivo al servidor con el comando cvs commit tan pronto como termine de editarse para as reducir el riesgo de conictos.

452

16.5. Introduccin a CVS

16.5.4. Informacin adicional


Las posibilidades de CVS son muy extensas y aqu slo se han mencionado algunas de ellas. Puede encontrar ms informacin en las siguientes direcciones: http://www.cvshome.org/ y http://www.gnu.org/ manual/.

16
Sincronizacin de archivos

16.6.

Introduccin a mailsync

16.6.1. Campos de aplicacin


Bsicamente, mailsync resulta adecuado para realizar tres tareas: Sincronizacin de mensajes de correo electrnico archivados localmente con mensajes almacenados en un servidor. Migracin de buzones a otro formato o a otro servidor. Comprobacin de la integridad de un buzn o bsqueda de duplicados.

16.6.2.

Conguracin y manejo

Mailsync distingue entre el buzn en s (lo que se conoce como store) y el enlace entre dos buzones (que se denomina channel). Las deniciones de store y channel se encuentra en el archivo ~/.mailsync.A continuacin se mencionan algunos ejemplos de stores. Una denicin sencilla sera la siguiente:
store saved-messages { pat Mail/saved-messages prefix Mail/ }

En las lneas superiores, Mail/ es un subdirectorio del directorio personal de usuario que contiene carpetas con mensajes, entre ellas la carpeta saved-messages. Si se ejecuta mailsync con el comando mailsync -m saved-messages, se mostrar un ndice de todos los mensajes guardados en saved-messages. Otra posible denicin sera:

SUSE LINUX Manual de Administracin

453

store localdir { pat prefix }

Mail/* Mail/

En este caso, la ejecucin de mailsync -m localdir produce una lista de todos los mensajes almacenados en las carpetas de Mail/. Por su parte, el comando mailsync localdir produce una lista con los nombres de las carpetas. La denicin de un store en un servidor IMAP sera por ejemplo:
store imapinbox { server {mail.uni-hannover.de/user=gulliver} ref {mail.uni-hannover.de} pat INBOX }

El ejemplo superior slo se reere a la carpeta principal del servidor IMAP. Un store para una subcarpeta se denira as:
store imapdir { server {mail.uni-hannover.de/user=gulliver} ref {mail.uni-hannover.de} pat INBOX.* prefix INBOX. }

Si el servidor IMAP soporta conexiones cifradas, la denicin del servidor ha de cambiarse a


server {mail.uni-hannover.de/ssl/user=gulliver}

o, en caso de que el certicado del servidor no se conozca, a


server {mail.uni-hannover.de/ssl/novalidate-cert/user=gulliver}

Ahora es necesario conectar las carpetas de Mail/ con los subdirectorios del servidor IMAP:
channel carpeta localdir imapdir { msinfo .mailsync.info }

454

16.6. Introduccin a mailsync

Durante este proceso, Mailsync registra en el archivo denido con msinfo qu mensajes han sido ya sincronizados. La ejecucin de mailsync carpeta produce como resultado lo siguiente: El patrn del buzn (pat) se ampla en ambas partes. Se elimina el prejo (prex) de los nombres de carpetas creados con este procedimiento. Las carpetas se sincronizan por pares (o son creadas en caso de no estar todava disponibles). Por lo tanto, la carpeta INBOX.sent-mail del servidor IMAP es sincronizada con la carpeta local Mail/sent-mail (suponiendo las deniciones anteriores). La sincronizacin entre las carpetas individuales se producen del siguiente modo: Si un mensaje existe en ambas partes, no sucede nada. Si un mensaje falta en un lado y es nuevo (es decir, no est registrado en el archivo msinfo) ser transmitido a esa parte. Si un mensaje existe slo en una parte y es antiguo (ya est registrado en el archivo msinfo), ser eliminado (ya que al parecer ya haba existido en el otro lado y ha sido borrado). Para obtener a priori una idea de qu mensajes sern transmitidos y cules sern borrados al realizar la sincronizacin, se puede activar Mailsync con un channel y un store simultneamente: mailsync carpeta localdir. De esta forma se obtiene una lista de todos los mensajes que son nuevos localmente y otra lista de los mensajes que seran borrados en la parte del servidor IMAP si se realizase una sincronizacin. De manera inversa, con mailsync carpeta imapdir se obtiene una lista con todos los mensajes nuevos en la parte del servidor y otra con los mensajes que seran borrados localmente si se realizase la sincronizacin.

16
Sincronizacin de archivos

16.6.3.

Posibles problemas

En caso de prdida de datos, el procedimiento ms seguro consiste en borrar el archivo de registro msinfo correspondiente al canal. De esta forma, todos los mensajes que slo existan en una parte se considerarn como nuevos y sern transmitidos con la siguiente sincronizacin.

SUSE LINUX Manual de Administracin

455

En la sincronizacin se tienen en cuenta slo los mensajes que tienen un message ID. Los mensajes que carezcan de este sern ignorados, es decir, ni transmitidos ni eliminados. El message ID puede faltar debido a programas defectuosos en el proceso de entrega de correo o en el de creacin de mensajes. En algunos servidores IMAP, la carpeta principal se conoce con el nombre de INBOX y las subcarpetas con nombres arbitrarios (al contrario que en INBOX e INBOX.name). Esto provoca que en estos servidores IMAP no sea posible denir un patrn exclusivamente para las subcarpetas. Despus de la transmisin exitosa de mensajes a un servidor IMAP, los controladores para buzones (c-client) utilizados por Mailsync colocan una bandera de estado especial. Esta bandera no permite a algunos programas de correo como mutt detectar el mensaje como nuevo. Para evitar la colocacin de estas banderas de estado en mailsync, puede utilizar la opcin -n.

16.6.4.

Informacin adicional

Puede encontrar ms informacin en el README incluido en el paquete mailsync en /usr/share/doc/packages/mailsync/. En este contexto, el RFC 2076 "Common Internet Message Headers" tambin contiene informacin de gran inters.

456

16.6. Introduccin a mailsync

17
Redes heterogneas

Redes heterogneas

Linux no slo se puede comunicar con otros ordenadores Linux, sino tambin con mquinas Windows y Macintosh as como con redes Novell. Este captulo le muestra cmo puede congurar las correspondientes redes heterogneas y qu debe tener en cuenta.

17.1. Samba . . . . . . . . . . . . . . . . . . . . . . . . . . 458 17.2. Netatalk . . . . . . . . . . . . . . . . . . . . . . . . . 467 17.3. Emulacin de Novell NetWare con MARSNWE . . . 474

17.1.
17.1.1.

Samba
Introduccin a Samba

Con la ayuda del programa Samba, un ordenador Unix puede convertirse en un servidor de archivos y de impresin para mquinas DOS, Windows u OS/2. El equipo Samba se ocupa del proyecto Samba, el cual fue desarrollado originalmente por el australiano Andrew Tridgell. Samba es ya un producto muy completo y, por eso, aqu nos centramos exclusivamente en su funcionalidad. Sin embargo el software viene con una completa documentacin digital, compuesta por un lado de pginas de manual escriba apropos samba en la lnea de comandos y por otro de documentos y ejemplos que se instalaron en su sistema junto con Samba en /usr/share/doc/packages/samba. All, en el subdirectorio examples tambin encontrar un ejemplo de conguracin comentado smb.conf.SuSE. SUSE LINUX 9.1 incorpora la nueva versin del paquete samba, Samba 3. Entre las novedades de esta nueva versin cabe destacar: Soporte de Active Directory. Soporte Unicode considerablemente mejorado. Mecanismos internos de autenticacin completamente revisados. Mejor soporte del sistema de impresin de Windows 200x/XP. Conguracin como servidor miembro en dominios Active Directory. Adopcin de dominios NT4 para posibilitar la migracin de un dominio NT4 a un dominio Samba. Samba usa el protocolo SMB (Server Message Block) que se basa en los servicios de NetBIOS. Por la insistencia de la empresa IBM, Microsoft public el protocolo para que otras empresas pudieran desarrollar software para conectar a una red con dominios de Microsoft. Como Samba usa el protocolo SMB sobre TCP/IP, en todos los clientes se debe instalar el protocolo TCP/IP. Le recomendamos utilizar TCP/IP de forma exclusiva.

458

17.1. Samba

Atencin
Migracin a Samba 3 A la hora de migrar de la versin 2.x a la versin 3 de Samba, debe tener en cuenta algunas peculiaridades. La informacin correspondiente se ha recogido en un nuevo captulo de la coleccin de HOWTOs de Samba. Una vez instalado el paquete samba-doc, encontrar el HOWTO en /usr/share/doc/packages/samba/Samba-HOWTOCollection.pdf.

17
Redes heterogneas
Atencin

NetBIOS NetBIOS es una interfaz para programas de aplicacin (Application Program Interface, API ), que se dise para la comunicacin entre ordenadores. Entre otros, ofrece un servicio de nombres (name service) mediante el cual los ordenadores se identican entre s. No existe ningn control centralizado para otorgar o controlar los nombres. Cada ordenador puede reservar en la red tantos nombres como quiera, mientras no se haya adelantado otro. Se puede implementar la interfaz NetBIOS sobre diferentes arquitecturas de red. Hay una implementacin que se encuentra relativamente cerca al hardware de red llamada NetBEUI. NetBEUI es lo que se denomina frecuentemente como NetBIOS. Protocolos de red que se han implementado son NetBIOS son IPX (NetBIOS va TCP/IP) de Novell y TCP/IP. Los nombres de NetBIOS no tienen nada en comn con aquellos asignados en el archivo /etc/hosts o por DNS NetBIOS es un rea de nombres completamente propio. Esto es vlido tambin para los nombres que se asignan en la implementacin de NetBIOS mediante TCP/IP. Sin embargo, para simplicar la administracin se recomienda usar, como mnimo para los servidores, nombres de NetBIOS equivalentes a los del DNS. Para un servidor Samba esta es la opcin por defecto. Clientes Todos los sistemas operativos ordinarios como Mac OS X, Windows y OS/2 soportan el protocolo SMB. Los ordenadores deben tener TCP/IP instalado. Samba proporciona un cliente para las diversas versiones UNIX. En el caso de Linux, existe para SMB un mdulo del kernel para el sistema de archivos que permite integrar recursos SMB a nivel del sistema en Linux.

SUSE LINUX Manual de Administracin

459

Los servidores SMB ofrecen a los clientes espacio en disco en forma de recursos compartidos o shares. Un share es un directorio en el servidor con todos los subdirectorios. Este se exporta con un nombre determinado por medio del cual los clientes pueden acceder a l. El nombre del share es arbitrario, no hace falta que coincida con el nombre del directorio exportado. De la misma manera se asigna un nombre a una impresora exportada mediante el cual los clientes puedan acceder a ella.

17.1.2.

Instalacin y conguracin del servidor

Si quiere utilizar Samba como servidor, instale el paquete samba. Los servicios necesarios para Samba se inician manualmente con el comando rcnmb start && rcsmb start y se paran con rcsmb stop && rcnmb stop. El archivo de conguracin central de Samba es /etc/samba/smb.conf, Este puede dividirse en dos secciones lgicas: la seccin [global] y la [share]>. La primera seccin sirve para las conguraciones globales y la segunda determina las autorizaciones de acceso a archivos e impresoras. Este procedimiento permite que algunos detalles de las autorizaciones de acceso sean distintos o bien jarlos para todo el sistema en la seccin [global], lo que se recomienda por motivos de claridad. Seccin global en base a una conguracin de muestra Los siguientes parmetros de la seccin global residen en su red para que su servidor Samba en una red Windows puede ser accesible desde otros sistemas va SMB. workgroup = TUX-NET Con esta lnea, el servidor Samba asignar un grupo de trabajo. Para el funcionamiento, acomode TUX-NET al grupo de trabajo que tenga a su disposicin o congure su cliente con el valor que se encuentra aqu. En esta conguracin su servidor Samba aparece con su nombre DNS en el grupo de trabajo elegido, siempre que no se haya cedido el nombre. Si ya se ha adjudicado el nombre, puede establecer algo diferente del nombre DNS mediante netbios name = MINOMBRE. Los detalles de este parmetro estn disponible va man smb.conf. os level = 2 En funcin de este parmetro el servidor Samba decide si quiere convertirse en un LMB (Local Master Browser) para su grupo de trabajo.

460

17.1. Samba

Se ha escogido un valor bajo en el ejemplo a propsito para que la red de Windows existente no se vea perturbada por un servidor Samba mal congurado. Puede encontrar ms detalles sobre este tema tan importante en los archivos BROWSING.txt y BROWSINGConfig.txt que se encuentran en el subdirectorio textdocs/ de la documentacin del paquete. Si no hay en funcionamiento un servidor SMB por ejemplo Windows NT, 2000 Server y el servidor Samba debe ordenar los nombres de los sistemas disponibles en la red local, aumente os level a un valor ms alto (por ejemplo 65), para conseguir convertirse en LMB. Tenga mucho cuidado al modicar este valor, ya que puede perturbar el funcionamiento de una red Windows ya disponible. Hable con el administrador, pruebe los cambios primero en una red aislada o en momentos poco crticos. wins support y wins server Si quiere integrar el servidor Samba en una red Windows ya disponible en la que existe un servidor WINS, debe activar el parmetro wins server. En este parmetro ha de introducir la direccin IP de su servidor WINS. Si sus sistemas Windows funcionan en subredes separadas y han de ser visibles entre s, necesita un servidor WINS. Para convertir su servidor Samba en un servidor WINS necesita la opcin wins support = Yes. Compruebe que este parmetro se activa exclusivamente para un servidor Samba. Ambas opciones (wins server y wins support) no pueden estar nunca activas simultneamente en smb.conf. Recursos compartidos En los siguientes ejemplos se comparte por un lado la unidad de CD-ROM y por otro los directorios del usuario homes con los clientes SMB. [cdrom] Para impedir el acceso libre a un CD-ROM por error, se han desactivado en este ejemplo todas las lneas correspondientes a este recurso compartido por medio de un signo de comentario (aqu punto y coma). Si desea autorizar el acceso a la unidad de CD-ROM por Samba, borre los signos de punto y coma en la primera columna.

17
Redes heterogneas
461

SUSE LINUX Manual de Administracin

Ejemplo 17.1: Acceso al CD-ROM


;[cdrom] ; comment = Linux CD-ROM ; path = /media/cdrom ; locking = No

[cdrom] y [comment] La seccin [cdrom] es el nombre del recurso compartido visible para el cliente SMB. Con [comment] se puede dar una descripcin del recurso compartido al cliente. path = /media/cdrom Con path se exporta el directorio /media/cdrom. Debido a una conguracin intencionadamente restrictiva, este tipo de recursos compartidos slo estn disponibles para el usuario que se encuentre en el sistema. Si debe estar disponible para todo el mundo, aada otra lnea guest ok = yes. Debido a las posibilidades de lectura que ofrece, se debe tener mucho cuidado con esta conguracin y utilizarla solamente en ciertos recursos compartidos. Se ha de tener un cuidado especial en la seccin [global]. [homes] El recurso compartido [home] tiene un signicado especial: Si el usuario en cuestin dispone de una cuenta vlida en el servidor de archivos y de un directorio personal en el mismo, es posible conectarse a este directorio mediante nombre y contrasea. Ejemplo 17.2: Recurso compartido homes
[homes] comment = Home Directories valid users = %S browseable = No read only = No create mask = 0640 directory mask = 0750

[homes] Mientras no exista una autorizacin de acceso expresa con el nombre de autorizacin del usuario asociado, se crear una autorizacin de forma dinmica debido al recurso compartido [homes]. El nombre de este recurso compartido ser idntico al nombre de usuario.

462

17.1. Samba

valid users = %S %S ser reemplazada por el nombre concreto del recurso compartido tras haber realizado la conexin adecuadamente. Puesto que en el caso del recurso compartido [homes] este siempre es idntico al nombre de usuario, los usuarios autorizados se limitan al dueo del directorio de usuario. Esta es una posibilidad para permitir el acceso al dueo solamente. browseable = No Con esta conguracin [homes] no ser visible en la lista de recursos compartidos. read only = No En la conguracin predeterminada, Samba deniega el permiso de escritura en los recursos compartidos exportables, read only = Yes. Si un directorio debe tener tambin permiso de escritura, asigne el valor read only = No, que equivale a writeable = Yes. create mask = 0640 Los sistemas no basados en MS Windows NT no conocen el concepto de permisos de acceso de Unix. Por lo tanto, al crear los archivos, no pueden establecer los permisos de acceso correspondientes. El parmetro create mask establece los permisos de acceso que corresponden a los archivos. Esto slo es vlido para recursos compartidos en los que se pueda escribir. En concreto, al dueo se le permitir leer y escribir, y a los componentes del grupo primario del usuario slo la lectura. Tenga en cuenta que valid users = %S impide la lectura an cuando el grupo est autorizado. Para otorgar al grupo derechos de lectura y escritura, la lnea valid users = %S ha de ser desactivada. Niveles de seguridad El protocolo SMB viene del mundo DOS y Windows y contempla los problemas de seguridad directamente. Todos los accesos a un share se protegen con una contrasea. SMB ofrece tres posibilidades para comprobar la autorizacin: Share Level Security: (security = share) En este caso cada share tiene una contrasea ja. Cada persona que conoce la contrasea tiene acceso al share. User Level Security: (security = user) Esta variante introduce el concepto de usuario SMB. Cada usuario tiene que darse de alta en el servidor con una contrasea propia.

17
Redes heterogneas
463

SUSE LINUX Manual de Administracin

Despus de la autenticacin, el servidor puede otorgar derechos de acceso a los distintos shares exportados en funcin del nombre de usuario. Server Level Security: (security = server) Samba aparenta frente a los clientes trabajar en el User Level Mode, pero en realidad pasa todas las peticiones de entrada a otro ordenador que se encarga de la autenticacin. Esta conguracin requiere de un parmetro adicional (password server =). La decisin sobre el tipo de autenticacin es algo que afecta a todo el servidor. No es posible exportar algunos shares de la conguracin de un servidor en modalidad Share Level Security y otros en User Level Security. No obstante, en un sistema puede operar un servidor Samba propio para cada direccin IP congurada. La coleccin de HOWTOs de Samba contiene ms informacin al respecto. En el caso de un sistema con varios servidores, tenga en cuenta los parmetros interfaces y bind interfaces only.

Atencin
Existe un programa denominado swat que permite administrar fcilmente el servidor samba, ya que ofrece una interfaz de web sencilla para congurarlo cmodamente. Dentro de un navegador introduzca http://localhost:901 y entre al sistema como root. Hay que considerar que swat se activa tambin en los archivo /etc/xinetd.d/samba y /etc/services. Para ello debe modicar la lnea disable = no en el archivo /etc/xinetd.d/samba. Puede obtener informacin adicional acerca de este programa en la pgina del manual de swat.

Atencin 17.1.3. Samba como servidor de dominio

En redes con gran cantidad de clientes Windows, se preere que los usuarios slo puedan acceder a los recursos con su nombre de usuario y una contrasea. Un servidor Samba puede realizar esta autenticacin. En una red basada en Windows, un servidor de Windows-NT se encarga de esta tarea cuando est congurado como Primary Domain Controller (PDC). Para realizarlo con Samba es necesario introducir en la seccin [global] de smb.conf las entradas correspondientes como en el ejemplo 17.3 en la pgina siguiente.

464

17.1. Samba

Ejemplo 17.3: Seccin global en smb.conf


[global] workgroup = TUX-NET domain logons = Yes domain master = Yes

17
Redes heterogneas

Para usar contraseas codicadas para la autenticacin, como sucede de manera estndar en versiones mantenidas de MS Windows 9x, MS Windows NT 4.0 a partir del service pack 3 y todos los productos posteriores, hay que congurar el servidor Samba de tal forma que sepa manejarlas. Esto se realiza mediante la entrada encrypt passwords = yes dentro de la seccin [globals]. Este valor ya est predeterminado a partir de la versin 3 de samba. Adems, las cuentas de los usuarios y las contraseas se deben codicar en una forma que Windows entienda; se puede realizar mediante el comando smbpasswd -a name. Segn el concepto de dominio de Windows NT, los propios ordenadores necesitan una cuenta de dominio que se genera mediante los siguientes comandos: Ejemplo 17.4: Creacin de una cuenta de ordenador
useradd nombre_ordenador \$ smbpasswd -a -m nombre_ordenador

En el caso del comando useradd se ha aadido el smbolo del dlar mientras que el comando smbpasswd aade este carcter automticamente al usar el parmetro -m. En el ejemplo de conguracin comentado /usr/share/doc/ packages/samba/examples/smb.conf.SuSE se encuentran conguraciones que automatizan este trabajo. Ejemplo 17.5: Creacin automtica de una cuenta de ordenador
add machine script = /usr/sbin/useradd -g machines \ -c "NT Machine Account" -d \ /dev/null -s /bin/false %m\$

Para que Samba pueda ejecutar correctamente este script, se requiere un usuario Samba con permisos de administrador. Con este n, aada al grupo ntadmin el usuario seleccionado. A continuacin puede aadir todos los usuarios de este grupo Unix al grupo Domain Admins con el siguiente comando:

SUSE LINUX Manual de Administracin

465

net groupmap add ntgroup="Domain Admins" unixgroup=ntadmin

Puede obtener informacin adicional en el captulo 12 de la coleccin de HOWTOs de Samba: /usr/share/doc/packages/samba/SambaHOWTO-Collection.pdf.

17.1.4.

Instalacin de los clientes

Los clientes slo pueden acceder al servidor Samba va TCP/IP. Actualmente no es posible usar con Samba NetBEUI o NetBIOS sobre IPX. Windows 9x/ME Windows 9x/ME ya incorpora el soporte de TCP/IP, pero al igual que en Windows for Workgroups no est incluido en la instalacin estndar. Para instalar TCP/IP en un Windows ya instalado, se selecciona el icono de red en el panel de control y despus Agregar..., Protocolo TCP/IP de Microsoft. Despus de reiniciar el ordenador Windows puede encontrar el servidor Samba en el entorno de red haciendo doble clic con el ratn sobre el icono correspondiente en el escritorio.

Atencin
Para usar una impresora conectada al servidor Samba, se recomienda instalar en el cliente el controlador general para impresoras PostScript o el utilizado para impresoras Postscript de Apple incluidos en la versin correspondiente de Windows. Despus se conecta con la cola de impresin de Linux que acepta PostScript como formato de entrada.

Atencin 17.1.5. Optimizacin

socket options ofrece una posibilidad de optimizacin. La conguracin predeterminada del ejemplo de conguracin incluido est orientada a una red Ethernet local. Ms detalles en la pgina del manual de smb.conf y en la de socket(7). Puede obtener informacin adicional en el captulo Samba performance tuning de Samba-HOWTO-Collection. La conguracin estndar en /etc/samba/smb.conf intenta proponer valores de amplio alcance orientndose a la conguracin por defecto del equipo de Samba.

466

17.1. Samba

Sin embargo, el ofrecer una conguracin ya preparada resulta imposible desde el punto de vista de la conguracin de red y de los nombres de grupos de trabajo. En el ejemplo de conguracin comentado examples/smb.conf.SuSE se encuentran indicaciones que le sern de ayuda para adaptarse a las circunstancias locales.

17
Redes heterogneas

Atencin
El equipo Samba incluye en Samba-HOWTO-Collection una seccin sobre la bsqueda de fallos. Asimismo, la seccin V contiene instrucciones para controlar paso a paso la conguracin.

Atencin

17.2.

Netatalk

El paquete netatalk le permite implementar un potente servidor de archivos y de impresin para clientes Apple. As, es posible acceder a datos del ordenador Linux desde la mquina Macintosh o bien imprimir en una impresora conectada. Netatalk es un conjunto de programas Unix que se basan en el DDP (Datagram Delivery Protocol ) del kernel e implementan la familia de protocolos de AppleTalk (ADSP, ATP, ASP, RTMP, NBP, ZIP, AEP y PAP). En principio, AppleTalk es el equivalente del ampliado TCP (Transmission Control Protocol). Muchos de los servicios TCP/IP, por ejemplo la resolucin de nombres y la sincronizacin horaria, equivalen a los de AppleTalk. As por ejemplo, en vez del comando ping (ICMP ECHO_REQUEST, Internet Control Message Protocol) utiliza aecho (AEP, AppleTalk Echo Protocol). Los siguientes tres daemons se inician normalmente en el servidor: atalkd (administrador de red de AppleTalk), que equivale al programa ip. afpd (AppleTalk Filing Protocol Daemon), que proporciona una interfaz de sistema de datos Unix para clientes de Macintosh. papd (Printer Access Protocol daemon), que incorpora la impresora a la red (de AppleTalk).

SUSE LINUX Manual de Administracin

467

En el servidor, puede exportar al mismo tiempo directorios a travs de Samba (para clientes de Windows, ver el captulo anterior) y de NFS (ver 14.9 en la pgina 394), lo cual resulta muy til en entornos de red heterogneos. La proteccin de datos y la administracin de los derechos de acceso se pueden realizar centralmente en el servidor Linux. Al utilizar el programa Netatalk tenga en cuenta las siguientes limitaciones: Debido a las restricciones de los clientes de Macintosh, las contraseas de los usuarios en el servidor han de tener 8 caracteres como mximo. Los clientes de Macintosh no tienen acceso a archivos de Unix cuyo nombre tenga ms de 31 caracteres. Los nombres de archivo no deben incluir dos puntos (:), porque este signo funciona como separador en los nombres de ruta de MacOS.

17.2.1.

Conguracin del servidor de archivos

En la conguracin estndar, Netatalk es ya un servidor de archivos completamente funcional para todos los usuarios dados de alta en el sistema Linux. Para usar otras funciones adicionales, es necesario realizar algunos ajustes en los archivos de conguracin que se encuentran en el directorio /etc/netatalk/. Todos los archivos de conguracin son archivos de texto. Las lneas que comienzan con el smbolo # y las vacas se ignoran ya que se consideran comentarios. Los distintos servicios (impresora, Appletalk Broadcast, Appletalk a travs de TCP/IP, servidor de tiempo) se activan a travs del archivo /etc/netatalk/netatalk.conf:
ATALKD_RUN=yes PAPD_RUN=yes AFPD_RUN=yes TIMELORD_RUN=no

Congurar la red atalkd.conf El archivo /etc/atalk/atalkd.conf dene las interfaces a travs de las cuales se ofrecen los servicios de AppleTalk.

468

17.2. Netatalk

Esta interfaz es a menudo eth0 y suele ser suciente con introducir eth0 como valor nico (es el caso de este ejemplo). Aqu puede aadir ms interfaces, por ejemplo si utiliza ms de una tarjeta de red simultneamente. Cuando arranca el servidor, este busca en la red zonas y servidores que ya estn disponibles, tras lo cual modica las lneas correspondientes introduciendo las direcciones de red de AppleTalk conguradas. Al nal del archivo encuentra entonces una lnea semejante a
eth0 -phase 2 -net 0-65534 -addr 65280.57

17
Redes heterogneas

Si quiere realizar conguraciones ms complejas, puede encontrar varios ejemplos en el archivo de conguracin. Puede obtener tambin documentacin sobre opciones adicionales en la la pgina del manual de afpd. Denir el servidor de archivos afpd.conf En el archivo afpd.conf se dene cmo ha de aparecer el servidor de archivos para los clientes Apple en la Seleccin. Como el resto de archivos de conguracin, este tambin incluye comentarios detallados que le explicarn las diversas opciones. Si no se modica nada aqu, arranca el servidor por defecto el cual se mostrar en el Seleccin con el nombre del host. Por lo tanto, no es necesario introducir necesariamente algo en este apartado. En este archivo adems se puede denir otro servidor con un nombre diferente por ejemplo denir un servidor de invitados que permita a los huspedes dejar archivos en l.
"Guest server" -uamlist uams_guest.so

O puede denir un servidor que no permita la entrada a huspedes, sino slo a usuarios que ya existan en el sistema Linux:
"Font server" -uamlist uams_clrtxt.so,uams_dhx.so

Este proceso quedar guardado a travs de la opcin uamlist seguido de una lista de los mdulos de autenticacin que deben emplearse separados por comas. Por defecto, todos los procesos estn activos. Por regla general, un servidor AppleShare no slo ofrece sus servicios a travs de AppleTalk, sino tambin encapsulado a travs de TCP/IP. El puerto por defecto es 548.

SUSE LINUX Manual de Administracin

469

Si quiere disponer de ms servidores AppleShare (en el mismo ordenador) que tambin funcionen a travs de TCP/IP, debe asignar puertos dedicados. El proporcionar los servicios va TCP/IP permite acceder al servidor a travs de redes que no sean AppleTalk, como por ejemplo Internet. La sintaxis sera por ejemplo:
"Font server" -uamlist uams_clrtxt.so,uams_dhx.so -port 12000

Aqu, el servidor AppleShare que aparece en la red con el nombre font server, no permite ningn acceso a los huspedes y el puerto es 12000. Por lo tanto, tambin se puede acceder a l a travs de un router TCP/IP. En el archivo AppleVolumes.default quedan denidos los directorios del servidor que el servidor AppleShare correspondiente proporcionar en forma de volmenes de red. Mediante la opcin -defaultvol puede denir otro archivo para un nico servidor AppleShare en el que se indiquen instrucciones diferentes, por ejemplo (en una lnea):
"Guest server" -uamlist uams_guest.so -defaultvol /etc/netatalk/AppleVolumes.guest

En el archivo afpd.conf se explican otras opciones. Directorios y permisos de acceso AppleVolumes.default En el archivo AppleVolumes.default se determinan los directorios que deben ser exportados. Los permisos de acceso quedan establecidos mediante los derechos de usuario y grupo normales en Unix.

470

17.2. Netatalk

Atencin
Aqu ha cambiado parcialmente la sintaxis. Tngalo en cuenta si est actualizando desde una versin antigua, por ejemplo en vez de access=, ahora es allow: (un sntoma caracterstico sera si en los clientes Mac con AppleTalk se mostrasen las opciones en vez de la descripcin de una unidad determinada.) Puesto que con la actualizacin han aparecido nuevos archivos con la extensin .rpmnew, puede que, en determinadas circunstancias y debido al cambio de sintaxis, la antigua conguracin no funcione. Le recomendamos hacer una copia de seguridad de los archivos de conguracin, con el n de incorporar la conguracin anterior a los nuevos archivos y renombrarlos. De este modo puede aprovecharse de los detallados comentarios que se incluyen ahora y que le explicarn las diversas opciones posibles en los archivos de conguracin.

17
Redes heterogneas

Atencin
Es posible que existan archivos adicionales junto a AppleVolumes. default, por ejemplo AppleVolumes.guest, utilizados por determinados servidores (en el archivo afpd.conf se usa la opcin -defaultvol ver apartado anterior). La sintaxis es bastante sencilla:
/usr/local/psfonts "PostScript Fonts"

signica que el directorio Linux /usr/local/psfonts/ que se encuentra en el directorio root, se comparte como volumen AppleShare con el nombre PostScript Fonts. Las distintas opciones se aaden a la lnea separadas por espacios en blanco. Una opcin muy til es la de restriccin de accesos.
/usr/local/psfonts "PostScript Fonts" allow:usuario1,@grupo0

limita el acceso al volumen PostScript Fonts al usuario Usuario1 y a todos los miembros del grupo grupo0, los cuales ya debern ser conocidos por el servidor. De forma anloga se puede excluir explcitamente a un usuario con deny:User2. Tenga en cuenta que estas limitaciones tienen validez para el acceso va AppleTalk, pero no tienen nada que ver con los permisos de acceso de un usuario al hacer un login en el servidor.

SUSE LINUX Manual de Administracin

471

Netatalk coloca en el Resource-Fork de archivos tpico de Mac el directorio .AppleDouble. Con la opcin noadouble puede determinar que estos directorios slo sean creados cuando realmente se necesiten. La sintaxis es:
/usr/local/guests "Guests" options:noadouble

Puede encontrar explicaciones ms detalladas de las distintas opciones en el archivo en cuestin. Por lo dems: En los archivos de conguracin puede encontrar un pequeo e inocente signo (~). Este signo simboliza el directorio raz de cada usuario en el servidor. Con l, todos los usuarios pueden compartir su directorio raz automticamente, sin necesidad de incluirlos aqu de forma explcita. El archivo de ejemplo que se encuentra instalado incluye este signo, puesto que Netatalk ya proporciona por defecto el directorio raz si Vd. no modica nada en el archivo. Adems, el afpd busca en el directorio raz de un usuario que se ha dado de alta los archivos Applevolumes o .Applevolumes. Las entradas de estos archivos complementan a las de los archivos del servidor AppleVolumes.system y AppleVolumes.default para permitir la asignacin de ms type/creator individuales y acceder a sistemas de archivos. Estas entradas son complementos y no autorizan ningn acceso que no se permita a travs del servidor. El archivo netatalk.pamd sirve para la autenticacin con PAM (Pluggable Authentication Modules), lo cual no es relevante en este captulo. Asignacin de archivos AppleVolumes.system El archivo AppleVolumes.System establece tambin la asignacin de tipo (Type) y creador (Creator) a las terminaciones de los archivos. Algunas asignaciones estndar ya estn predenidas. Si un archivo aparece con un icono genrico en blanco es porque an no se ha realizado ninguna asignacin. En caso de problemas al abrir un archivo de texto de otro sistema en Mac o viceversa, aqu puede controlar las entradas.

17.2.2. Conguracin del servidor de impresin


Mediante el archivo papd.conf se puede ofrecer un servicio del tipo Apple Laserwriter. Esta impresora ya debe funcionar localmente mediante lpd (captulo 5 en la pgina 97). El primer paso ha nalizado cuando se puede imprimir localmente usando el comando lpr archivo.txt.

472

17.2. Netatalk

No debe aadir nada al papd.conf si se ha congurado una impresora local en Linux, puesto que los trabajos de impresin se envan directamente al daemon de impresin lpd. La impresora se presenta en la red AppleTalk como Laserwriter. Pero tambin puede dar de alta una impresora de la siguiente forma:
impresora_oficina3:pr=lp:pd=/etc/netatalk/kyocera.ppd

17
Redes heterogneas

Con esta conguracin aparece en la seleccin una impresora denominada impresora_oficina3. El fabricante de la misma suministra normalmente el archivo de descripcin correspondiente. En caso de no disponer de l, se puede usar en su lugar el archivo Laserwriter de la carpeta Extensionesdelsistema/ pero con la desventaja de no poder utilizar todas las funciones de la impresora.

17.2.3. Arrancar el servidor


El servidor arranca mediante el script de inicio, init-script, o manualmente con rcatalk start. El script de inicio se encuentra en /etc/ init.d/atalk. El script realiza el arranque en segundo plano; dura ms o menos un minuto hasta que las interfaces de AppleTalk se conguran y estn disponibles. Puede comprobar si el arranque ya ha sido realizado pidiendo un informe de la situacin (si el OK aparece tres veces, el proceso ha sido completado):
rcatalk status Checking for service atalk:OKOKOK

Ahora dirjase a un ordenador Mac que funcione con Mac OS. Compruebe que AppleTalk est activado, escoja Filesharing, haga doble clic en Appleshare y ver el nombre del servidor en la ventana que aparece. Haga doble clic en el nombre y regstrese. Escoja la unidad y voil ah se encuentra su unidad de red con Mac OS. Para conectarse con servidores que slo funcionan con TCP y no con DDP, dirjase a Seleccin, pulse Direccin IP del servidor e introduzca la direccin IP correspondiente, de ser necesario, seguida de dos puntos y el nmero de puerto.

SUSE LINUX Manual de Administracin

473

17.2.4.

Informacin adicional

Para sacar el mximo provecho de todas las posibilidades que le ofrece el paquete netatalk, le recomendamos que consultar las pginas man correspondientes que encontrar con el comando: rpm -qd netatalk Otra indicacin: El archivo /etc/netatalk/netatalk.conf no se utiliza en nuestra versin de netatalk, por lo tanto puede pasarlo por alto. Algunas URLs de utilidad: http://netatalk.sourceforge.net/ http://www.umich.edu/~rsug/netatalk/ http://www.anders.com/projects/netatalk/

17.3.

Emulacin de Novell NetWare con MARSNWE

Reemplazar un servidor de archivos y de impresin de Novell NetWare 2.2 3.11 mediante el emulador de NetWare MARSNWE resulta relativamente sencillo. Este tambin puede utilizarse como enrutador IPX, si bien no es capaz de emular las prestaciones adicionales de versiones ms recientes como por ejemplo los servicios de directorio NDS (NetWare Directoy Services). Las estaciones de trabajo con DOS o Windows que ya estn conguradas para acceder a un servidor NetWare 2.2/3.11/3.12 casi no requieren modicaciones para utilizar el servidor Linux con el emulador de NetWare MARSNWE. La administracin se realiza directamente desde Linux.

17.3.1.

Iniciar el emulador de NetWare MARSNWE

En SUSE LINUX se puede iniciar MARSNWE despus de la instalacin, ya que est precongurado de tal forma que es posible probarlo. Del soporte de IPX requerido por el kernel se encarga un mdulo que es cargado automticamente por el script de inicio. MARSNWE congura automticamente la interfaz IPX, tomando como referencia los valores del nmero de red y del protocolo a utilizar del archivo de conguracin /etc/nwserv.conf. El comando para iniciar MARSNWE es rcnwe start. El mensaje done a la derecha de la pantalla indica el inicio correcto del programa. rcnwe status es el comando para comprobar el estado de ejecucin del emulador de NetWare; para terminarlo se utiliza rcnwe stop.

474

17.3. Emulacin de Novell NetWare con MARSNWE

17.3.2. El archivo de conguracin /etc/nwserv.conf


Las opciones de conguracin se agrupan en secciones (Sections) numeradas. Cada lnea de conguracin comienza con el nmero de la seccin correspondiente. Las secciones ms interesantes son aquellas de los nmeros 1 a 22. Normalmente las siguientes secciones resultan sucientes para la conguracin: 1 2 4 13 21 Volmenes de NetWare Nombre del servidor Red/dispositivos IPX Nombres de usuario Colas de impresin

17
Redes heterogneas

Es necesario reiniciar MARSNWE con el comando rcnwe restart despus de cualquier cambio en la conguracin. Las opciones de conguracin en detalle: Volmenes (Seccin 1):
1 SYS /usr/local/nwe/SYS/ kt 711 600

Seccin para denir los volmenes a exportar. Cada lnea comienza con el nmero de la seccin (en este caso 1) seguido del nombre de volumen y de la ruta del directorio en el servidor. Es posible indicar varias opciones adicionales representadas por letras, como por ejemplo un umask para la creacin de directorios y de archivos. En caso de no especicar ningn umask se utiliza el valor predeterminado de la seccin 9. El volumen para SYS ya est congurado. En cuanto a las opciones se recomienda utilizar k para evitar problemas con maysculas y minsculas en los nombres de archivos. Empleando esta opcin se convierten a minsculas todos los nombres de archivos. Nombre del servidor (Seccin 2):
2 MARS

Este parmetro es opcional; por defecto se utiliza el nombre del host.

SUSE LINUX Manual de Administracin

475

Nmero de la red interna (Seccin 3):


3 auto

El parmetro auto hace que el nmero de red interno se genere a partir de la direccin MAC de la tarjeta de red. Normalmente se mantiene el parmetro en la conguracin. Conguracin IPX (Seccin 4):
4 4 0x0 0x22 * eth0 AUTO ethernet_ii 1 1

En esta seccin se puede indicar el nmero de red de NetWare, la interfaz de red y el protocolo que se debe utilizar. En el primer ejemplo la conguracin es totalmente automtica mientras que en el segundo caso se asigna el nmero de red 0x22 a la tarjeta de red eth0 con el protocolo Ethernet-II. Si se dispone de varias tarjetas de red y se introducen aqu todas ellas con nmeros de red distintos, IPX ser enrutado entre ellas. Modo create (Seccin 9):
9 0751 0640

Denicin de los permisos estndar para la creacin de directorios y archivos. UID y GID con derechos mnimos (Seccin 10, 11):
10 11 65534 65534

Nmero de identicacin (ID) de grupo y de usuario para usuarios no registrados; en este caso nogroup y nobody. Login de supervisor (Section 12):
12 SUPERVISOR root

El supervisor se representa por el usuario root. Logins de usuario (Seccin 13):


13 LINUX linux

476

17.3. Emulacin de Novell NetWare con MARSNWE

En este apartado se realiza la correspondencia entre usuarios de NetWare y los usuarios de Linux. Como opcin se puede indicar una contrasea ja. Representacin automtica de usuarios (Seccin 15):
15 0 top-secret

17
Redes heterogneas

Si en lugar de 0 se introduce 1, los logins de Linux estarn disponibles automticamente como logins de NetWare. En este caso la contrasea es top-secret. Colas de impresin (Seccin 21):
21 LP lpr -

El primer parmetro (LP) es el nombre de la impresora NetWare, como segundo parmetro se puede indicar el directorio temporal de impresin (spooling) y el tercero es el comando de impresin. Servidor de impresin (Seccin 22):
22 PS_NWE LP_PS 1

En esta lnea se pueden congurar las impresoras a las que se accede mediante pserver, incluido en el paquete ncpfs.

17.3.3.

Administracin y acceso a servidores NetWare

El paquete ncpfs es una recopilacin de herramientas que sirven para administrar servidores NetWare 2.2/3.11 desde Linux. Estas permiten tambin montar volmenes NetWare o administrar impresoras. Para acceder a servidores NetWare a partir de la versin 4, es necesario activar IPX y la emulacin Bindery.

SUSE LINUX Manual de Administracin

477

Existen las siguientes herramientas cuyas prestaciones se describen en sus respectivas pginas de manual:

nwmsg nprint nwbols nwbpcreate nwdir nwfstime nwrevoke nwtrustee2 pqrm

ncopy nsend nwboprops nwbprm nwdpvalues nwgrant nwrights nwuserlist pqstat

ncpmount nwauth nwborm nwbpset nwfsctrl nwpasswd nwsnd nwvolinfo pserver

ncpumount nwbocreate nwbpadd nwbpvalues nwfsinfo nwpurge nwtrustee pqlist slist

Un comando muy importante es por ejemplo ncpmount, que sirve para montar volmenes de un servidor NetWare en Linux, as como su homlogo ncpumount, que desmonta nuevamente los volmenes. El paquete ncpfs contiene tambin herramientas para la conguracin del protocolo IPX y del enrutamiento con dicho protocolo.
ipx_cmd ipx_configure ipx_interface ipx_internal_net ipx_route

ipx_configure o ipx_interface son las utilidades para la conguracin IPX de la tarjeta de red. No obstante, MARSNWE realiza automticamente la conguracin si se encuentra activo.

17.3.4.

Enrutador IPX con ipxrip

Una alternativa para convertir un ordenador con Linux en un enrutador IPX es el paquete ipxrip. Sin embargo, normalmente no se necesita debido a que MARSNWE o las herramientas del paquete ncpfs ya son capaces de congurar un enrutador IPX.

478

17.3. Emulacin de Novell NetWare con MARSNWE

18
Internet

Internet

Internet ha acabado por imponerse como plataforma de comunicacin a escala mundial. Como sistema operativo de red, Linux es capaz de realizar una gran variedad de tareas en la red de redes, tanto como cliente como en calidad de servidor. En este captulo se describen algunos temas de interess relacionados con Internet: el asistente para realizar conexiones telefnicas smpppd (SUSE Meta PPP Daemon), la conguracin manual de una conexin ADSL en caso de que surgieran problemas en la conguracin con YaST y la conguracin del proxy Squid.

18.1. smpppd como asistente para la conexin telefnica 480 18.2. Conguracin de una conexin ADSL . . . . . . . . 482 18.3. Servidor proxy: Squid . . . . . . . . . . . . . . . . . 484

18.1.
18.1.1.

smpppd como asistente para la conexin telefnica


Componentes del programa para la conexin a Internet va telefnica

La mayora de los usuarios particulares no tiene una conexin ja a Internet, sino que se conecta va telefnica cada vez que lo necesita. Dependiendo del tipo de conexin (RDSI o ADSL), los programas ipppd o pppd se encargan de controlar esta conexin. En principio basta con iniciar estos programas correctamente para poder estar en lnea. Si se dispone de tarifa plana y la conexin no supone costes adicionales, es suciente con iniciar el daemon de la manera adecuada. No obstante, a veces es deseable poder controlar mejor la conexin telefnica, ya sea mediante un applet de KDE o una interfaz de lnea de comandos. Adems, la pasarela a Internet no es siempre el propio ordenador de trabajo, por lo que resulta conveniente regular la conexin telefnica en un ordenador accesible en red. Aqu es donde interviene el programa smpppd. Este facilita a los programas de ayuda una interfaz uniforme que funciona en dos direcciones. Por un lado programa la herramienta necesaria pppd o ipppd y regula su funcionamiento durante el marcado. Por el otro, proporciona a los programas de usuario diversos proveedores y transmite informacin sobre el estado actual de la conexin. Debido a que smpppd tambin puede controlarse en red, resulta muy adecuado para dirigir la conexin a Internet desde una estacin de trabajo en la subred privada.

18.1.2.

La conguracin de smpppd

YaST asume automticamente la conguracin de las conexiones proporcionadas por smpppd. Los programas de marcado kinternet y cinternet estn tambin precongurados. Slo tendr que congurar manualmente funciones adicionales de smpppd, como por ejemplo el manejo de forma remota. El chero de conguracin de smpppd se encuentra en /etc/smpppd. conf. Est congurado de tal forma que no permite el manejo remoto por defecto. Las opciones ms interesantes de este chero de conguracin son:

480

18.1. smpppd como asistente para la conexin telefnica

open-inet-socket = <yes|no> Si se desea controlar smpppd a travs de la red, esta opcin ha de tener el valor yes. El puerto en el que smpppd escucha es 3185. Si asigna el valor yes a este parmetro, los parmetros bind-address, host-range y password han de congurarse en consecuencia. bind-address = <ip> Si un ordenador dispone de varias direcciones IP, esta opcin permite denir sobre qu direccin IP acepta conexiones smpppd. host-range = <min ip><max ip> El parmetro host-range puede utilizarse para denir una seccin de red. El acceso a smpppd se permitir slo a los ordenadores cuyas direcciones IP estn dentro de esta seccin; el resto de ordenadores ser rechazado. password = <password> Mediante la asignacin de una contrasea es posible restringir los clientes slo a ordenadores autorizados. Debido a que la contrasea est en texto plano, no hay que sobrevalorar su valor como medida de seguridad. Si no se dene ninguna contrasea, todos los clientes pueden acceder a smpppd. Puede encontrar ms informacin sobre smpppd en las pginas del manual man smpppd y man smpppd.conf.

18
Internet

18.1.3.

Preparacin de kinternet y cinternet para el uso remoto

Los programas kinternet y cinternet no slo pueden utilizarse localmente, sino tambin controlar un smpppd remoto. cinternet es el equivalente en la lnea de comandos al programa grco kinternet. Para preparar ambas herramientas para su uso con un smpppd remoto, debe editar el chero de conguracin /etc/smpppd-c.conf de forma manual o con kinternet. Este chero slo reconoce tres opciones: server = <server> Aqu se puede especicar el servidor sobre el que funciona smpppd. Si el servidor es adems la pasarela predeterminada del ordenador, basta con asignar el valor yes a gateway-fallback. gateway-fallback = <yes|no> Si no se ha indicado ningn servidor o no funciona ninguno localmente, se puede intentar acceder a smpppd a travs de la pasarela predeterminada. Esta opcin est activada por defecto.

SUSE LINUX Manual de Administracin

481

password = <password> Introduzca aqu la contrasea elegida tambin para smpppd. Si smpppd se est ejecutando, puede intentar acceder a smpppd mediante el comando cinternet --verbose --interface-list. Si se presentan dicultades, puede consultar man smpppd-c.conf y man cinternet.

18.2.

Conguracin de una conexin ADSL

Atencin
El procedimiento expuesto en este captulo se basa en la implementacin de la tecnologa ADSL en Alemania. Segn el pas y la compaa es posible que se utilicen tecnologas diferentes y por tanto, diferentes mtodos de conguracin.

Atencin 18.2.1. Conguracin estndar

Actualmente SUSE LINUX soporta aquellos accesos ADSL que trabajan con el protocolo Point-to-Point-over-Ethernet (PPPoE). Es el protocolo que emplean todos los proveedores grandes. Si no est seguro de qu protocolo usa su proveedor, este seguramente le puede facilitar dicha informacin. 1. Los paquetes ppp y smpppd deben estar instalados; use YaST para instalarlos. 2. Congure su tarjeta red con YaST. No seleccione dhcp, sino especique una direccin IP esttica, como por ejemplo 192.168.2.22. 3. Los parmetros que se modican con el mdulo DSL de YaST2 se guardan en en el archivo /etc/sysconfig/network/ providers/provider0/. Adicionalmente existen archivos de conguracin para smpppd, el Daemon-Meta-PPP de SuSE y sus frontales kinternet y cinternet. Consulte la pgina de manual man smpppd.

482

18.2. Conguracin de una conexin ADSL

4. Si es necesario active la red con el comando rcnetwork start y a continuacin el daemon smpppd con rcsmpppd start. 5. Con los comandos cinternet--start y cinternet--stop puede establecer o interrumpir una conexin en un sistema sin entorno grco. Si trabaja en un entorno grco, puede utilizar para ello el programa kinternet, el cual arranca automticamente en KDE si ha congurado DSL con YaST. Pulse sobre el icono de la rueda dentada en la barra de botones para establecer una conexin. Seleccione Co Internet Tools kinternet. Ahora aparemunicacin/Internet ce el smbolo de un enchufe en la barra de botones. Pulsando sobre l, la conexin se establece y un segundo clic cierra la conexin.

18
Internet

18.2.2.

Conexin ADSL va Dial-on-Demand

Dial-on-Demand o conexin bajo demanda, signica que la conexin se establece justo en el momento en que un usuario accede a Internet, por ejemplo cuando selecciona una pgina web en el navegador o manda un correo electrnico. Despus de un tiempo determinado sin trco de red, la conexin se corta. Debido a que el establecimiento de la conexin por parte del protocolo PPPoE de ADSL es muy rpido, se tiene la impresin de que la conexin fuera continua. Esta forma de conexin slo se recomienda si tiene tarifa plana. De no ser as, es decir, si el proveedor le cobra por el tiempo de conexin, es importante vigilar que no exista ningn proceso que provoque una conexin peridica (por ejemplo un cronjob) ya que los gastos podran aumentar de forma considerable. Hay algunas objeciones contra una conexin continua a Internet, incluso cuando la modalidad de acceso es la tarifa plana: La mayora de los proveedores cortan la conexin despus de un cierto tiempo. Una conexin continua es un cierto despilfarro de recursos (por ejemplo de las direcciones IP). La conexin continua es sobre todo un gran riesgo de seguridad, ya que el agresor tiene tiempo para averiguar sistemticamente posibles puntos dbiles del sistema. Es mucho ms difcil atacar un sistema que slo conecta a Internet bajo demanda y que obtiene cada vez una direccin IP diferente.

SUSE LINUX Manual de Administracin

483

Es posible activar la conexin bajo demanda (dial on demand) con YaST2 (ver el manual del usuario) o congurndolo manualmente. En el archivo/etc/sysconfig/network/providers/provider0/ je el parmetro DEMAND= a "yes" y dena el perodo de inactividad (idle time) con la variable: IDLETIME="60". De esta forma, una conexin en la que no existe ninguna actividad se corta despus de 60 segundos. Para la conguracin de pasarelas DSL para redes privadas, le recomendamos el siguiente artculo de nuestra base de datos de soporte: http: //sdb.suse.de/es/sdb/html/masq80.html

18.3.

Servidor proxy: Squid

El cach proxy por excelencia para plataformas Linux/UNIX es Squid, del que veremos cmo realizar su conguracin, qu especicaciones requerir el sistema donde lo vayamos a instalar, cmo llevar a cabo la conguracin de un servidor proxy transparente y, nalmente, cmo obtener estadsticas sobre el uso del cach con la ayuda de programas como Calamaris y cachemgr o cmo utilizar la aplicacin squidGuard para realizar ltrado de pginas web.

18.3.1.

Qu es un cach proxy?

Squid se comporta como un cach proxy: esto es, acta como un agente que recibe peticiones de clientes (en este caso navegadores web) y pasa estas peticiones al proveedor de servicios apropiado. Cuando los datos llegan de nuevo al agente, este almacena una copia de los datos en un cach de disco. Las ventajas de este sistema aparecen cuando varios clientes intentan acceder a los mismos datos: ya no har falta ir a buscarlos otra vez a Internet, sino que se servirn directamente desde el cach de disco. De esta forma, los usuarios se benecian de un ahorro importante del volumen de transferencias en red.

484

18.3. Servidor proxy: Squid

Atencin
Squid ofrece ventajas como la posibilidad de intercomunicar jerarquas de servidores proxys para repartir la carga entre ellos o establecer estrictas reglas de control de acceso para los clientes de las redes que quieran acceder al proxy. Adems, con la ayuda de otras aplicaciones es posible controlar el acceso a determinadas pginas web u obtener estadsticas sobre cules son las webs ms visitadas, con qu frecuencia los usuarios se conectan, etc.

18
Internet
Atencin

Squid no es un proxy genrico. Acta como proxy entre conexiones va HTTP y soporta tambin los protocolos FTP, Gopher, SSL y WAIS, pero no soporta otros protocolos de Internet como por ejemplo Real Audio, News o videoconferencia. Squid slo soporta el protocolo UDP para realizar comunicaciones entre diferentes cachs, con lo que muchos programas multimedia quedarn igualmente excluidos.

18.3.2. Informacin general sobre cachs proxy


Squid y seguridad Tambin es posible emplear Squid junto con un cortafuegos para proteger una red interna del exterior mediante un cach proxy. Exceptuando a Squid, el cortafuego impide a todos los clientes establecer conexiones a servicios externos, haciendo que sea el proxy el que establezca todas las comunicaciones con la World Wide Web. Si la conguracin del cortafuegos incluye una zona desmilitarizada (DMZ), es all donde se utilizar el servidor proxy. En ese caso, es importante que todos los ordenadores de la DMZ enven sus archivos de registro (o logles) a ordenadores dentro de la red segura. En el apartado 18.3.6 en la pgina 496 se describe un mtodo de implementar un proxy transparente. Cachs multinivel Es posible congurar varios proxys para que cooperen intercambiando objetos entre ellos. De esta forma se reduce la carga total del sistema y se aumenta la probabilidad de que el objeto se encuentre ya en la red local.

SUSE LINUX Manual de Administracin

485

Es posible congurar incluso jerarquas de cachs, de forma que se pueda pedir pginas a cachs del mismo nivel o enviar peticiones a otros proxys de jerarqua ms alta para que pidan las pginas a otros cachs existentes en la red o las obtengan directamente de la fuente. Elegir una buena topologa para los cachs es muy importante para no acabar creando ms trco del que ya haba en la red antes de instalar los cachs. Por ejemplo, en el caso de una red local muy extensa conviene congurar un servidor proxy para cada subred y conectar estos a un proxy de jerarqua superior conectado a su vez al cach proxy del ISP. Toda esta comunicacin se lleva a cabo mediante el protocolo ICP (Internet Cache Protocol ) basado en UDP. Las transferencias de datos entre la mayora de cachs se realizan mediante HTTP, protocolo basado en TCP. Para encontrar el servidor ms apropiado desde el que obtener un objeto, un cach enva una peticin ICP a sus proxys vecinos. Estos le enviarn respuestas ICP con cdigo HIT, si el objeto se encuentra efectivamente all, o bien MISS en caso contrario. En caso que haya varios HIT, el proxy se decidir por un servidor en especial en funcin de factores como la velocidad de respuesta o la proximidad, entre otros. Si las respuestas de los proxys vecinos no son satisfactorias, la peticin se realizar al cach principal.

Atencin
Para evitar duplicaciones de los objetos en varios cachs en la red se utilizan tambin protocolos ICP como CARP (Cache Array Routing Protocol ) o HTCP (Hyper-Text Cache Protocol ). Cuantos ms objetos tengamos en la red, mayor ser la posibilidad que est el que buscamos.

Atencin
Objetos cacheados en Internet No todos los objetos disponibles en la red son estticos. Existen pginas generadas dinmicamente por CGIs, contadores de visitantes o bien documentos que incluyen SSL para codicar el contenido y hacerlo ms seguro. Por esos motivos se considera este tipo de objetos como no cacheables, ya que cada vez que se accede a ellos ya han cambiado. Pero para todos los dems objetos que se guardan en el cach existe el problema de cunto tiempo deben quedarse all. Para determinarlo se asignan diferentes estados a los objetos del cach.

486

18.3. Servidor proxy: Squid

Los servidores web y los cachs proxy controlan el estado de un objeto aadiendo cabeceras como Last modified (ltima modicacin) o Expires (expira) y la fecha correspondiente. Tambin se utilizan otras cabeceras para especicar los objetos que no deben cachearse. Normalmente, los objetos desaparecern antes del cach por la falta de espacio en el disco. Se utiliza algoritmos para sustituir objetos en el cach, como el LRU (Last Recently Used ) que consiste en sustituir los objetos menos utilizados por nuevos.

18
Internet

18.3.3. Requerimientos del sistema


Lo ms importante es cuanticar la carga que va a tener que soportar nuestro sistema. Para esto es importante jarse ms en los picos de carga del sistema que en la media total, ya que los picos pueden llegar a ser varias veces la media del da. En caso de duda siempre es mucho mejor sobreestimar los requerimientos del sistema, ya que un Squid trabajando al lmite de su capacidad puede repercutir negativamente en el funcionamiento de los servicios. En las siguientes secciones se explican en orden de importancia los distintos factores del sistema. Discos duros Cuando se trata de cachs, la velocidad es un parmetro importantsimo. En los discos duros este parmetro se mide mediante su tiempo medio de acceso en milisegundos, que debe ser lo ms bajo posible. Para lograr una velocidad elevada se recomienda utilizar discos duros rpidos. Debido a que en la mayora de los casos Squid lee o escribe pequeos bloques del disco duro, el tiempo de acceso del disco duro es ms importante que su capacidad de transferencia de datos. Precisamente en este contexto muestran su vala los discos duros con una alta velocidad de rotacin, ya que permiten un posicionamiento ms rpido de la cabeza de lectura. Hoy en da, los discos duros SCSI de mayor rapidez pueden alcanzar tiempos de acceso inferiores a 4 milisegundos. Otra posibilidad para aumentar la velocidad consiste en el uso paralelo de varios discos duros o de una estructura RAID.

SUSE LINUX Manual de Administracin

487

Tamao del cach de disco Depende de varios factores. En un cach pequeo la probabilidad de un HIT (el objeto ya se encuentre en el cach) ser pequea, ya que el cach se llenar con facilidad y se deber sustituir los objetos antiguos por nuevos. En cambio, en el caso de disponer de por ejemplo 1GB de disco para cachear, y de que los usuarios slo necesiten 10MB al da para navegar, se tardar al menos 100 das en llenar el cach. El mtodo ms fcil para determinar el tamao del cach es en funcin del trco mximo que pase por el mismo. Si se dispone de una conexin de 1Mb/s, como mucho se transferirn 125KB por segundo. Si todo este trco va a parar al cach, en una hora ser 450MB, y suponiendo que este trco se genera durante las 8 horas de trabajo, tendremos en total 3,6GB diarios. Como la lnea no suele trabajar al mximo, la cantidad total de datos procesada por el cach es de unos 2GB. As pues, para guardar todos los datos navegados por la WWW en un da, necesitamos en este ejemplo 2GB de memoria RAM para Squid. Memoria RAM La cantidad de memoria requerida por Squid est relacionada directamente con la cantidad de objetos que se encuentran en el cach. Squid tambin almacena referencias a los objetos en el cach y objetos utilizados frecuentemente en la memoria RAM para optimizar la obtencin de los mismos. La memoria RAM es muchsimo ms rpida que el disco duro. Squid tambin guarda muchos otros datos en la memoria, como por ejemplo una tabla con todas las direcciones IP utilizadas, un cach para los nombres de dominio totalmente cualicados, objetos calientes (los que ms se solicitan), buffers, listas de control de acceso, etc. Es muy importante tener memoria ms que suciente para el proceso de Squid, ya que en el caso de tener que pasar el proceso al disco duro, las prestaciones del sistema se reducirn drsticamente. Para facilitar la administracin de la memoria utilizada por el cach, podemos utilizar la herramienta cachemgr.cgi tal y como veremos en el apartado 18.3.7 en la pgina 499. Potencia del procesador Squid no es un programa que consuma mucho CPU. Solamente al arrancar y comprobar el contenido del cach es cuando se trabaja ms intensamente con el procesador. El uso de mquinas con multiprocesador tampoco incrementa el rendimiento del sistema.

488

18.3. Servidor proxy: Squid

Para obtener una mayor efectividad, es preferible aumentar la cantidad de memoria RAM o bien utilizar discos ms rpidos antes que cambiar el procesador por otro ms potente.

18
Internet

18.3.4. Arrancar Squid


Squid ya se encuentra precongurado en SUSE LINUX, as que casi se puede iniciar directamente despus de la instalacin. Los requisitos en este caso son: tener una red ya congurada, al menos un servidor de nombres, y, por supuesto, acceso a Internet. Pueden aparecer problemas en caso de utilizar una conexin telefnica que utilice conguracin dinmica de DNS. En casos como este, al menos el servidor de nombres debe estar claramente especicado, ya que Squid solamente se iniciar si detecta un servidor DNS en el archivo /etc/resolv.conf. Para iniciar Squid, introduzca (como root) el comando rcsquid start en la lnea de comando. Durante el primer inicio del programa se dene la estructura de directorios en var/squid/cache. Esta operacin es llevada a cabo automticamente por el script de inicio /etc/rc.d/squid y puede tardar desde pocos segundos a minutos. Cuando aparezca el mensaje done en color verde a la derecha de la pantalla, signica que Squid ya ha sido cargado. Se puede comprobar si Squid funciona correctamente en el sistema local dando los valores localhost y port 3128 como proxy en cualquier navegador web. Para permitir a todos los usuarios el acceso a Squid y por tanto a Internet, solamente es necesario cambiar una entrada en el archivo de conguracin /etc/squid/squid.conf de http_acces deny all a http_acces allow all. Sin embargo, haciendo esto Squid se hace accesible para cualquiera. Por tanto, en cualquier caso deber congurar listas de control de acceso o ACL para controlar el acceso al proxy. Ms informacin sobre este tema en el apartado 18.3.5 en la pgina 494. Cada vez que se produce un cambio en el archivo de conguracin /etc/ squid/squid.conf, hay que indicar a Squid que vuelva a cargarlo. Esto se puede hacer con el comando: rcsquid reload. De forma alternativa, tambin es posible reiniciar completamente Squid con rcsquid restart. Los siguientes comandos son igualmente importantes: rcsquid status, para determinar si el proxy se encuentra funcionando y rcsquid stop, para detener Squid. Este ltimo comando puede tardar unos momentos ya que Squid espera hasta medio minuto (opcin shutdown_lifetime en /etc/squid/squid.conf) antes de cortar las conexiones con los clientes y entonces todava tendr que guardar los datos en el disco.

SUSE LINUX Manual de Administracin

489

Aviso
Terminar Squid En caso que Squid sea terminado con un comando kill o bien killall, esto puede llevar a la destruccin del cach, que en ese caso tendr que ser borrado completamente para poder reiniciar Squid.

Aviso
Si Squid naliza de forma inesperada tras un corto periodo de tiempo aunque pareciera que se haba iniciado correctamente, puede ser debido a una entrada de DNS incorrecta o bien por no encontrar el archivo /etc/resolv.conf. Squid almacena la causa del error en el archivo /var/squid/logs/cache.log. Si Squid debe cargarse automticamente cada vez que se inicie el sistema, solamente es necesario activarlo en el editor de niveles de ejecucin de YaST. Al desinstalar Squid no se borrar ni el cach ni los archivos de error. Se deber borrar manualmente el directorio /var/cache/squid. Servidor DNS local Congurar un servidor DNS localmente como BIND9 es igualmente importante, incluso aunque el servidor proxy no controle su propio dominio. En ese caso actuar solamente como cach-solamente DNS y de esta manera ser capaz de resolver peticiones DNS a travs del servidor de nombres principal sin necesidad de realizar ninguna conguracin especial. Si introduce en el archivo /etc/resolv.conf una entrada con direccin IP 127.0.0.1 para localhost, Squid detectar un servidor de nombres vlido al iniciarse. La conguracin de un servidor DNS ya es un captulo en si misma y no ser descrita con detalle en este captulo. Ser suciente instalar el paquete e iniciarlo. El servidor de nombres del proveedor deber especicarse en el archivo de conguracin /etc/named.conf bajo forwarders junto con su direccin IP. En caso de disponer de un cortafuegos activado, incluso aunque se trate del cortafuegos personal, tendr que asegurarse que deje pasar las peticiones DNS.

490

18.3. Servidor proxy: Squid

18.3.5. El archivo de conguracin /etc/squid/squid.conf


La conguracin de Squid se almacena en este archivo de conguracin. Para poder iniciar Squid por primera vez, no es necesario hacer cambios en este archivo, aunque los clientes externos tendrn inicialmente el acceso denegado. El proxy necesita ejecutarse en localhost y normalmente utilizar el puerto 3128. Las opciones son muy extensas y estn documentadas con muchos ejemplos en el archivo /etc/squid/squid.conf preinstalado. Casi todas las lneas comienzan por el smbolo # (signica que la lnea est comentada y su contenido no se evaluar); las opciones relevantes se encuentran al nal de la lnea. Los valores por defecto corresponden casi siempre a los valores que necesitaremos, as que para muchas opciones slo ser necesario quitar el smbolo de comentario al principio de la lneas. De cualquier modo, es mejor dejar el ejemplo comentado y reescribir la lnea con los nuevos parmetros una lnea ms abajo. De esta manera se puede ver fcilmente cuales son los valores por defecto y cuales son los cambios introducidos.

18
Internet

Atencin
Actualizacin de la versin 2.4 a la versin 2.5 Despus de actualizar Squid de la versin 2.4 a la versin 2.5 es necesario borrar el cach de Squid, ya que el esquema de la estructura de directorios ha cambiado.

Atencin
Si est actualizando desde una versin anterior de Squid, se recomienda editar el nuevo /etc/squid/squid.conf y aadirle la conguracin del archivo anterior. Si trata de implementar directamente el antiguo archivo de conguracin /etc/squid.conf, es posible que no funcione correctamente debido a modicaciones en algunas opciones o a los nuevos cambios en la nueva versin. Opciones generales de conguracin (seleccin) http_port 3128 Este es el puerto en el que Squid escuchar las peticiones de los clientes. El puerto por defecto es 3128, aunque 8080 se usa tambin comnmente. Es posible especicar varios puertos separndolos por espacios en blanco. cache_peer <hostname> <tipo> <puerto-proxy> <puerto-icp> En esta opcin podemos especicar otro servidor proxy como padre (parent ), por ejemplo si quiere o debe usar el de su proveedor

SUSE LINUX Manual de Administracin

491

o ISP. En la opcin <hostname>, se especica el nombre y la direccin IP del proxy al que nos vayamos a conectar, en la opcin <tipo>, especicamos parent. Para <puerto-proxy>, se debe escribir el nmero de puerto, el que tambin se especica para los navegadores, normalmente se utiliza el 8080. Se puede jar el <puerto-icp> a 7 o bien 0 si no se conoce el puerto ICP del proxy padre y su uso carece de inters para el proveedor. Adems de esto, default y no-query se deben especicar despus de los nmeros de puerto para no permitir el uso del protocolo ICP. Squid se comportar en ese caso como un navegador normal en lo que respecta al proxy del proveedor. cache_mem 8 MB Esta entrada dene la cantidad mxima de memoria RAM que utilizar Squid para los cachs. El valor por defecto es 8 MB. cache_dir ufs /var/cache/squid 100 16 256 La entrada correspondiente a cache_dir ja el directorio donde se almacenarn los datos. Los nmeros al nal indican el tamao mximo en MB que se va a utilizar, seguido del nmero de directorios de primer y segundo nivel. El parmetro ufs debe dejarse tal y como est. El valor por defecto es 100 MB de espacio en disco ocupado en el directorio /var/cache/squid, para luego crear 16 subdirectorios ms, y en cada uno de ellos se crearn 256 directorios ms. Al especicar el espacio de disco a utilizar, siempre se debe dejar espacio suciente de reserva. Se recomienda manejar valores de tamao para el cach entre el 50 a un 80 por ciento del espacio total disponible. Los ltimos dos nmeros slo deben ser incrementados con precaucin ya que demasiados directorios pueden provocar problemas de funcionamiento. En caso de disponer de ms discos para repartir entre ellos el cach, se pueden especicar varias lneas de cache_dir. cache_access_log /var/log/squid/access.log ruta para archivos log. cache_log /var/log/squid/cache.log ruta para archivos log. cache_store_log /var/log/squid/store.log Ruta para archivos log. Estas tres entradas especican la ruta donde Squid guardar sus archivos de registro. Normalmente no hace falta cambiar nada. Si Squid soporta una carga relativamente elevada, puede ser necesario distribuir el cach y estos archivos de registro en discos diferentes.

492

18.3. Servidor proxy: Squid

emulate_httpd_log off Si la entrada est congurada a on, se puede obtener archivos de log en formato legible. Sin embargo, algunos programas de evaluacin no pueden interpretarlos. client_netmask 255.255.255.255 Con esta entrada, es posible enmascarar las direcciones IP en los archivos de control para ocultar la identidad de los clientes. Especicando en esta opcin el valor 255.255.255.0, el ltimo dgito de la direccin IP se interpretar como cero. ftp_user Squid@ Con esta opcin se puede jar la contrasea que Squid utilizar para realizar el registro (ingl. login) para FTP annimo. Es importante especicar una direccin de correo electrnico vlida, ya que algunos servidores FTP pueden comprobar si es vlida o no. cache_mgr webmaster Direccin de correo electrnico a la que el Squid enviar un mensaje en caso que termine inesperadamente. Por defecto se enviarn al webmaster. logle_rotate 0 Squid puede rotar archivos de registro al ejecutar la orden squid -k rotate. Los archivos sern enumerados en este proceso y despus de alcanzar el valor especicado, el archivo ms antiguo ser sobreescrito. El valor que se utiliza normalmente es 0 ya que para archivar y borrar archivos de registro en SUSE LINUX se utiliza un cronjob que se puede encontrar en el archivo de conguracin /etc/logrotate/syslog. append_domain <dominio> Con la opcin append_domain, se puede especicar qu dominio se aadir automticamente en caso de que no se facilite ninguno. Normalmente se especica el propio dominio, de forma que basta con introducir www en el navegador para acceder al servidor web propio. forwarded_for on Al apagar esta opcin y ponerla a off, Squid eliminar las direcciones IP y el nombre de la mquina de los clientes en las peticiones HTTP. negative_ttl 5 minutes; negative_dns_ttl 5 minutes Normalmente no es necesario cambiar estos valores. En caso de disponer de una conexin telefnica puede ser que a veces no se pueda acceder a Internet. Squid tomar nota de las peticiones fallidas y se negar a realizarlas otra vez, incluso aunque la conexin ya se haya restablecido. En ese caso puede cambiar el valor minutes a seconds. Despus de esto, al pulsar en el botn de Recargar en el navegador la conexin se reiniciar al cabo de unos segundos.

18
Internet
493

SUSE LINUX Manual de Administracin

never_direct allow <acl_name> Si desea impedir que Squid conteste a peticiones que vengan directamente de Internet, puede utilizar el siguiente comando para forzar la conexin a otro proxy. Este debe estar ya introducido en la opcin cache_peer. Si se especica como <acl_name> el valor all, todas las peticiones sern redirigidas al cach padre. Esto puede ser necesario, por ejemplo, en caso de disponer de un proveedor que estipule estrictamente el uso de sus proxys o que no permita acceso directo a Internet a travs de su cortafuegos. Listas de control de acceso o ACLs Squid implementa un inteligente sistema para controlar el acceso al proxy que puede congurarse fcil y detalladamente mediante las ACLs. Se trata de normas procesadas secuencialmente. Las ACLs deben ser denidas antes de poderse utilizar. Algunas ACLs como all y localhost ya estn denidas. La mera denicin de una ACL no tiene ningn efecto. Es necesario que se ponga en funcionamiento por ejemplo con http_access para que puedan procesarse las reglas denidas anteriormente. acl <acl_nombre> <tipo> <datos> Una ACL necesita por lo menos tres especicaciones para denirla. El nombre <acl_nombre> se puede elegir arbitrariamente. Para el <tipo> se puede elegir de entre diferentes opciones disponibles en la seccin ACCESS CONTROLS del archivo /etc/squid/squid.conf. La parte de datos depende del tipo de ACL y tambin puede ser leda desde un archivo, por ejemplo que contenga nombres de mquinas, direcciones IP o bien URLs. A continuacin unos ejemplos:
acl acl acl acl usuarios srcdomain .mi-dominio.com profesores src 192.168.1.0/255.255.0.0 alumnos src 192.168.7.0-192.168.9.0/255.255.0.0 medioda time MTWHF 12:00-15:00

http_access allow <acl_nombre> http_access dene a quin le est permitido usar el proxy y quin puede acceder a Internet. Para todo esto se debern denir primero las ACL correspondientes. localhost y all ya han sido denidas con anterioridad. En general se puede permitir el acceso mediante allow o bien negarlo con deny. Se puede crear una lista completa de entradas http_access que ser procesada de arriba hacia abajo y dependiendo de cmo estn conguradas las reglas se podr acceder o no a Internet para cada URL. Por eso la ltima entrada de todas debe ser http_access deny all.

494

18.3. Servidor proxy: Squid

En el ejemplo siguiente localhost dispone de acceso libre mientras que todos los otros hosts tienen el acceso denegado.
http_access allow localhost http_access deny all

18
Internet

Otro ejemplo donde se utilizan las reglas denidas anteriormente: el grupo profesores siempre tendr acceso a Internet, mientras que el grupo alumnos solamente tiene acceso de lunes a viernes durante el medioda.
http_access http_access http_access http_access deny localhost allow profesores allow alumnos medioda time deny all

Esta lista con las entradas para http_access deber colocarse en la parte del archivo /etc/squid/squid.conf a partir de la entrada
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR # CLIENTS

y nalizar en
http_access deny all

redirect_program /usr/bin/squidGuard Con esta opcin se puede especicar un programa de redireccin como squidGuard capaz de bloquear el acceso a URL no deseadas. El acceso a Internet puede ser controlado individualmente para varios grupos de usuarios con la ayuda de autenticacin por proxy y listas de control de acceso apropiadas. squidGuard es un paquete independiente que se debe instalar y congurar separadamente. authenticate_program /usr/sbin/pam_auth Si los usuarios deben ser autenticados en el proxy, se puede especicar un programa que realice esta funcin como pam_auth. Cuando se accede a pam_auth por primera vez, el usuario ver una pantalla de login donde se deber introducir el nombre de usuario y la contrasea. Adems ser necesario especicar una ACL correspondiente para que slo los usuarios registrados puedan acceder a Internet:

SUSE LINUX Manual de Administracin

495

acl password proxy_auth REQUIRED http_access allow password http_access deny all

El texto REQUIRED despus de proxy_auth debe ser sustituido por una lista de usuarios permitidos o por la ruta a una lista. ident_lookup_access allow <acl_nombre> Con esta opcin se consigue que para todos los clientes que pertenezcan a la ACL especicada se ejecute un programa que determine la identidad del cliente. Al especicar el valor all como <acl_nombre>, esto ser vlido para todos los clientes. Para esto deber ejecutar un daemon denominado ident en todos los clientes. En Linux, se puede utilizar para este propsito el paquete pidentd; para Windows, hay software libre disponible que se puede descargar de Internet. Para asegurar que slo se permite acceso a clientes correctamente identicados, se deber igualmente especicar otra ACL tal y como se dene a continuacin:
acl identhosts ident REQUIRED http_access allow identhosts http_access deny all

Aqu tambin se puede cambiar el valor REQUIRED por una lista de usuarios autorizados. El uso de ident puede reducir la velocidad del sistema debido a que el proceso de autenticacin se repite para cada peticin.

18.3.6.

Conguracin de un proxy transparente

Normalmente la forma en la que se trabaja con servidores proxy es la siguiente: el navegador web enva peticiones a un puerto determinado del servidor proxy, y este se encarga de servirle las pginas, se encuentren o no en su cach. A la hora de trabajar con una red real se pueden dar los siguientes casos: Por motivos de seguridad, es ms seguro que todos los usuarios utilicen un proxy para navegar por Internet. Se requiere que todos los usuarios utilicen un proxy, sean los usuarios conscientes de ello o no.

496

18.3. Servidor proxy: Squid

Si el proxy de una red cambia de ubicacin, los clientes existentes mantienen su antigua conguracin. En cualquiera de estos casos se puede utilizar un proxy transparente. El principio es muy sencillo: el proxy intercepta y responde a las peticiones del navegador web, as que el navegador recibir las pginas solicitadas sin saber exactamente de dnde provienen. El proceso completo se realiza de forma transparente, de ah el nombre que este procedimiento recibe. Conguracin del kernel Primero hay que comprobar que el kernel del servidor proxy dispone de soporte para proxy transparente. En caso contrario habr que aadir estas opciones al kernel y compilarlo de nuevo. Ms detalles sobre este proceso en el capitulo 11 en la pgina 271. Los mdulos del kernel cambian en cada versin. Compruebe el estado del actual en /usr/share/doc/howto/ en/html/mini/TransparentProxy-3.html o en Internet: http:// www.tldp.org/HOWTO/mini/TransparentProxy-3.html. Opciones de conguracin en /etc/squid/squid.conf Ahora vamos a ocuparnos de las opciones que hay que activar en el archivo /etc/squid/squid.conf para activar el proxy transparente. Dichas opciones son: httpd_accel_host virtual httpd_accel_port 80 # nmero de puerto del servidor HTTP httpd_accel_with_proxy on httpd_accel_uses_host_header on Conguracin del cortafuegos con SuSErewall2 Ahora slo falta redirigir las peticiones de los clientes por el cortafuegos hacia el puerto en el que est Squid. Para la conguracin utilizaremos la herramienta proporcionada por SuSE SuSErewall2. El archivo de conguracin correspondiente se encuentra en /etc/sysconfig/scripts/ SuSEfirewall2-custom. Este archivo est formado por diferentes entradas muy bien documentadas. Tendremos que congurar algunas opciones ms. En nuestro ejemplo: Dispositivo apuntando a Internet: FW_DEV_EXT="eth1"

18
Internet
497

SUSE LINUX Manual de Administracin

Dispositivo apuntando a la red: FW_DEV_INT="eth0" Se acceder a los puertos y servicios (ver /etc/exports) del cortafuegos desde redes no seguras como Internet. En este ejemplo slo se especican servicios web hacia el exterior: FW_SERVICES_EXT_TCP="www" Se acceder a los puertos y servicios (ver /etc/exports) del cortafuegos desde la red segura. Tanto TCP como UDP: FW_SERVICES_INT_TCP="domain www 3128" FW_SERVICES_INT_UDP="domain" Accedemos a servicios web y al programa Squid (cuyo puerto por defecto es 3128). El servicio domain especicado anteriormente se trata del DNS o Domain Name Server. Lo ms normal es utilizar este servicio, pero en caso contrario, se elimina de las entradas superiores y se congura la opcin siguiente a no: FW_SERVICE_DNS="yes" La opcin ms importante es la nmero 15: Ejemplo 18.1: Opcin 15 de la conguracin del cortafuegos
# # # # # # # # # # # # # # # # 15.) Which accesses to services should be redirected to a localport on the firewall machine? This can be used to force all internal users to surf via your squid proxy, or transparently redirect incoming webtraffic to a secure webserver. Choice: leave empty or use the following explained syntax of redirecting rules, separated by a space. A redirecting rule consists of 1) source IP/net, 2) destination IP/net, 3) original destination port and 4) local port to redirect the traffic to, separated by a colon. e.g. "10.0.0.0/8,0/0,80,3128 0/0,172.20.1.1,80,8080"

Los comentarios indican la sintaxis que hay que seguir. En primer lugar, se escribe la direccin IP y la mscara de las redes internas de donde vienen nuestros datos. En segundo lugar, la direccin IP y la mscara de red a donde se dirigen las peticiones. En el caso de navegadores web, especicaremos la direccin de red 0/0, un comodn que quiere decir a cualquier direccin. A continuacin, el nmero de puerto original al que se dirigen las peticiones, y nalmente, el puerto a donde redirigimos las peticiones.

498

18.3. Servidor proxy: Squid

Como Squid tiene soporte para ms protocolos adems de http; existe la posibilidad de desviar las peticiones dirigidas a otros puertos al proxy, como por ejemplo FTP (puerto 21), HTTPS o SSL (Puerto 443). En el ejemplo dado, los servicios web (puerto 80) se desvan al puerto del proxy (aqu 3128). En el caso de disponer de ms redes para aadir, slo hace falta separar las diferentes entradas con un espacio en blanco en la lnea correspondiente. FW_REDIRECT_TCP="192.168.0.0/16,0/0,80,3128 192.168.0.0/16,0/0,21,3128" FW_REDIRECT_UDP="192.168.0.0/16,0/0,80,3128 192.168.0.0/16,0/0,21,3128" Para que el cortafuegos se inicie y con l la nueva conguracin, se debe editar una entrada en el archivo /etc/sysconfig/SuSEfirewall2 y asignar el valor "yes" a la entrada FW_START: Inicie Squid tal como se mostr en el apartado 18.3.4 en la pgina 489. Para comprobar que todo funciona correctamente, compruebe los archivos de registro de Squid en /var/log/squid/access.log. Para vericar que todos los puertos estn correctamente congurados, se puede realizar un escaneo de puertos en la mquina desde un ordenador que se encuentre fuera de la red local. Slo deber estar abierto el puerto de servicios web (80). Para llevar a cabo el portscan se puede utilizar nmap -O direccin_IP .

18
Internet

18.3.7. Squid y otros programas


En esta seccin veremos cmo otros programas interactan con Squid. cachemgr.cgi permite al administrador del sistema comprobar la cantidad de memoria necesaria para cachear los objetos, squidGuard ltra pginas web, y calamaris es un generador de informes para Squid. cachemgr.cgi El administrador de cach (cachemgr.cgi) es una utilidad CGI para mostrar estadsticas sobre el consumo de memoria del proceso Squid. Este mtodo representa una forma ms sencilla de controlar el uso del cach y ver estadsticas sin necesidad de registrarse en el servidor. Conguracin En primer lugar, se necesita tener un servidor web ejecutndose en el sistema. Para comprobar si Apache est funcionando, escriba como usuario root: rcapache status.

SUSE LINUX Manual de Administracin

499

Si aparece un mensaje como el siguiente, Apache se est ejecutando en el ordenador:


Checking for service httpd: OK Server uptime: 1 day 18 hours 29 minutes 39 seconds

Si no es as, ejecute el comando rcapache start para iniciar Apache con la conguracin por defecto de SUSE LINUX. El ltimo paso es copiar el archivo cachemgr.cgi del directorio /usr/ share/doc/packages/squid/scripts/ al directorio de Apache /srv/www/cgi-bin. ACLs para el administrador de cach en /etc/squid/squid.conf Hay algunas opciones conguradas ya por defecto en el archivo de conguracin para el administrador de cach:
acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255

Con las siguientes normas de acceso:


http_access allow manager localhost http_access deny manager

La primera ACL es la ms importante, ya que el administrador de cach tratar de comunicarse con Squid mediante el protocolo cache_object. Las reglas siguientes asumen que el servidor web y Squid se encuentran en la misma mquina. Si la comunicacin entre el administrador de cach y Squid se origina en el servidor de web en otro ordenador, tendremos que incluir una ACL adicional como en la gura 18.2. Ejemplo 18.2: Reglas de acceso
acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl webserver src 192.168.1.7/255.255.255.255 # IP webserver

500

18.3. Servidor proxy: Squid

Tambin son necesarias las reglas siguientes del archivo 18.3. Ejemplo 18.3: Reglas de acceso
http_access allow manager localhost http_access allow manager webserver http_access deny manager

18
Internet

Igualmente tambin se puede congurar una contrasea para el administrador si deseamos tener acceso a ms opciones, como por ejemplo poder cerrar el cach de forma remota o ver ms informacin sobre el mismo. En ese caso slo hay que congurar la entrada cachemgr_passwd con una contrasea para el administrador y la lista de opciones que deseamos ver. Esta lista aparece como una parte de los comentarios a la entrada en /etc/squid/squid.conf. Cada vez que se modique el archivo de conguracin es necesario reiniciar Squid. Utilice para ello el comando rcsquid reload. Leer las estadsticas En primer lugar, dirjase a la pgina web correspondiente: http:// miservidor.ejemplo.org/cgi-bin/cachemgr.cgi. Pulse en continue y navegue a travs de las diferentes estadsticas. Hay ms detalles para cada entrada mostrada por el administrador de cachs en la FAQ de Squid en la http://www.squid-cache.org/Doc/FAQ/FAQ-9.html. squidGuard Este captulo no pretende mostrar una conguracin completa de squidGuard, sino ms bien presentarlo y comentar su utilizacin. Para ver las opciones de conguracin con ms detalle, visite la web de squidGuard en http://www.squidguard.org. squidGuard es un programa gratuito, bajo licencia GPL, que funciona como un ltro exible ultra rpido capaz de redireccionar pginas web y que funciona como plugin de control de acceso para Squid. Permite denir diversas reglas de acceso con diferentes restricciones para distintos grupos de usuarios que trabajen sobre un cach de Squid. squidGuard utiliza la interfaz estndar de redireccin de Squid. Algunos ejemplos de utilizacin de squidGuard:

SUSE LINUX Manual de Administracin

501

Limitar el acceso por web para una serie de usuarios a una lista de servidores web o URL conocidas y aceptadas. Bloquear el acceso para algunos usuarios a servidores web o URLs que estn en alguna lista negra. Bloquear para algunos usuarios el acceso a URLs que coincidan con una determinada lista de expresiones o palabras. Redireccionar URLs bloqueadas a una pgina de informacin inteligente basada en CGI. Redireccionar usuarios no registrados a una pgina de registro. Redireccionar banners a un GIF vaco. Tener diferentes normas de acceso basadas en la hora del da, da de la semana, etc. Tener diferentes normas para diferentes grupos de usuarios. Ni squidGuard ni Squid se pueden usar para: Editar, ltrar o censurar texto dentro de documentos. Editar, ltrar o censurar lenguajes de script con HTML embebido como JavaScript o VBscript. Utilizar squidGuard Instale el paquete squidgrd. Edite un archivo mnimo de conguracin /etc/squidguard.conf. Hay muchos ejemplos diferentes de conguracin en http://www.squidguard.org/config/. Siempre se puede experimentar ms tarde con conguraciones ms complicadas. El paso siguiente es crear una pgina web que ser la pgina que mostrar el mensaje de acceso denegado o una pgina CGI ms o menos inteligente a la cual redirigir Squid en caso que algn cliente pida algn sitio web que est en la lista negra. Una vez ms, el uso de Apache es altamente recomendable. Ahora debemos decirle a Squid que utilice squidGuard. Lo haremos mediante las siguientes entradas en el archivo /etc/squid/squid.conf: redirect_program /usr/bin/squidGuard

502

18.3. Servidor proxy: Squid

Existe todava otra opcin llamada redirect_children que congura el nmero de procesos diferentes para redirigir (en este caso procesos de squidGuard). squidGuard es sucientemente rpido para procesar grandes cantidades de solicitudes (squidGuard es realmente rpido: 100.000 consultas en 10 segundos en un Pentium 500MHz con 5.900 dominios, 7.880 URLs, en total 13.780). Por eso no se recomienda congurar ms de cuatro procesos a la vez para no gastar memoria innecesariamente en la asignacin de los procesos. redirect_children 4 Por ltimo vuelva a cargar la conguracin de Squid con rcsquid reload. A continuacin ya se puede comprobar la conguracin con cualquier navegador. Generacin de informes con Calamaris Calamaris es un script en Perl utilizado para generar informes de la actividad del cach en formatos ASCII o HTML. Funciona directamente con los archivos de registro de acceso de Squid. La pgina web de Calamaris est en http://Calamaris.Cord.de/. La utilizacin del programa es bastante fcil. Entre al sistema como root y ejecute: cat access.log.files | calamaris [options] > reportfile. Al enviar ms de un archivo de registro es importante que estos estn cronolgicamente ordenados, es decir, primero los archivos ms antiguos. Las diferentes opciones: -a -w -l utiliza todos los informes disponibles muestra los resultados en formato HTML muestra un mensaje o un logotipo en la cabecera del informe

18
Internet
503

Puede obtener ms informacin sobre las diferentes opciones del programa en la pgina de manual de calamaris: man calamaris. Otro completo generador de informes es SARG (Squid Analysis Report Generator). . Ms informacin sobre SARG se puede encontrar en las pginas web correspondientes en: http://web.onda.com.br/orso/

SUSE LINUX Manual de Administracin

18.3.8.

Informacin adicional sobre Squid

Visite la pgina web de Squid: http://www.squid-cache.org/. Aqu encontrar la Gua de Usuario de Squid y una extensa coleccin de FAQ sobre Squid. El Mini-Howto sobre proxys transparentes se encuentra en el paquete howtoen, bajo /usr/share/doc/howto/en/mini/ TransparentProxy.gz Tambin existen listas de correo para Squid en: squid-users@squidcache.org. El archivo para estas listas se encuentra en: http://www. squid-cache.org/mail-archive/squid-users/

504

18.3. Servidor proxy: Squid

19
Seguridad en la red

Seguridad en la red

Enmascaramiento (masquerading), cortafuegos (rewall ) y Kerberos constituyen los fundamentos de una red segura en la que el trco de datos se encuentra bajo control. La SSH, (Secure Shell ), ofrece al usuario la oportunidad de realizar una conexin codicada con un ordenador remoto. En el apartado que viene a continuacin, le explicamos cmo puede utilizar este gran abanico de posibilidades.

19.1. Cortafuegos y masquerading . . . . . . . 19.2. SSH secure shell, la alternativa segura . 19.3. Autenticacin en la red Kerberos . . . 19.4. Instalacin y administracin de Kerberos 19.5. La seguridad, una cuestin de conanza .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

506 513 519 526 544

19.1.

Cortafuegos y masquerading

Debido a las extraordinarias caractersticas de Linux en lo que se reere a redes, este sistema se utiliza cada vez ms como enrutador (router) tanto en conexiones telefnicas como en lneas dedicadas. Con el concepto de enrutador nos referimos aqu a un ordenador que tiene ms de una interfaz de red y que reenva paquetes que no son para una de sus propias interfaces de red a sus equivalentes en otras redes. A menudo a un enrutador se le denomina pasarela (gateway). Los ltros de paquetes disponibles en el kernel de Linux posibilitan un control adecuado sobre los paquetes del trco de datos en la red a los que se permite pasar y a los que no. La conguracin de las normas adecuadas para este ltrado de datos requiere algo de experiencia por parte del administrador. SUSE Linux incluye, para los usuarios con menos experiencia un paquete independiente que facilitan la conguracin de estas normas: SuSEfirewall2. SuSEfirewall2 puede congurarse con gran exibilidad, lo que le hace muy apropiado para la construccin de complejos ltros. Mediante esta solucin de ltro de paquetes y por medio de masquerading, un ordenador Linux puede actuar como enrutador para unir una red interna a una nica direccin IP visible desde el exterior a travs de una lnea telefnica o dedicada. El masquerading se lleva a cabo con ayuda de las normas del ltrado de paquetes.

Aviso
Este captulo describe un procedimiento estndar que debera funcionar correctamente en la mayora de los casos. Sin embargo, aunque la informacin es lo ms exacta y completa posible, no se ofrece ninguna garanta. SuSE no asume ninguna responsabilidad sobre el xito o fracaso de sus medidas de seguridad. Le agradecemos de antemano sus crticas y sugerencias. An cuando no reciba una respuesta directa de nuestra parte, puede estar seguro de que agradecemos la crtica y las sugerencias y de que intentaremos incorporar las mejoras.

Aviso

506

19.1. Cortafuegos y masquerading

19.1.1. Fundamentos del masquerading


Masquerading es la adaptacin a Linux de NAT (Network Address Translation), la traduccin de direcciones de red. El principio en el que se sustenta es bastante sencillo: Su enrutador tiene ms de una interfaz de red, que por regla general suelen ser una tarjeta de red y un mdem (o una interfaz RDSI). Vd. se conecta con el exterior por medio de una de estas interfaces; otra u otras conectan su ordenador con otros ordenadores en su misma red. Por ejemplo, se debe conectar al exterior va RDSI y la interfaz de red exterior es ippp0. Vd. tiene ms de un ordenador en la red local conectados con la tarjeta de red de su enrutador Linux, que en este ejemplo es eth0. Los ordenadores de la red reenvan todos los paquetes que no son para la propia red al enrutador o pasarela predeterminados.

19
Seguridad en la red

Atencin
Al congurar su red, asegrese de que las direcciones de retransmisin (broadcast ) y las mscaras de red coinciden.

Atencin
Si uno de los ordenadores de su red enva un paquete a Internet, este llega al enrutador por defecto. El enrutador debe estar congurado de tal forma que reenve dichos paquetes. Por razones de seguridad, la conguracin predeterminada de SUSE LINUX no lo hace. Modique la variable IP_FORWARD en el archivo /etc/sysconfig/sysctl y asgnele el valor IP_FORWARD=yes. Para que el reenvo se active, debe reiniciar o escribir el siguiente comando: echo 1 > /proc/sys/net/ipv4/ip_forward La mquina destino slo conoce el enrutador, y no el ordenador en s de su red interna desde la que se envi el paquete, puesto que esta queda escondida detrs del enrutador. De ah viene el concepto enmascarar (masquerading). Debido a la traduccin de direcciones, la direccin de destino del paquete de respuesta es de nuevo el enrutador. Este debe reconocer el paquete y modicar la direccin de destino para que aterrice en el ordenador correcto de la red local. Este reconocimiento de paquetes pertenecientes a conexiones originadas por el masquerading del enrutador, se produce por medio de una tabla que se mantiene directamente en el kernel del enrutador mientras las conexiones correspondientes estn activas. El superusuario (root) puede ver esta tabla incluso con el comando iptables. Consulte la pgina man de este comando para encontrar indicaciones ms precisas.

SUSE LINUX Manual de Administracin

507

A la hora de identicar una determinada conexin enmascarada, tambin son importantes las direcciones del remitente y de destino, as como el nmero de protocolo y los protocolos que participan. De este modo es posible que su enrutador pueda proporcionar simultneamente varias conexiones para cada uno de los ordenadores locales. Puesto que el camino que realizan los paquetes de fuera adentro depende de las tablas del masquerading, no hay ninguna posibilidad de abrir una conexin desde fuera hacia adentro. No habra ninguna entrada para esta conexin es las tablas. Una conexin ya establecida tiene un estado asignado en las tablas, de tal forma que esta entrada no pueda ser utilizada por una segunda conexin. En lo sucesivo esto da lugar a problemas con algunas aplicaciones, como por ejemplo, con ICQ, cucme, IRC (DCC, CTCP), Quake y FTP (en modo PORT). Netscape, el programa estndar de FTP y muchas otras utilizan el modo PASV, que causa pocos problemas con el ltrado de paquetes y el masquerading.

19.1.2.

Fundamentos del cortafuegos

El cortafuegos (rewall ) es de hecho el concepto ms extendido para un mecanismo que conecta dos redes y que pretende controlar el trco de datos en la medida de lo posible. Existen distintos tipos de cortafuegos que de hecho se diferencian en el nivel lgico y abstracto en el que se examina y controla el trco de datos. En realidad, los mtodos que presentamos aqu se deberan llamar con ms precisin ltro de paquetes. Un ltro de paquetes regula el pasaje siguiendo criterios como el protocolo, el puerto y la direccin IP. De esta forma, tambin pueden interceptar paquetes que, debido a las seas que incluyen, no deberan entrar en su red. Por ejemplo, deben interceptar paquetes que tengan como destino el puerto 23 del servicio de telnet de su ordenador. Si quiere, por ejemplo, permitir el acceso a su servidor de web, entonces debe dejar libre el puerto correspondiente. No se examinar el contenido de estos paquetes, si la direccin es la correcta (por ejemplo, que el destino sea su servidor web). El paquete podra contener un ataque a un programa CGI de su servidor web y el ltro de paquetes lo dejara pasar. Una construccin ecaz, aunque compleja, es la combinacin de distintos tipos de elaboracin, por ejemplo, un ltro de paquetes al que se le aaden otras aplicaciones gateway/proxy. El ltro rechazara paquetes que, por ejemplo, se dirigen a puertos que no estn liberados. Slo dejaran pasar a paquetes para una aplicacin gateway. Este proxy actuara como si fuera

508

19.1. Cortafuegos y masquerading

el equivalente comunicativo real del servidor que establece una conexin con otros. En este sentido, se puede considerar a un proxy de este tipo como una mquina masquerading en el nivel del protocolo de la aplicacin correspondiente. Un ejemplo de este tipo de proxies es Squid, un servidor proxy HTTP para el que debe congurar su servidor de tal manera que las solicitudes de pginas html pasen primero por la memoria del proxy y, slo en caso de no encontrar all la pgina, sean enviadas por el proxy a Internet. El paquete proxy de SuSE (paquete proxy-suite) contiene un servidor proxy para el protocolo FTP. A continuacin nos concentraremos en el ltro de paquetes de SUSE LINUX. Para ms informacin y enlaces sobre cortafuegos, lea el Firewall HOWTO, que se incluye en howtoes. Si howtoes est instalado, tambin lo puede leer con el comando less /usr/share/doc/howto/es/Cortafuegos-Como.gz

19
Seguridad en la red

19.1.3. SuSErewall2
La conguracin de SuSErewall2 requiere un cierto grado de experiencia y conocimientos. En /usr/share/doc/packages/SuSEfirewall2 se encuentra la documentacin de SuSErewall2. La conguracin se puede realizar con YaST (vase la seccin 19.1.3 en la pgina 512) o directamente en el archivo /etc/sysconfig/ SuSEfirewall2. Conguracin manual Le guiaremos paso a paso para que pueda realizar una conguracin adecuada. En cada punto se indica si es vlido para masquerading o para cortafuegos. En los cheros de conguracin tambin se habla de una DMZ (zona desmilitarizada), que no se tratar con ms detalle en estas lneas. En caso de que slo necesite masquerading, rellene slo las lneas en las que se indica Masquerading. Active SuSErewall2 con el editor de niveles de ejecucin de YaST para su nivel de ejecucin (probablemente 3 5). De este modo, se introducirn enlaces simblicos para los scripts SuSErewall2_* en los directorios /etc/init.d/rc?.d/. FW_DEV_WORLD (rewall, masquerading): por ejemplo eth0, como dispositivo que conduce a Internet. Con RDSI es por ejemplo ippp0.

SUSE LINUX Manual de Administracin

509

FW_DEV_INT (rewall, masquerading): Introduzca aqu el dispositivo que le indica la red interna privada. Si no dispone de ninguna red interna, djelo vaco. FW_ROUTE (rewall, masquerading): Si necesita masquerading, debe introducir yes en este punto. Las mquinas internas no sern visibles desde afuera, ya que tienen direcciones de red privadas (por ejemplo 192.168.x.x), que no se muestran en Internet. Con un cortafuegos sin masquerading, escoja aqu yes, si quiere permitir el acceso a la red interna. Para ello, las mquinas internas deben tener direcciones IP asignadas ocialmente. En casos normales, no debera permitir el acceso desde fuera a las mquinas internas. FW_MASQUERADE (masquerading): Si necesita masquerading, introduzca yes. Tenga en cuenta que es ms seguro es que la red interna acceda a Internet a travs de un servidor proxy. FW_MASQ_NETS (masquerading): Indique aqu el ordenador o red para la que se realizar masquerading. Separe las entradas con un espacio en blanco. Por ejemplo: FW_MASQ_NETS="192.168.0.0/24 192.168.10.1" FW_PROTECT_FROM_INTERNAL (rewall): Introduzca yes, si tambin quiere proteger el ordenador que hace de cortafuegos. Para ello debe dejar libres explcitamente los servicios disponibles para la red interna. Ver tambin FW_SERVICES_INTERNAL_TCP y FW_SERVICES_INTERNAL_UDP. FW_AUTOPROTECT_GLOBAL_SERVICES (rewall): En casos normales djelo en yes. FW_SERVICES_EXTERNAL_TCP (rewall): Introduzca aqu los servicios a los que se debe tener acceso; por ejemplo www smtp ftp domain 443 para el ordenador domstico que no ofrece ningn servicio no escriba nada. FW_SERVICES_EXTERNAL_UDP (rewall): Si no utiliza an un servidor de nombres al que se debe acceder desde fuera, djelo vaco. En caso contrario, indique aqu los puertos adecuados. FW_SERVICES_INTERNAL_TCP (rewall): Aqu se denen los servicios a disposicin de la red interna. Las entradas son similares a las de FW_SERVICES_EXTERNAL_TCP, pero aqu se reeren a la red interna. FW_SERVICES_INTERNAL_UDP (rewall): Ver arriba.

510

19.1. Cortafuegos y masquerading

FW_TRUSTED_NETS (rewall): Indique aqu los ordenadores de conanza (trusted hosts). Tenga en cuenta que estos tambin deben estar protegidos de posibles agresiones. 172.20.0.0/16 172.30.4.2 signica que todos los ordenadores cuya direccin IP empieza con 172.20.x.x, as como el ordenador con la direccin IP 172.30.4.2, pueden atravesar el cortafuegos. FW_SERVICES_TRUSTED_TCP (rewall): Indique direccin del puerto TCP que utilizarn los ordenadores de conanza. Escriba por ejemplo 1:65535, si todos los ordenadores de conanza pueden acceder a todos los servicios. Normalmente basta con indicar ssh como servicio. FW_SERVICES_TRUSTED_UDP (rewall): Como arriba, pero en relacin a UDP. FW_ALLOW_INCOMING_HIGHPORTS_TCP (rewall): Si trabaja con un FTP normal (activo), introduzca ftp-data. FW_ALLOW_INCOMING_HIGHPORTS_UDP (rewall): Escriba dns, para poder utilizar los servidores de nombres introducidos en /etc/resolv.conf. Con yes deja libres todos los nmeros altos de puertos. FW_SERVICE_DNS (rewall): Si dispone de un servidor de nombres, al que debe poder accederse desde fuera, introduzca yes; en FW_TCP_SERVICES_* se debe liberar el puerto 53. FW_SERVICE_DHCLIENT (rewall): Si utiliza dhclient, para recibir una direccin IP, introduzca yes. FW_LOG_*: Aqu puede indicar lo que quiere registrar en los archivos log. Para el sistema en funcionamiento, basta con yes en FW_LOG_DENY_CRIT. FW_STOP_KEEP_ROUTING_STATE (rewall): Si accede a Internet automticamente con diald o va RDSI (dial on demand), introduzca yes. La conguracin ha nalizado. No olvide probar el cortafuegos (por ejemplo telnet desde fuera); deber ver las siguientes entradas en /var/ log/messages:
Mar 15 13:21:38 linux kernel: SFW2-INext-DROP-DEFLT IN=eth0 OUT= MAC=00:80:c8:94:c3:e7:00:a0:c9:4d:27:56:08:00 SRC=192.168.10.0

19
Seguridad en la red
511

SUSE LINUX Manual de Administracin

DST=192.168.10.1 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=15330 DF PROTO=TCP SPT=48091 DPT=23 WINDOW=5840 RES=0x00 SYN URGP=0 OPT (020405B40402080A061AFEBC0000000001030300)

Conguracin con YaST La conguracin grca con YaST se realiza en el Centro de Control de YaST. Una vez all, seleccione el apartado Firewall del men Seguridad y Usuarios. La conguracin est dividida en cuatro secciones: Conguracin bsica Dena aqu las interfaces que quiere proteger. Si se trata de un nico ordenador o una red interna, introduzca la interfaz dirigida hacia el exterior (hacia Internet). Si detrs de su sistema se encuentra una red interna, ha de introducir tambin la interfaz dirigida hacia dentro. Salga de este dilogo con Siguiente. Servicios Esta opcin slo es relevante en caso de que, a travs de su sistema, quiera ofrecer servicios que estn disponibles desde Internet (servidor web, servidor de correo, etc.). Active las casillas de control correspondientes y/o pulse el botn Experto ... para activar determinados servicios a travs de su nmero de puerto (puede consultarse en /etc/services). Si su mquina no va a actuar como servidor, salga de este dilogo sin efectuar ningn cambio con Siguiente. Caractersticas Seleccione aqu las caractersticas principales de su cortafuegos: Permitir traceroute ayuda a comprobar el enrutamiento a su cortafuegos. Trco reenviado y enmascaramiento protege a los ordenadores de la red local frente a Internet. Parecer que es su cortafuegos el que utiliza todos los servicios de Internet mientras que los ordenadores internos permanecen invisibles. Proteger todos los servicios en ejecucin signica que se evitan todos los accesos de la red a servicios TCP y UDP del cortafuegos, exceptuando aquellos activados explcitamente en el paso anterior. Proteger desde la red interna Slo los servicios activados del cortafuegos estarn disponibles para los ordenadores internos. Debido a que aqu no es posible activar ningn servicio, es mejor desactivar esta opcin si quiere permitir accesos desde la red local.

512

19.1. Cortafuegos y masquerading

Una vez completada la conguracin de las caractersticas, abandone este dilogo con Siguiente. Opciones de logging Aqu puede denir el alcance del registro de su cortafuegos. Antes de activar las Opciones de depuracin, tenga en cuenta que los cheros de registro producen una gran cantidad de datos. Con la conguracin del registro o logging concluye la conguracin del cortafuegos. Salga de este dilogo con Siguiente y conrme el mensaje que aparece a continuacin para activar el cortafuegos.

19
Seguridad en la red

19.2.

SSH secure shell, la alternativa segura

El trabajo en red requiere en ocasiones el acceso a sistemas remotos. En estos casos, el usuario suele tener que autenticarse con su nombre de usuario y contrasea. Si estos datos se envan en texto plano y sin codicar, cabe la posibilidad de que sean interceptados por terceros que podran utilizarlos en su propio inters para, por ejemplo, usar la conexin del usuario sin su conocimiento. Adems de poder ver todos los datos privados del usuario, el atacante podra intentar obtener derechos de administrador sobre el sistema o tambin utilizar la conexin recin adquirida para desde all atacar a otros sistemas. Antiguamente se utilizaba Telnet para establecer conexiones entre dos ordenadores remotos. No obstante, este mtodo no utilizaba ningn mecanismo de codicacin o seguridad para prevenir ltraciones. Las conexiones de copia o FTP entre ordenadores remotos tampoco ofrecen ninguna proteccin. El software SSH s ofrece la proteccin necesaria. La autenticacin completa, compuesta generalmente por nombre de usuario y contrasea, as como las comunicaciones se realizan aqu de forma codicada. Si bien es cierto que an as es posible que se intercepten los datos transmitidos, estos no podran ser ledos porque estn codicados. De esta manera es posible comunicarse de forma segura a travs de redes inseguras como Internet. SUSE LINUX incluye con este n el paquete OpenSSH.

19.2.1.

El paquete OpenSSH

En SuSE Linux, el paquete OpenSSH est incluido en la instalacin estndar, por lo que dispondr de los programas ssh, scp y sftp como alternativa a telnet, rlogin, rsh, rcp y ftp.

SUSE LINUX Manual de Administracin

513

19.2.2.

El programa ssh

El programa ssh permite conectarse a un sistema de forma remota y trabajar con l interactivamente. Por este motivo constituye un substituto tanto de telnet como rlogin. Por razones de parentesco con rlogin, el enlace simblico adicional de nombre slogin apunta igualmente a ssh. Por ejemplo, con el comando ssh sol podremos registrarnos en el ordenador sol. Despus de introducir el comando, se nos preguntar la contrasea en el sistema sol. Despus de haber conseguido una autenticacin vlida se podr trabajar tanto desde la lnea de comando por ejemplo con el comando ls como de forma interactiva, por ejemplo con YaST. Si quiere diferenciar el nombre de usuario local del usuario en el sistema remoto, hgalo mediante, por ejemplo, ssh -l juan sol o bien con ssh juant@sol. Adems, ssh nos ofrece la posibilidad ya conocida en rsh de ejecutar comandos en otro sistema. En el siguiente ejemplo se ejecutar el comando uptime en el ordenador sol y se crear un directorio con el nombre tmp. Los resultados del programa se visualizarn en la terminal local del ordenador tierra.
ssh sol "uptime; mkdir tmp" tux@sols password: 1:21pm up 2:17, 9 users,

load average: 0.15, 0.04, 0.02

Las comillas son en este caso necesarias para unir los comandos. Slo de esta forma se ejecutar tambin el segundo comando en el ordenador sol.

19.2.3.

scp copiar de forma segura

Con la ayuda de scp se pueden copiar archivos a un ordenador remoto. scp es un sustituto seguro y codicado de rcp. Por ejemplo con el comando: scp MiCarta.tex sol: se copiar el archivo MiCarta.tex del ordenador tierra al ordenador sol. En el caso de que los nombres de usuarios en tierra y sol sean diferentes, en scp habr que recurrir a escribir nombre_usuario@nombre_ordenador. No existe la opcin -l. Despus de consultar la contrasea, scp comienza con la transmisin de datos e indica el avance mediante una barra formada por estrellas que crece de izquierda a derecha. Adems se muestra en el lado derecho el tiempo restante para completar la transmisin (estimated time of arrival ). La opcin -q suprime todas las indicaciones en pantalla.

514

19.2. SSH secure shell, la alternativa segura

scp ofrece tambin la posibilidad de transferir de forma recursiva todo un directorio. El comando: scp -r src/ sol:backup/ copia el contenido completo del directorio src/, incluyendo todos los subdirectorios, en el directorio backup/ en el ordenador sol. Mediante la opcin -p, scp mantiene fecha y hora de los archivos que se copian. Con -C se realiza una transferencia comprimida. Como ventaja el volumen de datos disminuye, pero en cambio el esfuerzo de clculo es ms elevado. Dada la potencia de clculo de hoy en da, se puede despreciar este efecto negativo.

19
Seguridad en la red

19.2.4. sftp - transmisin segura de datos


Otra posibilidad para la transferencia segura de datos es sftp, que ofrece muchos de los comandos conocidos de ftp una vez que la conexin se ha establecido. En comparacin con scp, resulta ms adecuado para transferir archivos cuyos nombres no se conocen.

19.2.5. El daemon SSH (sshd) el lado del servidor


Para que se puedan utilizar los programas cliente ssh y scp, en segundo plano se debe ejecutar el daemon SSH que espera las conexiones en el puerto TCP/IP Port 22. Al iniciarse por primera vez, el daemon genera tres pares de claves que constan de una parte pblica y una privada. Por este motivo este mecanismo se considera un proceso basado en public-key. Para garantizar la comunicacin segura, slo el administrador de sistema debe tener el derecho de acceder a las claves privadas. Por eso en la conguracin predeterminada los derechos sobre los archivos se conguran de forma correspondiente. El daemon de SSH utiliza localmente las claves privadas que no deben ser comunicadas a nadie. En cambio, las partes pblicas de las claves (se reconocen por ejemplo por la extensin .pub) se comunican a todos los interlocutores en el proceso de comunicacin y son por tanto legibles para todos los usuarios. El cliente SSH inicia la conexin. El daemon SSH que se encontraba en espera y el cliente que pide una conexin intercambian datos de identicacin para utilizar las mismas versiones de protocolo y para evitar la conexin a un puerto equivocado. En realidad, el que responde es un proceso hijo del daemon SSH inicial, por lo que es posible mantener al mismo tiempo muchas conexiones SSH.

SUSE LINUX Manual de Administracin

515

Para la comunicacin entre el cliente y el servidor SSH, OpenSSH soporta las versiones 1 y 2 del protocolo SSH. Al instalar SUSE LINUX por primera vez se utiliza automticamente la versin actual del protocolo, 2. En cambio, si preere conservar SSH 1 despus de actualizar, siga las instrucciones descritas en /usr/share/doc/packages/openssh/README.SuSE. All tambin se describe cmo transformar en pocos pasos un entorno SSH 1 en un entorno SSH 2 operativo. Con el protocolo SSH versin 1, el servidor enva su clave pblica host key y una server key creada el daemon SSH nuevamente cada hora. El cliente SSH se sirve de estas dos claves para codicar (encrypt ) una clave que vara de sesin en sesin (session key) y que se enva al servidor SSH. Adems indica al servidor el tipo de cifrado (cipher). El protocolo SSH versin 2 no incluye la server key. En su lugar utiliza un algoritmo de Dife-Hellman para intercambiar las claves. Para descifrar la clave de sesin es imprescindible disponer de las claves privadas de host y server, las cuales no se pueden obtener por medio de las partes pblicas. Por este motivo, slo el daemon SSH contactado es capaz de descifrar la clave de sesin mediante su clave privada (ver man /usr/share/doc/packages/openssh/RFC.nroff). Es posible seguir esta fase de establecimiento de conexin mediante la opcin de bsqueda de errores del programa cliente de SSH (opcin -v). Por defecto se utiliza el protocolo SSH versin 2, pero sin embargo se puede forzar el protocolo SSH versin 1 con el parmetro -1. Los ataques del tipo man-inthe-middle se evitan porque el cliente guarda en ~/.ssh/known_hosts todas las claves pblicas del host despus de haber tomado el primer contacto. Los servidores SSH que tratan de camuarse con el nombre y la IP de otro ordenador se descubren con una alerta. Se delatan ya sea por una clave de host diferente a la que est guardada en ~/.ssh/known_hosts o bien porque no pueden descifrar la clave de sesin por falta de la clave privada correcta. Se recomienda guardar de forma externa las claves pblicas y privadas del directorio /etc/ssh/ y hacer una copia de seguridad de las mismas. As es posible averiguar modicaciones de las claves y restaurarlas despus de una nueva instalacin. Esta restauracin de las claves evita sobre todo que los usuarios se preocupen por el mensaje de advertencia. Una vez comprobado que se trata del servidor SSH correcto a pesar del aviso, es necesario borrar la entrada que se reere a este en el archivo ~/.ssh/known_hosts.

516

19.2. SSH secure shell, la alternativa segura

19.2.6. Mecanismos de autenticacin de SSH


Ahora se realiza la verdadera autenticacin en su forma ms simple mediante la indicacin de nombre de usuario y contrasea tal como se ha mencionado en los ejemplos anteriores. El objetivo de SSH era proporcionar un nuevo software seguro pero al mismo tiempo fcil de usar. Al igual que los programas a los que pretende sustituir, rsh y rlogin, SSH tambin ha de ofrecer un mtodo sencillo de autenticacin que pueda emplearse fcilmente en el da a da. SSH realiza la autenticacin mediante otro juego de claves creado a peticin del usuario. Para ello el paquete SSH dispone de la utilidad ssh-keygen. Despus de introducir ssh-keygen -t rsa o ssh-keygen -t dsa, transcurre un tiempo hasta que el juego de claves est creado. A continuacin el programa consulta el nombre de archivo para guardar las claves:
Enter file in which to save the key (/home/tux/.ssh/id_rsa):

19
Seguridad en la red

Despus conrmar la ubicacin sugerida se pide una contrasea. Aunque el programa admite una contrasea vaca, es mejor introducir un texto de diez a treinta caracteres. Es preferible no utilizar palabras o frases demasiado sencillas o cortas. Despus de introducirlo, el programa pide una conrmacin. El programa indica entonces el lugar donde se guardan la clave privada y la pblica; en el ejemplo concreto estos son los archivos id_rsa y id_rsa.pub.
Enter same passphrase again: Your identification has been saved in /home/tux/.ssh/id_rsa Your public key has been saved in /home/tux/.ssh/id_rsa.pub. The key fingerprint is: 79:c1:79:b2:e1:c8:20:c1:89:0f:99:94:a8:4e:da:e8 tux@sol

El comando ssh-keygen -p -t rsa o ssh-keygen -p -t dsa sirve para cambiar la contrasea antigua. La parte pblica de la clave (en nuestro ejemplo id_rsa.pub) se ha de copiar al ordenador remoto, guardndola all como ~/.ssh/authorized_keys. En el siguiente intento de conectar, SSH pregunta por la contrasea. Si esto no funciona, compruebe que la ubicacin y el contenido de los archivos anteriormente mencionados son correctos. A la larga este procedimiento es ms complicado que la introduccin de una contrasea. Por eso el paquete SSH incorpora otra utilidad llamada sshagent que mantiene claves privadas durante una sesin en entorno X.

SUSE LINUX Manual de Administracin

517

Para realizarlo, todo el entorno X Windows se inicia como un proceso hijo de ssh-agent. Con este n, el mtodo ms sencillo consiste en editar el archivo .xsession, asignando a la variable usessh el valor yes y despus entrar al sistema con un gestor como por ejemplo KDM o XDM. Otra posibilidad es la de iniciar el entorno grco mediante ssh-agent startx. Ahora se puede utilizar ssh o scp como es habitual y si ha distribuido su clave pblica como antes, no se le pedir ninguna contrasea. Al salir del ordenador es importante terminar la sesin X o bloquearla mediante un protector de pantalla con contrasea (por ejemplo xlock). Todas las modicaciones importantes realizadas con la implantacin del protocolo SSH versin 2 tambin se encuentran documentadas en el archivo /usr/share/doc/packages/openssh/README.SuSE.

19.2.7.

X, autenticacin remota y mecanismos de reenvo

Aparte de las mejoras en cuanto a la seguridad del sistema, ssh facilita tambin el trabajo con aplicaciones de X-Windows remotas. Al utilizar ssh con la opcin -X, la variable DISPLAY en el ordenador remoto se congura automticamente y todas las ventanas del X-Windows se mandan a travs de la conexin ssh existente al ordenador cliente. Esta sencilla funcin evita la captura de datos por parte de terceros en caso de aplicaciones-X remotas con visualizacin local. La opcin -A traspasa el mecanismo de autenticacin de ssh-agent al siguiente ordenador. As se puede acceder de un ordenador a otro sin necesidad de introducir una contrasea. Es algo que slo funciona si la clave pblica se encuentra correctamente en todos los ordenadores destino. Por razones de seguridad, los dos mecanismos estn desactivados en la conguracin predeterminada. No obstante, se pueden activar de forma permanente en el archivo de conguracin global /etc/ssh/ssh_ config o en el personal de cada usuario ~/.ssh/config. Tambin se puede utilizar ssh para el reenvo de cualquier conexin TCP/IP. Como ejemplo se muestra el reenvo del puerto SMTP y POP3:
ssh -L 25:sol:25 tierra

En este caso, cualquier conexin a tierra Port 25 se reenva al puerto SMTP de sol a travs del canal codicado. Es un procedimiento especialmente til para usuarios de servidores SMTP que no disponen de SMTPAUTH o de prestaciones POP-before-SMTP. As, el servidor de correo en

518

19.2. SSH secure shell, la alternativa segura

casa puede entregar el correo a cualquier lugar con conexin a Internet. De forma anloga, el siguiente comando reenva todas las consultas hechas al puerto 110 (POP3) en tierra al puerto POP3 de sol:
ssh -L 110:sol:110 tierra

19
Seguridad en la red

Ambos ejemplos exigen la introduccin de los comandos como superusuario root, ya que las conexiones se realizan con puertos locales privilegiados. Con la conexin SSH establecida, el correo se enva y se recibe como siempre en modo de usuario normal. En tal caso hay que congurar como Host SMTP y POP3 la mquina local localhost. Puede conseguir informacin adicional en la pginas de manual de los distintos programas y en los archivos que se encuentran dentro del directorio /usr/share/doc/packages/openssh.

19.3.

Autenticacin en la red Kerberos

Aparte de los mecanismos habituales de identicacin que son inherentemente inseguros, no existe ninguna forma de autenticar exactamente en una red abierta, los usuarios de un determinado ordenador. Esto quiere decir que cualquier persona puede ser capaz de falsicar su identidad y as recoger los e-mails de otra persona, acceder a sus datos privados o iniciar un determinado servicio. Por eso la red debe cumplir los siguientes requisitos para poder ser considerada como segura: Los usuarios deben acreditar su identidad para cada servicio y se debe asegurar que ningn usuario acoja la identidad de otro. Cada servidor en la red debe acreditar su identidad. En caso contrario un atacante puede identicarse como el servidor solicitado y capturar la informacin condencial que se est mandando a este. Este proceso se llama Mutual Authentication, ya que el cliente se identica frente al servidor y vice versa. La autenticacin codicada de Kerberos cumple los requisitos mencionados. A continuacin se explica el funcionamiento bsico de Kerberos. La implementacin utilizada de Kerberos incorpora documentacin ms detallada al respecto.

SUSE LINUX Manual de Administracin

519

Atencin
Kerberos original se desarroll en el MIT. Aparte de este (MIT Kerberos) existen otras implementaciones de Kerberos. SUSE LINUX contiene una implementacin libre de Kerberos 5 llamada Heimdal Kerberos 5 KTH. Este captulo se reere a las propiedades generales de diferentes Kerberos, por lo que siempre se utiliza el trmino Kerberos salvo que se trate de propiedades especcas de Heimdal.

Atencin 19.3.1. Terminologa de Kerberos

Antes de comentar los detalles de Kerberos es importante tomar nota de los siguientes trminos: Credential Los usuarios o clientes tienen que disponer de credenciales que les autorizan a solicitar determinados servicios. Kerberos dispone de dos tipos de credenciales: Tickets y Authenticators. Ticket Un Ticket es una credencial utilizada por un cliente para solicitar un servicio de un servidor. Contiene el nombre del servidor, el nombre del cliente, la direccin de Internet del cliente, una marca de tiempo (timestamp), el tiempo de vida de la credencial y una clave de sesin al azar. Todos estos datos se codican con la clave del servidor. Authenticator Junto con el ticket se utiliza el autenticador (Authenticator) para asegurar que el cliente que presenta un ticket realmente es l que presume ser. El autenticador se genera en la estacin de trabajo mediante su nombre, su direccin IP, la hora actual y se codica con la clave se sesin solamente conocida por parte del cliente y del servidor al que se solicita el servicio. En comparacin a un ticket, el autenticador slo puede ser usado una vez. El cliente por s mismo es capaz de crear un autenticador. Principal Un Principal de Kerberos es una unidad nica (un servicio o un cliente) al que se puede asignar un ticket. El Principal se compone de las siguientes partes: Primary Es la primera parte que puede ser equivalente al nombre de usuario. Instance Informacin opcional, describiendo el Primary. Esta cadena se separa por el smbolo / del Primary.

520

19.3. Autenticacin en la red Kerberos

Realm Realm determina el rea de funcionamiento de Kerberos. Normalmente el Realm es equivalente al nombre de dominio en maysculas. Mutual Authentication Al usar Kerberos, tanto el cliente como el servidor pueden estar seguros sobre al autenticidad de su interlocutor, ya que se autentican mutuamente con una clave de sesin. Session Key Las claves de sesin (session keys) son claves privadas temporales, generadas por parte de Kerberos. Se utilizan para codicar la comunicacin entre cliente y servidor. Replay Casi toda informacin que pasa por una red se puede interceptar, desviar o mandarla nuevamente. En el caso de Kerberos es muy peligroso si un atacante consigue interceptar la peticin de servicio que contiene el ticket y el autenticador. Podra intentar mandar esta informacin nuevamente (Replay) y acoger as otra identidad. Afortunadamente Kerberos dispone de diferentes mecanismos para evitar este problema. Server o Service Service (servicio) se utiliza para realizar una determinada operacin en un Server.

19
Seguridad en la red

19.3.2.

Cmo funciona?

Kerberos se denomina frecuentemente como servicio de autenticacin del tipo Trusted Third Party. Esto quiere decir que todos los clientes confan en Kerberos en lo que respecta a la identidad de otros ordenadores. Kerberos mantiene una base de datos con todos los usuarios y sus claves privadas. Para que Kerberos merezca la conanza depositada en l, el servidor de autenticacin y el servidor que otorga los tickets han de ejecutarse en una mquina aparte. Slo el administrador debe tener acceso al servidor y los servicios que se ejecutan en l deben reducirse a un mnimo no ejecute ni siquiera sshd. Primer contacto El primer contacto con Kerberos se parece al login de cualquier sistema en red. Al introducir la contrasea, esa informacin tal como el nombre del sistema de otorgamiento de tickets, se enva al servidor de autenticacin (Kerberos). Si este servidor reconoce la identidad, este genera una clave de sesin al azar para el uso entre el cliente y el servidor de otorgamiento de tickets.

SUSE LINUX Manual de Administracin

521

Ahora el servidor de autenticacin genera un ticket para el servidor de otorgamiento de tickets que se compone de los siguientes elementos (toda informacin se codica con una clave de sesin solamente conocida por parte de los servidores de autenticacin y de concesin de tickets): los nombres de los clientes y del servidor de concesin de tickets la hora actual el tiempo de vida del ticket la direccin IP del cliente la clave de sesin nueva Ahora el ticket se enva junto con la clave de sesin de forma codicada al cliente, pero en esta ocasin utilizando la clave privada del cliente. Solo el cliente y Kerberos conocen esta clave, ya que fue generada a partir de la contrasea de usuario. Cuando el cliente recibe esta informacin, el usuario tiene que introducir la contrasea. Esta contrasea se convierte en la clave que es capaz de descifrar la informacin que fue enviada del servidor de autenticacin. Despus de descifrar, la contrasea y la clave se borran de la memoria de la estacin de trabajo; esta es capaz de identicarse correctamente hasta que el tiempo de vida del ticket otorgado expire. Solicitud de un servicio Para pedir un servicio de cualquier servidor en la red, la aplicacin del cliente tiene que compulsar su identidad. Por eso la aplicacin genera un identicador (Authenticator) que se compone de las siguientes partes: el Principal del cliente la direccin IP del cliente la hora actual una suma de control (determinada por el cliente) Toda esa informacin se codica con la clave de sesin que ya recibi el cliente particularmente para ese servidor. El identicador y el ticket para el servidor se mandan a este. El servidor por su parte utiliza su copia de la clave de sesin para decodicar el identicador que le permite obtener toda la informacin necesaria del cliente que solicita el servicio. Esta informacin se compara con la del ticket. De esta forma el servidor comprueba si el ticket y el identicador proceden del mismo cliente.

522

19.3. Autenticacin en la red Kerberos

Si por parte del servidor no existieran medidas de seguridad, este punto sera ideal para un ataque de repeticin (replay). El agresor puede intentar enviar nuevamente una solicitud de servicio que haya sido capturada anteriormente en la red. Para evitar este tipo de ataque, el servidor no acepta ningn paquete que se enva con una marca de tiempo y un ticket ya recibidos. Adems es posible rechazar peticiones de servicio cuya marca de tiempo diere demasiado del tiempo actual (hacia el futuro o hacia el pasado). Autenticacin mutua Es posible realizar la autenticacin de Kerberos en ambas direcciones. No slo se trata del cliente que se identica frente al servidor, el servidor tambin debe identicarse frente al cliente que solicita un cierto servicio. Por eso el servidor enva tambin un cierto identicador. Este se forma sumando uno a la suma de control que fue recibida del cliente y el resultado se codica con la clave de sesin compartida con el cliente. Para el cliente esta respuesta es la compulsa de la autenticidad del servidor y el trabajo entre cliente y servidor puede comenzar. Ticket-Granting Contactar con todos los servidores Los tickets estn pensados para el uso con un solo servidor por lo que hace falta un nuevo ticket para cada servicio adicional que se solicite. Kerberos implementa un mecanismo para obtener tickets de los diferentes servidores que se denomina Ticket Granting Service (servicio de expedicin de tickets). Este servicio tambin est sometido a los protocolos de acceso ya explicados. Siempre que una aplicacin necesita un ticket que an no se haya otorgado, esta contacta el servidor de otorgamiento de tickets. La solicitud de un ticket se compone de las siguientes partes: El Principal solicitado El ticket para la concesin de tickets El identicador (authenticator) Al igual que los otros servidores, el servidor de concesin de tickets controla el ticket recibido y el identicador. En caso de conrmar la autenticidad de ellos, el servidor de concesin de tickets genera una clave de sesin nueva que se debe utilizar para la conexin del cliente con el servidor nuevo. El siguiente paso es la creacin de un ticket para el servidor nuevo con la informacin siguiente: El Principal del cliente

19
Seguridad en la red
523

SUSE LINUX Manual de Administracin

El Principal del servidor La hora actual La IP del cliente La clave de sesin recin creada El tiempo de validez del ticket nuevo equivale al tiempo de vida restante del ticket del sistema de otorgamiento de tickets o a un valor predeterminado para este servicio, dependiendo de cul es el tiempo inferior. El sistema de otorgamiento de tickets enva este ticket junto a una clave de sesin al cliente. En esta ocasin la respuesta es codicada con la clave de sesin que se recibi junto con el ticket original del sistema de otorgamiento de tickets. Ahora el cliente es capaz de descifrar la respuesta de un servicio nuevo que se solicite sin necesidad de pedir la contrasea de usuario nuevamente. Esta es la forma de Kerberos de conseguir tickets para el cliente, sin molestar al usuario ms que una sola vez con la introduccin de la contrasea. Compatibilidad con Windows 2000 Windows 2000 incorpora una implementacin de Kerberos 5 realizada por Microsoft. SUSE LINUX utiliza la implementacin Heimdal de Kerberos 5 que incorpora mucha documentacin til sobre el tema; ver 19.3.4 en la pgina siguiente.

19.3.3. Efectos de Kerberos a nivel de usuario


En el caso ptimo, el usuario slo tiene contacto con Kerberos en el momento de efectuar el login en su estacin de trabajo. En ese momento el cliente recibe un ticket para la concesin de tickets posteriores. Cuando el usuario sale del sistema (logout), los tickets de Kerberos automticamente se borran para evitar que otros usuarios puedan identicarse como otro usuario cuando no est trabajando. Existe un conicto cuando la sesin de trabajo del usuario dure ms tiempo que el tiempo de vida mximo del ticket maestro para la concesin de tickets (10 horas suele ser un valor razonable). Para conseguir un ticket maestro nuevo, el usuario puede iniciar kinit. No hace falta ms que introducir la contrasea nuevamente y Kerberos se encarga de gestionar el acceso a todos los servicios. Mediante klist es posible obtener una lista de todos los tickets que Kerberos obtiene trabajando en segundo plano. Todas las aplicaciones que guran a continuacin utilizan el mecanismo de autenticacin de Kerberos y se encuentran en /usr/lib/heimdal/ bin/.

524

19.3. Autenticacin en la red Kerberos

Ofrecen la misma funcionalidad de sus homlogos de Unix/Linux a la que se aade la ventaja de la autenticacin transparente mediante Kerberos: telnet/telnetd rlogin rsh, rcp, rshd popper/push ftp/ftpd su imapd pine No hace falta introducir ninguna contrasea para utilizar estas utilidades, porque Kerberos ya realiz la identicacin. Al compilar ssh con soporte de Kerberos, ssh es capaz de traspasar todos los tickets obtenidos para una determinada estacin de trabajo a otra. Despus de realizar un login en otra estacin de trabajo, ssh se encarga de adaptar el contenido codicado de los tickets a la situacin nueva. No alcanza a copiar sencillamente los tickets de una mquina a la otra, ya que contienen informacin especca sobre la estacin de trabajo (la direccin IP). XDM y KDM tambin ofrecen soporte de Kerberos. La gua Kerberos V5 UNIX Users Guide en http://web.mit.edu/kerberos/www/krb5-1.3/krb51.3/doc/krb5-user.html ofrece informacin adicional sobre las utilidades de red de Kerberos.

19
Seguridad en la red

19.3.4.

Informacin adicional sobre Kerberos

SUSE LINUX incorpora una implementacin libre de Kerberos, denominada Heimdahl. La documentacin correspondiente se encuentra en /usr/share/doc/packages/heimdal/doc/heimdal.info despus de haber instalado el paquete heimdal. Todo el proyecto est documentado en Internet bajo la direccin http://www.pdc.kth.se/heimdal/. La pgina web ocial de la implementacin de Kerberos del MIT reune enlaces a otras fuentes interesantes: http://web.mit.edu/kerberos/ www/

SUSE LINUX Manual de Administracin

525

En la siguiente direccin se encuentra un dilogo clsico que explica el funcionamiento de Kerberos. No es demasiado tcnico y justo por eso es muy interesante: http://web.mit.edu/kerberos/www/dialogue. html Otra fuente de informacin que explica el funcionamiento bsico de Kerberos y que tiene diversas citas para seguir estudiando el tema, se encuentra en: ftp://athena-dist.mit.edu/pub/kerberos/doc/usenix.PS Los siguientes enlaces ofrecen una introduccin breve a Kerberos y responden a muchas preguntas en torno a la instalacin, conguracin y administracin: http://web.mit.edu/kerberos/www/krb5-1.3/krb5-1.3/doc/ krb5-user.html http://web.mit.edu/kerberos/www/krb5-1.3/krb5-1.3/doc/ krb5-install.html http://web.mit.edu/kerberos/www/krb5-1.3/krb5-1.3/doc/ krb5-admin.html Las FAQ ocial de Kerberos se encuentran en: http://www.nrl.navy. mil/CCS/people/kenh/kerberos-faq.html Tung, Brian: Kerberos A Network Authentication System. Addison Wesley, 1999. - (ISBN 0-201-37924-4).

19.4.

Instalacin y administracin de Kerberos

Esta seccin trata los aspectos relacionados con la instalacin de Heimdal Kerberos as como algunas cuestiones de administracin. El texto asume que est familiarizado con los conceptos bsicos de Kerberos (si desea obtener ms informacin a este respecto, consulte la seccin 19.3 en la pgina 519).

19.4.1.

Eleccin de Realms en Kerberos

El dominio de una instalacin Kerberos se denomina Realm y se identica por su nombre, como por ejemplo, FOOBAR.COM o simplemente CONTABILIDAD. Kerberos distingue entre letras maysculas y minsculas, por lo que foobar.com es un realm diferente a FOOBAR.COM.

526

19.4. Instalacin y administracin de Kerberos

Utilizar maysculas o minsculas es una cuestin de preferencias. Sin embargo, es una prctica comn reservar las letras maysculas para los nombres de los realm. Se recomienda utilizar el nombre de dominio DNS (o un subdominio, tal como CONTABILIDAD.FOOBAR.COM). Como se explica a continuacin, la labor de un administrador puede ser mucho ms sencilla si congura los clientes Kerberos para localizar el KDC y otros servicios Kerberos a travs de DNS. Para lograr este objetivo, resulta bastante til que el realm sea un subdominio del nombre de dominio DNS. A diferencia del espacio de nombres DNS, Kerberos no dispone de una estructura jerrquica. No puede congurarse un realm denominado FOOBAR.COM, disponer dos subrealms llamados DESARROLLO y CONTABILIDAD bajo l y esperar que los dos realms subordinados hereden de alguna forma los principales de FOOBAR.COM. En su lugar, es necesario establecer tres realms independientes, para los cuales ser necesario congurar la autenticacin crossrealm a n de que los usuarios de un realm puedan interactuar con los servidores o usuarios de otro. Con el n de lograr una mayor simplicidad, se asume que se est congurando slo un realm para dar servicio a toda la organizacin. Existen algunos documentos, tales como congurar la autenticacin crossrealm. Durante el resto de esta seccin, se utiliza el nombre de realm SAMPLE.COM para todos los ejemplos.

19
Seguridad en la red

19.4.2. Conguracin del hardware KDC


El primer paso que ha de dar cuando se desea utilizar Kerberos es congurar un equipo que asuma el papel de centro de distribucin de claves o KDC (Key Distribution Center). Esta mquina albergar la base de datos completa de usuarios Kerberos con sus contraseas y el resto de informacin relacionada. El KDC es el elemento ms importante dentro de su infraestructura de seguridad; si alguien consigue acceder a l, todas las cuentas de usuario y toda la estructura protegida por Kerberos estar comprometida. Un atacante con acceso a la base de datos Kerberos puede suplantar a cualquier principal de la base de datos. Asegrese de que extrema la seguridad alrededor de este equipo tanto como le sea posible: Coloque el servidor en un lugar fsicamente seguro, como por ejemplo una sala de servidores cerrada bajo llave a la cual slo pueda acceder un reducido nmero de personas.

SUSE LINUX Manual de Administracin

527

No ejecute ninguna aplicacin de red en l a excepcin de KDC. Esto incluye servidores y clientes; por ejemplo, el KDC no debe poder importar ningn sistema de archivos a travs de NFS o utilizar DHCP para cargar su conguracin de red. Una de las estrategias que puede seguir para conseguir maximizar la seguridad es realizar, en primer lugar, una instalacin mnima del sistema, comprobar la lista de paquetes instalados y eliminar todos aquellos que resulten innecesarios. Esto incluye servidores, tales como inetd, portmap y cups as como cualquiera que est basado en X11. Incluso la instalacin de un servidor SSH puede suponer un riesgo potencial para la seguridad. Por razones tambin de seguridad, no se proporciona ningn acceso en modo grco para este equipo mediante un servidor X. Kerberos dispone de su propia interfaz de administracin. Congure /etc/nsswitch.conf a n de que slo se utilicen archivos locales para la bsqueda de usuarios y grupos. Modique las lneas de passwd y group de la siguiente forma:
passwd: group: files files

Edite los archivos passwd, group, shadow y gshadow en /etc/ y elimine las lneas que comienzan con el carcter + (destinadas a las bsquedas NIS). Asimismo, considere la deshabilitacin de las bsquedas DNS, ya que existe un riesgo potencial relacionado con ellas. Si existe algn fallo de seguridad en la librera del componente DNS, un atacante podra engaar al KDC para que realizara una peticin DNS que activara el fallo. Para desactivar las bsquedas DNS, simplemente ha de eliminar /etc/resolv.conf. Deshabilite todas las cuentas de usuario excepto la de root mediante la modicacin de /etc/shadow y reemplace las contraseas enmascaradas con asteriscos o signos de exclamacin.

528

19.4. Instalacin y administracin de Kerberos

19.4.3. Sincronizacin del reloj


Para poder utilizar Kerberos con xito, asegrese de que todos los relojes de los sistemas pertenecientes a la organizacin estn sincronizados dentro de un cierto rango. La razn de ser de esta medida reside en que Kerberos intentar protegerle de las credenciales dobladas. Un atacante podra observar las credenciales Kerberos en la red y reutilizarlas para atacar al servidor. Kerberos emplea una serie de tcticas defensivas para evitar esto. Una de ellas consiste en identicar mediante la fecha y la hora sus tickets. Si un servidor recibe un ticket con una fecha y hora que no son las actuales, lo rechazar. Por supuesto, Kerberos permite un cierto margen cuando realiza estas comparaciones. Sin embargo, los relojes de los equipos pueden llegar a ser muy inexactos en mantener la hora correcta (no es infrecuente escuchar como algunos relojes de PC pueden llegar a retrasarse o adelantarse hasta media hora durante el transcurso de una semana). Por tanto, es necesario congurar todos los equipos pertenecientes a la red para que sincronicen sus relojes respecto a una fuente horaria central. Un mtodo sencillo para lograr este objetivo es instalar un servidor horario NTP en uno de los equipos e indicar a todos los clientes que sincronicen sus relojes respecto a este. Este proceso puede llevarse a cabo mediante la ejecucin de un daemon NTP en en modo cliente en todos los equipos o ejecutando el comando ntpdate una vez al da desde todas las estaciones de trabajo (esta solucin slo es apropiada si se trata de un nmero reducido de clientes). El propio KDC tambin necesita estar sincronizado respecto a la fuente horaria comn. Debido al riesgo en la seguridad que podra producirse si ejecutara l mismo un daemon NTP, se recomienda ejecutar un comando ntpdate como una entrada cron. La conguracin de un servidor NTP no entra dentro del alcance de esta seccin. Si necesita recabar ms informacin al respecto, consulte la documentacin sobre NTP incluida en al sistema instalado en el archivo /usr/share/doc/packages/xntp-doc. Por supuesto, tambin puede adaptar a sus necesidades la diferencia mxima tolerada por Kerberos al comprobar las marcas de tiempo o time stamps. Es posible modicar este valor (clock skew) en el archivo de conguracin krb5.conf como se describe en la seccin 19.4.6 en la pgina 535.

19
Seguridad en la red
529

SUSE LINUX Manual de Administracin

19.4.4.

Conguracin del registro

Por defecto, los daemons Kerberos que se ejecutan en el equipo KDC registran la informacin mediante el daemon syslog. Si desea monitorizar qu est haciendo el KDC, puede procesar los archivos de registro de forma regular y buscar en ellos eventos inusuales o problemas potenciales. Para ello, puede utilizar bien un script de escaneo de registros a travs de la propia consola del KDC o copiar los archivos desde el KDC a otro equipo a travs de rsync y llevar a cabo el anlisis all. No se recomienda el reenvo de los registros mediante los mecanismos incluidos en syslog ya que la informacin atraviesa la red de forma no codicada.

19.4.5.

Instalacin del KDC

Esta seccin se centra en la instalacin inicial del KDC, incluyendo la creacin de un principal administrativo. Instalacin de los RPMs Antes de comenzar, instale el software de Kerberos. En el lado del KDC, instale los RPM heimdal-lib y heimdal-tools:
rpm -ivh heimdal-*.rpm heimdal-lib-*.rpm heimdal-tools*.rpm

Denir la clave maestra El siguiente paso consiste en iniciar la base de datos en la que Kerberos almacena toda la informacin sobre los principales. En primer lugar, establezca la clave maestra de la base de datos, la cual se utiliza para proteger esta de una exposicin accidental, especialmente cuando se realiza una copia de seguridad de ella en una cinta. La clave maestra se deriva de una frase de paso (contrasea formada por varias palabras) y se guarda en un archivo denominado escondite (stash le). De esta forma se consigue que no sea necesario escribir la contrasea cada vez que se reinicializa el KDC. Asegrese de escoger una buena contrasea, como por ejemplo una procedente de un libro abierto por una pgina al azar. Cuando realiza copias de seguridad de la base de datos Kerberos (/var/ heimdal/heimdal.db), no copie el archivo escondite (que reside en /var/heimdal/m-key). En caso contrario, aquellas personas que tuvieran acceso a la cinta podran tambin descifrar la base de datos. Por tanto

530

19.4. Instalacin y administracin de Kerberos

se recomienda guardar una copia de la contrasea en un lugar seguro y diferente, ya que ser necesario utilizarla si ha de restaurar la base de datos desde una copia de seguridad. Para determinar la clave maestra, ejecute la utilidad kstash sin ningn argumento e introduzca la contrasea dos veces:
kstash Master key:<enter pass phrase> Verifying password - Master key:<enter pass phrase again>

19
Seguridad en la red

Creacin del realm Finalmente, cree las entradas para el realm en la base de datos Kerberos. Invoque la utilidad kadmin con la opcin -l tal y como se muestra a continuacin. Este argumento indica a kadmin que acceda a la base de datos de forma local. Por defecto, intentar contactar con el servicio admin de Kerberos a travs de la red. En ese momento esta conexin no podr llevarse a cabo ya que el servicio an no se estar ejecutando. A continuacin, ordene a kadmin que inicie el realm. Se le solicitar que conteste a una serie de preguntas. Le recomendamos que acepte las respuestas que sugiere inicialmente kadmin:
kadmin -l kadmin> init SAMPLE.COM Realm max ticket life [unlimited]: <press return> Realm max renewable ticket life [unlimited]: <press return>

A n de vericar que se ha completado el proceso, utilice el comando list:


kadmin> list * default@SAMPLE.COM kadmin/admin@SAMPLE.COM kadmin/hprop@SAMPLE.COM kadmin/changepw@SAMPLE.COM krbtgt/SAMPLE.COM@SAMPLE.COM changepw/kerberos@SAMPLE.COM

Esta accin muestra que ya existe una serie de principales en la base de datos. Todos ellos son utilizados por Kerberos para procesos internos.

SUSE LINUX Manual de Administracin

531

Creacin de un principal A continuacin, cree dos principales Kerberos para usted: un principal normal para el trabajo del da a da y uno para tareas administrativas relacionadas con Kerberos. Asumiendo que su nombre de usuario es newbie, siga los siguientes pasos:
kadmin -l kadmin> add newbie Max ticket life [1 day]: <press return> Max renewable life [1 week]: <press return> Principal expiration time [never]: <press return> Password expiration time [never]: <press return> Attributes []: <press return> newbie@SAMPLE.COMs Password: <type password here> Verifying password: <re-type password here>

Acepte los valores por defecto pulsando Intro . Elija una buena contrasea. Seguidamente, cree otro principal denominado newbie/admin mediante el comando add newbie/admin en la lnea de comandos de kadmin. El sujo admin tras el nombre de usuario es lo que se denomina rol (role). Este rol administrativo se utiliza posteriormente para gestionar la la base de datos de Kerberos. Un usuario puede tener distintos roles para cumplir diferentes propsitos. Su manejo es semejante al de cuentas de usuario totalmente distintas pero con nombres parecidos. Inicio del KDC Arranque los daemons KDC. Estos incluyen el propio kdc (el daemon que gestiona la autenticacin de usuario y peticiones de ticket), kadmind (el servidor que lleva a cabo la administracin remota) y kpasswddd (que tiene como misin manejar los aspectos relacionados con las peticiones de modicacin de contrasea). Para iniciar el daemon de forma manual, escriba:
rckdc start Starting kdc

done

Asimismo, asegrese de que el KDC arranca por defecto cuando se reinicia el servidor. Para ello puede utilizar el comando insserv kdc.

532

19.4. Instalacin y administracin de Kerberos

19.4.6. Conguracin de clientes Kerberos


Cuando se congura Kerberos, existen bsicamente dos estrategias que pueden seguirse: una conguracin esttica a travs del archivo /etc/ krb5.conf o una dinmica mediante DNS. Si se utiliza esta ltima, las aplicaciones Kerberos intentarn localizar los servicios KDC a travs de los registros DNS. Con una conguracin esttica, es necesario aadir los nombres de host del servidor KDC a krb5.conf (y actualizar el archivo siempre que mueva el KDC o recongure el realm de alguna forma). La conguracin basada en DNS es, normalmente, mucho ms exible, siendo la cantidad de trabajo necesaria para congurar cada uno de los equipos mucho menor. Sin embargo, requiere que el nombre del realm sea bien el mismo que el correspondiente al dominio DNS o bien un subdominio de l. La conguracin de Kerberos va DNS genera, por otro lado, un contratiempo relacionado con la seguridad, que consiste en que un atacante puede desestabilizar seriamente la infraestructura a travs de DNS (por ejemplo, cerrando el servidor de nombres, alterando los registros DNS, etc). En cualquier caso esto signica que, como mucho, pueda producirse un ataque por denegacin de servicio. Un escenario similar puede aplicarse en el caso de una conguracin esttica a no ser que se introduzcan nicamente direcciones IP dentro del archivo krb5.conf en lugar de nombres de host. Conguracin esttica Una forma de congurar Kerberos consiste en modicar el archivo de conguracin /etc/krb5.conf. Este archivo, que est incluido por defecto en el sistema instalado, contiene varias entradas de muestra. Elimnelas antes de empezar a realizar su propia conguracin: krb5.conf est compuesto de varias secciones, cada una de las cuales comienza con su nombre entre corchetes ([nombre]). Para la conguracin esttica, aada las siguientes lneas al archivo krb5. conf (donde kdc.sample.com es el nombre de host del KDC):
[libdefaults] default_realm = SAMPLE.COM [realms] SAMPLE.COM = { kdc = kdc.sample.com kpasswd_server = kdc.sample.com admin_server = kdc.sample.com }

19
Seguridad en la red
533

SUSE LINUX Manual de Administracin

Sobre la lnea default_realm se dene el realm estndar para las aplicaciones Kerberos. Si dispone de varios realms, simplemente aada otra instruccin a la seccin [realms]. Adicionalmente, aada una lnea a este archivo que indique a las aplicaciones cmo mapear los nombres de host a un realm. Por ejemplo, cuando se establece una conexin a un host remoto, la librera Kerberos necesita conocer en qu realm est localizado este host. Este extremo ha de ser congurado en la seccin [domain_realms]:
[domain_realm] .sample.com = SAMPLE.COM www.foobar.com = SAMPLE.COM

El ejemplo anterior comunica a la librera que todos los hosts en los dominios DNS sample.com estn ubicados en el realm Kerberos SAMPLE.COM. Asimismo, un host externo denominado www.foobar.com puede ser tambin considerado como un miembro del realm SAMPLE.COM. Conguracin basada en DNS La conguracin Kerberos basada en DNS utiliza en gran medida los registros SRV (consulte el documento (RFC2052 ) A DNS RR for specifying the location of services ubicado en la direccin http://www.ietf.org). Estos registros no estn soportados en las anteriores implementaciones del servidor de nombres BIND. Como mnimo, se requiere la versin 8 de BIND. En lo que concierne a Kerberos, el nombre de un registro SRV tiene una estructura equivalente a _service._proto.realm, donde realm es el realm Kerberos. Recuerde que los nombres de dominio en DNS no distinguen entre maysculas y minsculas, por lo que los realms de Kerberos, que s que las distinguen, tienen problemas cuando se utiliza este mtodo de conguracin. _service es un nombre de servicio (se utilizan nombres diferentes cuando se intenta contactar con el KDC o el servicio de contraseas, por ejemplo). _proto puede ser bien _udp o _tcp, pero no todos los servicios soportan ambos protocolos. La parte de datos en los registros de un recurso SRV consiste en un valor de prioridad, un peso, un nmero de puerto y un nombre de host. La prioridad dene el orden por el cual debe intentarse la conexin a los hosts (un valor menor indica una prioridad mayor). El peso se utiliza para soportar un cierto tipo de balanceo de carga entre servidores que disponen de igual

534

19.4. Instalacin y administracin de Kerberos

prioridad. Es probable que nunca necesite modicar este argumento, as que puede mantenerlo como cero. En la actualidad, Heimdal Kerberos examina los siguientes nombres cuando intenta buscar servicios: _kerberos Dene la ubicacin del daemon KDC (el servidor que gestiona la autenticacin y asigna los tickets). Los registros tpicos poseen el siguiente formato:
_kerberos._udp.SAMPLE.COM. _kerberos._tcp.SAMPLE.COM. IN IN SRV SRV 0 0 88 kdc.sample.com. 0 0 88 kdc.sample.com.

19
Seguridad en la red

_kpasswd Describe la localizacin del servidor encargado de atender a las peticiones de modicacin de contrasea. El aspecto habitual de estos registros se muestra a continuacin:
_kpasswd._udp.SAMPLE.COM. IN SRV 0 0 464 kdc.sample.com.

Debido a que kpasswdd no soporta TCP, no debera existir ningn registro _tcp. _kerberos-adm Informa de la ubicacin del servicio de administracin remota. La forma usual de estas entradas es la siguiente:
_kerberos-adm._tcp.SAMPLE.COM. IN SRV 0 0 749 kdc.sample.com.

Ya que kadmind no proporciona soporte para UDP, no debera mostrarse ningn registro _udp. Al igual que sucede con el archivo de conguracin esttica, existe un mecanismo para informar a los clientes que un host especco pertenece al realm SAMPLE.COM, an cuando no forme parte del dominio DNS sample.com DNS. Para ello, se aade un registro TXT a _kerberos.hostname, tal y como se muestra a continuacin:
_kerberos.www.foobar.com. IN TXT "SAMPLE.COM"

Adaptar la diferencia del reloj Mediante la variable clock skew es posible denir los lmites de tolerancia dentro de los cuales se aceptar un ticket cuya hora no coincida exactamente con la que muestre el reloj del sistema servidor.

SUSE LINUX Manual de Administracin

535

Por regla general, este lmite es de 300 segundos (5 minutos). Es decir, un ticket puede tener una marca de tiempo 5 minutos adelantada o atrasada con respecto a la hora del sistema del servidor y todava ser aceptado. Si utiliza NTP para sincronizar los relojes de todos los hosts, este valor puede reducirse a un minuto. Modique la variable clock skew en /etc/krb5.conf como se muestra a continuacin:
[libdefaults] clockskew = 120

19.4.7.

Conguracin de la administracin remota

Para aadir o eliminar principales de la base de datos Kerberos sin tener acceso directo a la consola del KDC, comunique al servidor de administracin de Kerberos cules son los principales autorizados. Para ello puede editar el archivo /var/heimdal/kadmind.acl (ACL es la abreviatura de Access Control List o listas de control de acceso). El archivo ACL permite denir los privilegios y la conguracin detallada del grado de control. Puede obtener ms informacin en la pgina del manual man 8 kadmind. Para autorizarse a llevar a cabo todas las acciones que Vd. quiera en la base de datos, aada la siguiente lnea al archivo:
newbie/admin all

Sustituya newbie por su nombre de usuario y reinicie KDC para aplicar los cambios. Administracin remota con kadmin Llegado este punto ya ser posible administrar Kerberos de forma remota con ayuda de la herramienta kadmin. En primer lugar, necesita obtener un ticket para el principal administrativo y a continuacin emplearlo en la conexin al servidor kadmin:
kinit newbie/admin newbie/admin@SAMPLE.COMs Password: <enter password> /usr/sbin/kadmin kadmin> privs change-password, list, delete, modify, add, get

536

19.4. Instalacin y administracin de Kerberos

Para vericar de qu privilegios dispone, puede utilizar el comando privs. La lista mostrada previamente presenta el conjunto completo de privilegios. A modo de ejemplo, puede modicar el principal newbie:
kadmin> mod newbie Max ticket life [1 day]:2 days Max renewable life [1 week]: Principal expiration time [never]:2003-01-01 Password expiration time [never]: Attributes []:

19
Seguridad en la red

Esta accin modica la vida mxima del ticket a dos das y establece la fecha de caducidad de la cuenta para el 1 de enero de 2003. Comandos bsicos de kadmin A continuacin se incluye una lista de los comandos ms importantes de kadmin. Consulte las pginas del manual de kadmin para obtener informacin ms detallada. add principal Aade un nuevo principal. modify principal Edita varios atributos de un principal, tales como la vida mxima del ticket y la fecha de caducidad de la cuenta. delete principal Elimina un principal de la base de datos. rename principal newname Renombra un principal a nombre_nuevo. list pattern Visualiza una lista con todos los principales que coinciden con el patrn suministrado. El mecanismo de funcionamiento de los patrones es similar al de los patrones utilizados en la shell: list newbie* presentara newbie y newbie/admin en este ejemplo. get principal Visualiza una informacin detallada acerca del principal. passwd principal Modica la contrasea del principal. Es posible acceder en todo momento a una funcin de ayuda introducien do ? y Intro , incluso dentro de los mensajes originados por los comandos como modify y add. El comando init utilizado cuando se crea inicialmente el realm (as como en algunas otras ocasiones) no est disponible en el modo remoto. Para crear un nuevo realm, acceda a la consola del KDC y emplee kadmin en modo local (indicando la opcin -l en la lnea de comandos).

SUSE LINUX Manual de Administracin

537

19.4.8.

Creacin de principales de host en Kerberos

Cada una de las mquinas dentro de la red ha de poder contactar con un KDC y se le debe haber asignado un realm Kerberos. Adems, es necesario crear un principal de host o host principal para cada mquina. Hasta ahora se han tratado nicamente las credenciales de usuario. No obstante, los servicios kerberizados tambin deben autenticarse en la mayora de los casos frente al usuario cliente. Para ello existen en la base de datos Kerberos los host principals para todos los hosts dentro de un realm. La sintaxis del nombre es: host/<nombre_host>@<REALM>, nombre_host es aqu el nombre completo del host correspondiente. Aunque los principales de host se asemejan en muchos aspectos a los principales normales de usuario, existen tambin algunas diferencias. La ms importante radica en que la clave del principal de usuario est protegida por contrasea. Si el usuario obtiene un ticket de KDC para determinar la autorizacin, ha de introducir su contrasea para que Kerberos pueda descifrar el ticket. Por consiguiente, para un administrador de sistemas sera muy incmodo, ya que tendra que solicitar nuevos tickets para el daemon SSH cada ocho horas. En el caso del principal de host, el problema se resuelve de la siguiente manera: La clave necesaria para codicar el ticket original para el principal de host es solicitada una vez por el administrador de KDC. Posteriormente esta clave se guarda en un archivo llamado keytab. Los servicios como el daemon SSH evalan esta clave y la utilizan para recibir automticamente nuevas claves si fuera necesario. El archivo keytab estndar se encuentra en /etc/krb5.keytab. Puede crear un principal de host para machine.sample.com introduciendo lo siguiente durante su sesin con kadmin:
kinit newbie/admin newbie/admin@SAMPLE.COMs Password: <type password> kadmin add -r host/machine.sample.com Max ticket life [1 day]: Max renewable life [1 week]: Principal expiration time [never]: Password expiration time [never]: Attributes []:

538

19.4. Instalacin y administracin de Kerberos

En lugar de denir una contrasea para el nuevo principal, la opcin -r ordena a kadmin generar una clave aleatoria. En este caso es posible porque no deseamos ninguna actividad de usuario para este principal. Se trata puramente de una cuenta de servidor para esta mquina. Finalmente, extraiga la clave y gurdela en el archivo keytab local /etc/ krb5.keytab. Este archivo pertenece al superusuario, por lo que debe ejecutar el siguiente comando como usuario root:
ktutil get host/machine.sample.com

19
Seguridad en la red

A continuacin y como se describe anteriormente, utilice el comando kdestroy para destruir el ticket de administracin recibido a travs de kinit.

19.4.9. Activacin del soporte PAM para Kerberos


SUSE LINUX incluye un mdulo PAM denominado pam_krb5 que ofrece soporte para el acceso y actualizacin de contrasea bajo Kerberos. Este mdulo puede ser utilizado por distintas aplicaciones tales como el acceso a consola, su y las aplicaciones de acceso grco como KDM, donde el usuario introduce la contrasea y requiere de la aplicacin de autenticacin la obtencin de un ticket inicial Kerberos. A partir de esta versin de SUSE LINUX, el mdulo pam_unix soporta la autenticacin mediante Kerberos y los cambios de contraseas. para activar el soporte de Kerberos en pam_unix, modique el archivo /etc/ security/pam_unix2.conf de este modo:
auth: account: password: session: use_krb5 nullok use_krb5 use_krb5 nullok none

Cuando este archivo se evale, todos los servicios utilizarn Kerberos para autenticar a los usuarios. En caso de que un usuario no disponga de un principal Kerberos, pam_unix utilizar el mecanismo de autenticacin por contrasea. La contrasea de Kerberos debera poder actualizarse de manera transparente con el comando passwd. Puede congurar pam_krb5 realizando cambios en el archivo /etc/ krb5.conf y tambin aadiendo aplicaciones estndar para pam. El proceso se describe con detalle en la pgina del manual (man 5 pam_krb5).

SUSE LINUX Manual de Administracin

539

El mdulo pam_krb5 no fue especcamente diseado para servicios de red que aceptaran tickets Kerberos como parte de la autenticacin de usuario; esta es una historia completamente diferente que se explicar en secciones posteriores.

19.4.10.

Conguracin de SSH para la autenticacin con Kerberos

OpenSSH soporta la autenticacin con Kerberos tanto en la versin 1 como 2 del protocolo. La versin 1 utiliza un tipo determinado de mensajes de protocolo para transmitir los tickets de Kerberos. La versin 2 ya no emplea Kerberos directamente sino GSSAPI, General Security Services API. Esta interfaz de programacin no es especca para Kerberos, sino que fue desarrollada para ocultar las caractersticas del sistema de autenticacin subyacente de la aplicacin, independientemente de que sea Kerberos, SPKM u otro sistema semejante. No obstante, la actual librera GSSAPI de SUSE LINUX slo soporta Kerberos. Para utilizar sshd con la autenticacin Kerberos, edite /etc/ssh/sshd_ config y dena las opciones siguientes:
# These are for protocol version 1 KerberosAuthentication yes KerberosTgtPassing yes # These are for version 2 GSSAPIAuthentication yes GSSAPIKeyExchange yes

A continuacin, reinicie el daemon SSH con la instruccin rcsshd restart. Si quiere utilizar la autenticacin con Kerberos con la versin 2 del protocolo, ha de activar el soporte correspondiente tambin en el lado del cliente. Esto puede hacerse bien para todo el sistema mediante el archivo de conguracin /etc/ssh/ssh_config o bien en base a usuarios a travs del archivo ~/.ssh/config. En ambos casos se debe aadir la opcin GSSAPIAuthentication yes al archivo de conguracin. En este momento debera poderse conectar mediante autenticacin Kerberos. Utilice klist para comprobar si dispone de un ticket vlido para establecer una conexin con el servidor SSH. Para forzar la utilizacin de la versin 1 del protocolo SSH, introduzca la opcin -1 en la lnea de comandos.

540

19.4. Instalacin y administracin de Kerberos

ssh earth.sample.com Last login: Fri Aug 9 14:12:50 2002 from zamboni.sample.com Have a lot of fun...

19
Seguridad en la red

19.4.11.

Utilizacin de LDAP y Kerberos

Con el uso de Kerberos, LDAP permite distribuir informacin de usuarios (nmero de identicacin de usuario, grupos, directorios locales, etc.) en la red local. Ni que decir tiene que esto exige medidas de codicacin muy severas para evitar, por ejemplo, la falsicacin de paquetes. Kerberos puede tambin utilizarse para la comunicacin LDAP. OpenLDAP implementa la mayora de los tipos de autenticacin a travs de SASL, Simple Authentication Session Layer. SASL es bsicamente un protocolo de red usado para la autenticacin. SUSE LINUX utiliza la implementacin cyrus-sasl y soporta distintos tipos de autenticacin. La autenticacin con Kerberos se implementa va GSSAPI (General Security Services API). El plugin SASL para GSSAPI no est incluido en la instalacin estndar. Puede instalarlo manualmente con:
rpm -ivh cyrus-sasl-gssapi-*.rpm

Para poder enlazar Kerberos con el servidor OpenLDAP, cree un principal ldap/earth.sample.com y adalo a keytab:
kadmin add -r ldap/earth.sample.com ktutil get ldap/earth.sample.com

En este punto ha de tener en cuenta el siguiente obstculo: el servidor LDAP (slapd) funciona de manera estndar para el grupo y usuario ldap, mientras que keytab slo puede ser ledo por el usuario root. Por lo tanto dispone de dos opciones: cambiar la conguracin de LDAP para que el servidor sea iniciado como usuarioroot u otorgar al grupo ldap derechos de lectura sobre keytab. Para operar slapd como usuario root, edite el archivo /etc/ sysconfig/openldap y desactive las variables OPENLDAP_USER y OPENLDAP_GROUP introduciendo un signo de comentario al principio de las lneas. Para hacer el archivo keytab legible para el grupo ldap, cambie los derechos de este modo:

SUSE LINUX Manual de Administracin

541

chgrp ldap /etc/krb5.keytab chmod 640 /etc/krb5.keytab

Aunque ninguna de ambas soluciones es perfecta, actualmente no es posible congurar OpenLDAP de forma que utilice su propio archivo keytab. Finalmente, reinicie el servidor LDAP con el comando rcldap restart. Autenticacin Kerberos con LDAP Ahora ha de poder ejecutar aplicaciones como ldapsearch automticamente con autenticacin Kerberos.
ldapsearch -b ou=People,dc=suse,dc=de (uid=newbie) SASL/GSSAPI authentication started SASL SSF: 56 SASL installing layers [...] # newbie, People, suse.de dn:uid=newbie,ou=People,dc=suse,dc=de uid: newbie cn: Olaf Kirch [...]

Como puede ver en las lneas superiores, ldapsearch emite el mensaje de que ha iniciado la autenticacin GSSAPI. El siguiente mensaje, algo ms crptico, indica el Security Strength Factor (SSF) como 56. (El valor 56 en este caso es algo arbitrario. Seguramente haya sido escogido porque representa el nmero de bits de una clave de cifrado DES). Lo que esta lnea signica realmente es que la autenticacin GSSAPI ha tenido xito y que la conexin LDAP estar protegida por codicacin. No olvide que la autenticacin con Kerberos es un proceso recproco. Es decir, no es slo usted quien se ha autenticado de cara al servidor LDAP. Este tambin se ha autenticado frente a usted. De esta forma puede estar seguro de comunicarse con el servidor LDAP previsto y no con otro servicio simulado por un agresor. En aquellos casos donde puedan usarse distintos mecanismos SASL, puede obligar a ldapsearch a utilizar GSSAPI introduciendo la opcin -Y GSSAPI en la lnea de comandos.

542

19.4. Instalacin y administracin de Kerberos

Autenticacin con Kerberos y controles de acceso LDAP En el apartado anterior nos hemos autenticado con xito frente al servidor LDAP. En el siguiente paso se vera cmo permitir a todos los usuarios modicar el atributo login shell en sus datos de usuario LDAP. Suponiendo que utilice una estructura segn la cual la entrada LDAP del usuario joe se encuentra en uid=joe,ou=people,dc=suse,dc=de, puede denir las siguientes reglas de acceso en el archivo /etc/ openldap/slapd.conf:
# This is required for things to work _at all_ access to dn.base="" by * read # Let each user change their login shell access to dn="*,ou=people,dc=suse,dc=de" attrs=loginShell by self write # Every user can read everything access to * by users read

19
Seguridad en la red

La segunda instruccin conere a los usuarios autenticados derechos de escritura sobre el atributo loginShell de su entrada LDAP. La tercera instruccin otorga a todos los usuarios autenticados permiso de lectura para todo el directorio LDAP. Ahora bien, cmo puede averiguar el servidor LDAP que joe@SAMPLE.COM de Kerberos es el equivalente de LDAP DN distinguished name uid=joe,ou=people,dc=suse,dc=de? Esta correspondencia se dene manualmente a travs de la directiva saslExpr. En el ejemplo se aade a slapd.conf:
saslRegexp uid=(.*),cn=GSSAPI,cn=auth uid=$1,ou=people,dc=example,dc=com

Para comprender este mecanismo es necesario tener en cuenta que OpenLDAP crea un DN cada vez que SASL autentica un usuario. Este DN se compone del nombre transmitido por SASL (como por ejemplo joe) y del tipo de autencacin SASL (GSSAPI). El resultado en este caso sera uid=joe,cn=GSSAPI,cn=auth. Si se ha congurado un saslRegexp, el servidor LDAP comprueba el DN de la informacin SASL con el primer argumento como expresin regular. Si esta expresin regular resulta vlida, el nombre es sustituido por el segundo argumento de la instruccin saslRegexp.

SUSE LINUX Manual de Administracin

543

El comodn ($1) es reemplazado por la parte de la expresin detectada a travs de la expresin (.*). Tambin es posible denir complicados patrones de bsqueda. Si utiliza una estructura de directorios compleja o si el nombre de usuario en la estructura que usted emplea no es parte del DN, puede usar expresiones de bsqueda que realicen la correspondencia entre el DN de SASL y el DN de usuario.

19.5.
19.5.1.

La seguridad, una cuestin de conanza


Conceptos bsicos

Una de las caractersticas fundamentales de un sistema Linux/Unix es que varios usuarios (multi-user) pueden realizar en un mismo ordenador diferentes tareas al mismo tiempo (multi-tasking). Por otra parte el sistema operar en red de forma transparente, lo que signica que el usuario no podr percibir si los datos o aplicaciones con los que se est trabajando se encuentran alojados de forma local en el ordenador o en alguna otra parte. Esta caracterstica particular de que varios usuarios puedan trabajar con el sistema, exige que estos usuarios y sus datos tambin puedan ser diferenciados unos de otros. Dado que en este contexto intervienen otros aspectos como pueden ser los de ndole emocional, esto hace que se le dedique especial atencin a la seguridad y a la proteccin de la privacidad. El trmino proteccin de datos existe desde la poca en que los ordenadores an no estaban unidos entre s mediante una red. En aquellos tiempos lo primordial era que despus de una prdida o despus de un fallo en el dispositivo de almacenamiento (por lo general el disco duro) los datos siguieran estando disponibles, incluso si este fallo provocaba la cada temporal de una infraestructura mayor. Si bien este captulo del manual de SUSE trata principalmente de la condencialidad de los datos y de la proteccin de la privacidad del usuario, hay que destacar que un concepto amplio de seguridad siempre contempla que se realice peridicamente una copia de seguridad o backup que funcione correctamente y que sea revisado. Sin el backup de los archivos no slo ser difcil acceder a los datos en caso de un fallo del hardware sino tambin particularmente cuando exista la sospecha de que alguien ha tenido acceso a ciertos datos sin disponer de autorizacin.

544

19.5. La seguridad, una cuestin de conanza

19.5.2. Seguridad local y seguridad en la red


Existen diferentes formas de acceder a los datos: Comunicacin directa con alguien que dispone de la informacin deseada o de acceso a determinados datos de un ordenador, directamente desde la consola del ordenador (acceso fsico), a travs de un puerto serie, o a travs de una red. Todas estas alternativas deberan presentar un rasgo en comn: cada uno se debera autenticar como usuario antes de poder acceder a los recursos o datos deseados. Dicho de otra forma: se debe haber demostrado una identidad que mediante una regla de acceso le permitir acceder a los recursos (datos o acciones) requeridos. Un servidor de web puede ser en este aspecto algo diferente, pero en cualquier caso seguro que nadie desea que el servidor de web revele sus datos personales al primero que pase por all. El primer punto de la lista es el que ms se asemeja al caso del ser humano. Por ejemplo, en el caso de un banco hay que demostrar al empleado que tiene derecho a acceder a su cuenta, ya sea mediante su rma, un PIN o una contrasea. De esta manera demostrar que usted es la persona que pretende ser. En algunos casos (que probablemente poco tienen que ver con ordenadores, sistemas operativos y redes) es posible ganarse la conanza del poseedor de una informacin ofrecindole con habilidad pequeos datos fragmentados sobre hechos de la naturaleza ms diversa o mediante una hbil retrica de tal modo que poco a poco el individuo ir ofreciendo poco a poco ms informacin sin darse cuenta. En los crculos hackers, a esto se le llama Social Engineering. Contra este tipo de ataque slo se puede actuar informando debidamente al personal y con un uso sensato de la informacin y del lenguaje. Los ataques a los sistemas informticos a menudo van precedidos de un asedio de tipo Social-Engeniering, contra el personal de recepcin, el personal de servicio de la empresa o contra miembros de la familia. Este tipo de ataque no se suele detectar hasta mucho tiempo despus. Alguien que quiere acceder a ciertos datos de forma no autorizada puede utilizar el mtodo ms tradicional ya que el mismo hardware es un punto de ataque. El ordenador debe estar protegido contra robo, cambio, y sabotaje en sus piezas y en su unidad (as como el backup de sus datos). A este tipo de ataques pueden aadirse la conexin a una red o un cable elctrico.

19
Seguridad en la red
545

SUSE LINUX Manual de Administracin

El proceso de arranque debe de estar asegurado ya que una determinada combinacin de teclas conocida puede producir en el ordenador una reaccin concreta. Para evitar esto se pueden utilizar contraseas para la BIOS y para el bootloader. Si bien los puertos serie con terminales en serie son todava habituales, apenas se siguen instalando en puestos de trabajo nuevos. En lo que respecta al tipo de ataque, una terminal en serie es un caso excepcional: no se trata de un puerto de red ya que para la comunicacin entre las unidades del sistema no se utiliza ningn protocolo de red. Un simple cable (o un puerto infrarrojo) servir de medio de transmisin para caracteres sencillos. El cable en s es el punto de ataque ms sencillo. Slo hay que conectar una vieja impresora y recibir la informacin. Lo que es posible con una simple impresora se puede hacer tambin de otra forma a travs de medios ms sosticados. Dado que abrir un archivo en un ordenador est sometido a otras limitaciones de acceso que las de abrir una conexin en red a un servicio en un ordenador, hay que hacer distincin entre la seguridad local y la seguridad de red. La diferencia radica en que los datos deben ir ligados en paquetes para ser enviados y llegar a la aplicacin. Seguridad local Como ya mencionamos, la seguridad local comienza con las caractersticas fsicas del ordenador. Partimos de la suposicin de que un ordenador est constituido de forma que la seguridad se adecua al nivel deseado y necesario. Colquese en el papel de quien pretende asaltar un ordenador: mientras sigamos hablando de seguridad local la tarea consiste en diferenciar a unos usuarios de otros, de modo que ningn usuario pueda obtener los derechos de otro usuario. Esta es la regla general, pero evidentemente un caso diferente es la cuenta root, que posee todos los derechos sobre el sistema. Cuando un usuario se convierte en root, puede transformarse en cualquiera de los usuarios locales sin necesidad de contrasea y de este modo leer cualquier archivo local. Contraseas El sistema Linux no guarda en forma de texto legible las contraseas que usted debera haber establecido, ya que en caso de que el archivo en el cual se guardan las contraseas fuera robado, todas las cuentas de ese sistema estaran en peligro. En lugar de ello, el sistema codica su contrasea y cada vez que usted introduzca su contrasea esta ser codicada y el resultado se comparar con la contrasea archivada. Esto naturalmente slo tiene

546

19.5. La seguridad, una cuestin de conanza

sentido si de la contrasea codicada no se puede deducir la contrasea en s. El caso es como sigue: a este tipo de logaritmos se les denomina logaritmos trampa porque slo funcionan en una direccin. Un atacante que haya obtenido una contrasea codicada no puede simplemente descodicarla y ver la contrasea. La nica solucin es probar una por una todas las combinaciones de letras posibles hasta dar con la contrasea que una vez codicada se parece a la que tena. Se puede calcular rpidamente el gran nmero de contraseas posibles que se pueden hacer combinando ocho letras. En los aos 70, un argumento a favor de este concepto de seguridad era que el algoritmo utilizado era muy lento y que necesitaba segundos para codicar una contrasea. Los PCs actuales pueden realizar desde varios cientos de miles hasta millones de codicaciones en un segundo lo que requiere dos cosas: las contraseas codicadas no deben ser visibles para ninguno de los usuarios (/etc/shadow no puede ser ledo por un usuario normal) y las contraseas no deben ser fciles de adivinar para el caso en que por un error se pudieran leer las contraseas codicadas. Una contrasea como fantasa reescrita como f@nt@s13 no resulta muy til: Tales estrategias para despistar son un juego de nios para los programas de los piratas informticos que utilizan diccionarios como fuente de consulta. Es mejor utilizar combinaciones de letras que no formen una palabra conocida y que slo tengan sentido para uno mismo (pero que tampoco sea la combinacin que abre el candado de la maleta). Una buena contrasea podran ser las letras iniciales de las palabras de una frase. Por ejemplo: el ttulo de un libro, El nombre de la rosa de Umberto Eco, encierra una buena contrasea: EndlrdUE. Una contrasea del tipo Casanova o Lorena76 podra ser adivinada por alguien que le conozca ms o menos bien. El proceso de arranque Evite que se pueda arrancar el sistema mediante un disquete o un CDROM, ya sea desmontando las unidades de lectura o seleccionando una contrasea BIOS y determinando en la BIOS que el arranque se realice exclusivamente desde el disco duro. Los sistemas Linux arrancan generalmente con un boot-loader, que permite transmitir opciones adicionales al kernel que se va a arrancar. Este tipo de acciones hacen peligrar la seguridad, en gran medida porque el kernel no slo funciona con privilegios de usuario root es el que otorga desde un principio dichos permisos. Si utilizan GRUB como bootloader, puede evitar esto introduciendo otra contrasea adicional en /boot/grub/menu.lst (ver 7 en la pgina 187).

19
Seguridad en la red
547

SUSE LINUX Manual de Administracin

Permisos de acceso Hay que partir del principio de que siempre se debe trabajar con el menor nmero de privilegios posible. En denitiva, no es necesario estar registrado como usuario root para leer o escribir e-mails. Si el programa de correo electrnico (MUA = Mail User Agent) con el que se trabaja tuviera un fallo, este repercutira con los mismos derechos con los que se tenan activos en el momento del problema. Lo que se trata aqu es de minimizar los daos. Los derechos individuales de los ms de 200000 archivos que se distribuyen con SUSE se otorgan de forma cuidadosa. El administrador de un sistema slo debera instalar software adicional u otros archivos con mucha precaucin y siempre prestando atencin especial a los derechos atribuidos a los archivos. Un administrador experimentado y consciente de la importancia del tema de la seguridad siempre debe utilizar la opcin -l en el comando ls, lo que le ofrecer una lista completa de los archivos incluyendo todos los derechos de acceso de tal forma que rpidamente podr detectar si algn derecho no est bien adjudicado. Un atributo que no est bien adjudicado puede originar que un archivo pueda ser borrado o sobreescrito. Esto puede originar que los archivos intercambiados puedan ser ejecutados tambin por root o que los archivos de conguracin de programas puedan ser utilizados como root. Alguien que atacara el sistema podra de este modo ampliar considerablemente sus derechos. A este tipo de intrusiones se les denomina huevos de cuco porque el programa (el huevo) es depositado en el nido por un usuario extrao (el pjaro) y ejecutado (incubado) de forma similar a como ocurre con el cuco que hace que otros pjaros incuben sus huevos. Los sistemas SUSE disponen de archivos permissions, permissions. easy, permissions.secure y permissions.paranoid en el directorio /etc. En estos archivos se determinan derechos especiales sobre archivos como por ejemplo directorios de escritura universal o setuser-ID-bits (el programa no se ejecuta con los permisos del propietario del proceso que lo ha arrancado sino con los permisos del propietario del archivo, que por norma general es root). El archivo /etc/permissions.local est a disposicin del administrador; aqu podr guardar sus propias modicaciones. Para denir con comodidad cules son los archivos usados por los programas de conguracin de SUSE para la adjudicacin de los permisos existe el punto del men Seguridad de YaST. En el archivo /etc/permissions y en la pgina de manual del comando chmod (man chmod) se recoge ms informacin sobre este tema.

548

19.5. La seguridad, una cuestin de conanza

Buffer overows, format string bugs Siempre que un programa procesa datos que de una forma u otra estn o han estado bajo la inuencia de un usuario se requiere mucha precaucin. Principalmente esto afecta a los programadores de la aplicacin: Un programador debe garantizar que los datos sern bien interpretados por el programa, que en ningn momento se escribirn en sectores de memoria demasiado pequeos y se responsabilizar de que su propio programa entregue los datos adecuadamente y a travs de las interfaces predenidas para ello. Hablamos de que se ha producido un buffer overow cuando al denir un sector de la memoria del bfer no se tiene en cuenta el tamao del bfer. Puede ocurrir que los datos (que provienen de un usuario) ocupen ms espacio del que hay disponible en el bfer. Al reescribir el bfer ms all de sus lmites puede ocurrir que (en vez de slo procesar los datos) el programa ejecute secuencias de programas estando estas bajo el control del usuario y no as del programador. Este es un error grave, especialmente cuando el programa corre con derechos especiales (vase el apartado 19.5.2 en la pgina anterior)). Los llamados format string bugs funcionan de un modo algo distinto, pero utilizan igualmente user-input para desviar el programa de su camino real. Estos errores de programacin son aprovechados por programas que se ejecutan con privilegios superiores, o sea programas del tipo setuid y setgid. Es posible protegerse y proteger el sistema frente a este tipo de errores retirando del programa los derechos privilegiados de ejecucin. Aqu tambin es vlido el principio de otorgar privilegios lo ms bajos posible (vase el apartado sobre los derechos de acceso). Dado que los buffer overows y los format string bugs son errores en el tratamiento de los datos del usuario, no son necesariamente explotados solo cuando se dispone de acceso a un login local. Muchos de estos errores, ya conocidos, pueden ser explotados a travs de una conexin en red. Por esta razn, no es posible determinar si los buffer overows y los format string bugs han sido originados por el ordenador local o por la red. Virus En contra de lo que se cree, s existen virus para Linux. Los virus conocidos fueron denominados Proof-of-Concept por sus autores para demostrar que esta tcnica funciona. Sin embargo no se ha observado ninguno de estos virus en libertad.

19
Seguridad en la red
549

SUSE LINUX Manual de Administracin

Para desarrollarse y sobrevivir, los virus necesitan un husped. Este husped es un programa o un sector de memoria de importancia para el sistema, como p.ej. el Master-Boot-Record, y el cdigo de programa del virus debe tener acceso de escritura a este. Debido a sus caractersticas multiusuario, Linux puede limitar el derecho de escritura de los archivos, especialmente de los archivos de sistema. Es decir, que si se trabaja como root, aumentan las posibilidades de que su sistema sea infectado por un virus de este tipo. Por lo tanto, tenga en cuenta el principio del menor privilegio posible. De este modo, lo difcil sera que su sistema se pudiera llegar a infectar con un virus trabajando bajo Linux. Por otra parte, no debera ejecutar un programa que haya bajado de Internet y cuyo origen desconoce. La rma de los paquetes rpm de SUSE est codicada. Estas rmas digitales avalan el esmero de SUSE al elaborar el paquete. Los virus son un clsico sntoma de que un sistema altamente seguro se vuelve inseguro cuando el administrador o el usuario no asumen con seriedad el tema de la seguridad. No hay que confundir los virus con los gusanos, que tambin son fenmenos relacionados con las redes pero que no necesitan un husped para propagarse. La seguridad en la red La misin de la seguridad local es diferenciar entre los usuarios de un ordenador, en particular el usuario root. Por el contrario, la seguridad de la red consiste en proteger el sistema entero contra ataques provenientes de la red. Si bien al registrarse en el sistema de la manera convencional se deben introducir un nombre de usuario y una contrasea, la identicacin del usuario es ms un tema de seguridad local. Al registrase en la red hay que considerar dos aspectos de seguridad: lo que sucede hasta que se ha conseguido con xito la autenticacin (seguridad de red) y lo que ocurre posteriormente (local). X windows (Autenticacin X11) Como ya se ha mencionado anteriormente, la "transparencia respecto a la red" es una de las caractersticas bsicas del sistema Unix. Esto es as sin lugar a dudas en el caso de X11, el sistema windowing de los sistemas Unix. Permite registrarse sin ms en un ordenador remoto e iniciar un programa que se podr ver en el propio ordenador a travs de la red. Cuando nuestro servidor X tiene que mostrar un cliente X a travs de la red, debe proteger los recursos que gestiona (el display) contra accesos no autorizados.

550

19.5. La seguridad, una cuestin de conanza

En este caso concreto, esto signica que el programa cliente tiene que recibir derechos. En X-Windows esto sucede de dos formas: Controles de acceso basados en host y controles basados en cookies. Los primeros estn basados en la direccin IP del ordenador en el que se debe ejecutar el programa cliente y se controlan con el programa xhost. El programa xhost introduce la direccin IP de un cliente legtimo en una mini base de datos en el servidor X. Pero limitarse a establecer una nica autenticacin en una direccin IP no es precisamente seguro. Otro usuario podra estar activo en el ordenador con el programa cliente y tendra acceso al servidor X como si hubiera robado la direccin IP. Por esta razn aqu no profundizaremos ms sobre estos mtodos. La manpage del comando xhost ofrece ms explicaciones sobre el funcionamiento (y tambin contiene la advertencia). Los controles de acceso basados en cookies utilizan como medio de identicacin una cadena de caracteres que slo conocen el servidor X y el usuario registrado legtimamente. El cookie se utiliza como mtodo de identicacin similar a una contrasea. Al hacer login, este cookie (la palabra inglesa cookie signica galleta y aqu hace referencia a las galletas chinas de la fortuna, las cuales contienen un papel con un proverbio en su interior) se graba en el archivo .Xauthority del directorio personal del usuario y de este modo, est a disposicin de cualquier cliente de X Windows que quiera abrir una ventana en X-server. El programa xauth ofrece al usuario la herramienta para explorar el archivo .Xauthority. No se podrn abrir ms ventanas de nuevos clientes X si .Xauthority se borra del directorio personal o si se le cambia el nombre. Para ampliar informacin sobre el tema de la seguridad de Windows X le recomendamos la manpage de Xsecurity (man Xsecurity). ssh (secure shell) puede transmitir la conexin a un servidor X de forma transparente (o sea, no directamente visible) para un usuario a travs de una conexin de red completamente codicada. En tal caso se habla de X11-forwarding. En este caso, en el lado del servidor se simula un servidor X y en la shell del lado remoto se coloca la variable DISPLAY.

19
Seguridad en la red

Aviso
Si considera que el ordenador en el que se est registrando no es lo sucientemente seguro, no debera dejar que se realicen conexiones X-windows. Con el X11-forwarding conectado, los piratas podran autenticarse y conectarse con su servidor X a travs de su conexin ssh y, p. ej., espiar su teclado.

Aviso

SUSE LINUX Manual de Administracin

551

Buffer overows y format string bugs Lo dicho sobre buffer overows y format string bugs en el apartado de seguridad local, se aplica tambin a la seguridad de red, si bien aqu estos errores ya no pueden ser directamente clasicados como locales o remotos. Del mismo modo que en las variantes locales de estos errores de programacin, por lo general en los servicios de red los bfer Overows tienen como objetivo los privilegios de root. De no conseguir directamente acceso a los privilegios root, el pirata podra abrirse camino hasta una cuenta local con pocos privilegios en la cual podra aprovecharse de problemas de seguridad (locales), en caso de que existieran. Las variantes ms comunes de ataque remoto a travs de la red son los bfer overows y los format string bugs. Mediante listas de correo de seguridad se distribuyen los llamados exploits, que no son ms que programas que aprovechan los puntos dbiles hallados recientemente. As mismo las personas que no conozcan con lujo de detalles estos puntos dbiles o lagunas pueden aprovecharse de ellas. Con el paso de los aos se ha demostrado que el hecho de que estos exploitcodes circulen libremente ha contribuido a que la seguridad de los sistemas operativos aumente debido a que los productores de sistemas operativos se ven obligados a solucionar los problemas de su software. En el caso del software cuyo source-code se distribuye de forma libre (SUSE Linux es distribuido con todas las fuentes disponibles), alguien que encuentre una laguna con exploitcodes puede ofrecer al mismo tiempo una sugerencia para solventar el problema. DoS - Denial of Service El objetivo de este tipo de ataques es bloquear el servicio o incluso todo el sistema. Esto puede llevarse a cabo de las maneras ms diversas: Por sobrecarga, ocupando el sistema con paquetes absurdos o mediante el uso de remote buffer overows, que no pueden ser utilizados de forma directa para ejecutar programas en la unidad remota. En la mayora de los casos, un DoS encuentra su justicacin en el hecho de que un servicio simplemente ya no est disponible. El hecho de que un servicio falte puede traer consigo una serie de consecuencias. Vase man in the middle: snifng, tcp connection hijacking, spoong y DNS poisoning. man in the middle: snifng, tcp connection hijacking, spoong De forma general se denomina con el trmino man in the middle attack al ataque que se realiza desde la red y en el cual el atacante ocupa una posicin intermedia entre dos unidades que se comunican.

552

19.5. La seguridad, una cuestin de conanza

Todos tienen por lo general una cosa en comn: la vctima no se percata de nada. Existen muchas variaciones: el atacante intercepta la comunicacin y para que la vctima no se percate de nada, establece l mismo una comunicacin con la mquina objetivo. Sin darse cuenta, la vctima ha abierto una comunicacin con el ordenador equivocado que se hace pasar por su objetivo. La forma ms sencilla de man in the middle attack es el sniffer. Simplemente espa las conexiones de red que pasan por l (snifng = ingl. sgonear). Todo se vuelve ms complicado cuando el atacante de por medio intenta tomar posesin de una conexin ya establecida (hijacking = ingl. secuestrar). Para ello, el atacante tiene que ir analizando durante algn tiempo los paquetes que van pasando de largo para poder prever la secuencia de nmeros TCP correcta de la conexin TCP. Cuando consigue asumir el papel del objetivo de la conexin, la vctima lo nota ya que de su lado la conexin naliza como no vlida. El atacante se aprovecha sobre todo de protocolos que no estn protegidos de forma criptogrca contra hijacking y en los cuales al inicio de la conexin se realiza una autenticacin. Se denomina spoong al envo de paquetes con datos de remitente modicados; por lo general la direccin IP. La mayora de los ataques requieren el envo de paquetes falsicados, lo cual en Unix/Linux slo puede ser realizado por el superusuario (root). Muchas de las modalidades de ataque vienen acompaadas de un DoS. Si se ofrece la oportunidad de separar un ordenador de la red de forma sbita (aunque sea slo un momento) se facilita el poder realizar un ataque activo ya que tras ello no se esperaran ms problemas. DNS poisoning El pirata intenta envenenar (poisoning) el cache de un servidor DNS por medio de un paquete respuesta DNS falsicado (spoofted) para que entregue la informacin deseada a una vctima que la solicita. Generalmente el atacante deber recibir algunos paquetes del servidor y analizarlos para poder introducir de forma verosmil esta informacin a un servidor DNS. Dado que muchos servidores han congurado una relacin de conanza con los dems ordenadores mediante sus direcciones IP o los hostnames, puede que uno de estos ataques pueda dar frutos rpidamente a pesar del trabajo que conlleva. No obstante, una condicin para conseguirlo es un buen conocimiento de la estructura de conanza existente entre estos ordenadores. En la mayora de los casos el atacante no puede evitar que se tenga que ejecutar un DoS perfectamente sincronizado contra un servidor DNS cuyos datos se desean falsicar.

19
Seguridad en la red
553

SUSE LINUX Manual de Administracin

Esto se puede remediar mediante el uso de una conexin codicada de forma criptogrca, la cual puede vericar la identidad del objetivo de la conexin. Gusanos A menudo se equipara a los gusanos con los virus, pero existe una gran diferencia entre ellos: un gusano no tiene que infectar un programa husped y su especialidad consiste en expandirse lo ms rpidamente posible por la red. Algunos gusanos conocidos, como son p.ej. Ramen, Lion y Adore, hacen uso de lagunas muy populares en programas de servidor como bind8 o lprNG. Es relativamente fcil protegerse contra los gusanos, ya que desde el momento en el que se detecta la laguna y hasta que aparece el gusano suelen transcurrir varios das, permitiendo que aparezcan paquetes de update. Naturalmente es requisito indispensable que el administrador del sistema instale los Security-updates en su sistema.

19.5.3.

Trucos y consejos: indicaciones generales

Informacin: Para asegurar una gestin eciente de la seguridad es necesario estar al da sobre los ltimos desarrollos y los problemas de seguridad ms recientes. Una muy buena proteccin contra todo tipo de fallos consiste en implementar de la forma ms rpida posible los paquetes de update que se anuncien en un Security-Announcement. Los anuncios de seguridad de SUSE se distribuyen a travs de una lista de correo en la que usted puede inscribirse siguiendo los enlaces que encontrar en http: //www.suse.de/security. suse-security-announce@suse.de es la primera fuente de informacin sobre paquetes de actualizacin donde el equipo de seguridad publica la informacin ms actual. La lista de correo suse-security@suse.de es un foro de discusin en el que se puede obtener mucha informacin sobre el tema de la seguridad. Para apuntarse en la lista hay que dirigirse a la misma URL utilizada para obtener informacin sobre actualizaciones: suse-security-announce@ suse.de. Una de las listas de correo sobre seguridad ms conocidas del mundo es la lista bugtraq@securityfocus.com. Le recomendamos encarecidamente leer esta lista en la que aparece una media de 15 a 20 mensajes al da. En http://www.securityfocus.com encontrar ms informacin. A continuacin se recogen algunas normas fundamentales que puede ser recomendable tenerlas en cuenta:

554

19.5. La seguridad, una cuestin de conanza

Evite trabajar como root, siguiendo el principio de utilizar el mnimo privilegio posible para una tarea. Esto reduce las posibilidades de un huevo de cuco o un virus y de este modo evitar problemas. Use conexiones codicadas siempre que le sea posible para ejecutar tareas remotas. ssh (secure shell) es estndar. Evite telnet, ftp, rsh y rlogin. No utilice mtodos de autenticacin que estn nicamente basados en la direccin IP. Mantenga siempre actualizados sus paquetes ms importantes para trabajar en la red y abnese a las listas de correo de anuncios acerca del software correspondiente (p.ej.: bind, sendmail, ssh). Esto tambin es vlido para la seguridad local. Optimice los derechos de acceso de los archivos del sistema que sean de importancia para la seguridad adaptando el archivo /etc/ permissions de su eleccin a sus necesidades. Un programa setuid que ya no tenga un setuid-bit tal vez ya no pueda desempear realmente su funcin pero por norma general ya no constituye un problema de seguridad. Es recomendable proceder de forma similar con los archivos y los directorios con acceso de escritura universal. Desactive todos los servicios de red que no sean estrictamente necesarios para su servidor. Esto hace que su servidor sea ms seguro y evita que sus usuarios se acostumbren a usar un servicio que usted nunca ha puesto voluntariamente a su disposicin (legacy-Problem). Con el programa netstat encontrar los puertos abiertos (con el estado de sockets LISTEN). Se puede utilizar con las opciones netstat -ap o netstat -anp. Con la opcin -p se puede ver directamente qu proceso ocupa un puerto y con qu nombre. Compare los resultados que ha obtenido con los de un portscan completo de su ordenador desde fuera. El programa nmap es ideal para ello. Revisa cada uno de los puertos y segn la respuesta de su ordenador puede extraer conclusiones sobre un servicio que se encuentra en espera detrs del puerto. Nunca escanee un ordenador sin la aprobacin directa del administrador ya que esto podra ser interpretado como un acto de agresin. No es suciente con escanear los puertos TCP. Tambin deber escanear los puertos UDP (opciones -sS y -sU).

19
Seguridad en la red
555

SUSE LINUX Manual de Administracin

Para realizar una prueba de integridad de conanza de los archivos que se encuentran en su sistema deber utilizar tripwire y codicar la base de datos para protegerla de manipulaciones. Adems necesitar hacer un backup de esta base de datos en un dispositivo de almacenamiento de datos que se encuentre fuera de la mquina y que no est conectado con la red a travs del ordenador. Tenga cuidado a la hora de instalar software extrao. Ya se ha dado el caso de que un pirata haya incluido un caballo de Troya en los archivos tar de un software de seguridad. Por suerte esto se detect a tiempo. Si instala un paquete binario, debera estar seguro de su procedencia. Los paquetes rpm de SUSE se distribuyen con la rma gpg. La clave que utilizamos para rmarlos es: ID:9C800ACA 2000-10-19 SUSE Package Signing Key <build@suse.de> Key ngerprint = 79C1 79B2 E1C8 20C1 890F 9994 A84E DAE8 9C80 0ACA El comando rpm -checksig paquete.rpm muestra si la suma de control y la rma del paquete (no instalado!) se corresponden. La clave se encuentra en el primer CD de distribucin SuSE a partir de SuSE-7.1 y en la mayora de los servidores de cdigos (keyserver) del mundo. Compruebe regularmente el backup de los datos y de su sistema. En determinadas circunstancias, si la informacin de la funcin del backup no es precisa, el backup carece de utilidad. Revise sus Logles. En la medida de lo posible debera escribir un pequeo script que se encargue de buscar entradas irregulares en sus logles. Esta tarea no es para nada trivial ya que slo usted sabe qu es irregular y qu no lo es. Utilice tcp_wrapper para restringir el acceso a los diferentes servicios de su ordenador mediante un IP. Slo aquellas direcciones IP que tengan permiso explcito podrn acceder a unos determinados servicios. En las pginas de manual tcpd(8) y hosts_access (man tcpd, man hosts_access) encontrar ms informacin sobre tcp_wrappern. Puede utilizar el rewall (cortafuegos) SuSE como proteccin adicional a tcpd (tcp_wrapper).

556

19.5. La seguridad, una cuestin de conanza

Ponga en prctica sus conceptos de seguridad de forma redundante: un mensaje que llega dos veces es mejor que uno que no llega nunca. Esto tambin es vlido para las conversaciones con los compaeros de trabajo.

19
Seguridad en la red

19.5.4.

Informe a SuSE sobre nuevos problemas de seguridad

Si encuentra un problema de seguridad (por favor compruebe los paquetes de actualizacin existentes) remtase entonces con toda conanza a la direccin de e-mail mailto:security@suse.de. Le rogamos que adjunte una descripcin detallada del problema as como el nmero de versin del paquete utilizado. Procuraremos contestarle a la mayor brevedad posible. Es preferible que enve su e-mail con una codicacin gpg. Nuestra clave pgp es: ID:3D25D3D9 1999-03-06 SUSE Security Team <security@suse.de> Key ngerprint = 73 5F 2E 99 DF DB 94 C4 8F 5A A3 AE AF 22 F2 D5 Esta clave se puede descargar de http://www.suse.de/security.

SUSE LINUX Manual de Administracin

557

Parte V Anexo

A
Sistemas de archivos en Linux

Sistemas de archivos en Linux

Linux soporta una gran variedad de sistemas de archivos. Este captulo ofrece una breve introduccin a los sistemas de archivos ms conocidos en Linux, prestando una especial atencin a su estructura y ventajas as como a sus campos de aplicacin. Asimismo se presentar informacin sobre el soporte de archivos grandes o Large File Support.

Glosario
Metadatos Garantiza la estructura interna de datos, el orden de la estructura y la disponibilidad de los datos en el disco duro. En resumidas cuentas, se trata de los datos sobre los datos. Todo sistema de archivos posee su propia estructura de metadatos. Aqu es donde se encuentra en parte la razn de las diferencias en cuanto a rendimiento de los sistemas de archivos. Es extremadamente importante mantener intactos los metadatos, ya que de lo contrario se podra daar todo el sistema de archivos. Inode Los inodes contienen toda la informacin respecto a un archivo: el nombre, el tamao, el nmero de enlaces, la fecha, la hora en que fue creado, modicaciones, accesos como sealador (pointer) de los bloques del disco duro y dnde se encuentra grabado.

Journal En relacin a un sistema de archivos, un journal o diario es una estructura interna del disco con un tipo de protocolo en el que el controlador del sistema de archivos introduce los (meta)datos del sistema de archivos que van a ser modicados. El journaling reduce enormemente el tiempo de elaboracin de un sistema Linux, ya que de este modo el controlador del sistema de archivos no debe iniciar una bsqueda de los metadatos modicados en todo el disco. En vez de eso, basta con ver las entradas del diario.

Los sistemas de archivos ms importantes en Linux


Contrariamente a lo que ocurra hace dos o tres aos, la eleccin de un sistema de archivos en Linux ya no es una cuestin de segundos (Ext2 o ReiserFS?). A partir de la versin 2.4, el kernel ofrece una gran seleccin de sistemas de archivos. A continuacin le mostramos un resumen de las funciones bsicas de estos sistemas de archivos y sus ventajas. Tenga siempre en cuenta que no existe ningn sistema de archivos que puede funcionar del mismo modo con todas las aplicaciones. Cada sistema de archivos tiene puntos fuertes y dbiles que se deben de tener presentes. Ni el sistema de archivos ms desarrollado de todo el mundo puede sustituir a la copia de seguridad. Los conceptos integridad de los datos o consistencia de los datos no se reeren en este captulo a la consistencia de los datos guardados de un usuario (los datos que las aplicaciones que utiliza escribe en sus archivos). La consistencia de estos datos debe quedar asegurada por las aplicaciones mismas.

Atencin
Conguracin de sistemas de archivos Mientras no se indique lo contrario explcitamente, todas las acciones de particionamiento as como de creacin y edicin de sistemas de archivos pueden llevarse a cabo cmodamente con YaST.

Atencin

562

Ext2
El origen de Ext2 se remonta a los primeros das de Linux. Su antecesor, el Extended File System fue implementado en abril de 1992 e integrado en Linux 0.96c. Este sufri una serie de modicaciones y durante aos se le conoci como Ext2 a la vez que se le consider el sistema de archivos ms popular de Linux. Con la introduccin del sistema Journaling File y de su tiempo de elaboracin tan sorprendentemente corto, Ext2 perdi importancia. Puede que le sirva de ayuda un pequeo resumen de los puntos fuertes de Ext2 para que comprenda su popularidad entre los usuarios de Linux, que en cierta medida an hoy lo preeren como sistema de archivos. Estabilidad Con el correr del tiempo, Ext2 ha sufrido muchas mejoras que le han hecho ganarse la reputacin de ser slido como una roca. En caso de una cada del sistema en la que el sistema de archivos no puede desmontarse adecuadamente, e2fsck inicia un anlisis de los datos del sistema de archivos. Los metadatos se reconstruyen y los archivos o bloques de datos que quedan sueltos se guardan en un directorio denominado lost+found/. En contraposicin a (la mayora) de los sistemas de archivos transaccionales o journaling, e2fsck analiza todo el sistema de archivos y no slo los bits de metadatos modicados. Esto dura ms tiempo que la comprobacin de los datos de protocolo de un sistema journaling. Dependiendo del tamao del sistema de archivos, puede llegar a durar ms de media hora. Por esta razn, Ext2 no se escoge para ningn servidor que deba tener un alto rendimiento. Debido a que Ext2 no debe hacerse cargo de ningn diario y a la vez necesita poca memoria, a menudo es ms rpido que otros sistemas de archivos. Fcil actualizacin Tomando como base la fortaleza de Ext2, Ext3 podra llegar a convertirse en el sistema de archivos de la prxima generacin. Su abilidad y estabilidad se encontraran a la par de las ventajas de un sistema de archivos journaling.

A
Sistemas de archivos en Linux

Ext3
Ext3 fue concebido por Stephen Tweedie. A diferencia del resto de los sistemas de archivos de ltima generacin, no est basado en un nuevo diseo, sino en Ext2. Ambos sistemas de archivos estn estrechamente vinculados.

SUSE LINUX Manual de Administracin

563

Un sistema de archivos Ext3 se puede montar fcilmente sobre un sistema Ext2. La diferencia fundamental entre ambos radica en que Ext3 tambin soporta journaling. Estas son brevemente las tres ventajas de Ext3: Actualizacin sencilla y muy able de Ext2 Ya que Ext3 se basa en el cdigo de Ext2, a la vez que comparten formato tanto para el disco como para los metadatos, las actualizaciones no son complicadas. Incluso se pueden llevar a cabo mientras el sistema de archivos Ext2 est montado. El proceso de cambio a otro sistema de archivos journaling, como por ejemplo ReiserFS, JFS, o XFS, puede llegar a ser muy trabajoso debido a que se deben realizar copias de seguridad de todo el sistema de archivos y despus instalarlo desde cero. Sin embargo, el cambio a Ext3 puede ser una cuestin de minutos. Adems es muy seguro, ya que resulta difcil que la reelaboracin de todo un sistema de archivos desde cero no tenga errores. Si se tiene en cuenta la cantidad de sistemas Ext2 disponibles que esperan una actualizacin a un sistema de archivos journaling, se puede imaginar fcilmente el signicado de Ext3 para muchos administradores de sistemas. El pasar de Ext3 a Ext2 es tan fcil como la actualizacin en sentido contrario. Tan slo tiene que desmontar el sistema Ext3 y montarlo como Ext2. Fiabilidad y rendimiento Todos los sistemas de archivos journaling siguen el principio journaling de slo metadatos (metadata-only). Esto signica que los metadatos permanecen en un estado consistente, lo que sin embargo no puede ser garantizado automticamente para los datos del sistema de archivos. Ext3 tiene capacidad para cuidar tanto de los metadatos como de los datos mismos. Se puede congurar individualmente el detalle con el que Ext3 debe ocuparse de los datos y metadatos. El grado ms alto de seguridad (es decir, integridad de los datos) se consigue al arrancar Ext3 en modo data=journal; esto puede hacer que el sistema sea ms lento, ya que se guardarn en el diario tanto los datos como los metadatos. Una posibilidad relativamente nueva consiste en la utilizacin del modo data=ordered, que garantiza la integridad tanto de los datos como de los metadatos, a pesar de que slo realiza journaling para los metadatos. El controlador del sistema de archivos rene todos los bloques de datos relacionados con la actualizacin de los metadatos. Estos bloques quedan agrupados como transaccin en los discos, antes de que los metadatos sean actualizados.

564

Con esto se consigue consistencia de datos y metadatos sin prdida de rendimiento. Un tercer tipo de modo es data=writeback. De esta forma se puede escribir datos en el sistema de archivos principal, despus de que los metadatos hayan pasado al diario. Para muchos esta opcin es la mejor conguracin en cuanto a rendimiento. Sin embargo, con esta opcin puede ocurrir que aparezcan viejos datos en los archivos despus de haberse producido una cada del sistema, a la vez que se garantiza la integridad del sistema de archivos. Mientras no se indique otra opcin, Ext3 arrancar con la opcin por defecto data=ordered.

A
Sistemas de archivos en Linux

Atencin
Conversin de un sistema de archivos Ext2 a Ext3 Crear el diario (journal): Ejecute el comando tune2fs -j como usuario root. tune2fs se encarga de crear el diario Ext3 con parmetros estndar. Si por el contrario preere denir usted mismo con qu tamao y en qu dispositivo debe crearse el diario, ejecute tune2fs -J con los parmetros size= y device=. Puede obtener informacin adicional sobre tune2fs en las pginas del manual. Determinar el tipo de sistema de archivos en /etc/fstab Para que el sistema de archivos Ext3 sea detectado como tal, abra el archivo /etc/fstab y cambie el tipo de sistema de archivos de la particin correspondiente de ext2 a ext3. La modicacin se aplicar tras reiniciar el sistema.

Atencin ReiserFS
Ocialmente una de las funciones principales de la versin 2.4 del kernel, ReiserFS est disponible desde la versin 6.4 de SUSE LINUX como parche para el kernel de SuSE 2.2.x. ReiserFS es producto de Hans Reiser y del equipo de desarrollo Namesys. ReiserFS se ha perlado como una alternativa poderosa a Ext2. Sus grandes ventajas son: una mejor administracin de la memoria del disco duro, un mejor rendimiento del acceso al disco y una recuperacin ms rpida despus de una cada del sistema. No obstante, ReiserFS concede mucha importancia a los metadatos pero no a los datos en s.

SUSE LINUX Manual de Administracin

565

La prxima generacin de ReiserFS incluir data-journaling (se escribirn tanto datos como metadatos en el diario) as como accesos de escritura (vase data=ordered en Ext3). A continuacin le mostramos las principales ventajas de ReiserFS en detalle: Mejor administracin de la memoria del disco duro En ReiserFS, todos los datos se organizan en una estructura llamada B* -balanced tree. La estructura de rbol contribuye a una mejor administracin de la memoria del disco duro, ya que los archivos pequeos se pueden guardar directamente en las hojas de B* trees, en vez de guardarlos en otro lugar y luego tener que administrar el sealador (pointer) para que apunte al sitio indicado. Adems, la memoria no se asignar en unidades de 1 a 4 Kb, sino en la unidad necesaria. Otra ventaja es el proceso dinmico de inodes. Esto dota al sistema de archivos de una gran exibilidad frente a los sistemas convencionales, como por ejemplo Ext2, en el que se debe indicar la anchura del inode en el momento de crear el sistema de archivos. Mejor rendimiento del acceso al disco duro Se habr dado cuenta de que en los archivos pequeos, tanto los datos del archivo como la informacin (inode) de stat_data se guardan uno al lado del otro. Basta con un nico acceso al disco duro para suministrar toda la informacin necesaria. Rpida recuperacin tras una cada del sistema Desde el contenido de un diario al seguimiento de las pequeas modicaciones de metadatos, la comprobacin del sistema de archivos se reduce a unos pocos segundos incluso en sistemas de archivos grandes.

JFS
JFS, Journaling File System, fue desarrollado por IBM para AIX. La primera versin beta de JFS portada a Linux lleg al entorno Linux en el verano del ao 2000. La versin 1.0.0 sali a la luz en el ao 2001. JFS est diseado para cumplir las exigencias del entorno de un servidor de alto rendimiento. Al ser un sistema de archivos de 64 bits, JFS soporta archivos grandes y particiones LFS (Large File Support ), lo cual es una ventaja ms para los entornos de servidor. Un vistazo ms detallado a JFS muestra por qu este sistema de archivos es una buena eleccin para su servidor Linux:

566

Journaling ecaz JFS, al igual que ReiserFS, sigue el principio de metadata only. En vez de una comprobacin completa, slo se tienen en cuenta las modicaciones en los metadatos provocadas por las actividades del sistema. Esto ahorra una gran cantidad de tiempo en la fase de recuperacin del sistema tras una cada. Las actividades simultneas que requieren ms entradas de protocolo se pueden unir en un grupo, en el que la prdida de rendimiento del sistema de archivos se reduce en gran medida mediante mltiples procesos de escritura. Eciente administracin de directorios JFS abarca diversas estructuras de directorios. En pequeos directorios se permite el almacenamiento directo del contenido del directorio en su inode. En directorios ms grandes se utilizan B+ trees, que facilitan considerablemente la administracin del directorio. Mejor utilizacin de la memoria mediante la adjudicacin dinmica de inodes En Ext2 es necesario indicar el grosor del inode (la memoria ocupada por la informacin de administracin) por adelantado. Con ello se limita la cantidad mxima de archivos o directorios de su sistema de archivos. Esto no es necesario en JFS, puesto que asigna la memoria inode de forma dinmica y la pone a disposicin del sistema cuando no se est utilizando.

A
Sistemas de archivos en Linux

XFS
Pensado originariamente como sistema de archivos para sistemas operativos IRIX, SGI comenz el desarrollo de XFS ya a principios de la dcada de los noventa. Con XFS consigue un sistema de archivos journaling de 64 bits de gran rendimiento adaptado a las necesidades extremas de la actualidad. XFS tambin est indicado para el trabajo con archivos grandes y ofrece un buen rendimiento en hardware de ltima generacin. Sin embargo XFS, al igual que ReiserFS, tiene la desventaja de conceder mucha importancia a la integridad de los metadatos y muy poca a la de los datos: Un breve resumen de las funciones clave de XFS aclarar por qu puede llegar a convertirse en un fuerte competidor de otros sistemas de archivos journaling en el tratamiento de datos.

SUSE LINUX Manual de Administracin

567

Manejo de grupos de asignacin (allocation groups) En el momento de la creacin de un sistema de archivos XFS, el dispositivo de bloque (block-device) que sirve de base al sistema de archivos se divide en ocho o ms campos lineales de igual tamao denominados grupos de asignacin. Cada grupo de asignacin administra inodes as como memoria libre. Se puede considerar a estos grupos prcticamente como sistemas de archivos dentro de sistemas de archivos. Puesto que estos grupos de asignacin son bastante independientes, el kernel puede dirigirse a ms de uno simultneamente. Este concepto de grupos de asignacin independientes satisface los requisitos de los sistemas con varios procesadores. Alto rendimiento con eciente administracin de la memoria del disco B+ trees administran la memoria libre y los inodes dentro de los grupos de asignacin. El manejo de B+ trees contribuye al gran rendimiento de XFS. Una funcin nica y caracterstica de XFS es la llamada asignacin retardada. XFS realiza la asignacin de la memoria mediante la divisin en dos de los procesos. Una transaccin en suspenso queda guardada en RAM y el espacio en la memoria queda reservado. XFS an no decide dnde exactamente (en qu bloque del sistema de archivos) se almacenan los datos. Esta decisin se retrasar hasta el ltimo momento. Con esto, algunos datos temporales no quedan nunca almacenados en el disco, ya que cuando llegue el momento de decidir el lugar de almacenamiento ya estarn obsoletos. As, XFS aumenta el rendimiento y disminuye la fragmentacin del sistema de archivos. Debido a que una asignacin retardada tiene como consecuencia menos procesos de escritura que en otros sistemas de archivos, es probable que la prdida de datos tras una cada del sistema durante el proceso de escritura sea mayor. Preasignacin para evitar la fragmentacin del sistema de archivos Antes de la escritura de los datos en el sistema de archivos, XFS reserva el espacio de memoria necesario para un archivo que vaya a ser asignado. De esta forma se reduce enormemente la fragmentacin del sistema de archivos y el rendimiento aumenta, ya que el contenido de los archivos no queda dividido por todo el sistema de archivos.

568

Otros sistemas de archivos soportados


En la tabla A.1 se incluyen otros sistemas de archivos soportados por Linux. Principalmente se soportan para garantizar la compatibilidad y el intercambio de datos entre distintos medios o sistemas operativos. Cuadro A.1: Sistemas de archivos en Linux cramfs hpfs iso9660 ncpfs nfs Compressed ROM le system: un sistema de archivos comprimido con permiso de lectura para ROMs. High Performance File System: el sistema de archivos estndar de IBM OS/2 slo se soporta en modo de lectura. sistema de archivos estndar en CD-ROMs. para montar volmenes Novell a travs de una red. Network File System: posibilita el almacenamiento de datos en el ordenador que se elija dentro de una red y permite garantizar el acceso a travs de la red. Server Message Block: utilizado por productos como por ejemplo Windows para el acceso de archivos a travs de una red. utilizado en SCO UNIX, Xenix y Coherent (sistemas UNIX comerciales para PCs). utilizado en BSD, SunOS y NeXTstep. Slo se soporta en modo de lectura. UNIX on MSDOS: sistema de archivos a base de fat, que emula las caractersticas de Unix (derechos, enlaces, nombres de archivo largos) mediante archivos especiales. Virtual FAT: Extensin del sistema de archivos fat (soporta nombres de archivo largos). Windows NT le system, slo permiso de lectura.

A
Sistemas de archivos en Linux

smbfs sysv ufs umsdos

vfat ntfs

Soporte de archivos grandes en Linux


Al principio Linux slo soportaba archivos con un tamao mximo de 2 Gb. Debido a la creciente utilizacin de Linux por ejemplo en la administracin de bases de datos o en la edicin de datos de audio y vdeo, se ha

SUSE LINUX Manual de Administracin

569

hecho necesario el modicar el kernel y la librera GNU C (glibc) para que soporten archivos mayores de 2 Gb y se han introducido nuevas interfaces que pueden ser utilizadas por las aplicaciones. Hoy en da (casi) todos los sistemas de archivos importantes soportan LFS (Large File System sistema de archivos grandes), lo que permite la edicin de datos de gama alta. La tabla A.2 ofrece un resumen de las limitaciones actuales de los archivos de Linux y los sistemas de archivos para el kernel 2.4.x. Cuadro A.2: Tamao mximo de sistemas de archivos (formato en disco) Sist. de archivos Ext2 o Ext3 ((1 kB tamao bloque) Ext2 o Ext3 (2 kB tamao bloque) Ext2 o Ext3 (4 kB tamao bloque) Ext2 o Ext3 (8 kB tamao bloque) (sistema con pages de 8 kB (como Alpha)) ReiserFS 3.5 ReiserFS 3.6 (en Linux 2.4) XFS JFS (512 Bytes tamao bloque) JFS (4 kB tamao bloque) NFSv2 (lado del cliente) NFSv3 (lado del cliente) Tamao mx. archivo [Byte] 234 (16 GB) 238 (256 GB) 241 (2 TB) 246 (64 TB) Tamao mx.sist.arch.[Byte] 241 (2 TB) 243 (8 TB) 244 (16 TB) 245 (32 TB)

232 (4 GB) 260 (1 EB) 263 (8 EB) 263 (8 EB) 263 (8 EB) 231 (2 GB) 263 (8 EB)

244 (16 TB) 244 (16 TB) 263 (8 EB) 249 (512 TB) 252 (4 PB) 263 (8 EB) 263 (8 EB)

570

Atencin
Lmites del kernel de Linux La tabla describe los lmites del formato en disco. El tamao mximo de un archivo y un sistema de archivos para que puedan ser procesados correctamente por el kernel no ha de superar los siguientes lmites (en el kernel 2.6): Tamao de los archivos: En los sistemas de 32 bits, los archivos no pueden ser mayores de 2 TB (241 bytes). Tamao de los sistemas de archivos: Los sistemas de archivos pueden tener un tamao de hasta 273 bytes, si bien todava no existe ningn hardware que llegue hasta este lmite.

A
Sistemas de archivos en Linux

Atencin

Informacin adicional
Cada proyecto de sistema de archivos descrito arriba tiene su propia pgina web en la que puede encontrar ms informacin y listas de correo, as como FAQs. http://e2fsprogs.sourceforge.net/ext2.html http://www.zipworld.com.au/~akpm/linux/ext3/ http://www.namesys.com/ http://oss.software.ibm.com/developerworks/ opensource/jfs/ http://oss.sgi.com/projects/xfs/ Un completo tutorial sobre sistemas de archivos en Linux se encuentra en IBM developerWorks: http://www-106.ibm.com/developerworks/ library/l-fs.html Una comparacin entre los distintos sistemas de archivos journaling en Linux se encuentra en un artculo de Juan I. Santos Florido en Linuxgazette: http://www.linuxgazette.com/issue55/florido.html. Se puede encontrar un detallado trabajo sobre LFS en Linux en la pgina de Andreas Jaeger: http://www.suse.de/~aj/linux_lfs.html

SUSE LINUX Manual de Administracin

571

B
Listas de control de acceso (ACLs) en Linux

Listas de control de acceso (ACLs) en Linux

Este captulo le proporciona informacin sobre el trasfondo y las funciones de las ACLs POSIX para sistemas de archivos Linux. En l aprender cmo se ampla el concepto tradicional de permisos para sistemas de archivos por medio de las ACLs (Access Control Lists) y qu ventajas ofrece este concepto.

Por qu ACLs?
Atencin
POSIX ACLs La expresin POSIX ACL sugiere que se trata de un autntico estndar de la familia POSIX (Portable Operating System Interface). Por diversos motivos se retiraron los borradores de los estndares POSIX 1003.1e y POSIX 1003.2c. No obstante, las ACLs en muchos sistemas operativos de tipo UNIX se basan en estos documentos. La implementacin de ACLs de sistemas de archivos descrita en este captulo est basada en el contenido de estos borradores que se pueden consultar en la siguiente URL: http://wt.xpilot.org/publications/posix.1e/.

Atencin
De manera tradicional, para cada objeto en Linux se denen tres grupos de permisos. Estos grupos reejan los permisos de escritura (w), lectura (r) y ejecucin (x) para las tres clases de usuarios: propietario del archivo (owner), grupo (group) y el resto (other).

Adems es posible denir los bits set user id, set group id y sticky. Puede obtener informacin adicional sobre este tema en el apartado Derechos de usuario del Manual de usuario. Para la mayora de los casos que se dan en la prctica, este escueto concepto es ms que suciente. En el caso de escenarios complejos o aplicaciones ms avanzadas, los administradores de sistemas deban echar mano antiguamente de distintos trucos para evitar las limitaciones del concepto de permisos tradicional. Las ACLs intervienen en las situaciones en las que el concepto tradicional de permisos para archivos resulta insuciente. Estas permiten asignar permisos a determinados usuarios o grupos, incluso cuando estos permisos no coinciden con los del propietario del archivo o su grupo. Las listas de control de acceso son una caracterstica del kernel de Linux y actualmente estn soportadas por ReiserFS, Ext2, Ext3, JFS y XFS. Con su ayuda es posible llevar a la prctica complejos escenarios sin que sea necesario implementar complicados modelos de permisos a nivel de aplicaciones. Para ilustrar las ventajas de las listas de control de acceso puede tomarse el ejemplo de un servidor Windows que va a ser reemplazado por un servidor Linux. Algunas de las estaciones de trabajo conectadas seguirn funcionando con Windows. El sistema Linux, por su parte, proporciona a los clientes Windows servicios de servidor de archivos y de impresin por medio de Samba. Samba soporta las listas de control de acceso, por lo que los permisos de usuarios pueden ser congurados tanto en el servidor Linux como en Windows (slo Windows NT o superior) a travs de una interfaz grca de usuario. La herramienta winbindd permite incluso denir permisos para usuarios que slo existen en el dominio Windows y no disponen de cuenta de usuario en el servidor Linux. En la parte del servidor, las listas de control de acceso pueden ser editadas con getfacl y setfacl.

Deniciones
Clases de usuarios El sistema tradicional de permisos POSIX reconoce tres clases de usuarios para la asignacin de permisos en el sistema de archivos: Propietario (owner), grupo (group) y el resto de usuarios (other).

574

Para cada clase de usuario se pueden denir otros tres bits de permisos (permission bits) para el derecho de lectura (r), de escritura (w) y de ejecucin (x). La seccin Derechos de usuario del Manual de Usuario le ofrece una introduccin al concepto de usuarios en Linux. Access ACL Los permisos de acceso de usuarios y grupos a cualquier objeto del sistema (archivos y directorios) se denen a travs de las access ACLs (ACLs de acceso). Default ACL Las default ACLs (ACLs predeterminadas) slo pueden aplicarse a directorios y denen los permisos que un objeto del sistema hereda del directorio superior al ser creado. Entrada ACL Una ACL est formada por una serie de entradas ACL (ACL entries). Una entrada ACL consta de un tipo (ver la Tabla B.1 en la pgina siguiente), un indicador del usuario o el grupo al que se reere la entrada, y los permisos en s. En algunos tipos de entrada, el indicador para el usuario o el grupo est vaco.

B
Listas de control de acceso (ACLs) en Linux

Funcionamiento de las ACLs


En la siguiente seccin se describirn la estructura bsica de una ACL y sus caractersticas. La relacin entre las ACLs y el concepto tradicional de permisos en el sistema de archivos Linux se explicar por medio de varios grcos. Dos ejemplos le servirn para conocer la sintaxis correcta de una ACL y crear sus propias listas de control de acceso. Finalmente, se describir el mtodo usado por el sistema operativo para evaluar las ACLs.

Estructura de las entradas ACL


Las ACLs pueden dividirse fundamentalmente en dos clases. Una ACL estndar consiste exclusivamente en las entradas de tipo owner (propietario), owning group (grupo propietario) y other (otros) y coincide con los bits de permisos tradicionales para archivos y directorios. Una ACL extendida (extended ) contiene adems una entrada mask (mscara) y puede incluir varias entradas del tipo named user (usuario identicado por el nombre) y named group (grupo identicado por el nombre). La tabla B.1 en la pgina siguiente ofrece un resumen de los distintos tipos de entradas ACL.

SUSE LINUX Manual de Administracin

575

Cuadro B.1: Resumen de tipos de entrada ACL Tipo owner named user owning group named group mask other Formato en texto user::rwx user:name:rwx group::rwx group:name:rwx mask::rwx other::rwx

Los permisos denidos en las entradas owner y other siempre tienen vigencia. Excepto la entrada mask, el resto de entradas (named user, owning group y named group) pueden estar activadas o bien enmascaradas. Si se han denido permisos tanto en las entradas mencionadas en primer lugar como en las mscara, tendrn validez. Los permisos que slo han sido denidos en la mscara o en la propia entrada, no tienen validez. El siguiente ejemplo ilustra este mecanismo (vase la Tabla B.2): Cuadro B.2: Enmascaramiento de permisos de acceso Tipo named user mask Formato en texto user:jane:r-x mask::rwPermisos r-x rwr--

Entradas ACL y bits de permiso


Los siguientes grcos ilustran respectivamente las posibles variantes de una ACL estndar y una extendida (ver Fig. B.1 en la pgina siguiente y B.2 en la pgina siguiente). Las guras estn divididas en tres bloques. A la izquierda aparece la descripcin del tipo de entrada ACL, en el medio un ejemplo de ACL y a la derecha los bits de permiso tal y como los muestra el comando ls -l. En ambos casos, los permisos correspondientes al owner class han sido asignados a la entrada ACL owner.

576

Asimismo, la asignacin de permisos other class a la correspondiente entrada ACL es siempre la misma. En cambio, la asignacin de permisos group class vara segn el caso.

B
Listas de control de acceso (ACLs) en Linux

Figura B.1: ACL estndar: entradas ACL y bits de permiso

En el caso de una ACL estndar (sin entrada mask), los permisos de la group class se asignan a la entrada ACL owning group (ver Fig. B.1). En el caso de una ACL extendida (con entrada mask), los permisos de la group class se asignan a la entrada mask (ver Fig. B.2).

Figura B.2: ACL extendida: entradas ACL y bits de permiso Este tipo de asignacin garantiza la correcta interaccin de aplicaciones con y sin soporte ACL. Los permisos de acceso denidos mediante los bits de permiso constituyen el lmite para las opciones de conguracin avanzadas que pueden realizarse va ACL. Todos los permisos que no estn reejados aqu no han sido denidos en la ACL o no tienen vigencia. Si los bits de permiso se modican, esto tambin se reeja en la ACL y viceversa.

SUSE LINUX Manual de Administracin

577

Un directorio con access ACL


Por medio del siguiente ejemplo, se explicar en tres pasos el funcionamiento de una access ACL: Crear un objeto del sistema (aqu un directorio) Cambios en la ACL Utilizacin de mscaras 1. Antes de crear un directorio, puede emplear el comando umask para denir qu permisos de acceso han de estar enmascarados desde el momento de su creacin.
umask 027

umask 027 dene los permisos de cada grupo de usuarios como se describe a continuacin: el propietario del archivo posee todos los permisos (0), el grupo al que pertenece el propietario no tiene permiso de escritura sobre el archivo (2) y el resto de usuarios carece de cualquier permiso sobre el archivo (7). Los nmeros se leen como una mscara de bits. Puede obtener ms informacin sobre umask en la pgina del manual correspondiente (man umask).
mkdir mydir

Se ha creado el directorio mydir/ que ha obtenido los derechos denidos por medio de umask. Puede comprobar si todos los permisos han sido asignados correctamente con el comando:
ls -dl mydir drwxr-x--- ... tux projekt3 ... mydir

2. Una vez que se ha informado sobre el estado inicial de la ACL, adale una nueva entrada de usuario y otra de grupo.
getfacl mydir # file: mydir # owner: tux # group: projekt3 user::rwx

578

group::r-x other::---

B
Listas de control de acceso (ACLs) en Linux

La salida del comando getfacl reeja exactamente la correspondencia entre bits de permiso y entradas ACL descrita en el apartado B en la pgina 576. Las primeras tres lneas de la salida de comando designan el nombre, propietario y grupos pertenecientes del directorio. Las tres lneas siguientes contienen las tres entradas ACL owner, owning group y other. En conjunto, el comando getfacl en el caso de esta ACL estndar no le ofrece ninguna informacin que no hubiese obtenido tambin con el comando ls. Su primera intervencin en la ACL consiste en asignar a un nuevo usuario jane y a un nuevo grupo djungle permisos de lectura, escritura y ejecucin.
setfacl -m user:jane:rwx,group:djungle:rwx mydir

La opcin -m le ordena a setfacl modicar la ACL actual. El siguiente argumento indica qu entradas ACL sern modicadas (muchas estn separadas entre s por comas). Finalmente tiene que introducir el nombre del directorio para el que tendrn validez estos cambios. La ACL resultante se muestra con el comando getfacl.
# file: mydir # owner: tux # group: projekt3 user::rwx user:jane:rwx group::r-x group:djungle:rwx mask::rwx other::---

Adems de las entradas para el usuario jane y el grupo djungle creadas por usted, se ha generado una entrada mask. Esta entrada mask se crea automticamente para reducir todas las entradas de group class a un denominador comn. Adems, setfacl adapta automticamente las entradas mask a las opciones que usted modique (siempre que no haya desactivado esta funcin con -n).

SUSE LINUX Manual de Administracin

579

mask dene los permisos de acceso mximos que tienen validez para todas las entradas de la group class. Entre estas se incluyen named user, named group y owning group. Los bits de permiso de group class mostrados al ejecutar ls -dl mydir equivalen a la entrada mask.
ls -dl mydir drwxrwx---+ ... tux projekt3 ... mydir

En la primera columna de la salida aparece un signo + que hace referencia a una ACL extendida. 3. Segn la salida del comando ls, los permisos de la entrada mask incluyen tambin permiso de escritura. Normalmente, estos bits de permiso tambin indicaran que el owning group (aqu: projekt3) tendra asimismo derechos de escritura para el directorio mydir. No obstante, los permisos de acceso realmente vlidos para para el owning group consisten en la interseccin de los permisos denidos para el owning group y mask, es decir, r-x en nuestro ejemplo (ver la tabla B.2 en la pgina 576). Aqu tampoco se han modicado los permisos de owning group despus de aadir las entradas ACL. La entrada mask puede modicarse con setfacl o con chmod.
chmod g-w mydir ls -dl mydir drwxr-x---+ ... tux projekt3 ... mydir

getfacl mydir # file: mydir # owner: tux # group: projekt3 user::rwx user:jane:rwx group::r-x group:djungle:rwx mask::r-x other::---

# effective: r-x # effective: r-x

580

Despus de haber retirado el permiso de escritura a la group class por medio del comando chmod, la salida del comando ls ya le indica que los bits de mask han sido adaptados en consecuencia a travs del comando chmod. Como se puede ver, el nico que posee permiso de escritura sobre el directorio mydir es el propietario. Esto se ve an ms claramente en la salida del comando getfacl. Adems, getfacl aade a cada entrada un comentario informando de que los bits de permiso realmente vlidos no son los denidos inicialmente, ya que la entrada mask se encarga de ltrarlos. Por supuesto, se puede volver a en cualquier momento al estado original con el comando chmod correspondiente:
chmod g+w mydir ls -dl mydir drwxrwx---+ ... tux projekt3 ... mydir getfacl mydir # file: mydir # owner: tux # group: projekt3 user::rwx user:jane:rwx group::r-x group:djungle:rwx mask::rwx other::---

B
Listas de control de acceso (ACLs) en Linux

Directorios con ACLs predeterminadas


Los directorios pueden ser equipados con un tipo especial de ACLs, las ACLs predeterminadas. Estas denen los derechos que heredan los subobjetos de estos directorios en el momento de su creacin. La ACL predeterminada tiene vigencia tanto sobre subdirectorios como sobre archivos. Efecto de una ACL predeterminada Los permisos de acceso en la ACL predeterminada son heredados de forma distinta por archivos y subdirectorios: Un subdirectorio hereda la ACL predeterminada del directorio superior como propia default ACL y adems como access ACL.

SUSE LINUX Manual de Administracin

581

Un archivo hereda la ACL predeterminada como propia access ACL. Todas las llamadas del sistema (system calls) que crean objetos del sistema utilizan un parmetro mode. Este parmetro se encarga de denir los permisos de acceso sobre el nuevo objeto del sistema: Si el directorio superior carece de ACL predeterminada, los permisos resultantes son los introducidos en el parmetro mode menos los permisos asignados en umask. Si existe una ACL predeterminada para el directorio superior, se asignan al objeto los bits de permiso resultantes de la interseccin de los permisos del parmetro mode y de los que contiene la ACL predeterminada. En este caso no se tiene en cuenta umask. ACLs predeterminadas en la prctica Los tres ejemplos siguientes ilustran las ACLs predeterminadas y describen las operaciones ms importantes que pueden efectuarse en directorios: Crear una ACL predeterminada para un directorio ya existente. Crear un subdirectorio en un directorio con ACL predeterminada. Crear un archivo en un directorio con ACL predeterminada. 1. A continuacin se aade una ACL predeterminada al directorio mydir ya existente:
setfacl -d -m group:djungle:r-x mydir

La opcin -d del comando setfacl hace que setfacl realice las siguientes modicaciones en (opcin -m) en la ACL predeterminada. Observe el resultado de este comando detenidamente:
getfacl mydir # file: mydir # owner: tux # group: projekt3 user::rwx user:jane:rwx group::r-x

582

group:djungle:rwx mask::rwx other::--default:user::rwx default:group::r-x default:group:djungle:r-x default:mask::r-x default:other::---

B
Listas de control de acceso (ACLs) en Linux

La salida de getfacl contiene tanto la access ACL como la ACL predeterminada. Todas las lneas que comienzan por default forman la ACL predeterminada. Aunque en el comando setfacl usted slo haba indicado una entrada para el grupo djungle en la ACL predeterminada, setfacl ha copiado automticamente el resto de entradas del la access ACL para construir una ACL predeterminada vlida. Las ACLs predeterminadas no inuyen de manera directa en los permisos de acceso, sino que slo tienen efecto durante la creacin de objetos del sistema. En trminos de herencia, slo se tiene en cuenta la ACL predeterminada del directorio superior. 2. En el siguiente ejemplo cree con mkdir un subdirectorio en mydir que heredar la ACL predeterminada.
mkdir mydir/mysubdir getfacl mydir/mysubdir # file: mydir/mysubdir # owner: tux # group: projekt3 user::rwx group::r-x group:djungle:r-x mask::r-x other::--default:user::rwx default:group::r-x default:group:djungle:r-x default:mask::r-x default:other::---

Como era de esperar, el subdirectorio recin creado mysubdir tiene los permisos de la ACL predeterminada ACL del directorio superior.

SUSE LINUX Manual de Administracin

583

La access ACL de mysubdir es una rplica exacta de la ACL predeterminada de mydir. Lo mismo sucede con la ACL predeterminada, que a su vez se pasar a los subobjetos de este directorio. 3. Ahora cree un archivo en el directorio mydir por medio de touch:
touch mydir/myfile ls -l mydir/myfile -rw-r-----+ ... tux projekt3 ... mydir/myfile getfacl mydir/myfile # file: mydir/myfile # owner: tux # group: projekt3 user::rwgroup::r-x # effective:r-group:djungle:r-x # effective:r-mask::r-other::---

Lo ms importante de este ejemplo es que touch pasa el parmetro mode con un valor de 0666, lo que signica que los nuevos archivos se crean con permisos de lectura y escritura para todas las clases de usuario, a no ser que existan otras restricciones por parte de umask o de la ACL predeterminada (ver la seccin B en la pgina 581). En nuestro ejemplo esto signica que todos los permisos que no estn incluidos en mode sern eliminados de las entradas ACL correspondientes. Aunque no se ha eliminado ningn permiso de la entrada ACL de group class, la entrada mask ha sido adaptada para que los bits de permiso denidos por mode no sean enmascarados. De este modo se garantiza que un compilador, por ejemplo, pueda funcionar sin problemas con ACLs. Puede crear archivos con permisos de acceso restringidos y a continuacin marcarlos como ejecutables. El mecanismo mask se ocupa de que slo los usuarios y grupos adecuados puedan ejecutar los archivos.

584

Evaluacin de una ACL


Una vez explicado el funcionamiento de las herramientas de conguracin ms importantes de las ACLs, a continuacin se describe brevemente el algoritmo de evaluacin al que se somete cualquier proceso o aplicacin antes de que se le proporcione acceso a un objeto del sistema protegido por ACLs. Las entradas ACL son analizadas en el siguiente orden: owner, named user, owning group o named group y other. El acceso se regula a travs de la entrada que mejor se ajuste al proceso. El mecanismo se complica cuando un proceso pertenece a ms de un grupo, ya que potencialmente podr ajustarse a varias entradas group. En este caso se selecciona una de las entradas adecuadas con los permisos requeridos. Para el resultado nal acceso autorizado es irrelevante cul de estas entradas ha sido seleccionada. Si ninguna de las entradas group apropiadas contiene los permisos correctos, se selecciona una cualquiera que provocar el resultado nal "acceso denegado".

B
Listas de control de acceso (ACLs) en Linux

Soporte en aplicaciones
Como se ha mencionado en los apartados anteriores, las ACLs permiten implementar complejos escenarios de permisos que cumplen a la perfeccin los requisitos de las aplicaciones ms actuales. El concepto tradicional de permisos y las ACLs pueden combinarse de forma muy hbil. No obstante, algunas aplicaciones importantes carecen todava de soporte para ACLs. Sobre todo en el campo de los programas de copias de seguridad, no existe (con la excepcin del archivador star) ningn programa que pueda garantizar el mantenimiento total de las ACLs. Los comandos de archivos bsicos (cp, mv, ls, etc.) soportan las ACLs. En cambio, numerosos editores y administradores de archivos (ej. Konqueror) carecen de soporte ACL. As, las ACLs todava se pierden al copiar archivos con Konqueror. Al procesar con un editor un archivo que contenga una access ACL, el que la access ACL se mantenga o no tras nalizar el proceso de edicin depende del modo backup del editor utilizado: Si el editor escribe los cambios en el archivo original, la access ACL se mantiene.

SUSE LINUX Manual de Administracin

585

Si el editor crea un nuevo archivo que recibe el nombre del antiguo archivo al nalizar los cambios, es posible que se pierdan las ACL a no ser que el editor las soporte.

Atencin
Informacin adicional Puede encontrar informacin detallada (en ingls) sobre las ACLs en las siguientes URLs http://sdb.suse.de/en/sdb/html/81_acl.html http: //acl.bestbits.at/ as como en las pginas del manual de getfacl, acl y setfacl.

Atencin

586

C
Pgina man de e2fsck

Pgina man de e2fsck

E2FSCK(8) NAME

E2FSCK(8)

e2fsck - check a Linux second extended file system SYNOPSIS e2fsck [ -pacnyrdfvstDFSV ] [ -b superblock ] [ -B block size ] [ -l|-L bad_blocks_file ] [ -C fd ] [ -j externaljournal ] [ -E extended_options ] device DESCRIPTION e2fsck is used to check a Linux second extended file sys tem (ext2fs). E2fsck also supports ext2 filesystems coun taining a journal, which are also sometimes known as ext3 filesystems, by first applying the journal to the filesys tem before continuing with normal e2fsck processing. After the journal has been applied, a filesystem will nor mally be marked as clean. Hence, for ext3 filesystems, e2fsck will normally run the journal and exit, unless its superblock indicates that further checking is required. device is the device file where the filesystem is stored (e.g. /dev/hdc1). OPTIONS -a This option does the same thing as the -p option. It is provided for backwards compatibility only; it is suggested that people use -p option whenever possible.

-b superblock Instead of using the normal superblock, use an alternative superblock specified by superblock. This option is normally used when the primary superblock has been corrupted. The location of the backup superblock is dependent on the filesystems blocksize. For filesystems with 1k blocksizes, a

backup superblock can be found at block 8193; for filesystems with 2k blocksizes, at block 16384; and for 4k blocksizes, at block 32768. Additional backup superblocks can be determined by using the mke2fs program using the -n option to print out where the superblocks were created. The -b option to mke2fs, which specifies blocksize of the filesystem must be specified in order for the superblock locations that are printed out to be accurate. If an alternative superblock is specified and the filesystem is not opened read-only, e2fsck will make sure that the primary superblock is updated appropriately upon completion of the filesystem check. -B blocksize Normally, e2fsck will search for the superblock at various different block sizes in an attempt to find the appropriate block size. This search can be fooled in some cases. This option forces e2fsck to only try locating the superblock at a particular blocksize. If the superblock is not found, e2fsck will terminate with a fatal error. -c This option causes e2fsck to run the badblocks(8) program to find any blocks which are bad on the filesystem, and then marks them as bad by adding them to the bad block inode. If this option is specified twice, then the bad block scan will be done using a non-destructive read-write test. This option causes e2fsck to write completion information to the specified file descriptor so that the progress of the filesystem check can be monitored. This option is typically used by pro grams which are running e2fsck. If the file descriptor specified is 0, e2fsck will print a com pletion bar as it goes about its business. This requires that e2fsck is running on a video console or terminal. Print debugging output debugging e2fsck). (useless unless you are

-C fd

-d

-D

Optimize directories in filesystem. This option causes e2fsck to try to optimize all directories, either by reindexing them if the filesystem sup ports directory indexing, or by sorting and com pressing directories for smaller directories, or for filesystems using traditional linear directo

588

ries. -E extended_options Set e2fsck extended options. Extended options are comma separated, and may take an argument using the equals (=) sign. The following options are sup ported: ea_ver=extended_attribute_version Assume the format of the extended attribute blocks in the filesystem is the specified version number. The ver sion number may be 1 or 2. The default extended attribute version format is 2. -f -F Force checking even if the file system seems clean. Flush the filesystem devices buffer caches before beginning. Only really useful for doing e2fsck time trials.

C
Pgina man de e2fsck

-j external-journal Set the pathname where the external-journal this filesystem can be found.

for

-l filename Add the block numbers listed in the file specified by filename to the list of bad blocks. The format of this file is the same as the one generated by the badblocks(8) program. Note that the block num bers are based on the blocksize of the filesystem. Hence, badblocks(8) must be given the blocksize of the filesystem in order to obtain correct results. As a result, it is much simpler and safer to use the -c option to e2fsck, since it will assure that the correct parameters are passed to the badblocks program. -L filename Set the bad blocks list to be the list of blocks specified by filename. (This option is the same as the -l option, except the bad blocks list is cleared before the blocks listed in the file are added to the bad blocks list.) -n Open the filesystem read-only, and assume an answer of no to all questions. Allows e2fsck to be used non-interactively. (Note: if the -c, -l, or -L options are specified in addition to the -n option, then the filesystem will be opened read-write, to permit the bad-blocks list to be updated. However, no other changes will be made to the filesystem.)

SUSE LINUX Manual de Administracin

589

-p

Automatically repair ("preen") without any questions. This option does nothing at all; only for backwards compatibility.

the

file

system

-r

it

is

provided

-s

This option will byte-swap the filesystem so that it is using the normalized, standard byte-order (which is i386 or little endian). If the filesys tem is already in the standard byte-order, e2fsck will take no action. This option will byte-swap the filesystem, regard less of its current byte-order. Print timing statistics for e2fsck. If this option is used twice, additional timing statistics are printed on a pass by pass basis. Verbose mode. Print version information and exit. Assume an answer of yes to all questions; e2fsck to be used non-interactively. allows

-S

-t

-v -V -y

EXIT CODE The exit code returned by e2fsck is the sum of the follow ing conditions: 0 - No errors 1 - File system errors corrected 2 - File system errors corrected, system should be rebooted 4 - File system errors left uncorrected 8 - Operational error 16 - Usage or syntax error 32 - E2fsck canceled by user request 128 - Shared library error SIGNALS The following signals have the following effect when to e2fsck. sent

SIGUSR1 This signal causes e2fsck to start displaying a completion bar. (See discussion of the -C option.) SIGUSR2 This signal causes e2fsck to stop displaying a com pletion bar. REPORTING BUGS Almost any piece of

software

will

have

bugs.

If

you

590

manage to find a filesystem which causes e2fsck to crash, or which e2fsck is unable to repair, please report it to the author. Please include as much information as possible in your bug report. Ideally, include a complete transcript of the e2fsck run, so I can see exactly what error messages are displayed. If you have a writeable filesystem where the transcript can be stored, the script(1) program is a handy way to save the output of e2fsck to a file. It is also useful to send the output of dumpe2fs(8). If a specific inode or inodes seems to be giving e2fsck trou ble, try running the debugfs(8) command and send the out put of the stat(1u) command run on the relevant inode(s). If the inode is a directory, the debugfs dump command will allow you to extract the contents of the directory inode, which can sent to me after being first run through uuen code(1). Always include the full version string which e2fsck dis plays when it is run, so I know which version you are run ning. AUTHOR This version of <tytso@mit.edu>. e2fsck was written by Theodore Tso

C
Pgina man de e2fsck

SEE ALSO mke2fs(8), tune2fs(8), dumpe2fs(8), debugfs(8) E2fsprogs version 1.34 July 2003 E2FSCK(8)

SUSE LINUX Manual de Administracin

591

D
Pgina man de reiserfsck

Pgina man de reiserfsck

REISERFSCK(8) NAME

REISERFSCK(8)

reiserfsck - check a Linux Reiserfs file system SYNOPSIS reiserfsck [ -afprVy ] [ --rebuild-sb | --check | --fixfixable | --rebuild-tree | --clean-attributes ] [ -j | --journal device ] [ -z | --adjust-size ] [ -n | --nolog ] [ -l | --logfile file ] [ -q | --quiet ] [ -y | --yes ] [ -S | --scan-whole-partition ] [ --no-journal-available ] device DESCRIPTION Reiserfsck searches for a Reiserfs filesystem on a device, replays any necessary transactions, and either checks or repairs the file system. device is the special file corresponding to the device or partition (e.g /dev/hdXX for IDE disk partition or /dev/sdXX for SCSI disk partition). OPTIONS --rebuild-sb This option recovers the superblock on a Reiserfs partition. Normally you only need this option if mount reports "read_super_block: cant find a reis erfs file system" and you are sure that a Reiserfs file system is there. --check This default action checks file system consistency and reports but does not repair any corruption that it finds. This option may be used on a read-only file system mount. --fix-fixable

This option recovers certain kinds of corruption that do not require rebuilding the entire file sys tem tree (--rebuild-tree). Normally you only need this option if the --check option reports "corrup tion that can be fixed with --fix-fixable". This includes: zeroing invalid data-block pointers, cor recting st_size and st_blocks for directories, and deleting invalid directory entries. --rebuild-tree This option rebuilds the entire file system tree using leaf nodes found on the device. Normally you only need this option if the --check option reports "corruption that can be fixed only during --rebuild-tree". You are strongly encouraged to make a backup copy of the whole partition before attempting the --rebuild-tree option. --clean-attributes This option cleans items.

reserved

fields

of

Stat-Data

--journal device , -j device This option supplies the device name of the current file system journal. This option is required when the journal resides on a separate device from the main data device (although it can be avoided with the expert option --no-journal-available). --adjust-size, -z This option causes reiserfsck to correct file sizes that are larger than the offset of the last discov ered byte. This implies that holes at the end of a file will be removed. File sizes that are smaller than the offset of the last discovered byte are corrected by --fix-fixable. --logfile file, -l file This option causes reiserfsck to report any corrup tion it finds to the specified log file rather than stderr. --nolog, -n This option prevents reiserfsck from reporting kinds of corruption.

any

--quiet, -q This option prevents reiserfsck from reporting its rate of progress. --yes, -y This option inhibits reiserfsck from asking you for confirmation after telling you what it is going to

594

do, assuming yes. For safety, it does not work with the --rebuild-tree option. -a, -p These options are usually passed by fsck -A during the automatic checking of those partitions listed in /etc/fstab. These options cause reiserfsck to print some information about the specified file system, check if error flags in the superblock are set and do some light-weight checks. If these checks reveal a corruption or the flag indicating a (possibly fixable) corruption is found set in the superblock, then reiserfsck switches to the fixfixable mode. If the flag indicating a fatal cor ruption is found set in the superblock, then reis erfsck finishes with an error. -V This option prints the exit. reiserfsprogs version and

D
Pgina man de reiserfsck

-r, -f These options are ignored. EXPERT OPTIONS DO NOT USE THESE OPTIONS UNLESS YOU KNOW WHAT YOU ARE DOING. WE ARE NOT RESPONSIBLE IF YOU LOSE DATA AS A RESULT OF THESE OPTIONS. --no-journal-available This option allows reiserfsck to proceed when the journal device is not available. This option has no effect when the journal is located on the main data device. NOTE: after this operation you must use reiserfstune to specify a new journal device. --scan-whole-partition, -S This option causes --rebuild-tree to scan the whole partition, not only used space on the partition. EXAMPLE OF USING 1. You think something may be wrong with a reiserfs parti tion on /dev/hda1 or you would just like to perform a periodic disk check. 2. Run reiserfsck --check --logfile check.log /dev/hda1. If reiserfsck --check exits with status 0 it means no errors were discovered. 3. If reiserfsck --check exits with status 1 (and reports about fixable corruptions) it means that you should run reiserfsck --fix-fixable --logfile fixable.log /dev/hda1. 4. If reiserfsck --check exits with status 2 (and reports about fatal corruptions) it means that you need to run reiserfsck --rebuild-tree. If reiserfsck --check fails in

SUSE LINUX Manual de Administracin

595

some way you should also run reiserfsck --rebuild-tree, but we also encourage you to submit this as a bug report. 5. Before running reiserfsck --rebuild-tree, please make a backup of the whole partition before proceeding. Then run reiserfsck --rebuild-tree --logfile rebuild.log /dev/hda1. 6. If the --rebuild-tree step fails or does not recover what you expected, please submit this as a bug report. Try to provide as much information as possible and we will try to help solve the problem. EXIT CODES reiserfsck uses the following exit codes: 0 - No errors. 1 - File system errors corrected. 4 - File system fatal errors left uncorrected, reiserfsck --rebuild-tree needs to be launched. 6 - File system fixable errors left uncorrected, reiserfsck --fix-fixable needs to be launched. 8 - Operational error. 16 - Usage or syntax error. AUTHOR This version of reiserfsck has Fertman <vitaly@namesys.com>. BUGS There are likely to be some bugs. Please report bugs to the ReiserFS mail-list <reiserfs-list@namesys.com>. TODO Faster recovering, signal handling, etc. SEE ALSO mkreiserfs(8), greiserfs(8), Reiserfsprogs-3.6.9 i/o error handling, been written by Vitaly

reiserfstune(8)

resize_reiserfs(8), debu

April 2003

REISERFSCK(8)

596

E
Traduccin en castellano de la licencia pblica general GNU (GPL)

Traduccin en castellano de la licencia pblica general GNU (GPL)

Esta traduccin de la GPL se ofrece con el n de mejorar el entendimiento de la licencia. No se trata de una traduccin ocial o jurdicamente reconocida. La Free Software Foundation (FSF) no edita esta traduccin y tampoco la ha reconocido como reemplazo ocial de la versin original en ingls (disponible en http://www.gnu.org/copyleft.gpl.html). Los traductores de la licencia no pueden garantizar que la traduccin reproduzca exactamente las deniciones jurdicas. Para estar seguro que las actividades que est planicando estn permitidas bajo la licencia GNU-GPL, consulte el original en ingls. La Free Software Foundation ruega no utilizar esta traduccin como licencia ocial para los programas que Usted escriba. En su lugar, acompae su software con la versin original inglesa de la licencia. This is a translation of the GNU General Public License into Spanish. This translation is distributed in the hope that it will facilitate understanding, but it is not an ofcial or legally approved translation. The Free Software Foundation is not the publisher of this translation and has not approved it as a legal substitute for the authentic GNU General Public License. The translation has not been reviewed carefully by lawyers, and therefore the translator cannot be sure that it exactly represents the legal meaning of the GNU General Public License. If you wish to be sure whether your planned activities are permitted by the GNU General Public License, please refer to the authentic English version.

The Free Software Foundation strongly urges you not to use this translation as the ofcial distribution terms for your programs; instead, please use the authentic English version published by the Free Software Foundation.

GNU GENERAL PUBLIC LICENSE


Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Se permite a todo el mundo la copia y distribucin de copias literales de este documento de licencia, pero no se permite su modicacin. Esta traduccin no reemplaza la versin original en ingls de la GPL en el sentido jurdico.

Prembulo
Las licencias que cubren la mayor parte del software estn diseadas para quitarle a usted la libertad de compartirlo y modicarlo. Por el contrario, la Licencia Pblica General GNU pretende garantizarle la libertad de compartir y modicar software librepara asegurar que el software es libre para todos sus usuarios. Esta Licencia Pblica General se aplica a la mayor parte del software de la Free Software Foundation y a cualquier otro programa cuyos autores se comprometen a utilizarla. (Alguna parte del software de la Free Software Foundation est cubierto por la Licencia Pblica General GNU para Libreras). Usted tambin la puede aplicar a sus programas. Cuando hablamos de software libre, estamos rerindonos a la libertad, no al precio. Nuestras Licencias Pblicas Generales estn diseadas para asegurarnos de que tenga la libertad de distribuir copias de software libre (y cobrar por ese servicio si quiere), que reciba el cdigo fuente o que pueda conseguirlo si lo quiere, que pueda modicar el software o usar fragmentos de l en nuevos programas libres, y que sepa que puede hacer todas estas cosas. Para proteger sus derechos necesitamos algunas restricciones que prohiban a cualquiera negarle a usted estos derechos o pedirle que renuncie a ellos. Estas restricciones se traducen en ciertas obligaciones que le afectan si distribuye copias del software, o si lo modica. Por ejemplo, si distribuye copias de uno de estos programas, sea gratuitamente, o a cambio de una contraprestacin, debe dar a los receptores todos los derechos que tiene.

598

Debe asegurarse de que ellos tambin reciben, o pueden conseguir, el cdigo fuente. Y debe mostrarles estas condiciones de forma que conozcan sus derechos. Protegemos sus derechos con la combinacin de dos medidas: (1) ponemos el software bajo copyright y (2) le ofrecemos esta licencia, que le da permiso legal para copiar, distribuir y/o modicar el software. Tambin, para la proteccin de cada autor y la nuestra propia, queremos asegurarnos de que todo el mundo comprende que no se proporciona ninguna garanta para este software libre. Si el software es modicado por cualquiera y ste a su vez lo distribuye, queremos que sus receptores sepan que lo que tienen no es el original, de forma que cualquier problema introducido por otros no afecte a la reputacin de los autores originales. Por ltimo, cualquier programa libre est constantemente amenazado por patentes sobre el software. Queremos evitar el riesgo de que los redistribuidores de un programa libre individualmente obtengan patentes, haciendo el programa propietario a todos los efectos. Para prevenir esto, hemos dejado claro que cualquier patente debe ser concedida para el uso libre de cualquiera, o no ser concedida en absoluto. Los trminos exactos y las condiciones para la copia, distribucin y modicacin se exponen a continuacin.

E
Traduccin en castellano de la licencia pblica general GNU (GPL)

Licencia pblica general GNU


Trminos y condiciones para la copia, distribucin y modicacin
0.Esta Licencia se aplica a cualquier programa u otra obra que contenga un aviso colocado por el propietario del copyright diciendo que puede ser distribuido bajo los trminos de esta Licencia Pblica General. En adelante, Programa se referir a cualquier programa u obra de esta clase y una obra basada en el Programa se referir bien al Programa o a cualquier obra derivada de este segn la ley de copyright. Esto es, una obra que contenga el programa o una porcin de este, bien en forma literal o con modicaciones y/o traducido en otro lenguaje. Por lo tanto, la traduccin est incluida sin limitaciones en el trmino modicacin. Cada propietario de una licencia ser tratado como usted. Cualquier otra actividad que no sea la copia, distribucin o modicacin no est cubierta por esta Licencia, est fuera de su mbito.

SUSE LINUX Manual de Administracin

599

El acto de ejecutar el Programa no est restringido, y los resultados del Programa estn cubiertos nicamente si sus contenidos constituyen una obra basada en el Programa, independientemente de haberlo producido mediante la ejecucin del programa. Que esto se cumpla, depende de lo que haga el programa. 1. Usted puede copiar y distribuir copias literales del cdigo fuente del Programa, tal y como lo recibi, por cualquier medio, supuesto que de forma adecuada y bien visible publique en cada copia un anuncio de copyright adecuado y una renuncia de garanta, mantenga intactos todos los anuncios que se reeran a esta Licencia y a la ausencia de garanta, y proporcione a cualquier otro receptor del programa una copia de esta Licencia junto con el Programa. Puede cobrar un precio por el acto fsico de transferir una copia, y puede a su eleccin ofrecer garanta a cambio de unos honorarios. 2.Usted puede modicar su copia o copias del Programa o cualquier porcin de l, formando de esta manera una obra basada en el Programa, y copiar y distribuir esa modicacin u obra bajo los trminos del apartado 1 anterior, siempre que adems cumpla las siguientes condiciones: 1. Debe procurar que los cheros modicados incluyan noticaciones destacadas manifestando que los ha cambiado y la fecha de cualquier cambio. 2. Usted debe procurar que cualquier obra que distribuya o publique, que en todo o en parte contenga o sea derivada del Programa o de cualquier parte de l, sea licenciada como un todo, sin cargo alguno para terceras partes bajo los trminos de esta Licencia. 3. Si el programa modicado lee normalmente rdenes interactivamente cuando al ejecutarse, debe hacer que cuando comience su ejecucin para ese uso interactivo de la forma ms habitual, muestre o escriba un mensaje que incluya un anuncio de copyright y un anuncio de que no se ofrece ninguna garanta (o por el contrario que s se ofrece garanta) y que los usuarios pueden redistribuir el programa bajo estas condiciones, e indicando al usuario cmo ver una copia de esta licencia. (Excepcin: si el propio programa es interactivo pero normalmente no muestra ese anuncio, no est obligado a que su obra basada en el Programa muestre ningn anuncio). Estos requisitos se aplican a la obra modicada como un todo. Si algunas secciones claramente identicables de esa obra no estn derivadas del Programa, y pueden razonablemente ser consideradas como obras independientes y separados por s mismas, entonces esta Licencia y sus trminos no

600

se aplican a esas partes cuando sean distribuidas como trabajos separados. Pero cuando distribuya esas mismas secciones como partes de un todo que es una obra basada en el Programa, la distribucin de ese todo debe cumplir los trminos de esta Licencia, cuyos permisos para otros licenciatarios se extienden al todo completo, y por lo tanto a todas y cada una de sus partes, con independencia de quin la escribi. Por lo tanto, no es intencin de este apartado reclamar derechos u oponerse a sus derechos sobre obras escritas enteramente por usted; sino que la intencin es ejercer el derecho de controlar la distribucin de obras derivadas o colectivas basadas en el Programa. Adems, el simple hecho de reunir otro trabajo no basado en el Programa con el Programa (o con un trabajo basado en el Programa) en un medio de almacenamiento o en un medio de distribucin no hace que dicho trabajo entre dentro del mbito cubierto por esta Licencia. 3. Usted puede copiar y distribuir el Programa (o una obra basada en l, segn se especica en la Seccin 2) en forma de cdigo objeto o ejecutable bajo los trminos de las Secciones 1 y 2 anteriores mientras cumpla adems una de las siguientes condiciones: 1. Acompaarlo con el cdigo fuente completo correspondiente en formato legible para un ordenador, que debe ser distribuido bajo los trminos de las Secciones 1 y 2 anteriores en un medio utilizado habitualmente para el intercambio de programas, o 2. Acompaarlo con una oferta por escrito, vlida durante al menos tres aos, por un coste no mayor que el de realizar fsicamente la distribucin del fuente, de proporcionar a cualquier tercera parte una copia completa en formato legible para un ordenador del cdigo fuente correspondiente, que ser distribuido bajo las condiciones descritas en las Secciones 1 y 2 anteriores, en un medio utilizado habitualmente para el intercambio de programas, o 3. Acompaarlo con la informacin que usted recibi referida al ofrecimiento de distribuir el cdigo fuente correspondiente. (Esta opcin se permite slo para la distribucin no comercial y slo si usted recibi el programa como cdigo objeto o en formato ejecutable con una oferta de este tipo, de acuerdo con la Seccin b anterior). Se entiende por cdigo fuente de un trabajo a la forma preferida de la obra para hacer modicaciones sobre este. Para una obra ejecutable, se entiende por cdigo fuente completo todo el cdigo fuente para todos los mdulos que contiene, ms cualquier chero asociado de denicin de interfaces,

E
Traduccin en castellano de la licencia pblica general GNU (GPL)
601

SUSE LINUX Manual de Administracin

ms los guiones utilizados para controlar la compilacin e instalacin del ejecutable. Como excepcin especial el cdigo fuente distribuido no necesita incluir nada que sea distribuido normalmente (ya sea en formato fuente o binario) con los componentes fundamentales (compilador, kernel y similares) del sistema operativo en el cual funciona el ejecutable, a no ser que el propio componente acompae al ejecutable. Si la distribucin del ejecutable o del cdigo objeto se realiza ofreciendo acceso a una copia desde un lugar designado, entonces se considera el ofrecimiento del acceso para copiar el cdigo fuente del mismo lugar como distribucin del cdigo fuente, incluso aunque terceras partes no estn obligadas a copiar el fuente junto al cdigo objeto. 4.No puede copiar, modicar, sublicenciar o distribuir el Programa excepto como est expresamente permitido por esta Licencia. Cualquier intento de copiar, modicar sublicenciar o distribuir el Programa de otra forma es invlido, y har que cesen automticamente los derechos que le proporciona esta Licencia. En cualquier caso, las partes que hayan recibido copias o derechos bajo esta Licencia no vern sus Licencias canceladas, mientras esas partes continen cumpliendo totalmente la Licencia. 5. No est obligado a aceptar esta licencia, ya que no la ha rmado. Sin embargo, no hay hada ms que le proporcione permiso para modicar o distribuir el Programa o sus trabajos derivados. Estas acciones estn prohibidas por la ley si no acepta esta Licencia. Por lo tanto, si modica o distribuye el Programa (o cualquier trabajo basado en el Programa), est indicando que acepta esta Licencia para poder hacerlo, y todos sus trminos y condiciones para copiar, distribuir o modicar el Programa o trabajos basados en l. 6. Cada vez que redistribuya el Programa (o cualquier trabajo basado en el Programa), el receptor recibe automticamente una licencia del licenciatario original para copiar, distribuir o modicar el Programa, de forma sujeta a estos trminos y condiciones. No puede imponer al receptor ninguna restriccin ms sobre el ejercicio de los derechos aqu garantizados. No es usted responsable de hacer cumplir esta licencia por terceras partes. 7.Si como consecuencia de una resolucin judicial o de una alegacin de infraccin de patente o por cualquier otra razn (no limitada a asuntos relacionados con patentes) se le imponen condiciones (ya sea por mandato judicial, por acuerdo o por cualquier otra causa) que contradigan las condiciones de esta Licencia, ello no le exime de cumplir las condiciones de esta Licencia. Si no puede realizar distribuciones de forma que se satisfagan simultneamente sus obligaciones bajo esta licencia y cualquier otra obligacin pertinente entonces, como consecuencia, no puede distribuir el

602

Programa de ninguna forma. Por ejemplo, si una patente no permite la redistribucin libre de derechos de autor del Programa por parte de todos aquellos que reciban copias directa o indirectamente a travs de usted, entonces la nica forma en que podra satisfacer tanto esa condicin como esta Licencia sera evitar completamente la distribucin del Programa. Si cualquier porcin de este apartado se considera no vlido o imposible de cumplir bajo cualquier circunstancia particular ha de cumplirse el resto y la seccin por entero ha de cumplirse en cualquier otra circunstancia. No es el propsito de este apartado inducirle a infringir ninguna patente ni ningn otro derecho de propiedad o impugnar la validez de ninguna de dichas reclamaciones. Este apartado tiene el nico propsito de proteger la integridad del sistema de distribucin de software libre, que se realiza mediante prcticas de licencia pblica. Mucha gente ha hecho contribuciones generosas a la gran variedad de software distribuido mediante ese sistema con la conanza de que el sistema se aplicar consistentemente. Ser el autor/donante quien decida si quiere distribuir software mediante cualquier otro sistema y una licencia no puede imponer esa eleccin. Este apartado pretende dejar completamente claro lo que se cree que es una consecuencia del resto de esta Licencia. 8. Si la distribucin y/o uso de el Programa est restringido en ciertos pases, bien por patentes o por interfaces bajo copyright, el poseedor del copyright que coloca este Programa bajo esta Licencia puede aadir una limitacin explcita de distribucin geogrca excluyendo esos pases, de forma que la distribucin se permita slo en o entre los pases no excluidos de esta manera. En ese caso, esta Licencia incorporar la limitacin como si estuviese escrita en el cuerpo de esta Licencia. 9.La Free Software Foundation puede publicar versiones revisadas y/o nuevas de la Licencia Pblica General de tiempo en tiempo. Dichas versiones nuevas sern similares en espritu a la presente versin, pero pueden ser diferentes en detalles para considerar nuevos problemas o situaciones. Cada versin recibe un nmero de versin que la distingue de otras. Si el Programa especica un nmero de versin de esta Licencia que se aplica a ella y a cualquier versin posterior (any later version), tiene la opcin de seguir los trminos y condiciones, bien de esa versin, bien de cualquier versin posterior publicada por la Free Software Foundation. Si el Programa no especica un nmero de versin de esta Licencia, puede escoger cualquier versin publicada por la Free Software Foundation. 10.Si usted desea incorporar partes del Programa en otros programas libres cuyas condiciones de distribucin son diferentes, escriba al autor para pedirle permiso. Si el software tiene copyright de la Free Software Foundation,

E
Traduccin en castellano de la licencia pblica general GNU (GPL)
603

SUSE LINUX Manual de Administracin

escriba a la Free Software Foundation: algunas veces hacemos excepciones en estos casos. Nuestra decisin estar guiada por el doble objetivo de preservar la libertad de todos los derivados de nuestro software libre y promover el que se comparta y reutilice el software en general.

Ausencia de garanta
11. YA QUE EL PROGRAMA SE LICENCIA LIBRE DE CARGAS, NO SE OFRECE NINGUNA GARANTA SOBRE EL PROGRAMA, HASTA LO PERMITIDO POR LAS LEYES APLICABLES. EXCEPTO CUANDO SE INDIQUE LO CONTRARIO POR ESCRITO, LOS POSEEDORES DEL COPYRIGHT Y/U OTRAS PARTES PROVEEN EL PROGRAMA TAL Y COMO EST, SIN GARANTA DE NINGUNA CLASE, YA SEA EXPRESA O IMPLCITA, INCLUYENDO, PERO NO LIMITNDOSE A, LAS GARANTAS IMPLCITAS DE COMERCIABILIDAD Y APTITUD PARA UN PROPSITO PARTICULAR. TODO EL RIESGO EN CUANTO A LA CALIDAD Y FUNCIONAMIENTO DEL PROGRAMA LO ASUME USTED. SI EL PROGRAMA SE COMPROBARA QUE EST DEFECTUOSO, USTED ASUME EL COSTO DE TODO SERVICIO, REPARACIN O CORRECCIN QUE SEA NECESARIO. 12. EN NINGN CASO, A NO SER QUE SE REQUIERA POR LAS LEYES APLICABLES O SE ACUERDE POR ESCRITO, PODR NINGN POSEEDOR DE COPYRIGHT O CUALQUIER OTRA PARTE QUE HAYA MODIFICADO Y/O REDISTRIBUIDO EL PROGRAMA, SER RESPONSABLE ANTE USTED POR DAOS O PERJUICIOS, INCLUYENDO CUALQUIER DAO GENERAL, ESPECIAL, INCIDENTAL O CONSECUENTE DEBIDO AL USO O LA IMPOSIBILIDAD DE PODER USAR EL PROGRAMA (INCLUYENDO PERO NO LIMITNDOSE A LA PRDIDA DE DATOS O LA PRODUCCIN DE DATOS INCORRECTOS O PRDIDAS SUFRIDAS POR USTED O POR TERCERAS PARTES O LA IMPOSIBILIDAD DEL PROGRAMA DE OPERAR JUNTO A OTROS PROGRAMAS), INCLUSO SI EL POSEEDOR DEL COPYRIGHT U OTRA PARTE HA SIDO AVISADO DE LA POSIBILIDAD DE TALES DAOS. FIN DE TRMINOS Y CONDICIONES

Anexo: Cmo aplicar estos trminos a sus nuevos programas propios.


Si usted desarrolla un nuevo Programa, y quiere que sea del mayor uso posible para el pblico en general, la mejor forma de conseguirlo es convir-

604

tindolo en software libre que cualquiera pueda redistribuir y cambiar bajo estos trminos. Para hacerlo, aada los siguientes avisos al programa. Lo ms seguro es aadirlos al principio de cada chero fuente para comunicar lo ms efectivamente posible la ausencia de garanta. Adems cada chero debera tener al menos la lnea de copyright y una indicacin del lugar donde se encuentra la noticacin completa.
<Program name and short description> Copyright (C) <year> <name of author> This program is modify it under as published by of the License, free software; you can redistribute it and/or the terms of the GNU General Public License the Free Software Foundation; either version 2 or (at your option) any later version.

E
Traduccin en castellano de la licencia pblica general GNU (GPL)

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.

En castellano:
<Nombre del programa y breve descripcin> Copyright (C)<Ao> <Nombre del autor> Este programa es software libre; modificarlo bajo los trminos de tal y como est publicada por la la versin 2 de la Licencia o (a posterior. usted puede redistribuirlo y/o la Licencia Pblica General GNU Free Software Foundation; ya sea su eleccin) cualquier versin

Este programa se distribuye con la esperanza de que sea til, pero SIN NINGUNA GARANTA; ni siquiera la garanta implcita de COMERCIABILIDAD o APTITUD PARA UN PROPSITO ESPECFICO. Vea la Licencia Pblica General GNU para ms detalles. Usted debera haber recibido una copia de la Licencia Pblica General junto con este programa. Si no ha sido as, escriba a la Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.

Aada tambin informacin sobre cmo contactar con usted mediante correo electrnico y postal.

SUSE LINUX Manual de Administracin

605

Si el programa es interactivo, haga que muestre un pequeo anuncio como el siguiente, cuando comience a funcionar en modo interactivo:
Gnomovision Version 69, Copyright (C) <year> <name of author> Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type show w. This is free software, and you are welcome to redistribute it under certain conditions; type show c for details.

En castellano:
Gnomovision versin 69, Copyright (C) <Ao> <Nombre del autor> Gnomovision no ofrece ABSOLUTAMENTE NINGUNA GARANTA; para ms detalles escriba show w. Esto es software libre, y se le invita a redistribuirlo bajo ciertas condiciones. Escriba show c para ms detalles.

Los comandos hipotticos show w y show c deberan mostrar las partes adecuadas de la Licencia Pblica General. Por supuesto, los comandos que use pueden llamarse de cualquier otra manera. Podran incluso ser pulsaciones del ratn o elementos de un menlo que sea apropiado para su programa. Tambin debera conseguir que el empresario (si trabaja como programador) o su centro acadmico, si es el caso, rme una renuncia de copyright para el programa, si es necesario. A continuacin se ofrece un ejemplo, cambie los nombres:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program Gnomovision (which makes passes at compilers) written by James Hacker. Signature of Ty Coon, 1 April 1989 Ty Coon, President of Vice

En castellano:
Yoyodyne, Inc. con la presente renuncia a cualquier inters de derechos de copyright con respecto al programa Gnomovision (que hace pasadas a compiladores) escrito por Pepe Programador. Firma de Pepito Grillo, 1 de abril de 1989 Pepito Grillo, Presidente de Asuntillos Varios.

Esta Licencia Pblica General no permite incorporar su programa a programas propietarios. Si su programa es una librera de subrutinas, puede considerar ms til el permitir el enlazado de aplicaciones propietarias con la librera. Si este es el caso, use la Licencia Pblica General GNU para Libreras en lugar de esta Licencia.

606

Bibliografa

[1] SUSE LINUX (Manual de Usuario). , 9. Auage 2004 . [2] E DWARD C. B AILEY. Maximum RPM. 1997 . ISBN 1-888172-78-9. [3] B RYAN C OSTALES, E RIC A LLMAN, N EIL R ICKERT. sendmail. 1993 . ISBN 1-56592-056-2. [4] W ERNER A LMESBERGER. LILO Users guide. file:///usr/share/doc/lilo/user.dvi. [5] O LAF K IRCH. LINUX Network Administrators Guide. 1995 . ISBN 156592-087-2. [6] S IMON G ARFINKEL, G ENE S PAFFORD. Practical UNIX Security. 1993 . ISBN 0-937175-72-2. [7] T IM OR EILLY, G RACE T ODINO. Managing UUCP and Usenet. 1992 . ISBN 0-937175-93-5. [8] M ATT W ELSH. Linux Installation and Getting Started. 2. Auage 1994 . ISBN 3-930419-03-3. [9] L INDA L AMB. Learning the vi Editor. 1990 . ISBN 0-937175-67-6. [10] M ATT W ELSH, L ARS K AUFMAN. Running Linux. 1995 OReilly. ISBN 1-56592-100-3. [11] B RIAN T UNG. Kerberos: A Network Authentication System. 1999 Fischer-TB. Verlag. ISBN 0-201-37924-4. [12] C HIN FANG, B OB C ROSSON, E RIC S. R AYMOND. The Hitchhikers Guide to X386/XFree86 Video Timing (or, Tweaking your Monitor for Fun and Prot). 1993 .

ndice alfabtico

Smbolos
/etc/inittab . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 /etc/syscong . . . . . . . . . . . . . . . . . . . . . . . . 322

A
ACPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Actualizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 - /etc/skel . . . . . . . . . . . . . . . . . . . . . . . . 49 - prole . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Actualizacin del sistema . . . . . . . . . . . . . . . 43 Advertencia Virus . . . . . . . . . . . . . . . . . . . . . . 16 Apache . . . . . . . . . . . . . . . . . . . . . . . . 52, 409436 - apxs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 - CGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424 - Conguracin . . . . . . . . . . . . . 417422 - Entorno de muestra . . . . . . . . . . . . 283 - Hebras . . . . . . . . . . . . . . . . . . . . . . . . . 414 - Iniciar . . . . . . . . . . . . . . . . . . . . . . . . . . 415 - Instalacin . . . . . . . . . . . . . . . . . 415417 - Mquinas virtuales . . . . 413, 429432 - Mdulo Cargar . . . . . . . . . . . . . . . . . . . . . . . 419 - Mdulos . . . . . . . . . . . . . . . . . . . . . . . 412 Activar . . . . . . . . . . . . . . . . . . . . . . 417 mod_perl . . . . . . . . . . . . . . . . . . . . 426 mod_php4 . . . . . . . . . . . . . . . . . . . 428 mod_python . . . . . . . . . . . . . . . . . 429 mod_ruby . . . . . . . . . . . . . . . . . . . 429 - Negociacin del contenido . . . . . . 413 - Pgina predeterminada . . . . . . . . . 411 - Permisos de acceso . . . . . . . . . . . . . 433 - permissions . . . . . . . . . . . . . . . . . . . . 419 - Registro . . . . . . . . . . . . . . . . . . . . 421, 423 - Resolucin de problemas . . . . . . . 434 - Seguridad . . . . . . . . . . . . . . . . . . 433434 - Squid . . . . . . . . . . . . . . . . . . . . . . . . . . . 499

- SSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424 - SSI (Server Side Includes) . . . . . . . 421 - Threads . . . . . . . . . . . . . . . . . . . . . . . . 414 - Tratamiento de errores . . . . . . . . . . 413 APM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 - Parmetros del kernel . . . . . . . . . . . . 50 Apple - Netatalk . . . . . . . . . . . . . . . . . . . . . . . . 467 Archivo de conguracin - stcany.upp . . . . . . . . . . . . . . . . . . . . . . 177 Archivos - Buscar . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 - Imprimir . . . . . . . . . . 123, 126, 159, 162 - Permisos sobre archivos . . . . . . . . 286 - Sincronizacin . . . . . . . . . . . . . 437456 CVS . . . . . . . . . . . . . . . . . . . . . . . . . 439 InterMezzo . . . . . . . . . . . . . . . . . . 439 mailsync . . . . . . . . . . . . . . . . . . . . . 440 unison . . . . . . . . . . . . . . . . . . . . . . . 439 Archivos Core . . . . . . . . . . . . . . . . . . . . . . . . . 286 Archivos de conguracin . . . . . . . . . . . . . 349 - .lpoptions . . . . . . . . . . . . . . . . . . 120, 125 - /boot/grub/menu.lst . . . . . . . . . . 192 - /etc/HOSTNAME . . . . . . . . . . . . . 355 - /etc/conf.modules . . . . . . . . . . . . vase /etc/modprobe.conf - /etc/exports . . . . . . . . . . . . . . . . . . . 398 - /etc/foomatic/lter.conf . . . . . . . . 54 - /etc/grub.conf . . . . . . . . . . . . . . . . . 199 - /etc/gshadow . . . . . . . . . . . . . . . . . . . 57 - /etc/host.conf . . . . . . . . . . . . . . . . . . 352 - /etc/init.d/boot . . . . . . . . . . . . . . . . . 50 - /etc/logles . . . . . . . . . . . . . . . . . . . . . 50 - /etc/modprobe.conf . . . . . . 277, vase /etc/modprobe.conf

- /etc/networks . . . . . . . . . . . . . . . . . 351 - /etc/nscd.conf . . . . . . . . . . . . . . . . . 355 - /etc/nsswitch.conf . . . . . . . . . . . . . 353 - /etc/nwserv.conf . . . . . . . . . . . . . . . 475 - /etc/openldap/slapd.conf . . . . . 379 - /etc/prole . . . . . . . . . . . . . . . . . . . . 283 - /etc/resolv.conf . . . . . . . . . . . . 288, 350 - /etc/squid/squid.conf 491, 497, 500 - /etc/squidguard.conf . . . . . . . . . . 502 - /etc/syscong/network/ifroute-* . . 360 - /etc/syscong/network/routes 360 - /etc/xinetd.d/cups-lpd . . . . . . . . 149 - /etc/xml/catalog . . . . . . . . . . . . . . . . 54 - /etc/xml/suse-catalog.xml . . . . . . 54 - apache2 . . . . . . . . . . . . . . . . . . . . . . . . 417 - cups lpoptions . . . . . . . . . . . . . . . . . . . . 125 - cupsd.conf . . . . . . . . . . . . . . . . . . . . . 116 - dhcpd.conf . . . . . . . . . . . . . . . . . . . . . 401 - exports . . . . . . . . . . . . . . . . . . . . . . . . . 397 - host.conf . . . . . . . . . . . . . . . . . . . . . . . 352 - httpd.conf . . . . . . . . . . . . . . . . . 417, 418 - lpd.conf . . . . . . . . . . . . . . . . . . . . . . . . 158 - lpd.perms . . . . . . . . . . . . . . . . . . . . . . 158 - lpdlter . . . . . . . . . . . . . . . . . . . . 164, 167 - mime.convs . . . . . . . . . . . . . . . . . . . . 118 - modprobe.conf . . . . . . . . . . . . . . . . . . 55 - modules.conf . . . . . . . . . . . . . . . . . . . 152 - named.conf . . . . . . . . . . . . . . . . . . . . . 363 - printcap . . . . . . . . . . 130, 158, 164, 165 Archivos de registro . . . . . . . . . . . . . . . . . . . 284 - apache2 . . . . . . . . . . . . . . . . . . . . 423, 434 - httpd . . . . . . . . . . . . . . . . . . 421, 423, 434 Arrancar . . . . . . . . . . . . . . . . . . . . . 311, 587, 593 - con disquetes . . . . . . . . . . . . . . . . . . . . 19 - con el CD2 . . . . . . . . . . . . . . . . . . . . . . . 23 - Concepto . . . . . . . . . . . . . . . . . . . . . . . 189 - Gestor de arranque . . . . . . . . . . . . . 189 - GRUB . . . . . . . . . . . . . . . . . . . . . 192202 - initial ramdisk . . . . . . . . . . . . . 289294 - LILO . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 - Mtodos . . . . . . . . . . . . . . . . . . . . . . . . . 15 - Proceso . . . . . . . . . . . . . . . . . . . . . . . . . 188 Arranque - Concepto . . . . . . . . . . . . . . . . . . . . . . . 311 - El ordenador se cuelga . vase BIOS, Virus Protection ASCII - Codicacin . . . . . . . . . . . . . . . . . . . . 183 autoexec.bat . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 autofs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Ayuda

- Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . - Pginas man . . . . . . . . . . . . . . . . . . . . - Texinfo . . . . . . . . . . . . . . . . . . . . . . . . . - Tkinfo . . . . . . . . . . . . . . . . . . . . . . . . . . - XInfo . . . . . . . . . . . . . . . . . . . . . . . . . . .

286 286 286 286 286

B
bash - /etc/prole . . . . . . . . . . . . . . . . . . . . 283 BIND . . . . . . . . . . . . . . . . . . . . . . . . . . . vase DNS BIOS - Virus Protection . . . . . . . . . . . . . . . . . 16 Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 - hcicong . . . . . . . . . . . . . . . . . . . . . . . 233 - hcitool . . . . . . . . . . . . . . . . . . . . . . . . . . 233 - opd . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 - pand . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 - sdptool . . . . . . . . . . . . . . . . . . . . . . . . . 234 Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 - GRUB . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Bootmanager . . . . . . . . . . . . . . . . . . . . . . . . . . 187

C
Cargador de arranque - GRUB . . . . . . . . . . . . . . . . . . . . . 187, 192 - LILO . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 chown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 CJK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 Codicacin - UTF-8 . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Comando - chown . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 - head . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 - nice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 - sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 - tail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Compose . . . . vase Disposicin del teclado, Compose Concurrent Version System . . . . . . vase CVS Conexin a redes . . . . . . . . . . . . . . . . . . . . . . 329 Conexin por radio - Bluetooth . . . . . . . . . . . . . . . . . . . . . . . 230 Conexin telefnica - smpppd . . . . . . . . . . . . . . . . . . . . . . . . 480 Conguracin - Apache . . . . . . . . . . . . . . . . . . . . 417422 - Cambiar . . . . . . . . . . . . . . . . . . . . . . . . 322 - Cargador de arranque GRUB . . . . . . . . . . . . . . . . . . . . . . . 192 - DHCP . . . . . . . . . . . . . . . . . . . . . 401405 - DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 - Enrutamiento . . . . . . . . . . . . . . . . . . . 360

610

ndice alfabtico

- Imprimir . . . . . . . . . . . . . . . . . . . 107113 - IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 - Kerberos . . . . . . . . . . . . . . . . . . . 526544 - Kernel . . . . . . . . . . . . . . . . . . . . . 271280 - LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . 379 - LVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 - manual . . . . . . . . . . . . . . . . . . . . . . . . . 347 - MARSNWE . . . . . . . . . . . . . . . . 475478 - Netatalk . . . . . . . . . . . . . . . . . . . 467473 - NFS . . . . . . . . . . . . . . . . . . . . . . . . 395399 - NIS . . . . . . . . . . . . . . . . . . . . . . . . 390393 - Porttiles . . . . . . . . . . . . . . 207, 210219 - Red . . . . . . . . . . . . . . . . . . . . . . . . 356360 - Samba . . . . . . . . . . . . . . . . . . . . . 460467 - Squid . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 - SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 Congurar servicios del sistema . . . . . . vase syscong Consola - virtual . . . . . . . . . . . . . . . . . . . . . . . . . . 305 Consolas virtuales . . . . . . . . . . . . . . . . . . . . . 305 Controladora ATA-RAID . vase Hardware, controladora Promise Controladora GDT RAID5 vase ICP Vortex Controladora ICP Vortex - Instalacin falla . . . . . . . . . . . . . . . . . . 15 Controladora Promise . . . . vase Hardware, controladora Promise Controladora RAID - ATA . . vase Hardware, controladora Promise Cortafuegos . . . . . . . . . . . . . . . . . . . . . . . . . . . 506 - Squid . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 - SuSErewall2 . . . . . . . . . 506, 509513 cpuspeed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Crash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587, 593 Cron - Servicios peridicos de mantenimiento . . . . . . . . . . . . . 54 cron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439

- Asignacin esttica de direcciones . . 402 - Conguracin del servidor . . . . . 401 Direcciones - IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 - MAC . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 Direcciones IP . . . . . . . . . . . . . . . . . . . . . 334, 337 - Clases de red . . . . . . . . . . . . . . . . . . . 334 - IPv6 . . . . . . . . . . . . . . . . . . . . . . . 339, 359 - Resolucin de nombres . . . . . . . . . 361 - Routing . . . . . . . . . . . . . . . . . . . . . . . . 334 Disco duro IDE - Controladora ATA-RAID . . . . . vase Hardware, controladora Promise Disposicin del teclado - Compose . . . . . . . . . . . . . . . . . . . . . . . 306 Disquete - Arrancar de . . . . . . . . . . . . . . . . . . . . 189 - Formatear . . . . . . . . . . . . . . . . . . . . . . . 21 Disquete de arranque . . . . . . . . . . . 22, 50, 189 - Crear con rawrite . . . . . . . . . . . . . . . . 20 - Generar con dd . . . . . . . . . . . . . . . . . . 21 Distribucin del teclado . . . . . . . . . . . . . . . 305 DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337, 361 - Anlisis de problemas . . . . . . . . . . 362 - archivos de zona . . . . . . . . . . . . . . . . 367 - Forwarding . . . . . . . . . . . . . . . . . . . . . 362 - Iniciar . . . . . . . . . . . . . . . . . . . . . . . . . . 361 - Logging . . . . . . . . . . . . . . . . . . . . . . . . 365 - Mail Exchanger . . . . . . . . . . . . . . . . . 338 - Opciones . . . . . . . . . . . . . . . . . . . . . . . 363 - Resolucin de nombres inversa . 369 - Squid . . . . . . . . . . . . . . . . . . . . . . . . . . . 490 - Zonas . . . . . . . . . . . . . . . . . . . . . . . . . . 365 Domain Name System . . . . . . . . . . vase DNS Dominio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350

E
e2fsck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587 Editor de niveles de ejecucin . . . . . . . . . . 320 El ordenador se cuelga . . . vase BIOS, Virus Protection Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 Enrutamiento . . . . . . . . . . . . . . . . . . . . . . . . . . 360 - Esttico . . . . . . . . . . . . . . . . . . . . . . . . . 360 - routes . . . . . . . . . . . . . . . . . . . . . . . . . . 360 ES-NIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 Exportar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396

D
Daemons - lpd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . depmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Desinstalar - GRUB . . . . . . . . . . . . . . . . . . . . . . . . . . - LILO . . . . . . . . . . . . . . . . . . . . . . . . . . . - Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . - Squid . . . . . . . . . . . . . . . . . . . . . . . . . . . DHCP 158 276 202 202 202 490

F
fdisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 FHS . . . . . . . . vase Sistema de archivos, FHS ltro de paquetes . . . . . . vase SuSErewall2

SUSE LINUX Manual de Administracin

611

FireGL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Firewall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506 Fondo - Grco . . . . . vase Pantalla de SUSE, desactivar Fondo grco . . . . . . vase Pantalla de SUSE, desactivar free . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 Fuente . . . . . . . . . . . . . . . . . . vase Tipo de letra Fuentes - Compilar . . . . . . . . . . . . . . . . . . . . . . . . 65

- Resolucin de problemas . . . . . . . 202 - Shell GRUB . . . . . . . . . . . . . . . . . . . . . 200 - Troubleshooting . . . . . . . . . . . . . . . . 202 Grupos - Cambio de nombre . . . . . . . . . . . . . . 51 gs . . . . . . . . . . . . . . . . . . . . . . . . vase Ghostscript

H
harden_suse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Hardware - Controladora Promise . . . . . . . . . . . 45 - Dispositivos SCSI Cambiar conguracin . . . . . . . . 25 - Laptop . . . . . . . . . . . . . . . . . . . . . . . . . 207 - Porttil . . . . . . . . . . . . . . . . . . . . . . . . . 207 hcicong . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 hcitool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 head . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 Hotplug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359

G
Gestin de energa . . . . . . . . . . . . . . . . 252259 - ACPI . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 - APM . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 - cpufrequency . . . . . . . . . . . . . . . . . . . 252 - cpuspeed . . . . . . . . . . . . . . . . . . . . . . . 252 - Estado de carga . . . . . . . . . . . . . . . . . 255 - Powersave . . . . . . . . . . . . . . . . . . . . . 252 - YaST . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 Gestor de arranque . . . . . . . . . . . . . . . . . . . . 187 - GRUB . . . . . . . . . . . . . . . . . . . . . . . . . . 189 - Windows NT . . . . . . . . . . . . . . . . . . . 189 Gestor de volmenes lgicos . . . vase YaST, LVM Ghostscript . . . . . . . . . . . . . . . . . . . . . . . 175179 - Controlador . . . . . . . . . . . . . . . . . . . . 103 GNOME - Compilar . . . . . . . . . . . . . . . . . . . . . . . . 58 GPL . . . . . . . . . . . . . . . . . . . . . . . . 597, vase GPL Grcos - 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . 9395 Controladores . . . . . . . . . . . . . . . . 93 Diagnstico . . . . . . . . . . . . . . . . . . . 94 Probar . . . . . . . . . . . . . . . . . . . . . . . . 94 Resolucin de problemas . . . . . . 95 SaX2 . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Soporte . . . . . . . . . . . . . . . . . . . . . . . 93 Soporte de instalacin . . . . . . . . . 95 Troubleshooting . . . . . . . . . . . . . . 95 - Device-Identier . . . . . . . . . . . . . . . . . 85 - id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 - Profundidad de color . . . . . . . . . . . . 84 - Tarjetas FireGL . . . . . . . . . . . . . . . . . . . 9 GRUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187, 192 - /etc/grub.conf . . . . . . . . . . . . . . . . . 199 - Contrasea de arranque . . . . . . . . 200 - Desinstalar . . . . . . . . . . . . . . . . . . . . . 202 - Men de arranque . . . . . . . . . . . . . . 192 - Nombres de dispositivos . . . . . . . 194 - Nombres de particiones . . . . . . . . 194

I
I18N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 Imprimir . . . . . . . . . . . . . . . . . . . . . . . . . . . 97, 151 - a2ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 - Archivos . . . . . . . . . . 123, 126, 159, 162 - Bsqueda de errores CUPS . . . . . . . . . . . . . . . . . . . . . . . . 121 - Bsqueda de fallos Red . . . . . . . . . . . . . . . . . . . . . . . . . . 144 - Cola de impresin . . . . . . 98, 107, 111 Controlar . . . . . . . . . . . . . . . 161163 Herramientas . . . . . . . . . . . 159164 Opciones . . . . . . . . . . . . . . . . . . . . 124 - Colas de impresin Administrar . . . . . . . . . . . . . 123127 color . . . . . . . . . . . . . . . . . . . . . . . . . 108 Eliminar trabajos de impresin . . . 160, 163 en red . . . . . . . . . . . . . . . . . . . . . . . 125 Estado . . . . . . . . . 123, 126, 160, 162 raw . . . . . . . . . . . . . . . . . . . . . 120, 165 remotas . . . . . . . . . . . . . . . . . 162163 - Conguracin . . . . . . . . . . . . . . . . . . 107 CUPS . . . . . . . . . . . . . . . . . . . 115117 Lprng y lpdlter . . . . . . . . 157158 Puertos . . . . . . . . . . . . . . . . . 152157 YaST . . . . . . . . . . . . . . . . . . . . . . . . . 108 - Controlador . . . . . . . . . . . . . . . . 104107 - Controladores Ghostscript . . . . . . 103 - CUPS . . . . . . . . . . . . . . . . . 108, 114121 Bsqueda de errores . . . . . . . . . 121 OpenOfce.org . . . . . . . . . . . . . . 120

612

ndice alfabtico

Resolucin de problemas . . . . 126 - cups-lpd . . . . . . . . . . . . . . . . . . . . . . . . 128 - dplex . . . . . . . . . . . . . . . . . . . . . . . . . 168 - Desarrollo . . . . . . . . . . . . . . . . . . . 99102 - desde aplicaciones . . . . . . . . . 113, 122 - Filtro de impresin Bsqueda de errores . . . . . . . . . 174 congurar . . . . . . . . . . . . . . . . . . . 166 editar . . . . . . . . . . . . . . . . . . . . . . . . 167 Ejemplo . . . . . . . . . . . . . . . . . . . . . 168 lpdlter . . . . . . . . . . . . . . . . . 164174 - footmatic-lters . . . . . . . . . . . . . . . . . . 54 - Fundamentos . . . . . . . . . . . . . . . 98102 - Ghostscript . . . . . . . . . . . . . . . . . . . . . 175 Controlador . . . . . . . . . . . . . 104105 - Impresora GDI . . . . . . . . . . . . . 105107 Conguracin . . . . . . . . . . . . . . . 172 soportadas . . . . . . . . . . . . . . . . . . . 106 - Impresoras de red . . . . . . . . . . . . . . 117 - Impresoras soportadas . . . . . . . . . . 103 - IPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 - Lnea de comandos . . . . . . . . . . . . . 159 - Lnea de comandos, desde la . . . 123 - Lenguajes de impresin . . . . . . . . . . 98 ASCII . . . . . . . . . . . . . . . . . . . . . . . . . 98 ESC . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 PCL . . . . . . . . . . . . . . . . . . . . . . . . . . 98 PostScript . . . . . . . . . . . . . . . . . . . . . 98 - lpc . . . . . . . . . . . . . . . . . . . . . . . . . 161162 - lpq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 - lpr . . . . . . . . . . . . . . . . . . . . . . . . . 159, 162 - LPRng . . . . . . . . . . . . . . . . . . . . . . 54, 109 Comandos . . . . . . . . . . . . . . . . . . . 159 - lprsetup . . . . . . . . . . . . . . . . . . . 157158 - Pginas de cubierta . . . . . . . . . . . . . 113 - PPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 - Procesamiento . . . . . . . . . . . . . . . . . . 118 - Protocolos . . . . . . . . . . . . . . . . . . . . . . 130 - Red . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Bsqueda de fallos . . . . . . . . . . . 144 - Requisitos . . . . . . . . . . . . . . . . . . . . . . 103 - Resolucin de problemas . . . . . . . 163 CUPS . . . . . . . . . . . . . . . . . . . . . . . . 126 - Servidor CUPS . . . . . . . . . . . . . . . . . 128 - Servidor de impresin . . . . . . . . . . 128 - Servidor de impresin dedicado 128 - Servidor de red CUPS . . . . . . . . . . 128 - Servidor IPP . . . . . . . . . . . . . . . . . . . . 128 - Servidor LPD . . . . . . . . . . . . . . . . . . . 128 - Spooler lpd . . . . . . . . . . . . . . . . . . . . . . 158159 - Trabajos Procesamiento . . . . . . . . . . . . . . . 118

- Trabajos de impresin Eliminar . . . . . . . 124, 126, 160, 163 Estado . . . . . . . . . . . . . . 123, 160, 162 inetd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Informacin adicional . . . . . . . . . . . . . . . . . 151 Informacin del sistema . . . . . . . . . . . . . . . 295 init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 - Aadir scripts . . . . . . . . . . . . . . . . . . 318 - scripts . . . . . . . . . . . . . . . . . . . . . . . . . . 316 Initial ramdisk (initrd) . . . . . . . . . . . . . . . . . 289 inittab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 insmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 Instalacin - A travs de FTP . . . . . . . . . . . . . . . . . 17 - A travs de la red . . . . . . . . . . . . . . . . 17 - A travs de NFS . . . . . . . . . . . . . . . . . 17 - en modo texto, con YaST . . . . . . . . . . 8 - GRUB . . . . . . . . . . . . . . . . . . . . . . . . . . 192 - Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . 278 - Paquetes . . . . . . . . . . . . . . . . . . . . . . . . . 59 - PCMCIA . . . . . . . . . . . . . . . . . . . . . . . 217 InterMezzo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 Internet - Proxy . . . . . . . . . . . . . . . . . . . vase Squid - Servidor web . . . . . . . . . vase Apache - smpppd . . . . . . . . . . . . . . . . . . . . . . . . 480 Introduccin - CJK . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 IrDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

J
jade . . . . . . . . . . . . . . . . . vase SGML, openjade jade_dsl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

K
Kerberos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 - Authenticator . . . . . . . . . . . . . . . . . . 520 - Clave maestra . . . . . . . . . . . . . . . . . . 530 - Conguracin de clientes . . 533535 - Conguracin de SSH . . . . . . . . . . 540 - Credential . . . . . . . . . . . . . . . . . . . . . . 520 - Host principal . . . . . . . . . . . . . . . . . . 538 - Instalacin y administracin . . . . . . . . 526544 - KDC . . . . . . . . . . . . . . . . . . . . . . . 530532 - LDAP y Kerberos . . . . . . . . . . 541544 - Mutual Authentication . . . . . . . . . 521 - Principal . . . . . . . . . . . . . . . . . . . 520, 532 - Realm . . . . . . . . . . . . . . . . . . . . . 526, 531 - Registro . . . . . . . . . . . . . . . . . . . . . . . . 530 - Replay . . . . . . . . . . . . . . . . . . . . . . . . . 521 - Session Key . . . . . . . . . . . . . . . . . . . . 521 - Sincronizacin del reloj . . . . . . . . . 529

SUSE LINUX Manual de Administracin

613

- Soporte PAM . . . . . . . . . . . . . . 539540 - Ticket . . . . . . . . . . . . . . . . . . . . . . . . . . 520 Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 - Compilacin . . . . . . . . . . . . . . . . . . . . 271 - Conguracin . . . . . . . . . . . . . . . . . . 273 - Daemon . . . . . . . . . . . . . . . . . . . . . . . . 277 - Instalar . . . . . . . . . . . . . . . . . . . . . . . . . 278 - Mdulos . . . . . . . . . . . . . . . . . . . . . . . 275 Compilar . . . . . . . . . . . . . . . . . . . . 278 depmod . . . . . . . . . . . . . . . . . . . . . 276 insmod . . . . . . . . . . . . . . . . . . . . . . 276 modinfo . . . . . . . . . . . . . . . . . . . . . 277 modprobe . . . . . . . . . . . . . . . . . . . 276 modprobe.conf . . . . . . . . . . . . . . . 55 parport . . . . . . . . . . . . . . . . . . . . . . 152 rmmod . . . . . . . . . . . . . . . . . . . . . . 276 - Module Loader . . . . . . . . . . . . . . . . . 277 - Novedades en la versin 2.6 . . . . . 55 Kernel too big . . . . . . . . . . . . . . . . . . . . . . . . . 278 Kmod . . . . . . . . vase Kernel Module Loader

locate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Logles . . . vase Archivos de registro, vase Archivos de registro lprsetup . . . . . . . . . . . . . . . . . . . . . . . . . . 157158 LSB (Linux Standard Base) . . . . . . . . . . . . . 282 - Instalar paquetes . . . . . . . . . . . . . . . . 58 lsmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 LVM . . . . . . . . . . . . . . . . . . . . . . vase YaST, LVM

M
Mdulo - Cargar . . . . . . . . . . . . . . . . . . . . . . . . . . 297 - hwinfo . . . . . . . . . . . . . . . . . . . . . . . . . 275 - Parmetros . . . . . . . . . . . . . . . . . . . . . 297 Mdulo kernel - Tarjeta de red . . . . . . . . . . . . . . . . . . . 357 Mdulos - Manejo . . . . . . . . . . . . . . . . . . . . . . . . . 276 MacOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 mailsync . . . . . . . . . . . . . . . . . . . . . . . . . . 440, 453 Manpages . . . . . . vase Ayuda, pginas man Masquerading . . . . . . . . . . . . . . . . . . . . . . . . . 506 Master Boot Record . . . . . . . . . . . . . vase MBR MBR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 Memoria RAM . . . . . . . . . . . . . . . . . . . . . . . . 287 mkinitrd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 Modeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 modinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 modprobe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 Multi_key . . . vase Disposicin del teclado, Compose

L
L10N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 LAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 Laptop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373389 - rbol de directorios . . . . . . . . . . . . 376 - Aadir datos . . . . . . . . . . . . . . . . . . . 384 - Access Control Information . . . . . 382 - Borrar datos . . . . . . . . . . . . . . . . . . . . 388 - Conguracin de servidor . . . . . . 379 - Examinar datos . . . . . . . . . . . . . . . . . 387 - Kerberos y LDAP . . . . . . . . . . 541544 - ldapadd . . . . . . . . . . . . . . . . . . . . . . . . 384 - ldapdelete . . . . . . . . . . . . . . . . . . . . . . 388 - ldapmodify . . . . . . . . . . . . . . . . . . . . . 386 - ldapsearch . . . . . . . . . . . . . . . . . . . . . . 387 - Modicar datos . . . . . . . . . . . . . . . . . 386 Lector CD-ROM - Soporte en Linux . . . . . . . . . . . . . . . . 23 LFS (Large File Support) . . . . . . . . . . . . . . . 569 Lightweight Directory Access Protocol . . . . . vase LDAP LILO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 - Desinstalar . . . . . . . . . . . . . . . . . . . . . 202 Linux - Actualizacin . . . . . . . . . . . . . . . . . . . . 43 - Desinstalar . . . . . . . . . . . . . . . . . . . . . 202 linuxrc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 linuxthreads . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Local - UTF-8 . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Local Area Network . . . . . . . . . . . . vase LAN

N
Name Service Cache Daemon . . . . . . . . . . 355 Name Service Switch . . . . . . . . . . . . . . . . . . 353 Netatalk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 NetBIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 - Servicio de nombres . . . . . . . . . . . . 459 Network File System . . . . . . . . . . . . vase NFS Network Information Service . . . . vase NIS NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 - Cliente . . . . . . . . . . . . . . . . . . . . . . . . . 394 - Exportar . . . . . . . . . . . . . . . . . . . . . . . . 397 - Importar . . . . . . . . . . . . . . . . . . . . . . . 395 - mount . . . . . . . . . . . . . . . . . . . . . . . . . . 395 - mountd . . . . . . . . . . . . . . . . . . . . . . . . 397 - Servidor . . . . . . . . . . . . . . . . . . . . . . . . 394 nfsd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 NGPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 nice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 NIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389393 - autofs . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

614

ndice alfabtico

- Clientes . . . . . . . . . . . . . . . . . . . . . . . . 392 - Master . . . . . . . . . . . . . . . . . . . . . 390392 - Slave . . . . . . . . . . . . . . . . . . . . . . . 390392 Nivel de ejecucin . . . . . . . . . . . . . . . . . . . . . 313 Notebook . . . . . . . . . . . . . . . . . . . . vase Porttil NPTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55, 56 nVidia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

O
opd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 OpenGL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9395 - Controladores . . . . . . . . . . . . . . . . . . . 93 - Probar . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 OpenLDAP . . . . . . . . . . . . . . . . . . . vase LDAP OpenOfce.org - Imprimir Cups . . . . . . . . . . . . . . . . . . . . . . . . 120 OpenSSH . . . . . . . . . . . . . . . . . . . . . . . vase SSH

P
pand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Pantalla - Desactivar pantalla de SUSE . . . . . 16 - Resolucin . . . . . . . . . . . . . . . . . . . . . . . 84 Pantalla virtual . . . . . . . . . . . . . . . . . . . . . . . . . 84 Paquete de hilos (threads) - NPTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Paquetes - build . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 - Compilar . . . . . . . . . . . . . . . . . . . . . . . . 65 - construir . . . . . . . . . . . . . . . . . . . . . . . . . 54 - Desinstalar . . . . . . . . . . . . . . . . . . . . . . 59 - Formato de paquetes . . . . . . . . . . . . 58 - Gestor de paquetes . . . . . . . . . . . . . . 58 - Instalar . . . . . . . . . . . . . . . . . . . . . . . . . . 59 - LSB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Parmetros del kernel - APM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Particin swap . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Particionador . . . . vase YaST, particionador Particionar - Experto . . . . . . . . . . . . . . . . . . . . . . . . . . 25 - fdisk . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 - Swap . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 - Tabla de particiones . . . . . . . . . . . . 188 PCMCIA . . . . . . . . . . . . . . . . . . . . . . . . . . 208, 359 - Administrador de tarjetas . . . . . . . 209 - Conguracin . . . . . . . . . . . . . . . . . . 210 - Instalacin . . . . . . . . . . . . . . . . . . . . . 217 - IrDA . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 - Mdem . . . . . . . . . . . . . . . . . . . . . . . . . 212 - RDSI . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 - Resolucin de errores . . . . . . . . . . . 213

- SCSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 - Tarjetas de red . . . . . . . . . . . . . . . . . . 211 - Utilidades . . . . . . . . . . . . . . . . . . . . . . 218 PGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 pine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Porttil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 - ACPI . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 - APM . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 - Gestin de energa . . . . . . . . . . . . . . 239 - IrDA . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 - SCPM . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Porttiles - PCMCIA . . . . . . . . . . . . . . . . . . . . . . . 359 portmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 Portscan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 PostgreSQL - Actualizacin . . . . . . . . . . . . . . . . . . . . 45 PostScript - Reformatear . . . . . . . . . . . . . . . 180183 Powermanagement . . . . . . . vase Gestin de energa Powersave . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 - Conguracin . . . . . . . . . . . . . . . . . . 253 Primera instalacin - Arrancar con disquete . . . . . . . . . . . 22 - Arrancar con el CD2 . . . . . . . . . . . . . 23 - Crear disquete de arranque Linux, UNIX . . . . . . . . . . . . . . . . . . 21 - Crear disquetes de arranque . . . . . 19 - Futuros mtodos de arranque . . . . 15 - linuxrc . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - Pantalla de bienvenida . . . . . . . . . . . . 8 Procesadores - AMD64 . . . . . . . . . . . . . . . . . . . . . . . . . 267 Programar - Archivos Core . . . . . . . . . . . . . . . . . . 286 Programas - Compilar . . . . . . . . . . . . . . . . . . . . . . . . 65 Protocolos - ICMP . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 - IGMP . . . . . . . . . . . . . . . . . . . . . . . . . . 331 - IPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 - TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . 330 - UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 Proxy . . . . . . . . . . . . . . . . . . . . . . . . . . vase Squid Puerto - IrDA . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 - Paralelo . . . . . . . . . . . . . . . . . . . . 152154 - Serie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 - USB . . . . . . . . . . . . . . . . . . . . . . . . 154156

R
Ratn

SUSE LINUX Manual de Administracin

615

- pine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Red - Archivos de conguracin . . . . . . 349 - Conguracin IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . 359 - Direccin base . . . . . . . . . . . . . . . . . . 336 - Direcciones IP . . . . . . . . . . . . . . . . . . 334 - DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 - Enrutamiento . . . . . . . . . . . . . . . . . . . 360 - Imprimir . . . . . . . . . . . . . . . . . . . . . . . 117 - Imprimir en . . . . . . . . . . . . . . . . . . . . 127 - Kerberos . . . . . . . . . . . . . . . . . . . . . . . 519 - Localhost . . . . . . . . . . . . . . . . . . . . . . . 337 - Prueba . . . . . . . . . . . . . . . . . . . . . . . . . 357 - Routing . . . . . . . . . . . . . . . . . . . . . . . . 334 Redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 - Mscaras de red . . . . . . . . . . . . . . . . 334 - Routing . . . . . . . . . . . . . . . . . . . . . . . . 335 reiserfsck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 Remote Login . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Resolucin de nombres inversa - reverse lookup . . . . . . . . . . . . . . . . . 369 Reverse lookup . . . . . . . . . . . . . . . . . vase DNS rmmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 Routing . . . . . . . . . . . 334, vase Enrutamiento - Mscaras de red . . . . . . . . . . . . . . . . 335 RPC-Mount-Daemon . . . . . . . . . . . . . . . . . . 397 RPC-NFS-Daemon . . . . . . . . . . . . . . . . . . . . . 397 RPC-Portmapper . . . . . . . . . . . . . . . . . . 395, 397 RPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 - Parches . . . . . . . . . . . . . . . . . . . . . . . . . . 61 - rpmnew . . . . . . . . . . . . . . . . . . . . . . . . . 59 - rpmorig . . . . . . . . . . . . . . . . . . . . . . . . . 59 - rpmsave . . . . . . . . . . . . . . . . . . . . . . . . . 59 - Versin 4 . . . . . . . . . . . . . . . . . . . . . . . . 54 rpmbuild . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54, 58 Runlevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 - cambiar . . . . . . . . . . . . . . . . . . . . . . . . 315

S
Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458467 - Conguracin del servidor . . . . . 460 - Niveles de seguridad . . . . . . . . . . . 463 - Recursos compartidos (shares) . . 461 SCPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 - Administrar perles . . . . . . . . . . . . 222 - Congurar . . . . . . . . . . . . . . . . . . . . . 221 Script - init.d network . . . . . . . . . . . . . . . . . . . . . 356 nfsserver . . . . . . . . . . . . . . . . . . . . 356 portmap . . . . . . . . . . . . . . . . . . . . . 356 postx . . . . . . . . . . . . . . . . . . . . . . . 356

squid . . . . . . . . . . . . . . . . . . . . . . . . 489 xinetd . . . . . . . . . . . . . . . . . . . . . . . 356 ypbind . . . . . . . . . . . . . . . . . . . . . . 356 ypserv . . . . . . . . . . . . . . . . . . . . . . . 356 - lpdlter guess . . . . . . . . . . . . . . . . . . . . . . . . 164 - modify_resolvconf . . . . . . . . . . . . . . 350 Scripts de arranque . . . . . . vase Script, init.d SCSI - Archivos de dispositivo Asignacin de nombres . . . . . . . 25 - Dispositivos SCSI Cambiar conguracin . . . . . . . . 25 sdptool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Sector de arranque . . . . . . . . . . . . . . . . . . . . . 188 Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 - Cortafuegos . . . . . . . . . . . . . . . . . . . . 506 - Firewall . . . . . . . . . . . . . . . . . . . . . . . . 506 - Squid . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 - SSH . . . . . . . . . . . . . . . . . . . . . . . . 513519 Servidor de nombres . . . . . . . . . . . . . . 350, 361 - BIND . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 Servidor FTP . . . . . . . . . . . . . . . . . . . . . . . 52, 282 - Entorno de muestra . . . . . . . . . . . . 282 Servidor HTTP . . . . . . . . . . . . . . . vase Apache Servidor web . . . . . . . . . . . . . . . . vase Apache SGML - openjade . . . . . . . . . . . . . . . . . . . . . . . . 53 - Sistema de archivos conforme con FHS . . . . . . . . . . . . . . . . . . . . . . . . . 57 Sistema de archivos . . . . . . . . . . . . . . . 561571 - e2fsck . . . . . . . . . . . . . . . . . . . . . . . . . . 587 - Ext2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 - Ext3 . . . . . . . . . . . . . . . . . . . . . . . 563565 - FHS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 - JFS . . . . . . . . . . . . . . . . . . . . . . . . . 566567 - LFS . . . . . . . . . . . . . . . . . . . . . . . . 569571 - Limitaciones . . . . . . . . . . . . . . . . . . . . 570 - ReiserFS . . . . . . . . . . . . . . . . . . . 565566 - reiserfsck . . . . . . . . . . . . . . . . . . . . . . . 593 - Trminos . . . . . . . . . . . . . . . . . . . . . . . 561 - TeX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 - XFS . . . . . . . . . . . . . . . . . . . . . . . . 567568 Sistema de colas . . . . . . . . . . . . . . . . . . . . . . . . 97 Sistema de impresin vase Sistema de colas Sistema de rescate . . . . . . . . . . . . . . . . . . . . . 301 - Disquete de rescate . . . . . . . . . . . . . 301 - Iniciar . . . . . . . . . . . . . . . . . . . . . . . . . . 301 - Uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 Sistema X Window . . . . . . . . . . . . . . . vase X11 Sistemas de archivos - >Listas de control de acceso (ACLs) . 573586

616

ndice alfabtico

Sistemas de tipos de letra . . . . . . . . . . . . . . . 87 - Tipos de letra CID-keyed . . . . . . . . 92 - X11 core fonts . . . . . . . . . . . . . . . . . . . 91 - Xft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 SMB . . . . . . . . . . . . . . . . . . . . . . . . . . vase Samba smpppd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 Soft-RAID . . . . . . . . . . . vase YaST, Soft-RAID Software . . . . . . . . . . . . . . . . . . . . . . vase Emacs Soporte de instalacin - Tarjetas grcas 3D . . . . . . . . . . . . . . 95 sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Squid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484 - Apache . . . . . . . . . . . . . . . . . . . . . . . . . 499 - Archivo log . . . . . . . . . . . . . . . . . . . . . 490 - Arrancar . . . . . . . . . . . . . . . . . . . . . . . 489 - Cach proxy . . . . . . . . . . . . . . . . . . . . 484 - Cachs . . . . . . . . . . . . . . . . . . . . . . . . . 485 - Cachear objetos . . . . . . . . . . . . . . . . . 486 - cachemgr.cgi . . . . . . . . . . . . . . . . . . . 499 - Calamaris . . . . . . . . . . . . . . . . . . . . . . 503 - Caractersticas . . . . . . . . . . . . . . . . . . 485 - Conguracin . . . . . . . . . . . . . . . . . . 491 - Control de acceso . . . . . . . . . . 494, 500 - Cortafuegos . . . . . . . . . . . . . . . . . . . . 497 - CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 - Directorios . . . . . . . . . . . . . . . . . . . . . 489 - Discos duros . . . . . . . . . . . . . . . . . . . 487 - DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490 - Estadsticas . . . . . . . . . . . . . . . . . . . . . 499 - Permisos . . . . . . . . . . . . . . . . . . . . . . . 494 - Proxy transparente . . . . . . . . . . . . . 496 - RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 - SARG . . . . . . . . . . . . . . . . . . . . . . . . . . 503 - Seguridad . . . . . . . . . . . . . . . . . . . . . . 485 - squidGuard . . . . . . . . . . . . . . . . . . . . 501 - Tamao del cach . . . . . . . . . . . . . . . 488 SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513519 - Autenticacin . . . . . . . . . . . . . . . . . 517 - scp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 - sftp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 - ssh-agent . . . . . . . . . . . . . . . . . . . . . . . 517 - sshd . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 Stick USB - Arrancar de . . . . . . . . . . . . . . . . . . . . 189 SuSE Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 - Distribucin del teclado . . . . . . . . 305 - Instalacin . . . . . . . . . . . . . . . . . . . . . 294 - Particularidades . . . . . . . . . . . . . . . . 281 SuSEcong . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 SuSErewall2 . . . . . . . . . . . . . . . . . . . . . . . . . . 506 sx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 syscong . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 System is too big . . . . . . . . . . . . . . . . . . . . . . 278

T
tail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 TCP - Servicios . . . . . . . . . . . . . . . . . . . . . . . 330 TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . 330, 331 - Modelo de capas . . . . . . . . . . . . . . . 331 Tipos de letra . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 - CID-keyed . . . . . . . . . . . . . . . . . . . . . . . 92 - X11 core . . . . . . . . . . . . . . . . . . . . . . . . . 91 - Xft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Tipos de letra CID-keyed . . . . . . . . . . . . . . . 92 TrueType . vase X11, tipo de letra TrueType

U
UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . vase TCP ugidd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 ulimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 unison . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439, 447 Update . . . . . . . . . . . . . . . . vase Actualizacin Usuario - Cambio de nombre . . . . . . . . . . . . . . 51 - Problemas al crear usuarios . . . . . 355 UTF-8 - Codicacin . . . . . . . . . . . . . . . . . . . . . 56

V
Variable de entorno - CUPS_SERVER . . . . . . . . . . . . . . . . . 114 Virus Protection . . . . . . . . . . vase BIOS, Virus Protection

W
whois . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - Gestor de arranque NT . . . . . . . . . - SMB . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 458 189 458

X
X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vase X11 X11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 - Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 - Juego de caracteres . . . . . . . . . . . . . . 86 - Optimizacin . . . . . . . . . . . . . . . . . . . . 81 - Sistemas de tipos de letra . . . . . . . . 87 - Tipo de letra . . . . . . . . . . . . . . . . . . . . . 86 - Tipo de letra TrueType . . . . . . . . . . . 86 - Tipos de letra CID-keyed . . . . . . . . 92 - X11 core fonts . . . . . . . . . . . . . . . . . . . 91 - Xft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 - xft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 X11 core fonts . . . . . . . . . . . . . . . . . . . . . . . . . . 91 XF86Cong

SUSE LINUX Manual de Administracin

617

- Clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 - Depth . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 - Device . . . . . . . . . . . . . . . . . . . . . . . 8284 - Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 - InputDevice . . . . . . . . . . . . . . . . . . . . . 81 - Modeline . . . . . . . . . . . . . . . . . . . . . . . . 82 - modeline . . . . . . . . . . . . . . . . . . . . . . . . 84 - Modes . . . . . . . . . . . . . . . . . . . . 82, 84, 85 - Monitor . . . . . . . . . . . . . . . . . . . 82, 83, 85 - Screen . . . . . . . . . . . . . . . . . . . . . . . . 82, 83 - ServerFlags . . . . . . . . . . . . . . . . . . . . . . 81 - ServerLayout . . . . . . . . . . . . . . . . . . . . 82 - Subsection Display . . . . . . . . . . . . . . . . . . . . . . . 84 - Virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 XFree86 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Xft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 xinetd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 XML - Catlogo . . . . . . . . . . . . . . . . . . . . . . . . . 54 - openjade . . . . . . . . . . . . . . . . . . . . . . . . 53 - Sistema de archivos conforme con

FHS . . . . . . . . . . . . . . . . . . . . . . . . . 57

Y
YaST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 - 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 - Actualizacin en lnea mediante la consola . . . . . . . . . . . . . . . . . . . . . 75 - Cliente NFS . . . . . . . . . . . . . . . . . . . . 395 - Clientes NIS . . . . . . . . . . . . . . . . . . . . 392 - Conguracin de red . . . . . . . . . . . 357 - Distribucin del teclado . . . . . . . . . . 71 - Editor de niveles de ejecucin . . . 320 - Editor syscong . . . . . . . . . . . . . . . . 324 - Gestin de energa . . . . . . . . . . . . . . 260 - Imprimir . . . . . . . . . . . . . . . . . . . . . . . 108 - LVM (Logical Volume Manager) . 32 - Modo texto . . . . . . . . . . . . . . . . . . . 7177 - ncurses . . . . . . . . . . . . . . . . . . . . . . . . . . 71 - Particionador . . . . . . . . . . . . . . . . . . . . 31 - Servidor NIS . . . . . . . . . . . . . . . . . . . 390 - Soft-RAID . . . . . . . . . . . . . . . . . . . . . . . 39 YP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vase NIS

You might also like