0% encontró este documento útil (0 votos)
269 vistas521 páginas

LPI2

lpi LINUX PROFESIONAL

Cargado por

paco striva
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
269 vistas521 páginas

LPI2

lpi LINUX PROFESIONAL

Cargado por

paco striva
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Página 1

Página 2

Página 3

LPIC-2
Instituto Profesional de Linux
Certificación
Guía de estudio
Roderick W. Smith

Página 4
Editor senior de adquisiciones: Jeff Kellum
Editor de desarrollo: Jennifer Leland
Editores técnicos: Ross Brunson y Don Corbet
Editor de producción: Liz Britten
Editor de copias: Kim Wimpsett
Director editorial: Pete Gaughan
Director de producción: Tim Tate
Vicepresidente y editor del grupo ejecutivo: Richard Swadley
Vicepresidente y editor: Neil Edde
Responsable de proyectos de medios 1: Laura Moss-Hollister
Productor asociado de medios: Doug Kuhn
Garantía de calidad de los medios: Marilyn Hummel
Diseñadores de libros: Judy Fung, Bill Gibson
Corrector de pruebas: WordOne, Nueva York
Indexador: Ted Laux
Coordinadora del proyecto, portada: Katie Crocker
Diseñador de portada: Ryan Sneed
Copyright © 2011 por Wiley Publishing, Inc., Indianápolis, Indiana
Publicado simultáneamente en Canadá
ISBN: 978-1-118-00015-1
Ninguna parte de esta publicación puede ser reproducida, almacenada en un sistema de recuperación o transmitida en cualquier forma o por
cualquier medio, electrónico, mecánico, fotocopiado, grabación, escaneo o de otro tipo, excepto lo permitido por
Las secciones 107 o 108 de la Ley de derechos de autor de los Estados Unidos de 1976, sin el permiso previo por escrito del
Editor, o autorización mediante el pago de la tarifa correspondiente por copia al Centro de autorización de derechos de autor,
222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Solicitudes al editor
para obtener permiso, debe dirigirse al Departamento de Permisos, John Wiley & Sons, Inc., 111 River Street,
Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008 o en línea en [Link]
Límite de responsabilidad / Renuncia de garantía: El editor y el autor no hacen declaraciones ni ofrecen garantías con
respeto a la exactitud o integridad del contenido de este trabajo y específicamente renuncia a todas las garantías, incluyendo
sin limitación, garantías de idoneidad para un propósito particular. No se pueden crear ni extender garantías por ventas o
materiales promocionales. Los consejos y estrategias aquí contenidos pueden no ser adecuados para todas las situaciones. Este trabajo
se vende con el entendimiento de que el editor no se dedica a la prestación de servicios legales, contables u otros profesionales
servicios. Si se requiere asistencia profesional, se deben buscar los servicios de una persona profesional competente.
Ni el editor ni el autor serán responsables de los daños que se deriven del mismo. El hecho de que una organización o
En este trabajo se hace referencia al sitio web como una cita y / o una fuente potencial de información adicional no significa que
el autor o el editor respalda la información que la organización o el sitio web pueden proporcionar o recomendaciones
puede hacer. Además, los lectores deben tener en cuenta que los sitios web de Internet enumerados en este trabajo pueden haber cambiado o
desapareció entre la escritura de esta obra y la lectura.
Para obtener información general sobre nuestros otros productos y servicios o para obtener soporte técnico, comuníquese con nuestro
Departamento de Atención al Cliente dentro de los EE. UU. Al (877) 762-2974, fuera de los EE. UU. Al (317) 572-3993 o por fax
(317) 572-4002.
Wiley también publica sus libros en una variedad de formatos electrónicos. Es posible que algunos contenidos impresos no se
disponible en libros electrónicos.
Datos de catalogación en publicación de la Biblioteca del Congreso.
Smith, Roderick W.
LPIC-2: Guía de estudio de certificación del Linux Professional Institute (exámenes 201 y 202) / Roderick W. Smith.
pags. cm.
ISBN-13: 978-1-118-00015-1 (pbk.)
ISBN-10: 1-118-00015-3 (pbk.)
ISBN: 978-1-118-00042-4 (ebk)
ISBN: 978-1-118-00044-8 (ebk)
ISBN: 978-1-118-00043-1 (ebk)
1. Personal de procesamiento de datos electrónicos — Certificación. 2. Linux: exámenes: guías de estudio. I. Título.
QA76.3.S4774 2011
005.4'32 — dc22
2011005893
MARCAS COMERCIALES: Wiley, el logotipo de Wiley y el logotipo de Sybex son marcas comerciales o marcas comerciales registradas de John
Wiley & Sons, Inc. y / o sus afiliadas, en los Estados Unidos y otros países, y no se puede utilizar sin
permiso escrito. Todas las demás marcas comerciales son propiedad de sus respectivos dueños. Wiley Publishing, Inc., no es
asociado con cualquier producto o proveedor mencionado en este libro.
10 9 8 7 6 5 4 3 2 1

Página 5
Querido lector,
Gracias por elegir LPIC-2: Linux Professional Institute Certification Study Guide .
Este libro es parte de una familia de libros Sybex de primera calidad, todos los cuales están escritos por
autores destacados que combinan la experiencia práctica con el don de la docencia.
Sybex se fundó en 1976. Más de 30 años después, seguimos comprometidos con la producción
libros consistentemente excepcionales. Con cada uno de nuestros títulos, estamos trabajando duro para establecer un nuevo
estándar para la industria. Desde el artículo en el que imprimimos hasta los autores con los que trabajamos, nuestra
El objetivo es traerle los mejores libros disponibles.
Espero que veas todo eso reflejado en estas páginas. Me interesaría mucho escuchar tu
comentarios y obtenga sus comentarios sobre cómo lo estamos haciendo. Siéntete libre de hacerme saber lo que
piense en este o cualquier otro libro de Sybex enviándome un correo electrónico a nedde@[Link] . Si
cree que ha encontrado un error técnico en este libro, visite http: //[Link]
.com . Los comentarios de los clientes son fundamentales para nuestros esfuerzos en Sybex.
Atentamente,
Neil Edde
Vicepresidente y editor
Sybex, una huella de Wiley

Página 6
Expresiones de gratitud
Aunque este libro lleva mi nombre como autor, muchas otras personas contribuyeron a su
creación. Sin su ayuda, este libro no existiría, o en el mejor de los casos existiría en una menor
formar. Jeff Kellum era el editor de adquisiciones y, por tanto, ayudó a poner en marcha el libro. Jennifer
Leland, el editor de desarrollo, y Liz Britten, el editor de producción, supervisaron el libro.
a medida que avanzaba por todas sus etapas. Ralph Bonnell fue el editor técnico, quien verificó
el texto por errores técnicos y omisiones, pero cualquier error que quede es mío.
Kim Wimpsett, el editor de textos, ayudó a mantener el texto gramatical y comprensible.
La correctora de pruebas, Jen Larsen, y el corrector de pruebas técnico, Don Corbet, comprobaron el texto en busca de
errores tipográficos. También me gustaría agradecer a Neil Salkind y a otros en Studio B, quienes ayudaron a conectarme
con Wiley para escribir este libro.

Página 7
Sobre el Autor
Roderick W. Smith , LPIC - 2, LPIC - 1, CompTIA Linux +, es un consultor de Linux, autor,
y programador de código abierto. Es autor de más de veinte libros sobre Linux y otros
tecnologías de código abierto, incluida LPIC - 1 Study Guide, 2nd Edition, Linux + Complete
Study Guide y Street Smarts de administrador de Linux, todo de Sybex.

Página 8

Página 9
Contenido de un vistazo
Introducción
xix
Prueba de evaluación
xxviii
Parte I
El examen LPI 201 (60 pesos)
1
Capítulo 1
Inicio del sistema y gestión avanzada del sistema
3
Capitulo 2
Configuración del kernel de Linux
45
Capítulo 3
Gestión básica del sistema de archivos
89
Capítulo 4
Gestión avanzada de discos
143
Capítulo 5
Configuración de redes
205
Capítulo 6
Configuración del servidor DNS
259
Parte II
El examen LPI 202 (60 pesos)
295
Capítulo 7
Configuración de red avanzada
297
Capítulo 8
Configurar servidores de archivos
357
Capítulo 9
Configuración de servidores web y de correo electrónico
405
Capítulo 10
Seguridad
469
Capítulo 11
Solución de problemas del sistema I: problemas de arranque y kernel
511
Capítulo 12
Solución de problemas del sistema II: Recursos del sistema
y el entorno del usuario
563
Apéndice
Acerca del CD complementario
609
Glosario
615
Índice
637

Página 10

Página 11
Contenido
Introducción
xix
Prueba de evaluación
xxviii
Parte I
El examen LPI 201 (60 pesos)
1
Capítulo
1
Inicio del sistema y sistema avanzado
administración
3
Explorando el proceso de arranque
4
Arranque de Linux
6
Configurar GRUB
6
Configuración de GRUB 2
9
Instalación del cargador de arranque GRUB
11
Interactuar con GRUB en el momento del arranque
11
Personalización del inicio del sistema
12
Comprensión de los niveles de ejecución
13
Configuración de scripts de inicio de SysV
14
Configuración de Upstart
19
Comprobación de su nivel de ejecución
20
Cambio de niveles de ejecución en un sistema en ejecución
21
Compilar e instalar programas desde la fuente
23
Comprender los problemas del código fuente
23
Preparación del código fuente
24
Software de compilación
26
Instalación de software
29
Desinstalar o actualizar software
30
Notifique a los usuarios sobre problemas relacionados con el sistema
32
Configuración de mensajes de inicio de sesión
33
Envío de mensajes a los usuarios en tiempo real
34
Resumen
35
Examen esencial
35
Preguntas de revisión
37
Respuestas a las preguntas de repaso
41
Capítulo
2
Configuración del kernel de Linux
45
Entendiendo el Kernel
46
Obtener e instalar un kernel
46
Leer la documentación del kernel
48
Localización de binarios del kernel
49

Pagina 12
X
Contenido
Preparando un grano
50
Aplicación de parches de kernel
50
Configuración de la fuente del kernel
51
Compilando un Kernel
59
Construyendo un Kernel
59
Instalación de un kernel binary
60
Instalación de módulos de kernel
61
Preparación de un disco RAM inicial
62
Preparación de un paquete de kernel
64
Agregar un kernel a GRUB
sesenta y cinco
Administrar módulos del kernel en tiempo de ejecución
68
Obtención de información sobre el kernel y sus módulos 68
Carga de módulos de kernel
72
Eliminar módulos del kernel
74
Mantenimiento de los módulos del kernel
77
Resumen
79
Examen esencial
79
Preguntas de revisión
81
Respuestas a las preguntas de repaso
85
Capítulo
3
Gestión básica del sistema de archivos
89
Hacer que los sistemas de archivos estén disponibles
90
Identificación de tipos de sistemas de archivos
91
Montaje de un sistema de archivos una vez
94
Montaje permanente de sistemas de archivos
98
Usando un automontador
101
Determinar qué está montado
105
Desmontar un sistema de archivos
105
Mantenimiento de sistemas de archivos
107
Crear sistemas de archivos
107
Comprobación de errores en los sistemas de archivos
110
Ajuste de sistemas de archivos
111
Manipular el espacio de intercambio
118
Gestión de discos ópticos
120
Herramientas de disco óptico de Linux
121
Un ejemplo de disco óptico de Linux
121
Creación de discos multiplataforma
122
Lectura y escritura de discos UDF
124
Administrar dispositivos con udev
124
Entendiendo udev
125
Preparación para crear reglas de udev
127
Crear reglas de udev
130
Supervisión de la actividad de udev
131

Página 13
Contenido
xi
Resumen
132
Examen esencial
133
Preguntas de revisión
135
Respuestas a las preguntas de repaso
140
Capítulo
4
Gestión avanzada de discos
143
Partición de discos
144
Entendiendo las particiones
144
Crear particiones
146
Configuración de RAID
148
Entendiendo RAID
148
Preparación de un disco para RAID de software
151
Montaje de una matriz RAID
152
Usando una matriz RAID
155
Configuración de Logical Volume Manager
157
Comprensión del Administrador de volúmenes lógicos
157
Creación y manipulación de volúmenes físicos
159
Crear y manipular grupos de volumen
162
Crear y manipular volúmenes lógicos
164
Usar instantáneas de LVM
169
Ajuste del acceso al disco
170
Comprensión del hardware del disco
171
Identificación del uso de recursos de disco
173
Prueba del rendimiento del disco
175
Ajuste de los parámetros del disco
176
Supervisión de fallas en un disco
177
Copia de seguridad y restauración de una computadora
179
Elección del hardware de respaldo
179
Elección del software de respaldo
181
Planificación de un programa de respaldo
191
Preparación para desastres: recuperación de copias de seguridad
192
Resumen
194
Examen esencial
195
Preguntas de revisión
197
Respuestas a las preguntas de repaso
202
Capítulo
5
Configuración de redes
205
Realización de la configuración básica de la red
206
Conexión a una red inalámbrica
206
Conexión a una red con DHCP
211
Conexión a una red con una dirección IP estática
212

Página 14
xii
Contenido
Uso de herramientas de configuración de GUI
216
Uso de los comandos ifup e ifdown
216
Configurar nombres de host
217
Comprobación de la conectividad básica
218
Configuración de opciones de red adicionales
220
Configuración de opciones avanzadas del enrutador
221
Uso de una herramienta de red todo en uno
225
Configurar una VPN
226
Supervisión del tráfico de la red
231
Solución de problemas de red
238
Identificación de puntos problemáticos
238
Resolución de problemas de nombre de host
244
Resolución de problemas de conectividad
246
Resolución de problemas de enrutamiento
247
Resolución de problemas de seguridad
247
Resumen
248
Examen esencial
249
Preguntas de revisión
251
Respuestas a las preguntas de repaso
255
Capítulo
6
Configuración del servidor DNS
259
Comprensión del papel del DNS
260
Ejecución de un servidor de nombres solo para almacenamiento en caché
263
Modificación del archivo de configuración principal de BIND
264
Modificación de archivos de zona
266
Actualización desde versiones anteriores de BIND
267
Comprobación de cambios
267
Creación y mantenimiento de zonas DNS
268
Agregar nuevas zonas
269
Configuración de archivos de zona
270
Prueba de su configuración
274
Ejecutando un servidor esclavo
280
Configuración de un servidor esclavo
280
Asegurar transferencias de zona
281
Realización de mejoras de seguridad adicionales
282
Ejecutando BIND en una cárcel
282
Configuración de DNS dividido
283
Resumen
284
Examen esencial
284
Preguntas de revisión
286
Respuestas a las preguntas de repaso
291

Página 15
Contenido
xiii
Parte II
El examen LPI 202 (60 pesos)
295
Capítulo
7
Configuración de red avanzada
297
Configurar un servidor DHCP
298
Cuándo usar DHCP
299
Instalación básica de DHCP
300
Configuración de opciones para toda la red
302
Configuración de la entrega de direcciones dinámicas
305
Configuración de la entrega de direcciones fijas
306
Configuración de un agente de retransmisión DHCP
309
Administrar cuentas LDAP
310
¿Qué hace LDAP?
310
Preparación de un sistema para utilizar herramientas LDAP
311
Trabajar con archivos LDIF
311
Agregar cuentas
314
Modificar cuentas
315
Eliminar cuentas
317
Consultar a un servidor sobre cuentas
317
Configurar un enrutador
319
Comprensión de los tipos de enrutamiento
319
Activando el enrutamiento
320
Configuración de reglas de firewall
320
Configurar NAT
330
Configuración de enrutamiento automático
331
Configurar SSH
334
Conceptos básicos de SSH
334
Configuración de opciones SSH para su sistema
336
Consideraciones de seguridad SSH
344
Resumen
345
Examen esencial
346
Preguntas de revisión
348
Respuestas a las preguntas de repaso
353
Capítulo
8
Configurar servidores de archivos
357
Comprender la función de un servidor de archivos
358
Configuración de un servidor Samba
360
Configuración de opciones globales de Samba
360
Configurar archivos compartidos
366
Configuración de recursos compartidos de impresora
368
Comprobación de su configuración y ejecución de Samba
370
Comprobación de archivos de registro de Samba
372
Uso de Linux como cliente SMB / CIFS
372

Página 16
xiv
Contenido
Configuración de un servidor NFS
377
Configuración de requisitos previos de NFS
377
Configuración de las opciones básicas de exportación
379
Gestión de exportaciones sobre la marcha
382
Mejora de la seguridad de NFS
388
Usar Linux como cliente NFS
388
Configuración de un servidor FTP
390
Seleccionar un servidor FTP
391
Comprensión de los conceptos básicos de FTP
392
Configuración de Pure-FTPd
393
Configuración de vsftpd
394
Resumen
396
Examen esencial
396
Preguntas de revisión
398
Respuestas a las preguntas de repaso
402
Capítulo
9
Configuración de servidores web y de correo electrónico
405
Comprensión de los servidores web
406
Configuración de opciones básicas de Apache
407
Configuración de Apache para alojar su sitio
409
Configuración del usuario y grupo de Apache
410
Cambiar las ubicaciones de las páginas web
411
Sirviendo dominios virtuales
414
Configurar Scripts
416
Habilitación del cifrado
418
Limitar el acceso a Apache
421
Controlando Apache
423
Usando apache2ctl
424
Administrar archivos de registro de Apache
426
Implementación de un servidor proxy
427
Seleccionar un servidor proxy
427
Configurando Squid
428
Ajustar las reglas de acceso
429
Configuración de clientes para utilizar un servidor proxy
430
Comprensión del correo electrónico
431
Configuración de un servidor de correo push
433
Configuración de un dominio para aceptar correo
433
Elegir un servidor de correo electrónico
434
Ejecutando Sendmail
435
Ejecutando Postfix
440
Gestión de correo electrónico
444
Comprobación de archivos de registro
447

Página 17
Contenido
xv
Configuración de Procmail
448
Comprensión de los formatos de almacenamiento de correo
448
Escribir reglas de Procmail
449
Ver Procmail en acción
451
Configuración de servidores POP e IMAP
453
Seleccionar un servidor POP o IMAP
453
Configuración de Courier
456
Configuración de Dovecot
457
Resumen
458
Examen esencial
459
Preguntas de revisión
461
Respuestas a las preguntas de repaso
465
Capítulo
10
Seguridad
469
Autenticar usuarios con PAM
470
Comprensión de los principios de PAM
471
Editar una pila PAM
472
Examinar configuraciones de ejemplo
478
Ajuste del interruptor de servicio de nombres
480
Habilitación de envoltorios TCP
481
Comprensión de los principios de las envolturas TCP
482
Restricción del acceso con envoltorios TCP
483
Llamar a envoltorios TCP
485
Uso de funciones similares en otros programas
487
Tratar con puertos y paquetes
489
Escaneo y manejo de puertos abiertos
490
Supervisión del tráfico de la red
492
Mantenerse actualizado con los problemas de seguridad
497
Resumen
499
Examen esencial
500
Preguntas de revisión
502
Respuestas a las preguntas de repaso
506
Capítulo
11
Solución de problemas del sistema I: arranque y
Problemas del kernel
511
Abordar un problema
512
Solución de problemas de arranque
513
Inicializando hardware
514
Identificación de su cargador de arranque
514
Ubicación de archivos y código del cargador de arranque
516
Interpretación de los mensajes de error del cargador de arranque
519
Manejo de los problemas iniciales del disco RAM
523
Solucionar problemas al principio de la etapa de inicio del sistema operativo
524

Página 18
xvi
Contenido
Solución de problemas varios
524
Interpretación de las pantallas de inicio
525
Comprobación del búfer de anillo del núcleo
525
Identificación del hardware
530
Identificación de módulos de kernel cargados
539
Comprobación de archivos de registro
542
Seguimiento de problemas de software
548
Resumen
552
Examen esencial
553
Preguntas de revisión
555
Respuestas a las preguntas de repaso
559
Capítulo
12
Solución de problemas del sistema II: Recursos del sistema
y el entorno del usuario
563
Solución de problemas de inicialización del sistema
564
Gestión del proceso de inicialización
564
Tratar con scripts de inicio locales
568
Gestión de procesos de inicio de sesión
569
Ajustar las opciones del kernel
572
Solucionar problemas de cuenta
574
Manejo de problemas de contraseña
574
Ajustar las carcasas de usuario
576
Solucionar problemas de asociación de usuarios / grupos
576
Ajuste de UID y GID
577
Ajustar las variables de inicio de sesión
579
Solución de problemas de shells
579
Investigación de scripts de inicio de sesión de bash
579
Usando conchas inusuales
581
Investigación de procesos en ejecución
582
Encontrar procesos en ejecución
582
Comprobación de las opciones de registro
585
Manejo de problemas relacionados con la biblioteca
590
Manejo de procesos programados
592
Gestión de procesos programados
593
Investigación de problemas
596
Resumen
597
Examen esencial
597
Preguntas de revisión
600
Respuestas a las preguntas de repaso
604
Apéndice
Acerca del CD complementario
609
Glosario
615
Índice
637

Página 19
Tabla de ejercicios
Ejercicio
2.1
Gestión de módulos del kernel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Ejercicio
3.1
Creación de sistemas de archivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Ejercicio
4.1
Creación y uso de un LVM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Ejercicio
5.1
Configuración de una conexión de red. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Ejercicio
7.1
Configuración de inicios de sesión sin contraseñas. . . . . . . . . . . . . . . . . . . . . . . . . . 340
Ejercicio
8.1
Gestión de un servidor NFS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
Ejercicio
9.1
Configurando Apache. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
Ejercicio
10.1 Uso de Fail2Ban. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
Ejercicio
11.1 Identificación de su propio hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
Ejercicio
12.1 Cambio del valor de UID de una cuenta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577

Página 20

Página 21
Introducción
¿Por qué debería aprender sobre Linux? Es un sistema operativo de rápido crecimiento y es
económico y flexible. Linux también es un actor importante en el servidor pequeño y mediano.
Field, y es una plataforma cada vez más viable para uso en estaciones de trabajo y computadoras de escritorio.
Al comprender Linux, aumentará su posición en el mercado laboral. Incluso si tú
ya conoce Windows o Mac OS y su empleador utiliza estos sistemas exclusivamente,
comprender Linux le dará una ventaja cuando esté buscando un nuevo trabajo o cuando
buscas una promoción. Por ejemplo, este conocimiento le ayudará a hacer un
decisión informada sobre si debe implementar Linux y cuándo.
El Linux Professional Institute (LPI) ha desarrollado su certificación LPI-2 como un
Certificación intermedia para personas que desean avanzar en sus carreras relacionadas con Linux.
El examen está destinado a certificar que una persona tiene las habilidades necesarias para instalar, operar,
y solucionar problemas de un sistema Linux y está familiarizado con conceptos específicos y básicos de Linux.
hardware.
El propósito de este libro es ayudarlo a aprobar los dos exámenes LPI - 2 (201 y 202).
Debido a que estos exámenes cubren el kernel de Linux, el inicio del sistema, los sistemas de archivos, los dispositivos de disco,
opciones de red, mantenimiento del sistema, servidores DNS, servidores web, servidores de archivos, correo electrónico
servidores, administración de clientes de red, seguridad y resolución de problemas, esos son los temas
que se destacan en este libro. Aprenderá lo suficiente para administrar un sistema Linux y cómo
para configurarlo para muchas tareas comunes. Incluso después de haber tomado y aprobado el LPI 201
y 202 exámenes, este libro debería seguir siendo una referencia útil.
¿Qué es Linux?
Linux es un clon del sistema operativo (SO) Unix que ha sido popular en la academia y
muchos entornos empresariales durante años. Anteriormente utilizado exclusivamente en grandes mainframes,
Unix y Linux ahora pueden ejecutarse en computadoras pequeñas, que en realidad son mucho más poderosas
que los mainframes de hace unos años. Debido a su herencia de mainframe, Unix (y
por lo tanto, también Linux) escala bien para realizar los exigentes trabajos científicos, de ingeniería,
y tareas del servidor de red.
Linux consta de un kernel, que es el software de control central, y muchas bibliotecas y
utilidades que se basan en el kernel para proporcionar funciones con las que interactúan los usuarios. El SO es
disponible en muchas distribuciones diferentes, que son colecciones de un kernel específico con
programas de apoyo específicos.
¿Por qué obtener la certificación LPI?
Existen varias buenas razones para obtener su certificación LPI. El sitio web de LPI sugiere cuatro
principales beneficios:
Relevancia Los exámenes de LPI se diseñaron teniendo en cuenta las necesidades de los profesionales de Linux. Esta
se realizó mediante encuestas a administradores de Linux para saber qué es lo que realmente necesitan
saber hacer su trabajo.

Página 22
xx
Introducción
Calidad Los exámenes LPI han sido probados y validados extensivamente usando psicometría
Normas. El resultado es la capacidad de discriminar entre administradores competentes y
aquellos que aún deben aprender más material.
Neutrality LPI es una organización sin fines de lucro que no comercializa ningún Linux.
distribución. Este hecho elimina la motivación de crear un examen diseñado como una forma de
comercializar una distribución particular.
Soporte Los exámenes LPI cuentan con el respaldo de los principales actores del mundo Linux. LPI sirve al
Comunidad Linux.
Cómo obtener la certificación LPI
La certificación LPI está disponible para cualquier persona que pase la prueba. No tienes que trabajar para
una empresa en particular. No es una sociedad secreta.
Para realizar un examen de LPI, primero debe registrarse en LPI para obtener un número de identificación. Usted puede
haga esto en línea en [Link] . Su número de identificación será
enviado por correo electrónico. Con el número de identificación en la mano, puede registrarse para los exámenes con
de las dos firmas que las administran: Thomson Prometric y Pearson VUE. Los exámenes
se puede tomar en cualquier centro de pruebas Thomson Prometric o Pearson VUE. Si pasa, lo hará
obtenga un certificado por correo que indique que ha aprobado. Para encontrar el Thomson Prometric
centro de pruebas más cercano a usted, llame al (800) 294 - 3926. Comuníquese con (877) 619 - 2096 para Pearson
Información VUE. Alternativamente, regístrese en línea en [Link]
para Thomson Prometric o [Link] para Pearson VUE. Como lo hagas
, se le pedirá su nombre, dirección postal, número de teléfono, empleador, cuándo y
dónde desea realizar la prueba (es decir, qué centro de pruebas) y su número de tarjeta de crédito
(los arreglos para el pago deben hacerse en el momento de la inscripción).
Quién debería comprar este libro
Cualquiera que quiera aprobar los exámenes LPIC - 2 puede beneficiarse de este libro. Debieras
estar familiarizado con Linux y el material cubierto por los exámenes LPIC-1. Si eres
No, debería comenzar con mi Guía de estudio LPIC-1 antes de abordar este libro. Este libro
continúa donde lo dejó mi LPIC - 1 Guía de estudio , proporcionando el conocimiento que necesita hasta un
nivel de competencia suficiente para aprobar los exámenes LPIC - 2 201 y 202. Si ya estás familiarizado
con los temas de Linux cubiertos en este libro, puede servir como una revisión y como un repaso
curso para obtener información con la que puede que no esté completamente familiarizado. En cualquier caso,
La lectura de este libro le ayudará a aprobar los exámenes LPIC - 2.
Incluso si no planea realizar los exámenes LPIC - 2, este libro puede ser un tutorial útil y
referencia para temas intermedios de Linux. Úselo como lo haría con cualquier otro libro de computadora,
ignorando el material del final del capítulo o utilizándolo, si lo desea.
Este libro está escrito con la suposición de que sabe una cantidad moderada sobre
Linux. Debe estar familiarizado con el uso de la línea de comandos del sistema operativo, incluidos los
comandos como mv , cp , ls , cat , less , ps , free y uptime , por nombrar solo algunos. Tú

Página 23
Introducción
xxi
debe sentirse cómodo con al menos un editor de texto de Linux, como Vi, Emacs o NEdit.
Debería poder abrir una interfaz de red y comprender los principios del servidor
configuración, incluso si los detalles de servidores específicos siguen siendo confusos.
En la práctica, necesitará una computadora Linux con la que practicar y aprender
en una práctica - en camino. Puede instalar cualquiera de las muchas distribuciones personales de Linux, como
Fedora, Ubuntu, OpenSUSE, Mandriva, Debian, Slackware o Gentoo. Consultar http: //
[Link] para obtener información y enlaces a estas y otras distribuciones. Ser consciente
que parte del material LPIC-2 describe ubicaciones de archivos de configuración que varían de una
distribución a otro. Elegir una distribución popular, como Fedora o Ubuntu, aumenta
las probabilidades de que su sistema sea similar al que usaron los desarrolladores del examen LPIC - 2.
Cómo está organizado este libro
Este libro consta de 12 capítulos más información complementaria: esta introducción, la
prueba de evaluación después de la introducción y glosario. Los capítulos son los siguientes:
El Capítulo 1, “Inicio del sistema y administración avanzada del sistema”, cubre los
proceso de arranque, incluida la interacción con los cargadores de arranque y la configuración de scripts de arranque.
Continúa con información sobre cómo compilar software a partir del código fuente y
proporcionar información a sus usuarios.
El Capítulo 2, "Configuración del kernel de Linux", describe cómo compilar e instalar un
Kernel de Linux desde el código fuente, así como cómo ajustar las opciones del kernel una vez que haya
hecho.
El Capítulo 3, "Gestión básica del sistema de archivos", se centra en la creación, uso y
mantenimiento de sistemas de archivos, incluidos sistemas de archivos de disco duro, sistemas de archivos de disco óptico y
el sistema de archivos udev que administra el acceso al hardware.
El Capítulo 4, "Administración avanzada de discos", cubre los métodos avanzados de acceso al disco,
incluidos RAID, LVM, ajuste de hardware de disco y software y procedimientos de respaldo.
El Capítulo 5, "Configuración de red", describe las herramientas que se utilizan para abrir y administrar
una red, que incluye herramientas inalámbricas (Wi-Fi), opciones de enrutamiento básicas, configuración de VPN,
y diagnósticos de red.
El Capítulo 6, "Configuración del servidor DNS", describe cómo configurar y administrar un DNS.
servidor, incluido el almacenamiento en caché: solo configuraciones, administración de archivos de zona, ejecución de un servidor
esclavo,
y consideraciones de seguridad de DNS.
El Capítulo 7, "Configuración de red avanzada", describe diversos
servidores y herramientas, incluida la configuración del servidor DHCP, el uso de un servidor LDAP, NAT
y funciones de firewall y configuración del servidor SSH.
El Capítulo 8, "Configuración de servidores de archivos", se centra en los servidores Samba y NFS para
Linux, que se utilizan para enviar archivos principalmente a sistemas Windows y Unix / Linux,
respectivamente. Este capítulo también cubre el servidor FTP multiplataforma.







Página 24
xxii
Introducción
El Capítulo 9, "Configuración de servidores web y de correo electrónico", trata estos dos tipos importantes de
servidores, incluido el servidor web Apache, servidores proxy web, sendmail y Postfix
Servidores SMTP, la utilidad Procmail y los servidores Courier y Dovecot POP / IMAP.
El Capítulo 10, "Seguridad", cubre el sistema de autenticación PAM, los Wrappers TCP, las herramientas para
proteger puertos y administrar paquetes de red y recursos de información de seguridad.
El Capítulo 11, "Solución de problemas del sistema I: Problemas de arranque y kernel", cubre las herramientas y
técnicas para resolver problemas relacionados con el cargador de arranque, el kernel y varios
problemas de software.
Capítulo 12, “Solución de problemas del sistema II: Recursos del sistema y el usuario
Environment ”, cubre problemas tardíos en el proceso de inicio del sistema, dificultades con
cuentas y shells, herramientas para estudiar los procesos en ejecución y el sistema cron para
ejecutar programas en el futuro.
Los capítulos 1 al 6 cubren el examen LPIC 201, y los capítulos 7 al 12 cubren el
Examen LPIC 202. Estos componen la Parte I y la Parte II del libro, respectivamente.
Cada capítulo comienza con una lista de los objetivos de LPIC que se tratan en ese capítulo.
El libro no cubre los objetivos en orden. Por lo tanto, no debe alarmarse por algunos
el extraño orden de los objetivos dentro del libro. Al final de cada capítulo, encontrará un
un par de elementos que puede utilizar para prepararse para el examen:
Aspectos básicos del examen Esta sección resume la información importante que se cubrió en
el capítulo. Debería poder realizar cada una de las tareas o transmitir la información
pedido.
Preguntas de repaso Cada capítulo concluye con 20 preguntas de repaso. Deberías responder
estas preguntas y compare sus respuestas con las que se proporcionan después de las preguntas. Si
no puede responder correctamente al menos el 80 por ciento de estas preguntas, vuelva atrás y revise el
capítulo, o al menos aquellas secciones que parecen estar dando dificultades.
Las preguntas de repaso, la prueba de evaluación y otros elementos de la prueba.
incluidos en este libro y en el CD - ROM adjunto no se derivan
de las preguntas del examen LPI, así que no memorice las respuestas a estas
preguntas y suponga que hacerlo le permitirá aprobar el examen. Tú
debe aprender el tema subyacente, como se describe en el texto del libro. Esta
le permitirá responder las preguntas proporcionadas con este libro y aprobar el
examen. Aprender el tema subyacente es también el enfoque que servirá
lo mejor en el lugar de trabajo: el objetivo final de una certificación como la de LPI.
Para aprovechar al máximo este libro, debe leer cada capítulo de principio a fin y
luego verifique su memoria y comprensión con los elementos del final del capítulo. Incluso si
ya está familiarizado con un tema, debería hojear el capítulo; Linux es lo suficientemente complejo
que a menudo hay varias formas de realizar una tarea, por lo que puede aprender algo incluso si
ya eres competente en un área.



Página 25
Introducción
xxiii

Contenido adicional del CD - ROM


Este libro viene con un CD - ROM que contiene varios elementos adicionales. Artículos
disponibles en el CD - ROM incluyen lo siguiente:
Motor de prueba Sybex Todas las preguntas de este libro aparecen en el CD-ROM, incluido el
Prueba de evaluación de 30 preguntas al final de esta introducción y las 240 preguntas que hacen
suba las secciones de preguntas de repaso de 20 preguntas para cada capítulo. Además, hay dos
Exámenes de práctica de bonificación de 50 preguntas, exclusivos del CD.
“Tarjetas didácticas” electrónicas El CD - ROM incluye 120 preguntas en formato “tarjeta didáctica”
(una pregunta seguida de una única respuesta correcta). Puede utilizarlos para revisar su
conocimiento de los objetivos del examen LPIC.
Glosario como archivo PDF El glosario del libro está disponible como un PDF con capacidad de búsqueda completa que
se ejecuta en todas las plataformas de Windows, así como en Linux.
El CD - ROM es compatible con Linux y Windows.

Las convenciones usadas en este libro


Este libro utiliza ciertos estilos tipográficos para ayudarlo a identificar rápidamente importantes
información y para evitar confusiones sobre el significado de palabras como las indicaciones en pantalla.
En particular, busque los siguientes estilos:
El texto en cursiva indica términos clave que se describen en detalle por primera vez en un
capítulo. (Las cursivas también se utilizan para enfatizar).
Una fuente monoespaciada indica el contenido de los archivos de configuración, los mensajes se muestran en
un indicador de shell de Linux en modo texto, nombres de archivos, nombres de comandos en modo texto e Internet
URLs.
El texto monoespaciado en cursiva indica una variable: información que difiere de una
el sistema o comando se ejecuta en otro, como el nombre de una computadora cliente o un proceso
Número de identificación.
El texto monoespaciado en negrita es información que debe escribir en la computadora, generalmente
en un indicador de shell de Linux. Este texto también puede estar en cursiva para indicar que debe
sustituya un valor apropiado para su sistema. (Cuando están aislados en sus propias líneas,
Los comandos están precedidos por indicaciones de comando $ o # monoespaciadas sin negrita , que indican
uso habitual del usuario o administrador del sistema, respectivamente.)



Página 26
xxiv
Introducción
Además de estas convenciones de texto, que pueden aplicarse a palabras individuales o
párrafos, algunas convenciones destacan segmentos de texto:
Una nota indica información que es útil o interesante pero que es
algo periférico al texto principal. Una nota puede ser relevante para un pequeño
número de redes, por ejemplo, o puede referirse a una función desactualizada.
Un consejo proporciona información que puede ahorrarle tiempo o frustración y que
puede no ser del todo obvio. Un consejo puede describir cómo sortear un
limitación o cómo utilizar una función para realizar una tarea inusual.
Las advertencias describen posibles dificultades o peligros. Si no prestas atención a un
advertencia, puede terminar pasando mucho tiempo recuperándose de un error, o
incluso puede terminar restaurando todo su sistema desde cero.
Barras laterales
Una barra lateral es como una nota pero más larga. La información de una barra lateral es útil, pero no encaja
en el flujo principal del texto.
Escenarios del mundo real
Un escenario del mundo real es un tipo de barra lateral que describe una tarea o ejemplo que
particularmente basado en el mundo real. Esta puede ser una situación que yo o alguien que conozco tenga
encontrado, o puede ser un consejo sobre cómo solucionar problemas que son comunes en
entornos Linux reales y funcionales.
EJERCICIOS
Un ejercicio es un procedimiento que debe probar en su propia computadora para ayudarlo a aprender
sobre el material del capítulo. No se limite a los procedimientos descritos en el
ejercicios, aunque! Pruebe otros comandos y procedimientos para aprender realmente sobre Linux.

Página 27
Introducción
xxv

Los objetivos del examen


Detrás de cada examen de la industria informática, puede estar seguro de encontrar los objetivos del examen: el
temas generales en los que los desarrolladores de exámenes quieren asegurar su competencia. El LPI oficial
Los objetivos de los exámenes LPIC 201 y 202 se enumeran aquí. (También se imprimen al principio
de los capítulos en los que están cubiertos.)
Los objetivos del examen están sujetos a cambios en cualquier momento sin previo aviso y
a discreción exclusiva de LPI. Visite la página de certificación LPIC del sitio web de LPI
sitio ([Link] para obtener los
lista de objetivos del examen.
La lista de objetivos al comienzo de este libro y al comienzo de cada capítulo.
incluye solo los títulos de los objetivos básicos. Debe consultar la lista completa de exámenes de LPI para
aprender con qué comandos, archivos y procedimientos debe estar familiarizado antes de tomar
el examen.
El examen LPIC - 201
Tema 201: Kernel de Linux
201.1 Componentes del kernel
201.2 Compilar un kernel
201.3 Parchear un kernel
201.4 Personalizar, compilar e instalar un kernel personalizado y módulos de kernel
201.5 Administrar / consultar kernel y módulos del kernel en tiempo de ejecución
Tema 202: Inicio del sistema
202.1 Personalización de los procesos de inicio y arranque del sistema
202.2 Recuperación del sistema
Tema 203: Sistema de archivos y dispositivos
203.1 Operación del sistema de archivos de Linux
203.2 Mantenimiento de un sistema de archivos Linux
203.3 Creación y configuración de opciones del sistema de archivos
203.4 gestión de dispositivos udev
Tema 204: Administración avanzada de dispositivos de almacenamiento
204.1 Configuración de RAID
204.2 Ajustar el acceso al dispositivo de almacenamiento
204.3 Administrador de volúmenes lógicos

Página 28
xxvi
Introducción
Tema 205: Configuración de redes
205.1 Configuración de red básica
205.2 Configuración de red avanzada y resolución de problemas
205.3 Resolución de problemas de red
205.4 Notificar a los usuarios sobre problemas relacionados con el sistema
Tema 206: Mantenimiento del sistema
206.1 Crear e instalar programas desde la fuente
206.2 Operaciones de respaldo
Tema 207: Servidor de nombres de dominio
207.1 Configuración básica del servidor DNS
207.2 Crear y mantener zonas DNS
207.3 Asegurar un servidor DNS
El examen LPIC - 202
Tema 208: Servicios web
208.1 Implementación de un servidor web
208.2 Mantenimiento de un servidor web
208.3 Implementación de un servidor proxy
Tema 209: Uso compartido de archivos
209.1 Configuración del servidor SAMBA
209.2 Configuración del servidor NFS
Tema 210: Gestión de clientes de red
210.1 Configuración DHCP
210.2 Autenticación PAM
210.3 Uso del cliente LDAP
Tema 211: Servicios de correo electrónico
211.1 Uso de servidores de correo electrónico
211.2 Gestión de la entrega de correo electrónico local
211.3 Gestión de la entrega de correo electrónico remoto
Tema 212: Seguridad del sistema
212.1 Configuración de un enrutador
212.2 Protección de servidores FTP

Página 29
Introducción
xxvii
212.3 Caparazón seguro (SSH)
212.4 Envoltorio TCP
212.5 Tareas de seguridad
Tema 213: Solución de problemas
213.1 Identificación de etapas de arranque y solución de problemas de cargadores de arranque
213.2 Solución de problemas generales
213.3 Resolución de problemas de recursos del sistema
213.4 Configuración del entorno de resolución de problemas

Página 30
Prueba de evaluación
1. Desea detener temporalmente el servidor postfix mientras realiza algunos cambios en su
configuración. ¿Cuál de los siguientes comandos, cuando se escribe por root, hará esto en
al menos algunas distribuciones? (Elija todas las que correspondan).
A. detener postfix
B. matar - 9 sufijo
C. xinetd parada postfix
D. /etc/rc.d/postfix stop
2. ¿Cómo puede verificar los mensajes recientes del kernel relacionados con el segundo dispositivo Ethernet (eth1)?
en una computadora?
A. Escriba cat / proc / sys / eth1 / km .
B. Escriba ifconfig eth1 - - messages .
C. Escriba dmesg | grep eth1 .
D. Escriba ifconfig eth1 show .
3. ¿Cuál es el propósito de la línea initrd en una configuración de GRUB?
A. Le dice al kernel que el disco usa el formato de Disco Reducido Inicial, un tipo de
Compresión común en Linux y algunos sistemas FreeBSD.
B. Pasa el nombre del programa que el kernel de Linux debería lanzar como primer proceso.
(normalmente init) de GRUB al kernel.
C. Se le indica a GRUB lo inicialización herramientas utilizar para escribir su etapa 0 cargador de arranque para
disco duro, lo que afecta a los tipos de discos que admite.
D. Le dice a GRUB dónde encontrar el disco RAM inicial, que contiene módulos del kernel y
archivos de configuración usados por el kernel antes de que haya montado su raíz basada en disco
sistema de archivos.
4. El espacio de intercambio de su computadora se distribuye en dos discos duros, uno de los cuales es significativamente
más rápido que el otro. ¿Cómo puede ajustar las entradas / etc / fstab para los dos intercambios?
particiones para optimizar el rendimiento del intercambio?
A. Utilice la opción pri = priority en cada partición de intercambio, dando un valor de prioridad más bajo a
el disco con mejor rendimiento.
B. Utilice la opción pri = priority en cada partición de intercambio, dando un valor de prioridad más alto a
el disco con mejor rendimiento.
C. Lista de los dos dispositivos juntos, como en / dev / sda2, / dev / sdb4, especificando el superior -
disco de rendimiento primero en la lista.
D. Enumere ambos dispositivos juntos, como en / dev / sda2, / dev / sdb4, especificando el mayor -
disco de rendimiento último en la lista.

Página 31
5. Como parte de un control de seguridad, desea asegurarse de que su computadora servidor web, www
.[Link], solo ejecuta el software del servidor web (en el puerto TCP 80) y un Secure Shell
(SSH) servidor de inicio de sesión (en el puerto TCP 22). ¿Qué comando puedes ejecutar desde una computadora remota?
para asegurarse de que esto sea así? (Considere solo el tráfico TCP).
A. tshark [Link]
B. nmap - ST [Link]
C. netstat - ap
D. nc [Link] 80
6. Al configurar un paquete de código fuente, verá el siguiente mensaje de error:
comprobando Qt ... configure: error: Qt (> = Qt 3.0) (encabezados y
bibliotecas) no encontrada. ¡Compruebe su instalación!
¿Cuál de las siguientes acciones es más probable que corrija este problema?
A. Busque e instale un paquete de biblioteca binario Qt adecuado.
B. Busque e instale un paquete de desarrollo Qt adecuado.
C. Escriba ./configure - - ignore - qt para ignorar el problema.
D. Edite el Makefile a mano para eliminar la dependencia de Qt.
7.
¿Qué parámetro uname puede usar para determinar la versión de su kernel que se está ejecutando actualmente?
número (como [Link])?
A. - ro - - kernel - lanzamiento
B. - vo - - kernel - versión
C. - so - - kernel - nombre
D. - o o - - sistema operativo
8. Un disco externo con una sola partición (/ dev / sdb1) usa ReiserFS, y cuando se monta automáticamente,
se le ha dado un nombre feo basado en el UUID del disco. Sabes que tu automontador usa un
la etiqueta del disco cuando hay una disponible, por lo que desea darle al sistema de archivos la etiqueta MyStuff. Cómo
¿Puede hacer esto sin dañar los datos existentes en el disco?
A. mkreiserfs - l Mis cosas / dev / sdb1
B. tune2fs - L MyStuff / dev / sdb1
C. reiserfstune - l MyStuff / dev / sdb1
D. etiqueta - t reiserfs - n MyStuff / dev / sdb1
9. Está reemplazando un disco PATA antiguo, / dev / hdb, por un disco SATA nuevo, / dev / sdc. Tu usas
una configuración LVM con un volumen físico, / dev / hdb2, en / dev / hdb. Como puedes
transfiera los datos de / dev / hdb2 a su nuevo hogar en / dev / sdc1, después de agregar / dev / sdc1
al grupo de volumen?
A. cp / dev / hdb2 / dev / sdc1
B. vgconvert / dev / hdb2 / dev / sdc1
C. vgextend / dev / sdc1
D. pvmove / dev / hdb2 / dev / sdc1
Prueba de evaluación
xxix

Página 32
10. ¿Cuál es el efecto del siguiente comando, asumiendo que los archivos del dispositivo tienen
significados?
# dd if = / dev / sdb3 de = / dev / dvd
R. Realiza una copia en bruto del sistema de archivos en / dev / sdb3 en un disco óptico en blanco.
B. Crea un tarball que contiene los archivos en / dev / sdb3 y almacena ese tarball en un espacio en blanco
disco óptico.
C. Se realiza una copia de seguridad incremental de los contenidos de / dev / sdb3 a un blanco
disco óptico.
D. Nada; es un uso inválido del comando dd.
11. ¿Qué tipo de registro se encuentra en archivos de zona inversa pero no en archivos de zona directa?
A. SOA
B. NS
C. A
D. PTR
12. Un servidor DNS se está ejecutando en una computadora con dos interfaces de red, eth0 ([Link])
y eth1 ([Link]). Quiere que el servidor sea accesible solo para la red eth1.
¿Qué configuración de /etc/[Link] ayudará a lograr este objetivo?
A. zona {[Link]; };
B. permitir - transferencia {[Link]; };
C. escuchar - en {[Link]; };
D. transportistas {[Link]; };
13. Se está preparando para compilar un kernel de Linux. Antes de continuar, debe asegurarse de que
ha eliminado toda la configuración anterior y los archivos temporales. ¿Qué escribirías para
hacerlo?
A. limpiar
B. hacer módulos
C. hacer mrproper
D. hacer bzImage
14. Después de ensamblar una matriz RAID en / dev / md0 desde / dev / sda1, / dev / sdb1 y / dev / sdc1,
usa fdisk para crear cuatro particiones primarias en este dispositivo. ¿Qué nombres de archivo de dispositivo
¿ellos tienen?
A. / dev / md1, / dev / md2, / dev / md3 y / dev / md4
B. / dev / md0p1, / dev / md0p2, / dev / md0p3 y / dev / md0p4
C. / dev / sdd1, / dev / sdd2, / dev / sdd3 y / dev / sdd4
D. Ninguno de los anteriores; no puede particionar una matriz RAID
xxx
Prueba de evaluación

Página 33
15. Quiere conectar una computadora portátil a una red Wi - Fi pública, pero no sabe
su nombre u otros datos relevantes. ¿Qué comando puedes escribir como root para encontrar esto?
¿información? (Suponga que su interfaz de red inalámbrica es wlan0).
A. iwlist wlan0 búsqueda
B. iwlist wlan0 encontrar
C. iwlist wlan0 descubrir
D. escaneo de iwlist wlan0
16. ¿ En cuál de las siguientes situaciones tiene más sentido utilizar NAT?
R. Los equipos de su red deben poder ejecutar programas cliente y acceder a
Internet, pero no ejecuta ningún servidor que deba ser accesible desde Internet.
B. Ha obtenido un gran bloque de direcciones IPv6 y desea utilizarlas para alojar una
gran cantidad de servidores para varios protocolos.
C. Ejecuta una red privada pequeña y altamente segura con servidores internos y sin necesidad
para acceso externo a Internet, excepto desde un sistema que ejecuta un servidor web.
D. Ninguno de los anteriores; NAT es un protocolo peligroso e inseguro que debe evitarse
cuando sea posible.
17. ¿Qué tipo de información puede entregar un servidor DHCP a los clientes, además de su
¿Direcciones IP? (Seleccione todas las que correspondan.)
A. Una página web predeterminada sugerida para navegadores web
B. La dirección IP de una computadora de puerta de enlace
C. La dirección IP de un servidor de nombres NetBIOS de Windows
D. La dirección de hardware Ethernet del cliente
18. Su servidor de correo saliente ejecuta Postfix y encuentra la siguiente línea en su configuración
expediente. ¿Cuál es el efecto de esta línea?
myorigin = [Link]
A. Postfix aceptará correo dirigido a usuarios en el dominio [Link] y rechazará o
reenviar correo dirigido a otros dominios.
B. Si un cliente de correo omite el nombre de host en la dirección de retorno de un mensaje de correo electrónico saliente,
@ [Link] se agregará al nombre de usuario en la dirección.
[Link] las direcciones de retorno en los mensajes de correo electrónico salientes se cambian para que parezcan
provienen del usuario especificado pero en el dominio [Link].
D. Postfix verifica el nombre de dominio de la computadora actual y se niega a ejecutarse si ese dominio
el nombre no es [Link].
Prueba de evaluación
xxxi

Página 34
19. Estás configurando Dovecot para un sitio que usa el formato maildir para el correo entrante,
almacenar el correo electrónico en la carpeta Correo en los directorios de inicio de los usuarios. ¿Qué opción puede establecer en su
archivo de configuración para decirle a Dovecot que use este directorio?
A. mail_location maildir: ~ / Correo
B. set_directory ~ / Correo
C. mail_directory ~ / Mail; formato = maildir
D. inmail: ~ / Mail = maildir
20. Asumirá la administración de una computadora que ejecuta Pure - FTPd e inicia
servidor a través de un script de inicio local. Descubres la opción - - chrooteveryone, entre otras,
como una opción para el binario Pure - FTPd en el script de inicio local. Cual es el efecto de esto
¿opción?
R. El servidor se encierra en una cárcel chroot para todos los usuarios excepto para root.
B. El servidor se encierra en una cárcel chroot para todos los usuarios, incluido el root.
C. El servidor se encierra en una cárcel chroot para todos los usuarios excepto para los usuarios anónimos.
D. El servidor se bloquea a sí mismo en una cárcel chroot para todos los usuarios excepto la cuenta utilizada para ejecutar
el servidor.
21. ¿Cuál es el nombre de archivo del archivo de registro del servidor Xorg - X11 X?
A. /var/log/[Link]
B. /var/log/[Link]
C. / var / log / Xorg - [Link]
D. /var/log/[Link]
22. ¿Qué puede esperar encontrar en el directorio /etc/profile.d?
A. Opciones de configuración para el software de administración de archivos ProFile
B. Información ampliada ("perfiles") sobre los usuarios
C. Scripts para complementar el script bash de inicio de sesión global principal
D. Puntos de montaje del sistema de archivos y opciones de montaje
23. ¿Cómo se maneja el proceso de inicio de sesión en terminales virtuales en modo texto en una computadora que usa
el sistema de inicialización de SysV?
A. Existe un script de inicio de SysV maestro para todos los terminales virtuales en /etc/init.d, con
nivel de ejecución: directorios específicos que contienen enlaces a este archivo.
B. Cada terminal virtual tiene su propio script de inicio SysV en /etc/init.d, con nivel de ejecución -
directorios específicos que contienen enlaces a estos archivos.
[Link] líneas en / etc / inittab asocian programas getty con cada terminal virtual, y
estos procesos getty inician el programa de inicio de sesión.
D. El kernel controla cada terminal virtual directamente; las opciones del cargador de arranque le dicen cuántos
terminales virtuales para activar y qué programa de inicio de sesión utilizar.
xxxii
Prueba de evaluación

Página 35
24. Está agregando un servidor Samba a un dominio de Windows (NetBIOS) existente llamado PICTURE.
¿Qué línea [Link] utilizará para informar a Samba del nombre del dominio de Windows?
A. IMAGEN del grupo de trabajo
B. dominio [Link]
C. IMAGEN del dominio
D. IMAGEN de seguridad
25. ¿Cuál es una consecuencia de la siguiente configuración, que se encuentra en / etc / export, asumiendo
que un servidor NFS se está ejecutando en la computadora?
/ ayudante a domicilio (no_root_squash, rw)
R. El usuario root de la computadora llamado helpman no podrá montar el / home
exportar desde el servidor.
B. El usuario root de la computadora llamado helpman podrá leer y escribir todos los archivos
en el árbol del directorio / home del servidor.
C. Todos los usuarios en el equipo llamado helpman serán capaces de leer y escribir todos los archivos del
árbol de directorio del servidor / home.
D. La computadora llamada helpman solo puede montar la exportación del servidor / home directamente en su
propio directorio raíz (/) (es decir, como / home).
26. Una persona tiene una cuenta, samuel, en la computadora [Link] y
otra cuenta, marca, en la computadora [Link]. Una vez que haya iniciado sesión en langhorne
.[Link], ¿cómo puede este usuario iniciar sesión en su cuenta en [Link] usando SSH,
asumiendo que un servidor SSH se está ejecutando en este último sistema?
A. ssh [Link]
B. ssh mark@[Link]
C. usuario ssh = marca [Link]
D. ssh [Link] - - marca de usuario
27. ¿Qué tipo de computadora es menos probable que use una versión no modificada de GRUB Legacy?
A. Una PC con CPU Intel x 86, disco duro SATA y BIOS
B. Una PC con una CPU AMD x 86 - 64, disco duro SATA y BIOS
[Link] PC con CPU Intel x 86 - 64, disco duro PATA y BIOS
D. Una PC con una CPU Intel x 86 - 64, disco duro SATA y EFI
28. ¿Cuál es la diferencia entre las opciones stop y graceful - stop de apache2ctl?
A. La opción de detener termina Apache en todas las circunstancias, mientras que elegante - detener
termina el servidor solo si todos los dispositivos de red están operativos.
B. La opción de detención termina Apache sin limpiar los archivos de registro, mientras que elegante:
stop escribe datos de apagado adicionales en los archivos de registro.
[Link] opción de parada termina Apache inmediatamente, mientras que la opción de parada elegante
permite que se completen las transferencias en curso.
D. La opción de parada termina todos los subprocesos de Apache, mientras que la opción de parada
finaliza solo los subprocesos que especifique.
Prueba de evaluación
xxxiii

Página 36
29. Está creando una pila de autenticación PAM para autenticar usuarios utilizando varios
métodos de autenticación (inicios de sesión estándar de Unix, LDAP, etc.). Quieres cada PAM
módulo para utilizar la contraseña recopilada por el primer módulo, sin intentar recopilar
su propia contraseña bajo ninguna circunstancia. ¿Qué opción puedes pasar a todos menos a la primera?
módulo en la pila para lograr este objetivo?
A. use_first_pass
B. likeauth
C. try_first_pass
D. auth_like_first
30. ¿Cuál de las siguientes es una ventaja de iptables sobre TCP Wrappers como herramienta de seguridad?
R. Puede escribir reglas de iptables que restrinjan el acceso por nombre de usuario; Los envoltorios TCP no
admite esta función.
B. Puede escribir reglas de iptables que apaguen las computadoras de los atacantes; Envoltorios TCP
no puedo hacer esto.
C. Puede escribir reglas de iptables que restrinjan las actividades de los clientes; Envoltorios TCP
afecta solo a los servidores.
D. Puede escribir reglas de iptables que funcionen en puertos privilegiados; TCP Wrappers funciona
solo en puertos no privilegiados.
xxxiv
Prueba de evaluación

Página 37
Respuestas a la prueba de evaluación
1. A, D. La opción A presenta la sintaxis para detener un servicio que se controla a través de Upstart
sistema. Si el servidor postfix se controla de esta manera, la opción A debería detenerlo temporalmente.
La opción D funcionará en sistemas que utilicen scripts de inicio SysV, con los scripts principales almacenados en
/etc/rc.d. (Algunos sistemas SysV colocan los scripts principales en otro lugar, pero /etc/rc.d se usa en
algunos sistemas, lo que hace que esta opción sea válida.) La opción B es incorrecta porque el comando kill
toma un número de ID de proceso (PID), no un nombre de proceso. También es generalmente preferible usar
un script SysV o Upstart para cerrar un servicio iniciado a través de este sistema, en lugar de matar
directamente. La opción C es incorrecta porque, aunque xinetd es un super servidor que administra
algunos otros servidores, no se invoca de esta manera para apagar uno de los servidores que administra.
Además, postfix normalmente se ejecuta directamente, no a través de un super servidor.
2. C. El búfer de anillo del kernel, que se puede ver escribiendo dmesg, contiene mensajes del kernel,
la mayoría de los cuales se relacionan con el hardware, incluidos los dispositivos de red. Usando grep para escanear el
la salida para mensajes relacionados con eth1, como en la opción C, hará lo que pide la pregunta. Opcion A
presenta un archivo ficticio en el sistema de archivos real / proc, por lo que es incorrecto. Opciones B y D
ambos implementan ifconfig de forma incorrecta; esta herramienta no puede mostrar mensajes del kernel relacionados con
un dispositivo Ethernet.
3. D. La opción D describe correctamente el propósito de la línea initrd. Las opciones A, B y C son
todo ficticio. En particular, no existe un formato de disco reducido inicial, y
el archivo de configuración de GRUB no afecta las herramientas utilizadas para escribir el cargador de arranque de la etapa 0.
La opción B, aunque incorrecta en referencia a la línea initrd, describe la función del
init = argumento del kernel, como en init = / bin / bash para lanzar bash como proceso inicial - un
truco útil en determinadas situaciones de recuperación.
4. B. La opción pri = priority en / etc / fstab establece la prioridad para el espacio de intercambio, con mayor -
las áreas de intercambio prioritario se utilizan primero. Por tanto, la opción B es correcta. (La - p o - - prioridad
La opción de línea de comandos para intercambiar puede lograr el mismo efecto.) La opción A es exactamente al revés.
Las opciones C y D son incorrectas porque / etc / fstab requiere especificar un dispositivo
nombre de archivo (u otro especificador de dispositivo, como una etiqueta o un valor UUID) por línea; no puedes enumerar dos
dispositivos en una sola línea.
5. B. La utilidad Nmap se utiliza para escanear otra computadora en busca de puertos abiertos,
que suelen indicar servidores. La opción B presenta la sintaxis correcta para escanear www.
Puertos TCP de .[Link] para servidores, como especifica la pregunta. Si algo menos los puertos 22
y 80 están abiertos, deben apagarse. La utilidad tshark de la opción A es parte de la
Paquete Wireshark, que es un rastreador de paquetes. Esta utilidad no realiza un escaneo de puertos, por lo que
no hará lo que especifica la pregunta. La utilidad netstat de la opción C podría usarse en el objetivo
servidor para buscar puertos abiertos no deseados, pero la pregunta especifica que
utilizando otra computadora para realizar el escaneo, por lo que la opción C es incorrecta. La herramienta de opción nc
D es una utilidad de conexión de red de uso general. Aunque podrías escribir un script usando
nc para hacer lo que pide la pregunta, el comando específico en la opción D es insuficiente para la tarea.
Respuestas a la prueba de evaluación
xxxv

Página 38
6. B. En la mayoría de los casos, un mensaje como este solo puede superarse instalando un
paquete de desarrollo, como especifica la opción B. Dicho paquete contiene los encabezados necesarios para
compile el software, y normalmente incluye - dev, - devel o una cadena similar en su nombre.
Instalar un paquete de biblioteca binaria, como especifica la opción A, probablemente no servirá de nada, ya que
los paquetes generalmente carecen de los archivos de encabezado que faltan. (Es posible que necesite un paquete de este tipo para ejecutar
sin embargo, el software una vez compilado.) La opción C especifica una opción ficticia para configurar;
sin embargo, a veces es posible utilizar una opción - - sin - PAQUETE (como en - - sin - qt)
para solucionar estos problemas. Esto funcionará solo si el software usa la biblioteca opcionalmente,
sin embargo, incluso - sin - qt estaría lejos de estar garantizado para ser apoyado o funcionar. Si un
configure el script, es probable que el Makefile sea muy difícil de editar a mano; e incluso si
administraste la tarea, es probable que el software no se compile porque el código fuente
se basa en la biblioteca a un nivel bastante fundamental. Por tanto, la opción D es incorrecta.
7.
A. El parámetro -r o - - kernel - release para uname produce el número de versión del kernel,
como especifica la pregunta, la opción A es correcta. Contrariamente a la intuición, el - vo - - kernel -
el parámetro de versión no produce esta información; en su lugar, produce algunos
datos, como si el kernel incluye soporte de multiprocesamiento simétrico (SMP) y
la fecha y hora en que se compiló. Por tanto, la opción B es incorrecta. El nombre - so - - kernel
el parámetro uname produce la salida Linux para un kernel de Linux, por lo que la opción C es incorrecta.
El parámetro del sistema operativo - o o - para uname normalmente muestra GNU / Linux en un
Sistema Linux, por lo que la opción D es incorrecta.
8. C. El programa reiserfstune ajusta las funciones de ReiserFS, incluido el sistema de archivos
etiqueta, y la opción C presenta la sintaxis correcta para hacer lo que describe la pregunta. Opcion A
creará un nuevo sistema de archivos en la partición con la etiqueta MyStuff; sin embargo, porque esto
La opción crea un nuevo sistema de archivos, los datos existentes serán destruidos, lo que la pregunta prohíbe.
La opción B presenta la sintaxis correcta para realizar el trabajo solicitado en una partición que contiene un
ext2, ext3 o ext4, pero la pregunta especifica que el disco usa ReiserFS. Opción
El comando de etiqueta de D es ficticio.
9. D. La opción D realiza la tarea especificada. La opción A es inapropiada porque el cp
el comando opera en archivos regulares del sistema de archivos; e incluso si pudiera copiar el contenido de
/ dev / hdb2 a / dev / sdc1, esta sería una copia de bajo nivel que corrompería el
datos de volumen físico en / dev / sdc1. El comando vgconvert convierte un LVM antiguo
grupo de volumen de la versión 1 en el formato más reciente de la versión 2. La sintaxis de la opción B es incorrecta,
también. La opción C presenta la sintaxis correcta para preparar los datos del grupo de volúmenes en / dev / sdc1, pero
la pregunta especificaba que esto ya se había hecho.
10. D. El comando dd no puede escribir directamente en un disco óptico; escribir en un disco óptico,
necesita una herramienta como cdrecord, growisofs o el soporte de escritura de paquetes del kernel y
Controlador UDF. Por tanto, la opción D es correcta. La utilidad dd no puede escribir directamente en discos ópticos, por lo que
la opción A es incorrecta. Además, dd no crea tarballs por sí mismo; deberías involucrar
tar para hacer esto, por lo que la opción B es incorrecta. Las copias de seguridad incrementales mencionadas en la opción C
requeriría opciones específicas para tar o alguna otra herramienta de respaldo, y dd está mal equipado para
realizar copias de seguridad incrementales.
xxxvi
Respuestas a la prueba de evaluación

Página 39
11. Los registros D. Pointer (PTR) permiten que un servidor DNS devuelva un nombre de host cuando se le proporciona una IP
dirección, que es la función de los archivos de zona inversa. Por lo tanto, estos registros se encuentran al revés
archivos de zona pero no en archivos de zona de avance, y la opción D es correcta. Inicio de autoridad (SOA)
y los registros del servidor de nombres (NS) son necesarios en ambos tipos de archivos de zona, por lo que las opciones A y B son
ambos incorrectos. Los registros de dirección (A) se encuentran en el archivo de la zona de avance pero no en la zona de retroceso
archivos, por lo que la opción C es incorrecta.
12. C. La directiva listen - on hace lo que especifica la pregunta, por lo que la opción C es correcta. (De
Por supuesto, el servidor puede permanecer accesible a la otra red si un enrutador conecta los dos
redes. Si es así, las reglas de iptables pueden ser útiles para asegurar aún más el servidor). Opción A
hace un mal uso de la directiva de zona, que normalmente identifica una zona para la que el servidor
autorizado y apunta al servidor al archivo de zona relevante. La opción B presenta la
sintaxis de la directiva allow - transfer, que se utiliza para permitir transferencias a servidores esclavos;
tiene poco sentido permitir transferencias a la propia dirección IP del servidor. La opción D también hace
sin sentido; esta declaración de reenviadores le dice al servidor que debe reenviar las solicitudes de DNS
¡a sí mismo!
13. C. El destino mrproper para crear en el kernel de Linux limpia los archivos temporales antiguos y
elimina el archivo de configuración, como especifica la pregunta, por lo que la opción C es correcta. El limpio
el objetivo elimina los archivos temporales antiguos, como especifica la pregunta, pero no elimina los antiguos
archivos de configuración, como también especifica la pregunta, por lo que la opción A es incorrecta. Los módulos
target construye módulos del kernel pero no el archivo principal del kernel, por lo que la opción B es incorrecta. los
El destino bzImage crea el kernel en el formato bzImage común pero no crea el kernel
módulos, por lo que la opción D es incorrecta.
14. B. La opción B muestra la forma de los nombres de archivo de dispositivos utilizados por las particiones de una matriz RAID y, por lo tanto,
es correcto. La opción A muestra los nombres de archivo que tradicionalmente usaría el segundo,
tercera, cuarta y quinta matrices RAID, no particiones de la primera matriz RAID. Opción C
especifica los nombres de archivo del dispositivo para un cuarto disco duro físico, si hay uno presente. Contrariamente a
afirmación de la opción D, es legal particionar una matriz RAID de software.
15. D. La utilidad iwlist puede buscar redes Wi-Fi disponibles. Para hacerlo, le pasas el
el nombre de la interfaz y el escaneo o escaneo del nombre del subcomando, como en la opción D.
las opciones restantes presentan subcomandos incorrectos; buscar, encontrar y descubrir son todos
nombres inválidos.
16. A. La traducción de direcciones de red (NAT) es una forma de conectar varias computadoras a una
red utilizando una única dirección IPv4 en la red más grande. Evita que los sistemas externos
poder acceder a los servidores de la red protegida, excepto mediante una configuración especial, pero
permite que los sistemas protegidos accedan a la red más amplia. Este conjunto de características lo convierte en un buen
adecuado para el escenario descrito en la opción A. Dado que la opción B implica direcciones IPv6 y
servidores que se ejecutan en ese bloque de direcciones, no es adecuado para el uso de NAT, por lo que la opción B es incorrecta.
Debido a que la red altamente segura no requiere acceso a la red entrante o saliente, excepto
para una computadora, sería mejor si no tuviera acceso a Internet, excepto para
la computadora del servidor web; por tanto, la opción C es incorrecta. Al contrario de la opción D, NAT puede ser un
gran bendición para la seguridad.
Respuestas a la prueba de evaluación
xxxvii
Página 40
17. B, C. Los servidores DHCP comúnmente entregan la dirección IP del cliente, la máscara de red, la puerta de enlace
(enrutador), dirección del servidor DNS, nombre de host y nombre de dominio. Los servidores DHCP pueden
también entregan datos más oscuros, incluidas las direcciones IP de los servidores de nombres NetBIOS y
Servidores Network Time Protocol (NTP). Las opciones B y C se encuentran entre esta información y
por lo que son correctos. DHCP no ofrece sugerencias sobre páginas web predeterminadas para navegadores web, por lo que
la opción A es incorrecta. La dirección de hardware Ethernet de una computadora se establece en la fábrica y es
normalmente no cambia. Aunque DHCP se basa en esta dirección para las comunicaciones iniciales,
el protocolo no proporciona ningún medio para cambiarlo, por lo que la opción D es incorrecta.
18. B. La opción B describe el efecto de la opción myorigin en la configuración principal de Postfix
archivo, por lo que la opción B es correcta. La opción A describe el efecto de la opción mydestination.
La opción C describe los efectos del enmascaramiento, para lo cual Postfix ofrece varias opciones.
La opción D describe una característica ficticia y, por lo tanto, es incorrecta.
19. A. Utiliza la configuración mail_location para indicarle a Dovecot dónde guardar el correo entrante y
qué formato usar, y la opción A presenta la sintaxis correcta para los detalles de la pregunta, por lo que
la opción A es correcta. Las opciones B, C y D presentan todos nombres y sintaxis de opciones ficticios
y por lo tanto son incorrectos.
20. A. La opción - - chrooteveryone para Pure - FTPd hace lo que especifica la opción A; la raíz es la única
excepción a la regla chroot cuando se utiliza esta opción. Como la opción A es correcta, la opción
B no puede ser correcto. Los usuarios anónimos y la cuenta utilizada para iniciar el servidor no son
excepciones a la regla, contrariamente a las opciones C y D.
21. B. El servidor Xorg - X11 X almacena su archivo de registro actual en /var/log/[Link], por lo que la opción B
es correcto. Las opciones restantes son todos archivos ficticios.
22. C. El script bash de inicio de sesión global principal es / etc / profile, y este script se ejecuta con frecuencia
scripts que se encuentran en /etc/profile.d, lo que permite a los paquetes agregar funciones a los valores predeterminados de bash
agregando scripts de inicio a este directorio. Por tanto, la opción C es correcta. Las opciones A y B describen
software o funciones ficticios y, por lo tanto, son incorrectos. La opción D es una descripción parcial del
contenido del archivo / etc / fstab.
23. C. En una distribución basada en SysV, los terminales virtuales en modo texto se administran como se describe
en la opción [Link] terminales virtuales no se administran mediante scripts de inicio SysV, por lo que las opciones A y
B son incorrectos. (Sin embargo, los inicios de sesión de GUI a veces se administran a través de scripts de inicio de SysV).
Aunque el kernel es en última instancia responsable de la entrada / salida en cada terminal virtual,
Las opciones del kernel no le dicen al kernel cómo usarlas de la manera que especifica la opción D.
24. A. La opción de grupo de trabajo en [Link] establece el grupo de trabajo NetBIOS o el nombre de dominio .
(Tenga en cuenta que el nombre de dominio NetBIOS no está relacionado con el nombre de dominio DNS).
la opción A es correcta. La opción B puede ser una entrada correcta en /etc/[Link], para establecer el
el nombre de dominio DNS de la computadora, si ese nombre de dominio es [Link]; sin embargo, la pregunta
se trata de dominios Samba y Windows / NetBIOS, no dominios DNS. Por tanto, la opción B es
incorrecto. La opción C es una corrupción de la respuesta correcta, pero debe usar el grupo de trabajo
parámetro, no dominio, al configurar el grupo de trabajo o el nombre de dominio, por lo que la opción
C es incorrecta. Para decirle al servidor que use un controlador de dominio, debe usar la seguridad
parámetro; sin embargo, toma opciones de Servidor, Dominio o ADS, no el nombre del dominio, por lo que
la opción D es incorrecta.
xxxviii
Respuestas a la prueba de evaluación

Página 41
25. B. La opción no_root_squash hace que los privilegios de root en el cliente se conserven en
el servidor (normalmente la raíz tiene derechos restringidos en el servidor). Por lo tanto, el cliente (es decir,
El root del ayudante podrá leer y escribir todos los archivos en / home en el servidor, como opción
B especifica. La opción A es incorrecta porque ninguna de las opciones especificadas evita que root
(o cualquier otro usuario autorizado) para montar la exportación. La opción C es incorrecta porque
los permisos de los usuarios normales son preservados por el servidor NFS; sus permisos permanecerán
aplicable. (Sin embargo, los UID y GID pueden cambiar, lo que puede cambiar la forma en que se asignan los permisos
aplicada.) Ninguna de las opciones especificadas afecta dónde el cliente puede montar la exportación, por lo que
la opción D es incorrecta.
26. B. La opción B presenta la sintaxis correcta para iniciar sesión con un nombre de usuario diferente al de
el sistema del cliente. (Alternativamente, ssh [Link] - la marca l funcionaría). La opción A
tienen el efecto de intentar utilizar el nombre de usuario samuel en [Link], que
no funcionaría. La opción C intentaría iniciar sesión en la computadora user = mark y ejecutar el
comando [Link], que no funcionaría. La opción D se acerca a una alternativa
método para especificar un nombre de usuario, pero no es del todo correcto (usaría - l en lugar de - user).
27. D. GRUB Legacy funciona con cualquier CPU de 32 o 64 bits x 86 o x 86-64 de cualquier fabricante
y con cualquier tipo de disco que pueda leer el firmware. El único factor mencionado en
cualquiera de las preguntas que no es compatible con GRUB Legacy es el firmware extensible
Interfaz (EFI); GRUB Legacy está diseñado para funcionar con la versión básica más antigua (y más común)
Firmware del sistema de entrada / salida (BIOS). Por tanto, la opción D es correcta; tal computadora no puede
use un GRUB Legacy sin modificar. (El GRUB 2 más nuevo es compatible con BIOS y
EFI.) GRUB Legacy funcionará con cualquiera de los sistemas descritos por las opciones A, B y C,
siempre que ningún factor no mencionado cause problemas.
28. C. La opción C describe correctamente la diferencia entre estos dos subcomandos apache2ctl.
Las opciones restantes son todas explicaciones ficticias.
29. A. La opción use_first_pass es reconocida por la mayoría de los módulos que realizan contraseña -
autenticación basada en una pila de autenticación. Hace lo que especifica la pregunta, por lo que la opción A es
correcto. La opción likeauth es reconocida por muchos módulos y hace que el módulo
devuelve la misma información cuando se llama como parte de una pila de contraseñas como lo haría en una autenticación
apilar. Esto no es lo que especifica la pregunta, por lo que la opción B es incorrecta. La opción C es una opción
que hace algo muy similar a lo que pide la pregunta, pero si la contraseña recopilada
si falla un módulo anterior, el módulo recopilará una nueva contraseña. Debido a esta variación
por lo que se preguntó, esta opción es incorrecta. La opción D describe una opción ficticia.
30. C. El programa iptables acepta identificaciones de paquetes que pueden aplicarse a
paquetes salientes hacia o desde clientes o servidores. Los envoltorios TCP, por el contrario, solo funcionan
en la conexión entrante inicial a los servidores. Por tanto, la opción C es correcta. La opción A es
hacia atrás; iptables no tiene la capacidad de coincidir en función de los nombres de usuario, pero los envoltorios TCP
hace. A diferencia de la opción B, ni los Wrappers TCP ni las iptables pueden provocar que un atacante
computadora para apagar, y usar una función de este tipo, si existiera, sería dudoso en el mejor de los casos
desde un punto de vista ético y legal. Tanto iptables como TCP Wrappers pueden restringir
acceso a puertos privilegiados y no privilegiados, por lo que la opción D es incorrecta.
Respuestas a la prueba de evaluación
xxxix

Página 42

Página 43

El LPI 201
Examen
(60 pesos)
PARTE

yo
Página 44

Página 45

Inicio del sistema y


Sistema avanzado
administración
EL SIGUIENTE PROFESIONAL DE LINUX
LOS OBJETIVOS DEL INSTITUTO ESTÁN CUBIERTOS
EN ESTE CAPÍTULO:
202.1 Personalización de los procesos de inicio y arranque del sistema
(peso: 4)
202.2 Recuperación del sistema (peso: 4)
205.4 Notificar a los usuarios sobre problemas relacionados con el sistema (peso: 1)
206.1 Crear e instalar programas desde la fuente (peso: 4)

Capítulo

1
Página 46
Un lugar apropiado para comenzar a investigar Linux avanzado
La administración del sistema es la forma en que se inicia la computadora.
Por lo tanto, este capítulo cubre ese tema, incluidos los
configuración y uso del cargador y las herramientas que utiliza Linux para iniciar sus propios procesos centrales.
Debido a que una computadora no puede arrancar sin ningún software instalado, este capítulo continúa
con un vistazo a cómo instalar software desde el código fuente, en lugar de usar el paquete
sistemas con los que probablemente ya esté familiarizado. Finalmente, este capítulo describe las herramientas
que puede utilizar para notificar a los usuarios sobre eventos importantes del sistema, como una posible lentitud debido a un
actualización importante del paquete de software o una operación de respaldo en curso.

Explorando el proceso de arranque


Aunque el proceso normalmente avanza sin problemas una vez que presiona el botón de encendido de una computadora,
Arrancar una computadora implica una gran cantidad de pasos, que van desde la inicialización del hardware hasta
el lanzamiento de potencialmente docenas de programas. Algunas de estas tareas de inicio incluyen:
1. La CPU se inicializa sola.
2. La CPU examina una dirección de memoria particular en busca de código para ejecutar. Esta dirección
corresponde a parte del firmware de la computadora, que contiene instrucciones sobre cómo
Continuar.
3. El firmware inicializa los principales subsistemas de hardware de la computadora, realiza
comprobaciones de memoria, etc.
4. El firmware indica a la computadora que busque el código de inicio en un dispositivo de almacenamiento, como un
disco duro, disco extraíble o disco óptico. Este código, que se conoce como etapa 1
cargador de arranque , se carga y se ejecuta.
5. El código del cargador de arranque de la etapa 1 puede indicar al sistema que cargue etapas adicionales de sí mismo.
En última instancia, el código del cargador de arranque carga el kernel del sistema operativo y lo ejecuta. De
En este punto, el kernel tiene el control de la computadora.
6. El kernel busca su primer archivo de proceso. En Linux, este archivo suele ser / sbin / init , y
su proceso, una vez que se ejecuta, se conoce como init .
7.
El proceso de inicialización lee uno o más archivos de configuración, que le dicen qué otros
programas que debería iniciar.
8. Los sistemas Linux normalmente inician procesos tanto directamente desde init como bajo el
dirección de los scripts de inicio del Sistema V (SysV) o del sistema Upstart .

Página 47
Durante el proceso de inicio, la computadora monta discos usando la utilidad de montaje
bajo la dirección del archivo / etc / fstab . También puede realizar comprobaciones de disco utilizando fsck
utilidad. El control de estos procesos se describe en detalle en el Capítulo 3, “Sistema de archivos básico
Administración. "
Como parte de los procedimientos de inicio dirigidos por init (pasos 7 y 8), los sistemas Linux normalmente
iniciar herramientas de inicio de sesión de usuario, como el inicio de sesión en modo texto o un X Display Manager (XDM)
pantalla de ingreso al sistema. Estos programas permiten a los usuarios normales iniciar sesión y utilizar el sistema. Servidor
Las computadoras normalmente están configuradas para iniciar programas de servidor, algunos de los cuales proporcionan
posibilidades de inicio de sesión similares para usuarios remotos. Una vez que los usuarios inician sesión, pueden, por supuesto,
iniciar
programas adicionales.
Aunque las distribuciones de Linux están diseñadas para iniciarse correctamente una vez instaladas,
debe saber cómo cambiar estas configuraciones. Es posible que deba ajustar un cargador de arranque
configuración para arrancar un nuevo kernel o para modificar las opciones que el cargador de arranque pasa a
el núcleo, por ejemplo. Si desea instalar el software del servidor, es posible que deba cambiar el
init o procedimientos de inicio de SysV para iniciar el software automáticamente cuando la computadora
botas. Las siguientes páginas describen cómo realizar dichos cambios.
Opciones de firmware de la computadora
Desde la década de 1980, la mayoría de las computadoras x 86 y x 86-64 han utilizado firmware conocido como Basic
Sistema de entrada / salida (BIOS). Sin embargo, este firmware se ha vuelto bastante anticuado, por lo que
Está en marcha el cambio a un sistema más nuevo, conocido como Interfaz de firmware extensible (EFI).
Desde 2005, la variante Unified EFI (UEFI) de EFI está disponible. A finales de 2010,
Los sistemas basados en EFI todavía son raros, aunque los Apple Macintosh basados en Intel usan EFI, y un
pocos sistemas basados en UEFI x 86 - 64 están disponibles. Algunos fabricantes de hardware esperan
comenzará a usar UEFI en más sistemas a partir de 2011. Las computadoras que usan CPU que no sean
los x 86 y x 86 - 64 comunes utilizan firmware que no es BIOS, como OpenFirmware o EFI.
Los detalles de cómo se pueden modificar las partes del proceso de arranque mediadas por firmware varían
con el tipo de firmware instalado en una computadora. Incluso dentro de un solo tipo, como
BIOS, puede haber una variación sustancial de una computadora a otra. Normalmente, usa
una pulsación de tecla especial, como F10, F12 o Eliminar, para ingresar a una utilidad de configuración que está integrada
en el firmware. Luego puede configurar opciones como qué dispositivos de disco usar para arrancar
la computadora y qué componentes de hardware integrados activar. Deberías consultar
un manual de computadora para conocer los detalles de su configuración de firmware.
Explorando el proceso de arranque
5

Página 48
6
Capítulo 1 Inicio del sistema y gestión avanzada del sistema

Arranque de Linux
Como se acaba de describir, una computadora debe seguir una serie de pasos antes de un sistema operativo, como
Linux, puede tomar el control. El primer paso que probablemente sea diferente en un sistema Linux que
en una computadora que ejecuta Windows, Mac OS o algún otro sistema operativo, es el cargador de arranque, que es
responsable de cargar el kernel en la memoria. Hay varios cargadores de arranque disponibles que pueden
cargar Linux, incluido Grand Unified Bootloader (GRUB), Linux Loader (LILO),
y SysLinux. La mayoría de las instalaciones de Linux utilizan GRUB, que también puede cargar directamente algunos
kernels que no son de Linux o redirigir el proceso de arranque a un cargador de arranque para Windows. Por lo tanto, GRUB
puede ejecutar varios sistemas operativos, si una computadora tiene más de uno instalado. Para configurar
GRUB, debe editar sus archivos de configuración. También puede interactuar con el cargador de arranque
en el momento del arranque, tanto para seleccionar su sistema operativo como para realizar cambios sobre la marcha, en caso de que
necesite
para personalizar la forma en que se inicia el sistema operativo una sola vez.
Configurar GRUB
Existen dos versiones principales de GRUB: el GRUB original, ahora conocido como GRUB Legacy,
se ha congelado en la versión 0.97; y una nueva versión, GRUB 2, está en la versión 1.98 mientras escribo.
GRUB Legacy ya no se está desarrollando activamente. GRUB 2 está en desarrollo activo,
y algunas funciones pueden cambiar cuando lea esto. Las dos versiones son similares en
detalles amplios y sobre cómo los usuarios interactúan con ellos en el momento del arranque; sin embargo, difieren en
algunos detalles de configuración importantes. Por lo tanto, describo GRUB Legacy y luego describo
en qué se diferencia GRUB 2 de GRUB Legacy.
Configuración de GRUB Legacy
La ubicación habitual del archivo de configuración de GRUB Legacy es /boot/grub/[Link] . Algunos
distribuciones, como Fedora, Red Hat y Gentoo, usan el nombre de archivo [Link] en lugar de
que [Link] . GRUB Legacy puede leer su archivo de configuración en el momento del arranque, lo que significa
no necesita reinstalar el cargador de arranque en el sector de arranque cuando cambia la configuración
expediente. El archivo de configuración de GRUB Legacy se divide en secciones globales y por imagen,
cada uno de los cuales tiene sus propias opciones. Sin embargo, antes de entrar en los detalles de la sección, debe
comprender algunas peculiaridades de GRUB.
Nomenclatura y peculiaridades de GRUB Legacy
El Listado 1.1 muestra un ejemplo de archivo de configuración de GRUB Legacy. Puede arrancar varios sistemas operativos
y kernels: Fedora en / dev / hda5 , Debian en / dev / hda6 y Windows en / dev / hda2 .
Fedora y Debian comparten una partición / boot ( / dev / hda1 ), en la que la configuración de GRUB
reside.

Página 49
Listado 1.1: Un archivo de configuración heredado de GRUB de muestra
# [Link] / [Link]
#
# Opciones globales:
#
predeterminado = 0
tiempo de espera = 15
splashimage = / grub / [Link]
#
# Opciones de imagen del kernel:
#
título Fedora (2.6.32)
raíz (hd0,0)
kernel /vmlinuz-2.6.32 ro root = / dev / hda5 mem = 2048M
initrd /initrd-2.6.32
título Debian (2.6.36-experimental)
raíz (hd0,0)
kernel (hd0,0) /bzImage-2.6.36-experimental ro root = / dev / hda6
#
# Otros sistemas operativos
#
título de Windows
rootnoverify (hd0,1)
cargador de cadena +1
GRUB Legacy se refiere a las unidades de disco por números precedidos por la cadena hd y adjunta
entre paréntesis, como en (hd0) para el primer disco duro que GRUB detecta. GRUB no distingue
entre Conexión de tecnología avanzada paralela (PATA), Serial ATA (SATA) y SCSI
unidades. En un sistema mixto, las unidades ATA normalmente reciben los números más bajos, aunque esto
no siempre es el caso. Las asignaciones de unidades de GRUB Legacy se pueden encontrar en / boot / grub /
archivo [Link] .
Además, GRUB Legacy numera las particiones en una unidad a partir de 0 en lugar de 1,
que es utilizado por Linux. GRUB separa los números de partición de los números de unidad con un
coma, como en (hd0,0) para la primera partición en el primer disco o (hd0,4) para la primera partición lógica
partición en el primer disco. Los dispositivos de disquete se denominan (fd0) , o posiblemente (fd1) o
más alto si tiene más de una unidad de disquete. Los disquetes no están particionados, por lo que no
recibir números de partición.
GRUB Legacy define su propia partición raíz, que puede ser diferente de la de Linux
partición raíz. La partición raíz de GRUB es la partición en la que se encuentra su archivo de configuración ( menú
.lst o [Link] ) reside. Debido a que este archivo normalmente se encuentra en el directorio / boot / grub / de Linux ,
la partición raíz de GRUB Legacy será la misma que la partición raíz de Linux si no
use una partición / boot o / boot / grub separada . Si divide / arranca en su propia partición,
Arranque de Linux
7

Página 50
8
Capítulo 1 Inicio del sistema y gestión avanzada del sistema
como es bastante común, la partición raíz de GRUB será la misma que la partición / boot de Linux .
Debe tener en cuenta esta diferencia al hacer referencia a archivos en la configuración de GRUB
directorio.
Opciones heredadas esenciales de GRUB global
La sección global de GRUB Legacy precede a sus configuraciones por imagen. Un puñado de GRUB
Las opciones de configuración global heredadas son las más importantes:
SO predeterminado La opción default = le dice a GRUB Legacy qué SO arrancar. Listado 1.1
default = 0 hace que se inicie el primer sistema operativo enumerado (recuerde, índices GRUB desde 0). Si
desea arrancar el segundo sistema operativo enumerado, use default = 1 , y así sucesivamente, a través de todos
sus sistemas operativos.
Timeout La opción timeout = define cuánto tiempo, en segundos, esperar la entrada del usuario antes
arrancando el sistema operativo predeterminado.
Gráfico de fondo La línea splashimage = apunta a un archivo de gráficos que se muestra como
el fondo para el proceso de arranque. Esta línea es opcional, pero la mayoría de las distribuciones de Linux
apunte a una imagen para arreglar el menú de arranque. La referencia del nombre de archivo es relativa a la
Partición raíz de GRUB Legacy, por lo que si / boot está en una partición separada, esa parte de la ruta
se omite. Alternativamente, la ruta puede comenzar con una especificación de dispositivo GRUB, como
(hd0,5) para hacer referencia a un archivo en esa partición.
Opciones heredadas esenciales de GRUB por imagen
Las opciones por imagen de GRUB Legacy suelen tener sangría después de la primera línea, pero esta es una
convención, no un requisito del formato de archivo. Las opciones comienzan con una identificación
y continúe con las opciones que le indican a GRUB Legacy cómo manejar la imagen:
Título La línea de título comienza una estrofa por imagen y especifica la etiqueta que se mostrará cuando
se ejecuta el cargador de arranque. El título de GRUB Legacy puede aceptar espacios y es convencionalmente bastante
descriptivo, como se muestra en el Listado 1.1.
Raíz de GRUB Legacy La opción raíz especifica la ubicación de la raíz de GRUB Legacy
dividir. Esta es la partición / boot si existe una separada; de lo contrario, suele ser el
Partición raíz ( / ) de Linux . GRUB puede residir en una partición FAT, en un disquete o en
algunas particiones de otros sistemas operativos, sin embargo, por lo que la raíz de GRUB podría estar en algún lugar
más exótico.
Especificación del kernel La configuración del kernel también describe la ubicación del kernel de Linux
como cualquier opción del kernel que se le vaya a pasar. Las rutas son relativas a la raíz de GRUB Legacy
dividir. Como alternativa, puede especificar dispositivos utilizando la sintaxis de GRUB, como kernel
(hd0,5) / vmlinuz ro root = / dev / hda5 . Tenga en cuenta que pasa la mayoría de las opciones del kernel en esta línea.
La opción ro le dice al kernel que monte su sistema de archivos raíz de solo lectura (luego se vuelve a montar
lectura / escritura), y la opción root = especifica el sistema de archivos raíz de Linux . Porque estas opciones
se pasan al kernel, utilizan identificadores de dispositivo de estilo Linux, cuando es necesario,
a diferencia de otras opciones en el archivo de configuración de GRUB Legacy.
Página 51
Disco RAM inicial Utilice la opción initrd para especificar un disco RAM inicial. Más
las distribuciones utilizan discos RAM iniciales para almacenar módulos del kernel cargables y algunas herramientas básicas
se usa al principio del proceso de arranque; sin embargo, a menudo es posible omitir un disco RAM inicial si
compilas tu propio kernel.
Raíz que no es de Linux La opción rootnoverify es similar a la opción raíz excepto que
GRUB no intentará acceder a los archivos de esta partición. Se utiliza para especificar una partición de arranque para
Sistemas operativos para los que GRUB Legacy no puede cargar un kernel directamente, como DOS y Windows.
Carga de cadena La opción de cargador de cadena le dice a GRUB Legacy que pase el control a otro
cargador de arranque. Normalmente, se pasa una opción +1 para cargar el primer sector de la partición raíz.
(generalmente especificado con rootnoverify ) y entregar la ejecución a este arranque secundario
cargador.
Para agregar un kernel a GRUB, siga estos pasos:
1. Como root , cargue el archivo [Link] o [Link] en un editor de texto.
2. Copie una configuración de trabajo para un kernel de Linux.
3. Modifique la línea de título para darle a su nueva configuración un nombre único.
4. Modifique la línea del kernel para que apunte al nuevo kernel. Si necesita cambiar cualquier kernel
opciones, hágalo.
5. Si está agregando, eliminando o cambiando un disco RAM, realice los cambios apropiados en el
initrd línea.
6. Si lo desea, cambie la línea predeterminada global para que apunte al nuevo kernel.
7.
Guarde sus cambios y salga del editor de texto.
En este punto, GRUB Legacy está configurado para arrancar su nuevo kernel. Cuando reinicia,
debería verlo aparecer en su menú, y debería poder arrancarlo. Si usted tiene
problemas, inicie una configuración que funcione para depurar el problema.
No elimine una configuración funcional para un kernel antiguo hasta que haya
determinado que su nuevo kernel funciona correctamente.

Configuración de GRUB 2
En principio, configurar GRUB 2 es muy parecido a configurar GRUB Legacy; sin embargo, algunos
los detalles importantes difieren. Primero, el archivo de configuración de GRUB 2 es /boot/grub/[Link] .
GRUB 2 agrega una serie de funciones, como la compatibilidad con módulos cargables para
sistemas de archivos y modos de operación, que no están presentes en GRUB Legacy. (El insmod
comando en el archivo de configuración de GRUB 2 carga módulos.) GRUB 2 también admite
declaraciones lógicas condicionales, que permiten cargar módulos o mostrar entradas de menú solo si
se cumplen condiciones particulares.
Arranque de Linux
9

Página 52
10
Capítulo 1 Inicio del sistema y gestión avanzada del sistema
Si simplemente desea agregar o cambiar una sola entrada del sistema operativo, encontrará la más importante
los cambios se realizan en las opciones por imagen. El Listado 1.2 muestra los equivalentes de GRUB 2 a la imagen
opciones que se muestran en el Listado 1.1.
Listado 1.2: Ejemplos de configuración de imágenes de GRUB 2
#
# Opciones de imagen del kernel:
#
menuentry "Fedora (2.6.32)" {
establecer raíz = (hd0,1)
linux /vmlinuz-2.6.32 ro root = / dev / hda5 mem = 2048M
initrd /initrd-2.6.32
}
menuentry "Debian (2.6.36-experimental)" {
establecer raíz = (hd0,1)
linux (hd0,1) /bzImage-2.6.36-experimental ro root = / dev / hda6
}
#
# Otros sistemas operativos
#
menuentry "Windows" {
establecer raíz = (hd0,2)
cargador de cadena +1
}
Los cambios importantes en comparación con GRUB Legacy incluyen los siguientes:
La palabra clave del título se reemplaza por menuentry .
El título del menú está entre comillas.
Una llave de apertura ( { ) sigue al título del menú, y cada entrada termina con un cierre
llave ( } ).
La palabra clave set precede a la palabra clave raíz y un signo igual ( = ) separa la raíz
de la especificación de la partición.
La palabra clave rootnoverify ha sido eliminada; usa root en su lugar.
Las particiones se numeran empezando por 1 en lugar de 0. Un cambio similar en el disco
la numeración no está implementada. Este cambio puede resultar muy confuso. El más reciente
Las versiones de GRUB 2 también admiten un esquema de identificación de particiones más complejo para
especificar el tipo de tabla de particiones o las particiones que están incrustadas dentro de otras particiones,
como se utilizan a menudo en instalaciones de SO Solaris o Berkeley Standard Distribution (BSD).
GRUB 2 realiza más cambios, ya que emplea un conjunto de scripts y otras herramientas que
ayudar a mantener automáticamente el archivo /boot/grub/[Link] . La intención es ese sistema
los administradores nunca necesitan editar explícitamente este archivo. En su lugar, editaría archivos en / etc /
grub.d , y el archivo / etc / default / grub , para cambiar la configuración de GRUB 2.

Página 53
Los archivos en /etc/grub.d controlan sondadores particulares de GRUB OS. Estos scripts escanean el sistema
para sistemas operativos y núcleos particulares y agregue entradas de GRUB a /boot/grub/[Link] para admitir
esos sistemas operativos. Puede agregar entradas de kernel personalizadas, como las que se muestran en el Listado 1.2, al
40_archivo personalizado para admitir sus propios kernels compilados localmente o sistemas operativos inusuales que GRUB
no detecta automáticamente.
El archivo / etc / default / grub controla los valores predeterminados creados por la configuración de GRUB 2
guiones. Por ejemplo, si desea ajustar el tiempo de espera, puede cambiar lo siguiente
línea:
GRUB_TIMEOUT = 10
Una distribución diseñada para usar GRUB 2, como las versiones recientes de Ubuntu,
ejecutar automáticamente los scripts de configuración después de ciertas acciones, como instalar un nuevo
kernel con el administrador de paquetes de la distribución. Si necesita realizar cambios usted mismo,
puede escribir update - grub después de haber editado / etc / default / grub o archivos en /etc/grub.d . Esta
comando lee estos archivos de configuración y escribe un nuevo archivo /boot/grub/[Link] .
Instalación del cargador de arranque GRUB
El comando para instalar GRUB Legacy y GRUB 2 es grub - install . También tú
debe especificar el sector de arranque por el nombre del dispositivo al instalar el cargador de arranque. Lo básico
el comando se parece a:
# grub-install / dev / hda
o
# grub-install '(hd0)'
Cualquiera de los dos comandos instalará GRUB en el primer sector de su primer disco duro. En muchos
systems, usaría / dev / sda en lugar de / dev / hda en el primer ejemplo. En el segundo
ejemplo, necesita comillas simples alrededor del nombre del dispositivo. Si desea instalar GRUB en
el sector de arranque de una partición en lugar de en el MBR, incluye un identificador de partición, como
en / dev / hda1 o (hd0,0) . Sin embargo, esta opción no siempre funciona bien con GRUB 2.
Recuerde que no necesita reinstalar GRUB después de realizar cambios en su
¡archivo de configuración! (Es posible que deba ejecutar update - grub después de actualizar GRUB 2 's / etc - based
archivos de configuración.) Necesita instalar GRUB de esta manera sólo si se asegura
cambios en la configuración de su disco, como cambiar el tamaño o mover la partición raíz de GRUB,
mover toda la instalación a un nuevo disco duro, o posiblemente reinstalar Windows
(que tiende a acabar con los cargadores de arranque basados en MBR). En algunos de estos casos, es posible que necesite
para arrancar Linux a través de un cargador de arranque de respaldo, como GRUB instalado en un disquete. (Tipo
grub: instale / dev / fd0 para crear uno y luego etiquételo y guárdelo en un lugar seguro).

Interactuar con GRUB en el momento del arranque


La primera pantalla que muestra el cargador de arranque GRUB Legacy o GRUB 2 es una lista de todos los
sistemas operativos que especificó con la opción de título o menú en su GRUB
Arranque de Linux
11

Página 54
12
Capítulo 1 Inicio del sistema y gestión avanzada del sistema
archivo de configuración. Puede esperar a que expire el tiempo de espera para el sistema operativo predeterminado
arrancar. Para seleccionar una alternativa, use las teclas de flecha para resaltar el sistema operativo que
quieres arrancar. Una vez que su elección esté resaltada, presione la tecla Enter para comenzar a arrancar.
Siga estos pasos cuando desee cambiar o pasar opciones adicionales a su
sistema operativo:
1. Utilice las teclas de flecha para resaltar el sistema operativo que más se asemeje a lo
quieres arrancar.
2. Presione la tecla E para editar esta entrada. Verá una nueva pantalla con todas las opciones para este
entrada.
3. Utilice las teclas de flecha para resaltar la línea de opciones del kernel o linux .
4. En GRUB Legacy, presione la tecla E para editar las opciones del kernel. Este paso no es necesario
en GRUB 2.
5. Edite la línea del kernel o linux para agregar opciones, como 1 para arrancar en modo de usuario único.
GRUB pasará la opción adicional al kernel cuando arranque.
6. Presione la tecla Enter para completar las ediciones. Este paso no es necesario en GRUB 2.
7.
Presione la tecla B para comenzar a arrancar GRUB Legacy, o presione Ctrl + X para comenzar a arrancar GRUB 2.
Puede realizar los cambios que desee en el paso 5, como usar un init diferente
programa. Haga esto agregando init = / bin / bash (o cualquier programa que desee
use) hasta el final de la línea del kernel .
Es posible realizar interacciones más avanzadas en el tiempo de arranque ingresando a la
modo. Para ello, presione la tecla C en el menú de GRUB. Luego puede escribir una variedad
de comandos que son similares a los comandos de shell de Linux, como ls para ver archivos. Si tu
escriba ls solo en el indicador grub> , verá una lista de particiones, usando la partición de GRUB
nomenclatura. Puede agregar un identificador de partición y una barra, como en ls (hd0,3) / , para ver
el contenido de esa partición. Trabajando a través de las particiones, puede
probablemente identifique su archivo de kernel y, si su sistema lo usa, un archivo de disco RAM inicial. Esta
información, junto con la identificación de su sistema de archivos raíz, debería permitirle
cree una entrada GRUB que funcione para su sistema.

Personalización del inicio del sistema


Linux se basa en los niveles de ejecución para determinar qué funciones están disponibles. Los niveles de ejecución están numerados
de 0 a 6, y a cada uno se le asigna un conjunto de servicios que deben estar activos. Al arrancar,
Linux ingresa a un nivel de ejecución predeterminado, que puede configurar. Sabiendo que estas funciones
y cómo administrar los niveles de ejecución, es importante si va a controlar el proceso de arranque de Linux.
y operaciones en curso. Con este fin, debe comprender el propósito de los niveles de ejecución,
ser capaz de identificar los servicios que están activos en un nivel de ejecución, poder ajustar esos servicios,
ser capaz de verificar sus niveles de ejecución predeterminados y actuales, y poder cambiar los valores predeterminados y
niveles de ejecución actuales. Para complicar las cosas, dos sistemas de inicio principales, scripts de inicio de SysV
y Upstart, están disponibles, y cada uno proporciona diferentes formas de realizar estas tareas prácticas,
aunque ambos emplean conceptos de nivel de ejecución similares.

Página 55
Comprensión de los niveles de ejecución
Anteriormente en este capítulo, mencioné el modo de usuario único, que es un modo especial en el que
Linux permite que solo root inicie sesión. Para acceder a este modo al arrancar Linux, utilice
el número 1 , la letra S o s , o la palabra single como una opción pasada al kernel por
el cargador de arranque. El modo de usuario único es simplemente un nivel de ejecución disponible para su sistema. los
Los niveles de ejecución disponibles en la mayoría de los sistemas son los números del 0 al 6. Las letras S y s son
sinónimo de nivel de ejecución 1 en lo que respecta a muchas utilidades.
Los niveles de ejecución 0, 1 y 6 están reservados para fines especiales; los niveles de ejecución restantes son
disponible para cualquier propósito que usted o su proveedor de distribución de Linux decidan. Cuadro 1.1
resume los usos convencionales de los niveles de ejecución. Otras asignaciones, e incluso niveles de ejecución
fuera del rango de 0 a 6 - son posibles, pero tales configuraciones son raras. (Gentoo usa un
inusual sistema de nivel de ejecución, como se describe brevemente.) Si se encuentra con números de nivel de ejecución peculiares,
consultar / etc / inittab : los define y, a menudo, contiene comentarios que explican los distintos
niveles de ejecución.
TABLA 1.1 Niveles de ejecución y sus propósitos
Nivel de ejecución
Propósito
0
Un nivel de ejecución de transición, lo que significa que se utiliza para cambiar el sistema de
un estado a otro. Específicamente, apaga el sistema. En moderno
hardware, el sistema debería apagarse por completo. Si no, eres
Se espera que reinicie la computadora manualmente o la apague.
1, s o S
Modo de usuario único. ¿Qué servicios, si los hay, se inician en este nivel de ejecución varían según
distribución. Normalmente se utiliza para el mantenimiento del sistema de bajo nivel que puede
afectado por el funcionamiento normal del sistema, como cambiar el tamaño de las particiones. Típicamente,
s o S produce un shell raíz sin montar ningún sistema de archivos, mientras que 1
intenta montar sistemas de archivos y ejecuta algunos programas del sistema.
2
En Debian y sus derivados (incluido Ubuntu), un modo multiusuario completo
con X en ejecución y un inicio de sesión gráfico. La mayoría de las otras distribuciones dejan esto
runlevel undefined.
3
En Fedora, Mandriva, Red Hat y la mayoría de las otras distribuciones, un
modo multiusuario con una pantalla de inicio de sesión de consola (no gráfica).
4
Por lo general, no está definido de forma predeterminada y, por lo tanto, está disponible para personalización.
5
En Fedora, Mandriva, Red Hat y la mayoría de las otras distribuciones, lo mismo
comportamiento como nivel de ejecución 3 con la adición de que X se ejecuta con un XDM
(gráfico) inicio de sesión.
6
Se utiliza para reiniciar el sistema. Este nivel de ejecución también es un nivel de ejecución de transición.
Su sistema está completamente apagado y luego la computadora se reinicia
automáticamente.
Personalización del inicio del sistema
13

Página 56
14
Capítulo 1 Inicio del sistema y gestión avanzada del sistema
No configure su nivel de ejecución predeterminado en 0 o 6. Si lo hace, su sistema
apague o reinicie inmediatamente una vez que termine de encenderse. Nivel de ejecución 1
posiblemente podría usarse como predeterminado, pero es probable que desee usar
2, 3 o 5 como nivel de ejecución predeterminado, según su distribución y
utilizar para el sistema.
Como regla general, las distribuciones se han desplazado hacia el conjunto de niveles de ejecución de Red Hat;
sin embargo, existen algunas excepciones y restricciones, como Debian y Ubuntu. Gentoo también
merece una atención especial. Aunque utiliza niveles de ejecución numerados en su núcleo, Gentoo crea
en esto habilitando un número arbitrario de niveles de ejecución con nombre . El nivel de ejecución predeterminado se llama,
apropiadamente, por defecto . El sistema de Gentoo le permite crear niveles de ejecución con nombre
para, digamos, conectar una computadora portátil a media docena de redes diferentes, cada una con su propio
requisitos de configuración de red. Cuando pase de una red a otra, ingrese
el nivel de ejecución apropiado, como se describe en “Cambio de niveles de ejecución en un sistema en ejecución. "
Muchos de los archivos y ubicaciones de archivos descritos en este capítulo se basan
en Linux Standards Base (LSB) , que es una especificación de varios
estándares para la ubicación de archivos, la existencia de bibliotecas particulares,
y así. El LSB está diseñado para garantizar un nivel mínimo de compatibilidad
en distribuciones comunes de Linux.

Configuración de scripts de inicio de SysV


En el pasado, la mayoría de las distribuciones de Linux usaban scripts de inicio de System V (SysV) , que
llevan el nombre de la versión System V de Unix en la que se originaron. En el Linux
implementación de los scripts de inicio de SysV, el kernel lanza un proceso llamado init , que
lee su archivo de configuración y, siguiendo sus instrucciones, lanza una serie de scripts
que puede variar de un nivel de ejecución a otro. Como se describe más adelante, en "Configuración de Upstart", un
El sistema de inicio de la competencia se está volviendo común en Linux.
Identificación de los servicios en un nivel de ejecución
Hay dos formas principales de afectar qué programas se ejecutan cuando ingresa un nuevo nivel de ejecución. los
primero es agregar o eliminar entradas en el archivo de configuración de init , / etc / inittab . Un típico / etc /
El archivo inittab contiene muchas entradas, y excepto en un par de casos especiales, inspeccionar o
Es mejor dejar a los expertos cambiar el contenido de este archivo. Una vez que todas las entradas en / etc / inittab
para su nivel de ejecución se ejecutan, su proceso de arranque está completo y puede iniciar sesión.
La segunda forma de alterar los programas que se ejecutan en un nivel de ejecución determinado es editar el inicio de SysV o Upstart
guiones.

Página 57
Editando el archivo / etc / inittab Archivo
Las entradas en / etc / inittab siguen un formato simple. Cada línea consta de cuatro dos puntos delimitados
campos:
id : runlevels : action : process
Cada uno de estos campos tiene un significado específico, como se identifica en la Tabla 1.2. En un tradicional
configuración, / etc / inittab incluye líneas que lanzan los scripts de inicio de SysV para cada
runlevel, como se describe brevemente.
Tabla 1.2 Contenido de un archivo / etc / inittab entrada
Código
Propósito
carné de identidad
Este campo consta de una secuencia de uno a cuatro caracteres que identifica
la función de la entrada.
niveles de ejecución
Este campo consta de una lista de niveles de ejecución para los que se aplica esta entrada. por
Por ejemplo, 345 significa que la entrada es aplicable a los niveles de ejecución 3, 4 y 5.
acción
Los códigos específicos en este campo le dicen a init cómo tratar el proceso. Por ejemplo,
wait le dice a init que inicie el proceso una vez al ingresar a un nivel de ejecución y
esperar a que finalice el proceso, y respawn le dice a init que reinicie
el proceso cada vez que finaliza (lo cual es excelente para los procesos de inicio de sesión).
Hay varias otras acciones disponibles; consulte la página de manual de inittab para
detalles.
proceso
Este campo especifica el proceso que se ejecutará para esta entrada, incluidas las opciones
y argumentos que se requieren.
La próxima sección "Comprobación y cambio de su nivel de ejecución predeterminado"
describe cómo decirle a init en qué nivel de ejecución ingresar cuando el sistema arranca.
Si modifica el archivo / etc / inittab , los cambios no surtirán efecto hasta que reinicie el
computadora o escriba un comando como telinit Q para que vuelva a leer este archivo e implemente su
cambios. Por lo tanto, al realizar cambios, debe mantenerlos simples o probar sus efectos,
para que no surjan problemas más adelante, después de que se haya olvidado de los cambios en este archivo.
Comprensión de los scripts de inicio de SysV
El script /etc/init.d/rc o /etc/rc.d/rc realiza la tarea crucial de ejecutar todos
los scripts asociados con el nivel de ejecución. Los scripts específicos del nivel de ejecución se almacenan en / etc /
Personalización del inicio del sistema
15
Página 58
dieciséis
Capítulo 1 Inicio del sistema y gestión avanzada del sistema
rc.d / rc ? .d , /etc/init.d/rc ? .d , / etc / rc ? .d , o una ubicación similar. (La ubicación precisa
varía entre distribuciones.) En todos estos casos ,? es el número de nivel de ejecución. Al entrar en un
runlevel, rc pasa el parámetro de inicio a todos los scripts con nombres que comienzan con
una S mayúscula y pasa el parámetro de parada a todos los scripts con nombres que comienzan
con una K mayúscula . Estos scripts de inicio de SysV inician o detienen servicios según el
parámetro que se pasan, por lo que el nombre de los scripts controla si están iniciados o
se detiene cuando se ingresa un nivel de ejecución. Estos scripts también están numerados, como en S10network y
K35smb ; los números controlan el orden en que se inician o detienen los servicios.
El programa rc ejecuta scripts de inicio de SysV en orden numérico. Esta característica habilita
diseñadores de distribución para controlar el orden en el que se ejecutan los scripts dándoles
números. Este control es importante porque algunos servicios dependen de otros. Por ejemplo,
Normalmente, los servidores de red deben iniciarse después de que se activa la red.
En realidad, los archivos en los directorios de nivel de ejecución de SysV son enlaces simbólicos a los scripts principales,
que normalmente se almacenan en /etc/rc.d , /etc/init.d , o /etc/rc.d/init.d (nuevamente, el
la ubicación exacta depende de la distribución). Estos scripts de inicio originales de SysV tienen nombres
que carecen de la S o K y el número iniciales , como en smb en lugar de K35smb .
Para determinar qué servicios están activos en un nivel de ejecución, busque el inicio de SysV apropiado
directorio de la escritura de guiones con nombres que comienzan con un S . Alternativamente, puede utilizar un
herramienta de gestión de nivel de ejecución, como se describe a continuación.
Puede iniciar los servicios a mano. Ejecútelos con la opción de inicio , como en
/etc/init.d/smb comienza a iniciar el servidor smb (Samba). Otros útiles
las opciones son detener , reiniciar y estado . La mayoría de los scripts admiten todos
estas opciones.
La mayoría de las distribuciones colocan información útil, como los niveles de ejecución en los que se ejecutan los scripts.
de forma predeterminada, en los comentarios cerca del inicio de cada script de inicio de SysV. Estos comentarios pueden ser
útil si necesita restaurar manualmente un sistema a su configuración predeterminada.
Gestión de servicios de nivel de ejecución
Los scripts de inicio de SysV en los directorios de nivel de ejecución son enlaces simbólicos al original
guión. Esto se hace para que no necesite copiar el mismo script en cada directorio de nivel de ejecución.
En cambio, puede modificar el script original sin tener que rastrear sus copias en todos
los directorios de nivel de ejecución de SysV. El uso de un solo archivo vinculado también simplifica las actualizaciones del sistema.
También puede modificar qué programas están activos en un nivel de ejecución editando el enlace
nombres de archivo. Hay numerosos programas de utilidad disponibles para ayudarlo a administrar estos enlaces, como
como chkconfig , ntsysv , update - rc.d y rc - update . Describo chkconfig y actualización -
rc.d porque son compatibles con muchas distribuciones. Si su distribución no
admitir estas herramientas, debe verificar la documentación centrada en la distribución.
Usando chkconfig
Para enumerar los servicios y sus niveles de ejecución aplicables con chkconfig , use la lista - - (o,
normalmente, - l ) opción. La salida se parece a esto, pero es probable que sea mucho más larga:

Página 59
# chkconfig --list
pcmcia
0: apagado 1: apagado 2: encendido 3: encendido 4: encendido 5: encendido 6: apagado
nfs-common 0: desactivado 1: desactivado 2: desactivado 3: activado 4: activado 5: activado 6: desactivado
xprint
0: apagado 1: apagado 2: apagado 3: encendido 4: encendido 5: encendido 6: apagado
setserial 0: apagado 1: apagado 2: apagado 3: apagado 4: apagado 5: apagado 6: apagado
Esta salida muestra el estado de los servicios en los siete niveles de ejecución. Por ejemplo, puedes
ver que nfs - common está inactivo en los niveles de ejecución 0 - 2, activo en los niveles de ejecución 3 - 5 e inactivo en
nivel de ejecución 6.
En Red Hat, Fedora y algunas otras distribuciones, chkconfig puede administrar
servidores que son manejados por xinetd así como scripts de inicio de SysV. los
xinetd : los servidores con mediación aparecen al final de la lista chkconfig .
Si está interesado en un servicio específico, puede especificar su nombre:
# chkconfig --list nfs-common
nfs-common 0: desactivado 1: desactivado 2: desactivado 3: activado 4: activado 5: activado 6: desactivado
Para modificar los niveles de ejecución en los que se ejecuta un servicio, use un comando como este:
# chkconfig --level 23 nfs-common on
El ejemplo anterior es para sistemas basados en Debian. En Red Hat y
sistemas similares, probablemente querrá apuntar a los niveles de ejecución 3, 4 y 5
con algo como - - nivel 345 en lugar de - - nivel 23 .
Puede configurar el script para que esté encendido (para activarlo), apagado (para desactivarlo) o restablecer (para configurarlo
su valor predeterminado).
Si ha agregado una secuencia de comandos de inicio al directorio principal de secuencias de comandos de inicio de SysV, puede tener
chkconfig regístrelo y agregue los enlaces de inicio y parada apropiados en los directorios de nivel de ejecución.
Cuando hace esto, chkconfig inspecciona el script en busca de comentarios especiales para indicar el valor predeterminado
niveles de ejecución. Si estos comentarios están en el archivo y está satisfecho con los niveles sugeridos,
puede agregarlo a estos niveles de ejecución con un comando como este:
# chkconfig --add nfs-common
Este comando agrega el script nfs - common a los administrados por chkconfig . Lo harías,
por supuesto, cambie nfs - común al nombre de su script. Este enfoque puede no funcionar si el
guión carece de las líneas de comentarios necesarios con los números de secuencia de niveles de ejecución para chkconfig 's
beneficio.
Personalización del inicio del sistema
17

Página 60
18
Capítulo 1 Inicio del sistema y gestión avanzada del sistema
Usando actualización - rc.d
El programa update-rc.d es más común en Debian y algunos de sus derivados
distribuciones. Cumple prácticamente la misma función que chkconfig ; Sin embargo, los detalles de su funcionamiento son
bastante diferente. Su sintaxis básica es:
update-rc.d [ opciones ] nombre acción
La opción más común es - n , que hace que el programa informe lo que haría
sin realizar ninguna acción real. El nombre es el nombre del servicio que se va a modificar. los
acción es el nombre de la acción a realizar, junto con las opciones específicas de la acción.
Las acciones comunes se resumen en la Tabla 1.3.
Tabla 1.3 Contenido de un archivo / etc / inittab entrada
Código de acción
Efecto
eliminar
Elimina enlaces en directorios específicos del nivel de ejecución al servicio nombrado.
El script principal del servicio no debe existir. Esta opción está destinada a
Limpiar los scripts de inicio de SysV después de que un servicio haya sido completamente
eliminado del sistema.
valores predeterminados
Crea enlaces para iniciar el servicio en los niveles de ejecución 2, 3, 4 y 5, y para
deténgalo en los niveles de ejecución 0, 1 y 6.
start NN runlevels Crea un enlace para iniciar el servicio en los niveles de ejecución especificados , utilizando
el número de secuencia NN .
detener NN runlevel s
Crea enlaces para detener el servicio en los niveles de ejecución especificados , utilizando el
número de secuencia NN .
habilitar [ nivel de ejecución ]
Modifica los enlaces de nivel de ejecución existentes para habilitar el servicio en el
nivel de ejecución. Si no se especifica ningún nivel de ejecución, los niveles de ejecución 2, 3, 4 y 5 son
modificado.
deshabilitar [ nivel de ejecución ] Modifica los enlaces de nivel de ejecución existentes para deshabilitar el servicio en el
nivel de ejecución. Si no se especifica ningún nivel de ejecución, los niveles de ejecución 2, 3, 4 y 5 son
modificado.
Como ejemplo de rc - update.d en acción, considere los siguientes dos comandos:
# update-rc.d valores predeterminados de samba
# update-rc.d gdm deshabilitar 234
Página 61
El primero de estos ejemplos configura el servidor Samba para que se ejecute en los niveles de ejecución predeterminados. los
segundo hace que el servidor de inicio de sesión del Administrador de visualización de GNOME (GDM) no se ejecute en los niveles
de ejecución 2,
3 y 4.
Configuración de Upstart
Varias distribuciones modernas de Linux, incluidas las versiones recientes de Ubuntu y Fedora, ahora
use un proceso de inicio llamado Upstart ( [Link] ) en lugar del venerable
Sistema de inicio SysV. En términos generales, Upstart hace el mismo trabajo que los scripts SysV, pero
Upstart está diseñado para manejar mejor el hardware de conexión en caliente que cambia dinámicamente ,
que se puede conectar y desconectar de una computadora mientras aún está funcionando.
Upstart proporciona funciones de compatibilidad con SysV, por lo que debe estar familiarizado con SysV
métodos descritos anteriormente; sin embargo, también tiene sus propios scripts únicos y difiere en algunos
formas importantes. En particular, Upstart elimina / etc / inittab , en lugar de proporcionar
un conjunto integrado de scripts de inicio que pueden, en principio, reemplazar completamente el estilo SysV
/ etc / inittab y scripts de inicio específicos del nivel de ejecución. Los scripts Upstart también admiten el inicio
o detener servicios basados en una variedad más amplia de acciones que los scripts de inicio de SysV; para
Por ejemplo, Upstart puede lanzar un servicio siempre que se conecte un dispositivo de hardware en particular.
Uso de Upstart: métodos nativos
Un sistema que no usa nada más que Upstart y sus scripts nativos reemplaza tanto / etc / inittab
y los directorios de scripts de inicio de SysV específicos del nivel de ejecución con scripts en / etc / init
directorio. (Este directorio se llamaba /etc/event.d en versiones anteriores de Upstart).
desea comprobar el contenido de este directorio en su propio sistema basado en Upstart.
Mientras escribo, Upstart se encuentra en un intenso desarrollo y su archivo de configuración
El formato está sujeto a cambios. Por lo tanto, puede encontrar diferencias con lo que
descrito en estas páginas.
Para cambiar los niveles de ejecución en los que se ejecuta un servicio en particular, tendrá que editar su
archivo de configuración en un editor de texto. Localice el script (normalmente / etc / init / name .conf , donde
name es el nombre del servicio) y cárguelo en un editor de texto. Busque líneas que incluyan
el texto comienza y termina , como en el siguiente ejemplo:
iniciar en (sistema de archivos
y comenzó hal
y tty-device-added KERNEL = tty7
y (dispositivo de gráficos agregado o detenido udevtrigger))
detener en el nivel de ejecución [016]
Busque cualquier especificación de nivel de ejecución y ajústela según sus necesidades. Por ejemplo, podrías
cambiar el ejemplo anterior 's parada en el nivel de ejecución especificación para leer parada en el nivel de ejecución
[0126] para incluir el nivel de ejecución 2 en la lista de niveles de ejecución en los que se detendrá el servicio.
Personalización del inicio del sistema
19

Página 62
20
Capítulo 1 Inicio del sistema y gestión avanzada del sistema
Después de realizar dicho cambio, puede utilizar el comando de inicio o parada para
iniciar o detener el servicio, como en detener gdm para apagar el servidor gdm . Antes de cambiar tu
nivel de ejecución (como se describe brevemente, en "Cambio de niveles de ejecución en un sistema en ejecución"), debe
escriba initctl reload para que Upstart vuelva a leer sus archivos de configuración.
Si actualiza el paquete que proporciona el script de configuración Upstart,
es posible que deba volver a configurarlo.
Uso de métodos de compatibilidad de SysV
Debido a que el sistema de scripts de inicio de SysV ha sido tan común durante tanto tiempo, una gran cantidad de
Los paquetes de software incluyen scripts de inicio de SysV. Para acomodar dichos paquetes,
Upstart proporciona un modo de compatibilidad: ejecuta scripts de inicio de SysV en las ubicaciones habituales
( /etc/rc.d/rc ? .d , /etc/init.d/rc ? .d , / etc / rc ? .d , o una ubicación similar). Por lo tanto, si
instalar un paquete que aún no incluye un script de configuración Upstart, aún debería
lanzar de la forma habitual. Además, si ha instalado utilidades como chkconfig ,
debería poder usarlos para administrar sus servicios basados en SysV tal como lo haría en un
Sistema basado en SysV.
Sin embargo, puede encontrar que chkconfig y otras herramientas basadas en SysV ya no funcionan para
algunos servicios. A medida que pasa el tiempo, es probable que esto sea así para más y más servicios, porque
los desarrolladores de distribuciones que favorecen a Upstart pueden convertir el inicio de sus paquetes
scripts para utilizar Upstart - métodos nativos.
Comprobación de su nivel de ejecución
A veces es necesario comprobar su nivel de ejecución actual. Por lo general, lo harás antes
para cambiar el nivel de ejecución o para comprobar el estado si algo no funciona correctamente. Dos
son posibles diferentes comprobaciones de nivel de ejecución: comprobar su nivel de ejecución predeterminado y comprobar su
nivel de ejecución actual.
Comprobación y cambio de su nivel de ejecución predeterminado
En un sistema basado en SysV, puede determinar su nivel de ejecución predeterminado inspeccionando / etc /
inittab con el comando less o abrirlo en un editor. Alternativamente, puede usar
el comando grep para buscar la línea que especifica la acción initdefault . Es posible que vea
algo como esto:
# grep: initdefault: / etc / inittab
id: 5: initdefault:
Puede notar que esta línea no define un proceso para ejecutar. En el caso de
initdefault , el campo de proceso se ignora.
Si desea cambiar el nivel de ejecución predeterminado para la próxima vez que inicie su sistema, edite
la línea initdefault en / etc / inittab y cambie el campo de nivel de ejecución al valor que

Página 63
querer. Si su sistema carece de un archivo / etc / inittab , como es común en los sistemas basados en Upstart,
cree uno que contenga solo una línea initdefault que especifique el nivel de ejecución que desea
entrar por defecto.
Determinación de su nivel de ejecución actual
Si su sistema está en funcionamiento, puede determinar la información de su nivel de ejecución con el
comando de nivel de ejecución :
# runlevel
N2
El primer carácter es el nivel de ejecución anterior. Cuando el carácter es N , esto significa que
el sistema no ha cambiado de nivel de ejecución desde el arranque. Es posible cambiar a diferentes niveles de ejecución
en un sistema en ejecución con los programas init y telinit , como se describe a continuación. El segundo
El carácter en la salida del nivel de ejecución es su nivel de ejecución actual.
Cambio de niveles de ejecución en un sistema en ejecución
A veces, es posible que desee cambiar los niveles de ejecución en un sistema en ejecución. Podrías hacer esto para
obtener más servicios, como pasar de una consola a un nivel de ejecución de inicio de sesión gráfico, o cerrar
apague o reinicie su computadora. Puede lograr esto con init (o telinit ),
comandos de apagado , detención , reinicio y apagado .
Cambiar los niveles de ejecución con init o telinit
El proceso de inicio es el primer proceso que ejecuta el kernel de Linux, pero también puede usarlo para
Haga que el sistema vuelva a leer el archivo / etc / inittab e implemente los cambios que encuentre allí o para
cambiar a un nuevo nivel de ejecución. El caso más simple es hacer que cambie al nivel de ejecución que especifique.
Por ejemplo, para cambiar al nivel de ejecución 1 (el nivel de ejecución reservado para un solo usuario o
modo), escribiría este comando:
# init 1
Para reiniciar el sistema, puede usar init para cambiar al nivel de ejecución 6 (el nivel de ejecución reservado para
reinicia):
# init 6
Una variante de init es telinit . Este programa puede tomar un número de nivel de ejecución como init para
cambiar a ese nivel de ejecución, pero también puede tomar la opción Q o q para que la herramienta vuelva a leer / etc /
inittab e implementar cualquier cambio que encuentre allí. Por lo tanto, si ha realizado un cambio en el
runlevel en / etc / inittab , puede implementar inmediatamente ese cambio escribiendo telinit q .
Los hombre páginas para estos comandos indican ligeramente diferentes sintaxis,
pero telinit es a veces un enlace simbólico a init , y en la práctica init
responde como telinit a las opciones Q y q .
Personalización del inicio del sistema
21

Página 64
22
Capítulo 1 Inicio del sistema y gestión avanzada del sistema
Cambio de niveles de ejecución con apagado
Aunque puede apagar o reiniciar la computadora con init , hacerlo tiene algunos
problemas. Un problema es que es simplemente un comando poco intuitivo para esta acción. Otro
es que cambiar los niveles de ejecución con init provoca un cambio inmediato al nuevo nivel de ejecución.
Esto puede causar cierta molestia a otros usuarios de su sistema porque no se les dará
advertencia sobre el cierre. Por lo tanto, es mejor usar el comando shutdown en una
entorno de usuario cuando desee reiniciar, apagar o cambiar al modo de usuario único. Esta
El comando admite opciones adicionales que lo hacen más amigable en tales entornos.
El programa de apagado envía un mensaje a todos los usuarios que están conectados a su sistema
y evita que otros usuarios inicien sesión durante el proceso de cambio de niveles de ejecución. los
El comando shutdown también le permite especificar cuándo efectuar el cambio de nivel de ejecución para que los usuarios
tener tiempo para salir de los editores y detener de forma segura otros procesos que puedan estar ejecutándose.
Cuando llega el momento de cambiar los niveles de ejecución, el apagado le indica el proceso de inicio .
En la forma más simple, el cierre se invoca con un argumento de tiempo como:
# apaga ahora
Esto cambia el sistema al nivel de ejecución 1, el modo de usuario único o de mantenimiento. El ahora
El parámetro hace que el cambio se produzca inmediatamente. Otros posibles formatos de hora incluyen
hh : mm , para una hora en formato de reloj de 24 horas (como 6:00 para las 6:00 am o 13:30 para la 1:30
pm) y + m durante un tiempo m minutos en el futuro.
Puede agregar parámetros adicionales para especificar que desea reiniciar o detener (es decir, encender
apagado) la computadora. Específicamente, - r reinicia el sistema, - H lo detiene (termina la operación
pero no lo apaga) y - P lo apaga. La opción - h puede detener o apagar el
computadora, pero normalmente la apaga. Por ejemplo, puede escribir shutdown - r +10 para reiniciar
el sistema en 10 minutos.
Para advertir a las personas sobre el cierre inminente, puede agregar un mensaje a
el final del comando:
# shutdown -h +15 "el sistema se apaga por mantenimiento"
Si programa un apagado pero luego cambia de opinión, puede usar la opción - c para
cancelalo:
# shutdown -c "no importa"
Cambiar los niveles de ejecución con detener , reiniciar ,
y comandos de apagado
Tres comandos de acceso directo adicionales son detener , reiniciar y apagar . Como se podría esperar,
Estos comandos detienen el sistema (lo apagan sin apagarlo), lo reinician o lo apagan
apagarlo y (en hardware que admita esta función) apagar la alimentación, respectivamente.
Normalmente, dos de estos comandos son enlaces simbólicos a un tercero; el único binario responde
de forma diferente dependiendo del nombre que se utilice para llamarlo.

Página 65
Compilar e instalar programas
de la fuente
Tanto las utilidades de inicio del sistema como los usuarios ejecutan software, y ese software debe estar instalado
de alguna manera. La certificación LPI Nivel 1 incluye la cobertura de dos métodos comunes
de instalar software en sistemas Linux: RPM Package Manager (RPM) y Debian
paquetes. Estas herramientas son adecuadas y convenientes para los paquetes de software más comunes;
sin embargo, de vez en cuando tendrá que instalar software que no esté disponible en estos
formas. En tales casos, es posible que deba compilar e instalar el software desde su
código fuente. Las siguientes páginas describen este proceso, incluidas las ventajas y
trampas de este enfoque, obtener y descomprimir el código fuente, compilar el software,
instalarlo y desinstalarlo o actualizarlo si fuera necesario.
El Capítulo 2, "Configuración del kernel de Linux", describe la compilación de Linux
kernel con mayor detalle. Muchos de los procedimientos y temas cubiertos en este
capítulo se aplican al kernel, pero el kernel tiene sus propias necesidades especiales con
respecto a la configuración, compilación e instalación.

Comprender los problemas del código fuente


La mayoría del software de Linux está disponible en dos formas: como código fuente , que escriben los programadores
y puede modificar posteriormente; y como código objeto o código binario , que ejecuta la computadora.
(Algunos programas están escritos en lenguajes informáticos interpretados , en los que esta distinción
no existe.) El software se convierte de código fuente a formato de código binario mediante un programa
conocido como compilador . En teoría, el software en forma de código fuente se puede compilar para ejecutar
en cualquier computadora que proporcione el compilador necesario y las herramientas asociadas. Código binario,
por otro lado, está personalizado para un sistema operativo y una familia de hardware en particular. Por ejemplo,
un programa Linux en forma binaria para una CPU x 86-64 no se puede ejecutar en una computadora con
CPU PowerPC, incluso si esa computadora ejecuta Linux; ni se puede ejecutar el mismo binario en MacOS
X, incluso si se ejecuta en una CPU x 86 - 64.
Herramientas como QEMU ( [Link] ) y Wine
( [Link] ) proporciona formas de romper algunas de estas restricciones;
pueden ejecutar los binarios de una CPU o SO en otra CPU o SO. UPC
emuladores como QEMU funcionan a costa de la velocidad; el código corre mucho
más lento en QEMU que en hardware nativo. WINE solo es útil
para ejecutar el software de Microsoft Windows en Linux u otro tipo de Unix
Sistemas operativos y no funciona con todo el software de Windows.
Compilar e instalar programas desde la fuente
23

Página 66
24
Capítulo 1 Inicio del sistema y gestión avanzada del sistema
Si no tiene acceso a un paquete binario para su computadora pero desea ejecutar el
software, debe compilarlo usted mismo. Esta actividad conlleva varios
prerrequisitos:
Debe tener instaladas las herramientas de desarrollo de software adecuadas en su sistema.
Normalmente, esto significa la Colección de compiladores GNU (GCC), incluida la GCC
paquete para el idioma en el que se escribió el software, como C o C ++.
Debe tener instaladas las bibliotecas de desarrollo adecuadas (también conocidas como archivos de encabezado )
en la computadora. Tenga en cuenta que las bibliotecas de desarrollo generalmente se instalan por separado de
sus equivalentes de biblioteca binaria; estos últimos son necesarios para que se ejecuten los binarios, pero para
cree los binarios, necesita una biblioteca de desarrollo separada. La biblioteca de desarrollo
no es necesario cuando instala un paquete binario precompilado.
Se necesitan varias herramientas de soporte genéricas, como el programa tar que se utiliza para
extraer archivos del paquete de código fuente. Estas herramientas suelen estar instaladas de forma predeterminada
en la mayoría de los sistemas Linux, pero puede haber excepciones a esta regla.
Los paquetes de código fuente suelen incluir documentación, que se describe brevemente, que
resume sus requisitos específicos. Puede que necesite utilizar el binario de su distribución
herramientas de gestión de paquetes para localizar e instalar varios requisitos previos.
Desafortunadamente, a menudo ocurren problemas al compilar software. Con frecuencia, estos
los problemas se pueden solucionar instalando paquetes faltantes, como bibliotecas de desarrollo.
A veces, sin embargo, los problemas son más fundamentales. Los programas antiguos pueden depender de
bibliotecas igualmente antiguas que ya no están disponibles; o las bibliotecas pueden haberse actualizado en
de tal manera que el programa antiguo ya no se compila. Los programas altamente especializados pueden ser
escrito para una plataforma específica y simplemente no se compilará en Linux, o puede que necesiten
modificarse para compilar correctamente. Si tiene serios problemas al compilar el software,
debe estudiar cualquier mensaje de error que encuentre. Una búsqueda en la Web de un mensaje de error puede
busque una solución o al menos le ayude a comprender qué es lo que anda mal.
Afortunadamente, en muchos casos no hay ningún problema. Linux es bastante popular
plataforma que la mayoría de los programas de código abierto para Unix, como los sistemas operativos, se compilan bien en Linux
siempre que haya instalado las herramientas de desarrollo y las bibliotecas necesarias.
Preparación del código fuente
El primer paso para compilar el código fuente es obtenerlo y comprender el
instrucciones sobre su uso. El código fuente se puede obtener en una variedad de lugares. Aunque hay
son algunas prácticas comunes en la distribución de código fuente, hay pocas reglas que puede
confiar en que sea cierto en todos los casos. Por lo tanto, debes estar preparado para hacer cosas diferentes.
para instalar diferentes paquetes fuente, y es muy importante que lea el
¡documentación!
Obtener el código fuente
Si ya sabe que desea instalar un paquete en particular desde el código fuente, lo más probable es
ya sabes dónde y cómo conseguirlo. Si está buscando un software para realizar

Página 67
alguna tarea pero no sabe su nombre, sin embargo, es posible que desee consultar un código abierto
sitio de repositorio, como SourceForge ( [Link] ), Google Code ( http: //
[Link] ) o Freshmeat ( [Link] ). También puede intentar realizar una
Búsqueda web de palabras clave relevantes para el software que desea localizar.
A veces, los sitios web de programas proporcionan varios paquetes destinados a diferentes
plataformas. Los archivos tar del código fuente de Linux generalmente vienen en archivos con nombres que terminan en .tgz ,
.[Link] , .tbz , .tbz2 o Tar.bz2 . Todos estos nombres de archivo denotan tarballs - archivos de almacenamiento
creado con la utilidad tar . Las extensiones .tgz y .[Link] denotan archivos tar que tienen
sido comprimido con gzip , mientras .tbz , .tbz2 , y .tar.bz2 denotan tarballs que han sido
comprimido con bzip2 . De vez en cuando verá código fuente distribuido en archivos .zip de PkZip ,
que se puede extraer en Linux con la utilidad de descompresión . Estos archivos no son tarballs, pero
cumplen la misma función.
Si ve un archivo RPM de origen, que tiene un nombre que termina en .[Link] ,
y si tiene una distribución basada en RPM, puede descargarla y
generar un RPM binario. Los RPM de origen se convierten en RPM binarios
escribiendo rpmbuild - - reconstruir un programa - [Link] , donde un programa -
[Link] es el nombre de archivo del RPM de origen. Las RPM binarias serán
almacenado en una ubicación que se especifica aproximadamente una docena de líneas por encima del final
de la salida resultante. No debe seguir el código fuente normal
instrucciones de compilación e instalación al instalar un RPM fuente.
Desembalaje del código fuente
Para descomprimir cualquier tipo de tarball, use la utilidad tar , pasándole la - x (o - - extraer )
nombre de la operación junto con - z ( - - gzip ) o - j ( - - bzip2 ) si el tarball estaba comprimido
y -f ( - - archivo ) para especificar el nombre del archivo. Es posible que desee agregar - v ( - - detallado ) para ver una lista de
nombres de archivo a medida que se extraen. El comando final podría verse así:
$ tar xvzf [Link]
El guión inicial ( - ) puede omitirse, y a menudo se omite cuando se usa un solo -
opciones de caracteres con el programa tar .
Algunas personas prefieren llamar a gunzip o bunzip2 por separado, canalizando el resultado a través de alquitrán :
$ gunzip -c [Link] | alquitrán xv
Las bolas de alquitrán se construyen convencionalmente de modo que, cuando se extraen, crean una
subdirectorio, generalmente con el mismo nombre que el tarball, y todos los archivos se colocan dentro del
nuevo directorio. Sin embargo, esto no siempre es cierto, y a menudo no es cierto para los archivos .zip . Si tu
quiero estar seguro de que un tarball se extraerá ordenadamente en un nuevo subdirectorio en lugar de basura
el directorio actual con sus archivos, puede usar la operación - t ( - - list ), como en tar tvzf
program - [Link] , para ver su contenido antes de extraerlo.
Compilar e instalar programas desde la fuente
25

Página 68
26
Capítulo 1 Inicio del sistema y gestión avanzada del sistema
Puede extraer un archivo tar de origen en su directorio personal y trabajar en él allí; sin embargo,
Si tiene la intención de instalar un programa en el sistema para beneficio de todos los usuarios, es posible que prefiera
extraiga el tarball en un subdirectorio de / usr / src . Este directorio existe para contener el código fuente
para programas compilados localmente. Luego puede dejar el código fuente en esa ubicación,
asegurarse de que las herramientas necesarias permanezcan atrás para desinstalar el software, en caso de que
volverse necesario. (La próxima sección "Desinstalación o actualización de software" describe
cómo desinstalar el software compilado localmente.) Por defecto, / usr / src normalmente se puede escribir
solo por root , por lo que es posible que deba adquirir privilegios de superusuario para extraer un tarball a este
directorio. Por lo general, es posible compilar software como un usuario normal, por lo que es posible que desee
ajustar los permisos en el directorio extraído para poder escribir en ese directorio
tree como usuario no root . Tendrá que usar privilegios de root para instalar el software, al menos si
desea instalarlo en una ubicación estándar para que lo usen todos los usuarios.
Lectura de documentación
Una vez que haya extraído el código fuente, debe escribir ls en el directorio del código fuente para
ver los archivos que contiene. En la mayoría de los casos, encontrará varios archivos de documentación. Archivos comunes
incluir COPIA (el texto de la licencia), CAMBIO (un historial de cambios técnicos en el software),
NEWS (otro historial de cambios, éste menos técnico), README (documentación general),
e INSTALAR (instrucciones sobre la instalación del software). Algunos paquetes vienen con
o archivos diferentes y, a veces, es posible que falten uno o más de estos archivos comunes.
Los archivos de documentación como estos suelen tener nombres enteramente en mayúsculas, pero esto no siempre es cierto.
Debe asegurarse de leer la documentación general ( README ) y la instalación
instrucciones ( INSTALAR ) antes de continuar con cualquier compilación o instalación de código fuente
procedimiento. Aunque la mayoría de los programas siguen un procedimiento similar, las acciones necesarias
no están completamente estandarizados. Puede encontrar que el software que desea instalar
requiere algunos pasos inusuales, como la edición manual de un archivo o el uso de una sintaxis inusual en
sus comandos de compilación. También puede descubrir que necesita instalar desarrollo
bibliotecas o herramientas que aún no están instaladas en su sistema.
Los programas a veces especifican que tienen requisitos especiales o
limitaciones en CPU particulares o con núcleos particulares. Puedes aprender
sobre ambos con el comando uname , que muestra información sobre el
CPU actual, kernel y algunos otros detalles del sistema. Puede obtener varios
tipos específicos de información pasando opciones particulares a uname , pero
pass -a , como en uname-a , revela todo lo que el programa puede revelar. los
el número de versión del kernel será obvio. La cadena SMP , si está presente, denota
una CPU de multiprocesamiento simétrico (SMP). Una cadena como i386 o x86_64
identifica un kernel de 32 o 64 bits, respectivamente, en la plataforma x 86 / x 86-64.

Software de compilación
Una vez que haya extraído el código fuente, lea su documentación e instale cualquier
herramientas adicionales que necesita para compilar el software, puede comenzar a configurar y compilar
El software. Pueden ocurrir problemas en cualquiera de estos pasos, aunque la mayoría de los programas compilan
e instálelo de forma limpia, siempre que haya cumplido con todos los requisitos previos.

Página 69
Configurar la compilación
Los programas simples requieren poca o nada de configuración. Mas complejo
Los programas, sin embargo, se envían con una herramienta que escanea su sistema en busca de herramientas y bibliotecas
disponibles.
y ajusta el proceso de compilación para su computadora en particular.
El método más común para realizar esta tarea es un script llamado configurar ubicado
en el directorio principal del código fuente. Puede escribir ./configure para ejecutar este script. Escaneará
su sistema y ajuste un archivo llamado Makefile , que controla el proceso de compilación, para
trabajar de manera óptima en su sistema.
El script de configuración a menudo acepta parámetros que le permiten configurar el tiempo de compilación
opciones para el software. Estos varían de un paquete a otro; sin embargo, algunos
Las opciones de configuración se muestran en la Tabla 1.4. Puede utilizar estos parámetros para habilitar
funciones de depuración si cree que un programa contiene un error o las usa para configurar el programa -
características específicas, como la compatibilidad con bibliotecas de terceros específicas.
TABLA 1.4 Parámetros comunes del script de configuración
Parámetro
Efecto
- - ayuda
Muestra un resumen de opciones.
- - tranquilo
Muestra menos mensajes a medida que el script hace su trabajo.
- - prefijo = directorio
Establece el directorio de instalación para la arquitectura: archivos independientes
al directorio . El valor predeterminado suele ser / usr / local .
- - eprefix = directorio
Establece el directorio de instalación para los archivos dependientes de la arquitectura en
directorio . El valor predeterminado suele ser / usr / local .
- - habilitar - FUNCIÓN
Habilita una FUNCIÓN nombrada , que es específica del programa.
- - deshabilitar - FUNCIÓN
Desactiva una FUNCIÓN nombrada , que es específica del programa.
- - habilitar - depurar = ARG
Establece símbolos de depuración. ARG es sí , no o completo , con un valor predeterminado de no .
- - deshabilitar - depurar
Desactiva la salida de depuración.
- - con - PAQUETE [= ARG ]
Habilita el soporte para una biblioteca particular o herramienta externa, PACKAGE .
Por defecto, ARG es sí .
- - sin - PAQUETE
Desactiva la compatibilidad con una biblioteca en particular o una herramienta externa, PAQUETE ;
equivalente a - - con - PAQUETE = no .
Compilar e instalar programas desde la fuente
27

Página 70
28
Capítulo 1 Inicio del sistema y gestión avanzada del sistema
Cuando ejecuta el script de configuración , muestra una serie de líneas que resumen lo que
está haciendo. Estas líneas a menudo comienzan con la palabra verificación e informan el estado de
un cheque. Si el script descubre que le faltan algunos archivos de encabezado o software críticos
componente, terminará y mostrará un mensaje de error, como el siguiente:
comprobando Qt ... configure: error: Qt (> = Qt 3.0) (encabezados y
bibliotecas) no encontrada. ¡Compruebe su instalación!
Para obtener más detalles sobre este problema, consulte el final de [Link].
Este mensaje le dice lo que se está perdiendo que el programa requiere, pero puede ser
un poco críptico o incompleto. En muchos casos, puede resolver el problema cargando un alto -
herramienta de gestión de paquetes de nivel, como Synaptic para sistemas basados en Debian o Yumex en
Fedora o Red Hat, y buscando un paquete de desarrollo con el nombre de la herramienta que falta.
Por ejemplo, si ve el mensaje anterior, buscará los paquetes de desarrollo de Qt.
Los paquetes de desarrollo generalmente incluyen la biblioteca string - devel , - development o - en su
nombres. Instale cualquier paquete prometedor y vuelva a intentarlo.
Algunos programas utilizan otros métodos para configurar la compilación. Uno de esos métodos,
que es usado por el kernel de Linux, es escribir make config o alguna variante de este comando.
En el caso del kernel, este comando lanza una herramienta que le permite configurar varios
Opciones de tiempo de compilación. (El Capítulo 2 cubre la configuración y compilación del kernel en más
detalle.)
Algunos programas sugieren que edite un archivo llamado Makefile para personalizar el programa
a mano. Makefile es un archivo de configuración para el programa make , que controla el
proceso de compilación de software. Normalmente, si debe editar Makefile usted mismo, los cambios
requeridos son menores, como cambiar la ubicación de instalación o habilitar el soporte para uno
o dos bibliotecas o funciones en tiempo de compilación. La documentación generalmente describe cómo
realizar dichos cambios; sin embargo, algunos desarrolladores asumen que tiene una familiaridad básica con
programación. Si necesita ayuda con los términos técnicos o no comprende una descripción, intente
realizar una búsqueda en la Web sobre los términos relevantes.
El software que compila usted mismo (es decir, localmente ) generalmente se instala en / usr / local
y sus subdirectorios. Instalar software en otro lugar puede ser peligroso, ya que
sobrescriba fácilmente los archivos instalados por las herramientas de administración de paquetes de su distribución; o tal
posteriormente, las herramientas pueden reemplazar archivos de un programa compilado localmente. Generalmente es un
Es una buena idea verificar que el software esté configurado para instalar sus archivos en / usr / local .
Compilar el código fuente
Una vez que haya ejecutado el script de configuración y se haya completado sin errores, puede escribir make
para compilar el software. El software que no usa configure también se suele compilar
de la misma manera, aunque debe verificar la documentación para estar seguro. los
El proceso de compilación puede durar desde unos segundos hasta varias horas, según
en el tamaño del programa. Verá que aparecen líneas de estado en la pantalla durante este proceso.

Página 71
Dependiendo del paquete, estas líneas pueden ser los comandos de compilación individuales y
su salida o resúmenes. Si observa líneas que contienen la advertencia de cadena junto con
mensajes que suenan atemorizantes sobre problemas, no se preocupe; GCC genera advertencias
así cuando los programadores usan comandos de formas que pueden ser un poco arriesgadas o que pueden
no será compatible en el futuro. Tales advertencias rara vez indican problemas reales en el lanzamiento.
software. Sin embargo, si la salida creada por make incluye la palabra error y termina
poco después, esto indica un problema mucho más serio. Un error evita que GCC
compilar el software, por lo que no tiene sentido continuar con la instalación hasta que haya
encontró la fuente del problema.
Para investigar, desplácese hacia arriba hasta que encuentre el primer mensaje de error . Con frecuencia, uno
el error da como resultado otro, que da como resultado otro, y así sucesivamente. Es probable que corregir el último error
ser improductivo, pero corregir el primer error puede eliminar todos los errores posteriores. Compilar -
Los errores de tiempo en el software de lanzamiento a menudo se deben a que faltan archivos de encabezado u otros programas.
Idealmente, configure encontrará estos problemas, pero a veces no. Si el mensaje de error
menciona un archivo o comando que falta, intente hacer una búsqueda en la Web sobre el nombre o utilice su
el administrador de paquetes de la distribución para buscar un paquete con un nombre similar. Con un poco de suerte,
esto te llevará a una solución.
A veces, los programas de lanzamiento no se compilan debido a cambios en las herramientas de desarrollo:
GCC podría haber dejado de admitir una sintaxis particular que el programador usó, o
los cambios en los archivos de encabezado pueden requerir cambios en el programa. Si sabes lo suficiente sobre
programación, puede abordar estos problemas usted mismo. De lo contrario, deberá comunicarse con el
autor del programa o solicite la ayuda de alguien con experiencia en programación para resolver el problema
problema.
Instalación de software
Una vez que el programa haya terminado de compilarse, puede instalarlo. Normalmente, escribir make install
como root hará esto: el programa binario se copiará en una ubicación adecuada, como
/ usr / local / bin , y las páginas de manual del programa y los archivos de soporte también se copiarán a
ubicaciones razonables, generalmente en el árbol de directorios / usr / local . Si el programa es normal
programa de usuario, debería poder ejecutarlo escribiendo su nombre, tal como lo haría con un
programa instalado a través de un administrador de paquetes.
Algunos programas no proporcionan un destino de instalación para realizar , es decir, si escribe make
instalar , no ocurrirá nada útil. Para tales programas, debe copiar el programa
archivo manualmente. Es posible que tenga que copiar hombre páginas u otros archivos de soporte, también; consultar el
documentación del programa para obtener más detalles. Normalmente, escribiendo cp progname / usr / local / bin (para
copie el binario progname ) ya que root hará el trabajo; sin embargo, el programa de instalación no
el trabajo de copia y ajustará automáticamente la propiedad y los permisos de los archivos binarios. Mecanografía
instale progname / usr / local / bin como root copia progname a / usr / local / bin , cambiando
su propiedad al ID de usuario efectivo actual ( root ) y sus permisos a 0755. Tabla 1.5
resume varias opciones de instalación comunes . Consulte su página de manual para obtener información más avanzada.
opciones.
Compilar e instalar programas desde la fuente
29
Página 72
30
Capítulo 1 Inicio del sistema y gestión avanzada del sistema
Si el programa es un servidor u otra utilidad del sistema que debe iniciarse automáticamente,
deberá realizar pasos de configuración adicionales. Por ejemplo, es posible que deba crear
un script de inicio de SysV único, inicie el programa a través de una línea en /etc/[Link] o algún otro
script de inicio del sistema genérico, cree una entrada inetd o xinetd para el programa, o cree
una entrada en / etc / profile o algún otro script de inicio a nivel de usuario para iniciar el programa para
usuarios individuales. Consulte la documentación del programa si no está seguro de cómo proceder. Eso
puede incluir sugerencias o configuraciones de muestra que puede modificar para su sistema.
Después de instalar el software, puede escribir make clean para eliminar archivos
generados durante el proceso de compilación. Esto puede ahorrar espacio en disco, pero si
necesita reinstalar el software, deberá volver a compilarlo desde cero.
Por supuesto, puede eliminar completamente el directorio del código fuente para guardar
aún más espacio; sin embargo, hacerlo dificultará la desinstalación del
software, si decide hacerlo en el futuro.

Desinstalar o actualizar software


Si decide que no necesita el software después de todo o si decide instalarlo desde un
paquete binario para su distribución, debe desinstalarlo. Muchos paquetes fuente
TABLA 1.5 Opciones de instalación comunes
Opción
Efecto
- B o - - copia de seguridad
Crea una copia de seguridad de cada archivo de destino.
- g GRUPO o - - grupo = GRUPO
Cambia el grupo de archivos instalados a GROUP en lugar
que al ID de grupo actual.
- m MODO o - - modo = MODO
Cambia el modo de los archivos instalados a MODE .
- o PROPIETARIO o - - propietario = PROPIETARIO
Cambia el propietario de los archivos instalados a OWNER en lugar de
que al ID de usuario actual.
- s o - - tira
Tablas de símbolos de tiras; reduce el tamaño de un binario, pero hace
depurar más duro.
- T o - - no - target - directory Trata la ubicación de destino como un archivo en lugar de como un
directorio.
- v o - - verbosa
Muestra los nombres de todos los archivos y directorios tal y como están
siendo copiado.

Página 73
apoyar una desinstalación objetivo de hacer de modo que usted puede escribir marca de desinstalación como root en el
directorio de código fuente original para eliminar el software de la computadora.
Al escribir make uninstall, se eliminará el software, de forma muy similar a la
desinstalar la función de RPM o el administrador de paquetes Debian. La utilidad de hacer
aunque no mantiene una base de datos de paquetes; elimina ciegamente lo que sea
Los archivos se especifican en Makefile . Por lo tanto, si usa el Makefile de un
una versión del programa diferente a la que ha instalado, es posible que no
eliminar los archivos correctos. Si el Makefile está configurado para instalar el programa
fuera de / usr / local , incluso puede eliminar archivos que se instalaron a través de un
gerente de empaquetación.
Si el software no admite una operación de desinstalación , tendrá que eliminar el
archivos manualmente. Esto no debería ser demasiado tedioso para programas pequeños que instalan solo un puñado
de archivos, pero puede resultar difícil para programas más grandes. Afortunadamente, la mayoría de los grandes programas
apoyar el destino de desinstalación .
Para actualizar el software instalado desde la fuente utilizando otra distribución de fuente, es
generalmente es mejor compilar la nueva versión, desinstalar el software anterior y luego instalar
la nueva versión. Este procedimiento asegura que eliminará todos los archivos antiguos e instalará
los nuevos archivos relevantes. Asegúrese de hacer una copia de seguridad de los archivos de configuración y verifique que su
Sin embargo, la configuración es correcta después de instalar la nueva versión.
En el ejercicio 1.1, practicará la compilación e instalación de software desde el código fuente.
EJERCICIO 1.1
Compilación e instalación de software a partir del código fuente
Este ejercicio le brinda experiencia práctica con los procedimientos de compilación de software, utilizando
el editor de JED ( [Link] ) como ejemplo. Este editor es un pequeño editor
que proporciona características similares a las del paquete Emacs mucho más grande. Para compilar y
instale JED, siga estos pasos:
1. Como la mayoría de los programas de código abierto, JED está disponible como un binario precompilado para muchos
distribuciones. Escriba jed para ver si el programa está instalado; si es así, lanzará un modo de texto
editor que puede salir escribiendo Ctrl + X Ctrl + C. Si ya está instalado en su sistema,
es posible que desee desinstalarlo escribiendo rpm -e jed, dpkg -r jed o algún otro
comando específico de distribución como root .
2. Descargue el código fuente de [Link] ; o contra
Consulte la página web principal de JED para obtener una versión más reciente. Este ejercicio usa la versión JED
0.99-19 del archivo de código fuente [Link].bz2 como modelo.
3. Cambie a una ubicación conveniente en su directorio de inicio o a / usr / src y asegúrese de
tener permiso de escritura en este directorio. Si es necesario, utilice chmod como root o realice la
siguiendo los pasos como root .
Compilar e instalar programas desde la fuente
31

Página 74
32
Capítulo 1 Inicio del sistema y gestión avanzada del sistema
4. Escriba tar xvjf ~ / [Link].bz2 , ajustando la ruta al archivo tar de origen como
necesario. El resultado debería ser una lista de archivos extraídos en el subdirectorio jed-0.99-19 .
5. Cambie al subdirectorio jed-0.99-19 y examine su contenido. Consultar el
Archivos README e [Link] .
6. Como se indica en el archivo [Link] , use su administrador de paquetes para asegurarse de que
Se instalan bibliotecas de desarrollo de jerga . Es probable que se llamen slang-devel ,
libslang2-dev , o algo similar.
7.
Escriba ./configure para configurar la compilación para su entorno. Tenga en cuenta que INSTALAR
El archivo .unix especifica el uso de la opción --prefix = / usr / local , pero esta es la opción predeterminada y
por lo que es innecesario. Es posible que deba apuntar el script a las bibliotecas de jerga utilizando
--with-slang = / usr / include (o alguna otra ruta a slang.h ).
8. Escriba make clean para asegurarse de que se eliminen los archivos perdidos de los intentos de compilación anteriores.
9. Escriba make para construir el binario en modo texto.
10. Si lo desea, escriba make xjed para crear una versión mínimamente habilitada para X del programa.
11. Como root , escriba make install para instalar el programa.
12. Pruebe el programa utilizándolo para revisar un archivo de texto; por ejemplo, escribiendo jed [Link] .
Puede probar el binario xjed de forma similar. Si eliminó un paquete binario proporcionado
según su distribución en el paso # 1, es posible que deba escribir la ruta completa al binario,
como en / usr / local / bin / jed [Link] . Cuando cierre la sesión y vuelva a iniciarla, esto no
ya sea necesario, siempre que / usr / local / bin esté en su variable de entorno PATH .
13. JED no proporciona un destino de desinstalación en su Makefile , por lo que si desea eliminar el software
ware, debe hacerlo manualmente, eliminando el árbol de directorios / usr / local / jed y el
jed , jed-script y archivos binarios xjed de / usr / local / bin .
Si alguno de los pasos anteriores falla, tendrá que depurarlo, como se describe anteriormente en este
capítulo. Lo más probable es que pueda solucionar el problema instalando un software adecuado
paquete, como gcc o make .

Notificar a los usuarios sobre problemas relacionados


con el sistema
Las personas utilizan las computadoras, y las personas pueden molestarse si sus computadoras se apagan
deprimido o comportarse de manera extraña en momentos inesperados. Por lo tanto, debe saber cómo
para comunicar estos problemas a los usuarios de una computadora. A veces esta tarea puede ser
se logra configurando mensajes de inicio de sesión, pero otras veces debe enviar mensajes a los usuarios en
tiempo real.
Página 75
Configuración de mensajes de inicio de sesión
Cuando los usuarios inician sesión a través de un indicador de inicio de sesión en modo texto, ya sea en la consola o de forma remota,
el
la computadora muestra varios mensajes. El login: prompt en sí es uno de esos mensajes, pero
puede manipular algunos otros:
Mensajes de inicio de sesión local El archivo / etc / issue contiene un mensaje que se muestra sobre el
inicio de sesión: mensaje en una consola en modo texto. Normalmente, este mensaje identifica la computadora. Eso
puede contener variables que se reemplazan con el nombre de host de la computadora, la versión del kernel
número, la hora, etc., como se describe brevemente.
Mensajes de inicio de sesión de red El archivo /etc/[Link] es similar a / etc / issue , pero se mantiene
información que muestra el servidor Telnet justo antes de presentar el mensaje de inicio de sesión:
al cliente Telnet remoto. Este archivo no influye en los inicios de sesión a través de Secure Shell (SSH)
servidor, sin embargo.
Mensaje del día El mensaje del día (MOTD) es un mensaje que se almacena en / etc /
motd . Este archivo, si existe, normalmente contiene información que desea comunicar a los usuarios.
sobre los próximos eventos o cambios, como el tiempo de inactividad programado para actualizaciones del sistema o
cambios en las políticas de uso del sistema. Dado que los usuarios solo ven su contenido cuando inician sesión, no es
muy útil para notificar a los usuarios de eventos que ocurrirán en cuestión de minutos. La mayor parte del texto -
Los métodos de inicio de sesión en modo, incluidos los inicios de sesión de la consola, Telnet y SSH, muestran el MOTD. GUI
Sin embargo, los métodos de inicio de sesión normalmente no lo muestran.
Fortunas A algunos administradores de sistemas les gusta darle vida a la experiencia de inicio de sesión con un
diciendo. Puede hacer esto con la ayuda del programa Fortune . Agregar una llamada a este programa
al archivo / etc / bashrc para dar a los usuarios un nuevo dicho cada día. Deberías asegurarte de llamar
fortuna solo dentro de una cláusula if , como se muestra en el Listado 1.3; una llamada directa será
interferir con algunos programas, como scp . Tenga en cuenta que el programa Fortune no se envía
con todas las distribuciones.
Listado 1.3: Código para llamar a la fortuna desde / etc / bashrc
if [$ TERM! = “tonto”]; luego
fortuna
fi
La base de datos utilizada por la fortuna incluye dichos que algunas personas pueden
encontrar ofensivo. Dichos que tienen más probabilidades de ser considerados ofensivos
Sin embargo, no se generan de forma predeterminada; aparecen solo si usa - a o
- o opción al programa. Debe tener mucho cuidado al usar estos
opciones a la fortuna , no sea que provoque la ira de (o incluso una demanda de) un
empleador, empleado, cliente u otro espectador de la fortuna.
Los archivos / etc / issue y /etc/[Link] admiten variables que puede utilizar para
sustituir información que puede variar de un inicio de sesión a otro o de un sistema
Notificar a los usuarios sobre problemas relacionados con el sistema
33

Página 76
34
Capítulo 1 Inicio del sistema y gestión avanzada del sistema
a otro (lo que le permite utilizar un archivo en varios sistemas). Estos incluyen \ n (el
nombre de host de la computadora), \ r (el número de versión del kernel), \ s (el nombre del sistema operativo - Linux ), \ m (el
plataforma, como x86 ) y \ t (la hora a la que se imprime el mensaje).
Asegúrese de no incluir demasiada información en los mensajes del sistema, especialmente
en / etc / issue y /etc/[Link] . Publicidad demasiado sobre su
sistema, como el número de versión del kernel y la plataforma, puede proporcionar
información a los atacantes de la que pueden abusar para acceder a su sistema.
Un problema con todos estos métodos de comunicación es que todos están orientados a
usuarios en modo texto. Si su sistema admite usuarios locales o remotos basados en X, estos métodos
no le ayudará a comunicarse con ellos. Lo mismo ocurre con los usuarios de servidores, como Web
servidores o servidores de correo. Por supuesto, siempre puede emplear una comunicación más genérica.
técnicas, como correo electrónico, herramientas de mensajería instantánea, tableros de anuncios, notas en papel e incluso
boca a boca.
Envío de mensajes a los usuarios en tiempo real
Dos herramientas que le permiten enviar mensajes a los usuarios en tiempo real, en lugar de cuando inician sesión
en la computadora, son:
Alertas de apagado Un tipo de comunicación de usuario particularmente importante es el apagado
alerta. Puede pasar un mensaje a todos los usuarios del modo de texto cuando apaga el sistema a través de
el comando de apagado , como se describió anteriormente en “Cambio de niveles de ejecución con apagado . "
Específicamente, el texto después de todos los demás parámetros se trata como un mensaje de alerta de apagado. por
ejemplo, apagado - h +10 "El sistema se apaga por mantenimiento" muestra el mensaje Sistema
bajando para mantenimiento a todos los usuarios con una frecuencia creciente hasta que el sistema se apaga
abajo.
Escribir en todos los terminales El comando wall de Unix y Linux escribe un mensaje
terminales activos, es decir, a todos los inicios de sesión en modo texto. El comando de pared puede ser invocado por
cualquier usuario, pero su uso exacto difiere de una distribución a otra. A veces, escribes
el nombre del comando seguido de un mensaje, como en el muro Acceso a la red bajando a las 5:00
para mostrar ese mensaje en todos los terminales de los usuarios. Otras versiones de pared requieren que coloques
el mensaje en un archivo y luego pasarlo al programa o aceptar la entrada de la entrada estándar
en lugar de en la línea de comandos. Para usar esta última forma, debe escribir pared y luego escribir el
mensaje seguido de Ctrl + D; o puede poner el mensaje en un archivo y pasar el nombre del archivo
al programa. Los usuarios pueden bloquear los mensajes del muro utilizando el comando mesg , como en mesg n para
bloquear mensajes o mesg y para volver a habilitar mensajes.
Al igual que con los mensajes de inicio de sesión, estos mensajes normalmente se muestran solo a los usuarios de texto:
modo inicios de sesión o shells. Un usuario de GUI que no tenga un shell en modo texto abierto no verá
tales mensajes.

Página 77
Resumen
Cuando una computadora se enciende por primera vez, pasa por una serie de verificaciones específicas del sistema
y luego pasa el control al cargador de arranque, que a su vez carga el kernel del sistema operativo. Lo mas
El cargador de arranque común en los sistemas Linux es GRUB, que se controla a través de [Link] ,
[Link] o [Link] en el directorio / boot / grub . Puedes editar la configuración
archivo, o scripts que lo vuelven a crear cuando se ejecutan otros comandos, para establecer cierto tiempo de arranque
opciones, agregue un nuevo kernel al sistema o realice otros cambios durante el arranque. Una vez que el kernel
ha tomado el control del sistema, ejecuta el programa init , que lee su configuración
archivo y utiliza una serie de scripts para iniciar procesos de inicio de sesión, servidores y otros sistemas básicos
servicios. Tradicionalmente, Linux ha utilizado un sistema de inicio SysV, que utiliza enlaces simbólicos
en directorios específicos del nivel de ejecución para controlar qué servicios se inician en cada nivel de ejecución.
Recientemente, sin embargo, el sistema Upstart se ha vuelto popular. Suplementos advenedizos (y pueden
teóricamente reemplazar completamente) los directorios específicos del nivel de ejecución con Upstart - específicos
scripts de inicio que contienen información sobre qué condiciones desencadenan el lanzamiento
o terminación de servicios específicos.
Los programas lanzados por los sistemas de inicio o los usuarios se pueden instalar por paquete
herramientas de gestión o compilando el software localmente. Pocas reglas sobre este último
aplicar con certeza; El software se puede escribir en una variedad de idiomas y puede ser
preparado e instalado de diversas formas. Normalmente, sin embargo, el software debe
configurado para su sistema particular y luego instalado. Ambas tareas son realizadas por
scripts especiales o por un archivo llamado Makefile , que es utilizado por el programa make .
Debe esforzarse por mantener informados a los usuarios de los cambios en el software del sistema o de
cierres inminentes del sistema u otras acciones que puedan afectar su capacidad para utilizar el
computadora. Varias herramientas, como opciones para apagar , / etc / issue , / etc / motd y wall ,
se puede utilizar para ayudarlo a comunicarse con los usuarios. Porque se utilizan muchos sistemas modernos
principalmente a través de una GUI, sin embargo, es posible que deba emplear otros métodos, como el correo electrónico o un
teléfono, para alertar a los usuarios antes de realizar cambios disruptivos en el sistema.

Examen esencial
Describe el proceso de arranque, en resumen. Cuando una computadora se enciende por primera vez, lee
instrucciones del firmware, que inicia una serie de autocomprobaciones y acciones adicionales para
ser tomado. Una de estas acciones es cargar y ejecutar código desde el disco duro de la computadora.
u otro hardware de almacenamiento. Este código, el cargador de arranque , dirige aún más el proceso de arranque
cargando el kernel del sistema operativo, que ejecuta programas normales del sistema operativo (comenzando con init , en el
caso de Linux). Estos programas muestran la gama habitual de software del sistema operativo, culminando en una
indicador de inicio de sesión o un sistema funcional.
Explique cómo un usuario puede proporcionar parámetros de tiempo de arranque a Linux. El Gran Unificado
Bootloader (GRUB) utiliza archivos de configuración para controlar las etapas iniciales del proceso de arranque.
Examen esencial
35

Página 78
36
Capítulo 1 Inicio del sistema y gestión avanzada del sistema
Estos archivos proporcionan opciones predeterminadas para el sistema; sin embargo, al seleccionar un GRUB
opción de menú y luego presionando la tecla E, un usuario puede editar las opciones predeterminadas en un
base única.
Resuma las diferencias entre SysV y Upstart. El tradicional System V (SysV)
La secuencia de comandos de inicio se basa en un puñado de niveles de ejecución , cada uno de los cuales incluye una serie de
servicios.
que se puede iniciar mediante scripts de inicio fijos almacenados en directorios específicos. Upstart proporciona
compatibilidad con versiones anteriores para los scripts de inicio de SysV, pero Upstart: los scripts de inicio nativos permiten
iniciar o detener servicios basados en una variedad más amplia de condiciones, que pueden ser útiles para
diseñar sistemas para utilizar hardware moderno de conexión en caliente.
Describe cómo cambiar los niveles de ejecución en Linux. El nivel de ejecución predeterminado lo establece la línea de
identificación
en el archivo / etc / inittab . (Este archivo suele estar ausente en los sistemas basados en Upstart, pero Upstart
respeta esta línea / etc / inittab , si está presente.) Puede cambiar los niveles de ejecución temporalmente por
pasando el número de nivel de ejecución a telinit o init , como en telinit 3 para cambiar al nivel de ejecución 3.
Explique cómo cambiar qué servicios se ejecutan en un nivel de ejecución dado en un sistema SysV. Guiones
(o, más comúnmente, enlaces a scripts) en /etc/rc.d/rc ? .d , /etc/init.d/rc ? .d , / etc / rc ? .d ,
o una ubicación similar, ¿ dónde ? es un número de nivel de ejecución, determine qué servicios se inician o
detenido en cualquier nivel de ejecución. Los scripts en estos directorios deben cambiarse de nombre para comenzar con K
para detenerlos en el nivel de ejecución o comenzar con S para iniciarlos. Herramientas como update - rc.d y
chkconfig puede ayudar a simplificar esta tarea.
Proporcione una descripción general del proceso de instalación de software desde el código fuente. Código fuente
los programas deben descargarse (normalmente en forma de tarball) y extraerse. Más
Los programas proporcionan un script de configuración , aunque algunos no requieren configuración o deben ser
configurado de alguna otra manera. Escribir make normalmente compila el software y escribir
make config como root lo instala. Hay suficiente variabilidad para que la lectura del programa
Se recomienda la documentación previa a la configuración.
Describir directorios importantes para software compilado localmente. El directorio / usr / src
árbol es la ubicación habitual del código fuente que se ha compilado o se está compilando y
instalado en el sistema, y cada paquete tiene su propio directorio, como / usr / src /
samba - 3.5.4 para Samba versión 3.5.4. Los archivos de trabajo y las copias de los binarios pueden
aquí también, aunque estos archivos a menudo se eliminan para ahorrar espacio después de que el software
instalado. Los binarios generalmente se almacenan en el directorio / usr / local ; este directorio contiene
subdirectorios funcionales, como / usr / local / bin para binarios y / usr / local / lib para
Bibliotecas.
Resuma las herramientas utilizadas para comunicarse con los usuarios. El problema / etc / y / etc /
Los archivos .net contienen texto que se muestra a los usuarios en modo texto local y remoto, respectivamente, como
parte del indicador de inicio de sesión, mientras que / etc / motd contiene un mensaje que se muestra después de una
inicio de sesión en modo texto. El comando de apagado incluye una opción para pasar un mensaje a los usuarios
explicando un cierre inminente del sistema, y el muro le permite enviar mensajes similares
incluso si el sistema no está a punto de apagarse.

Página 79
Preguntas de revisión
1. ¿Cuál es el primer programa que ejecuta el kernel de Linux una vez que se está ejecutando el kernel mismo, suponiendo
un procedimiento de inicio normal de Linux?
A. comenzar
B. startx
C. Inicio
D. init
2. Ha cambiado accidentalmente el nombre del archivo del kernel de su sistema y ha reiniciado la computadora, con
el resultado de que GRUB no iniciará la computadora. Si recuerdas el nombre que usaste cuando
cambiando el nombre del archivo del kernel, ¿cómo puede iniciar la computadora de una manera simple?
A. Seleccione la entrada del kernel que se comporta mal en GRUB, presione la tecla D para que detecte su
kernels y seleccione el correcto de la lista.
B. Seleccione la entrada del kernel que no funciona correctamente en GRUB, presione la tecla E y edite el nombre del kernel.
C. Mantenga presionada la tecla Shift mientras arranca para ingresar a la Consola de recuperación y seleccione
kernel correcto dentro de esa herramienta.
D. No puedes; Este error es lo suficientemente grave como para que la única medida correctiva sea reinstalar
Linux.
3. ¿Cómo puede arrancar Linux directamente en modo de usuario único?
A. En GRUB, seleccione la imagen del kernel que desea arrancar, presione E y agregue 1 o single a
la línea del kernel o linux.
B. En GRUB, seleccione la imagen del kernel que desea arrancar, presione la tecla 1 y confirme su
intenciones respondiendo sí a la pregunta.
[Link] GRUB, escriba single at the boot: prompt para iniciar el kernel mientras le pasa el
parámetro único.
D. En GRUB, escriba boot - single - user; cierto; boot - ahora para arrancar el kernel predeterminado en single -
modo de usuario.
4. ¿En qué archivo se especifica el nivel de ejecución inicial del sistema en un sistema SysV?
A. / etc / fstab
B. /etc/init.d/runlevel
C. / etc / inittab
D. / etc / nivel de ejecución
Preguntas de revisión
37

Página 80
38
Capítulo 1 Inicio del sistema y gestión avanzada del sistema
5. ¿Cómo se puede ingresar al modo de recuperación interactivo de GRUB?
A. Presione la tecla I en el menú principal de GRUB.
B. Presione la tecla R en el menú principal de GRUB.
C. Presione la tecla M en el menú principal de GRUB.
D. Presione la tecla C en el menú principal de GRUB.
6. ¿Qué archivo editaría para agregar un sistema operativo inusual a un menú de inicio de GRUB 2?
A. / boot / grub / personalizado
B. /boot/grub/[Link]
C. /etc/grub.d/40_custom
D. /boot/grub/[Link]
7.
La siguiente línea está presente en el archivo / etc / inittab de una computadora Linux. Que puedes decir
sobre eso?
id: 3: initdefault:
A. La computadora arranca en el nivel de ejecución 3.
B. La computadora se inicia en modo texto (X no se ejecuta).
C. La computadora se apaga tan pronto como se inicia.
D. La computadora usa el sistema de inicio Upstart.
8. ¿Qué podría encontrar en el directorio /etc/init.d?
A. Guiones de inicio advenedizos
B. Scripts de inicio de SysV
C. Scripts de inicio de sesión de usuario
D. Scripts de inicio de sesión del sistema
9. ¿Dónde puede encontrar enlaces simbólicos específicos del nivel de ejecución a los scripts de inicio de SysV? (Elegir todos
eso aplica.)
A. / etc / inittab
B. / etc / init
C. /etc/init.d/rc ? .re
D. / etc / rc ? .re
10. Quieres comprobar la configuración de un servidor llamado waiter en un sistema Fedora, para ver en
qué niveles de ejecución ejecuta. ¿Qué podría escribir para hacer esto?
A. chkconfig - - list waiter
B. info camarero
C. ps ax | camarero grep
D. camarero de nivel de carrera

Página 81
11. ¿Cuál de los siguientes podría usar razonablemente como nivel de ejecución predeterminado? (Elige todo eso
aplicar.)
A. 0
B. 2
C. 3
D. 5
12. Un administrador de un sistema Debian escribe el siguiente comando como root. Que sera
¿Cuál es el efecto, suponiendo que se haya instalado el software adecuado?
update-rc.d habilitar deshabilitar 23
A. El servicio de desactivación se habilitará en los niveles de ejecución 2 y 3.
B. El servicio de desactivación se habilitará excepto en los niveles de ejecución 2 y 3.
C. El servicio de activación se desactivará excepto en los niveles de ejecución 2 y 3.
D. El servicio de habilitación se desactivará en los niveles de ejecución 2 y 3.
13. Se ha hecho cargo de la administración de un sistema Fedora Linux que ha estado funcionando durante más
de un año. Descubre que el programa dostuff se instaló desde el código fuente y
reside en / usr / local / bin y directorios relacionados. Quiere desinstalar este programa y
instale una versión más reciente de un paquete binario precompilado. ¿Dónde está la mejor ubicación para
¿Debe buscar el directorio del código fuente original para poder usar su función de desinstalación?
A. El directorio / usr / portage / distfiles
B. El directorio / var / lib / rpm
[Link] subdirectorio de / usr / src, probablemente / usr / src / dostuff o un nombre relacionado
D. El directorio / opt / dostuff o un directorio con un nombre relacionado.
14. Una vez que haya localizado el directorio del código fuente original para un programa (dostuff) que fue
previamente compilado e instalado localmente, cuál es una forma común y efectiva de desinstalar
¿El software?
A. Escriba rm - r / usr / local / bin como root.
B. Escriba rm - r / usr / src / dostuff , donde dostuff es el directorio fuente original.
C. Escriba rpm - e dostuff como root en el directorio fuente original.
D. Escriba make uninstall as root en el directorio de origen original.
15. Quiere compilar e instalar un programa desde el código fuente en un sistema Debian. Tienes
ubicado en la página de inicio del programa, donde se enumeran varios archivos en la sección de descargas.
¿Cuál de estos archivos es más probable que sea un tarball de código fuente, según su nombre de archivo?
A. theprogram - [Link]
B. el programa - [Link]
C. theprogram - [Link]
D. theprogram - [Link]
Preguntas de revisión
39

Página 82
40
Capítulo 1 Inicio del sistema y gestión avanzada del sistema
16. ¿Cuál de las siguientes opciones describe la secuencia más común para instalar
software del código fuente?
A. Desembale el tarball; escriba make install ; escriba ./configure ; tipo hacer limpio como raíz.
B. Desembale el tarball; escriba ./configure ; tipo hacer ; escriba make install como root.
C. Desembale el tarball; tipo hacer ; escriba make cloneconfig ; escriba make desinstalar como root.
D. Desempacar tarball; tipo hacer ; escriba make install ; escriba make desinstalar como root.
17. Desea compilar software a partir del código fuente e instalarlo en el árbol del directorio / opt
(un lugar inusual). El código fuente incluye un script de configuración. ¿Cómo podrías ejecutar esto?
guión para lograr este objetivo?
A. ./configure - - prefijo = / opt
B. ./configure - - instalar = / opt
C. ./configure - - dir = / opt
D. ./configure - - goto = / opt
18. El Makefile de un paquete fuente no incluye un destino de instalación para realizar. Escribes make to
cree un archivo binario llamado theprog. ¿Cómo podría instalar el software, asumiendo que le importa?
sólo sobre la instalación de este programa? (Elija todas las que correspondan).
A. cp theprog / usr / local / bin
B. rpm - i theprog
C. instalar theprog / usr / local / bin
D. hacer instalar el programa
19. Desea enviar un mensaje a los posibles usuarios de Telnet de que su sistema es para uso oficial.
por empleados de su empresa. ¿Qué archivo editaría para entregar este mensaje antes
Los usuarios de Telnet ven un inicio de sesión: ¿mensaje?
A. /etc/[Link]
B. / etc / profile
C. /etc/[Link]
D. / etc / problema
20. Al revisar archivos en / etc, encontrará que / etc / motd está completamente vacío. Que hace
¿media?
R. El sistema no mostrará un mensaje del día después de que los usuarios inicien sesión.
B. La documentación temporal propia de Morton no está instalada en el sistema.
C. El nombre del archivo [Link] se ha dañado y su contenido se ha perdido.
D. Los usuarios no verán aparecer aforismos ingeniosos en la pantalla después de iniciar sesión.

Página 83
Respuestas a las preguntas de repaso
1. D. Por defecto, el kernel lanza el programa / sbin / init como su primer proceso, como opción D
especifica. Este programa maneja el resto del proceso de inicio del sistema, incluido el inicio
Scripts de inicio SysV o Upstart. Las opciones A, comenzar y C, inicio, son programas ficticios.
Startx de la opción B es un script de usuario que se utiliza para iniciar el servidor X después de un inicio de sesión en modo texto;
no está involucrado en el proceso de inicio del sistema.
2. B. GRUB le permite editar sus entradas una sola vez seleccionándolas y presionando
la tecla E, como se especifica en la opción B. Las opciones A y C describen procedimientos ficticios.
(Aunque Windows proporciona una herramienta llamada Consola de recuperación, Linux no).
la opción B es correcta, la opción D no puede ser - aunque, por supuesto, volver a instalar Linux sería arreglar
el problema, pero difícilmente de una manera simple.
3. A. La opción A describe un método para arrancar en modo de usuario único. (También es posible
cree una entrada GRUB permanente para el modo de usuario único que puede seleccionar de forma más directa).
Las opciones B, C y D describen acciones ficticias que no tendrían ningún efecto. (Opción C
describe un indicador boot:, que es una característica del antiguo cargador de Linux, LILO, no de GRUB).
4. C. El / etc / inittab especifica el nivel de ejecución inicial en su línea de identificación, como se indica en la opción C.
El archivo / etc / fstab de la opción A contiene información sobre los sistemas de archivos y su montaje.
puntos. Los archivos /etc/init.d/runlevel y / etc / runlevel de las opciones B y D son
ambos ficticios.
5. D. Al presionar la tecla C se ingresa al modo interactivo de GRUB, como lo especifica la opción D. El otro
las opciones no tienen este efecto.
6. C. Cuando un sistema usa GRUB 2, se anima a los administradores del sistema a editar / etc / grub
.d / 40_custom para agregar configuraciones GRUB personalizadas para kernels compilados localmente o inusuales
Sistemas operativos. Después de realizar dicho cambio, debe escribir update - grub para actualizar la ejecución de GRUB -
archivo de configuración de tiempo, /boot/grub/[Link]. La opción A es un archivo ficticio. Opciones B y
D son dos nombres para el archivo de configuración de GRUB Legacy; editarlos no tiene ningún efecto en
GRUB 2.
7.
A. La línea de identificación en / etc / inittab especifica el nivel de ejecución predeterminado, que en este ejemplo es 3,
como se especifica en la opción A. Aunque el nivel de ejecución 3 es un modo de texto, solo el nivel de ejecución en Red Hat y
distribuciones relacionadas, como especifica la opción B, esto no es cierto para todas las distribuciones; Debian, Ubuntu,
Gentoo y otros controlan el inicio de X de formas distintas al nivel de ejecución predeterminado. Así,
la opción B no es una respuesta correcta. La opción C describe el efecto de establecer el nivel de ejecución predeterminado
a 0, no a 3, por lo que es incorrecto. El archivo / etc / inittab es una parte estándar del inicio de SysV
system, y está presente en algunos sistemas basados en Upstart. Por tanto, la presencia de este archivo, o la
presencia de la línea especificada en este archivo, no es un diagnóstico de un sistema basado en Upstart, y
la opción D es incorrecta.
8. B. El directorio /etc/init.d contiene scripts de inicio de SysV en muchos sistemas Linux, como opción
B especifica. Los scripts de inicio advenedizos residen en / etc / init o /etc/event.d, por lo que la opción A es
incorrecto. Los scripts de inicio de sesión de usuario se almacenan en los directorios de inicio de los usuarios con varios nombres, por lo que
la opción C es incorrecta. Los nombres de inicio de sesión del sistema residen en / etc o en sus subdirectorios, generalmente bajo
nombres relacionados con el shell, pero no en /etc/init.d, por lo que la opción D es incorrecta.
Respuestas a las preguntas de repaso
41

Página 84
42
Capítulo 1 Inicio del sistema y gestión avanzada del sistema
9. C, D. Las opciones C y D especifican directorios donde enlaces simbólicos específicos del nivel de ejecución a
Los scripts de inicio de SysV pueden residir (el ? Es un sustituto de un número de nivel de ejecución), dependiendo de
la distribución en uso. El archivo / etc / inittab es el archivo de configuración para init en SysV
sistema de inicio, pero no contiene enlaces simbólicos, por lo que la opción A es incorrecta. El / etc / init
El directorio contiene scripts Upstart en sistemas basados en Upstart, no scripts o enlaces de inicio SysV
para ellos, por lo que la opción B es incorrecta.
10. A. El comando chkconfig muestra información o modifica el estado de los servicios
iniciado por scripts de inicio de SysV. La opción - - list muestra el estado de un servicio por el
nombre especificado, por lo que la opción A hace lo que pide la pregunta. El comando info es un sistema
herramienta de documentación; la opción B muestra la página de información, si está presente, para el camarero
comando, que no es lo que pide la pregunta. La opción C muestra la información del proceso en
cualquier proceso llamado waiter o que incluya la cadena waiter en la línea de comando. Esta
no revelará en qué niveles de ejecución se ejecutan estos procesos, por lo que la opción C es incorrecta. El nivel de ejecución
El comando muestra el nivel de ejecución actual y anterior, pero no le dirá en qué
niveles de ejecución se ejecuta un programa en particular, por lo que la opción D es incorrecta.
11. B, C, D. Los niveles de ejecución 2, 3 y 5 son todos niveles de ejecución predeterminados razonables, porque todos
corresponden a los modos de trabajo multiusuario. Debian y las distribuciones relacionadas generalmente usan
nivel de ejecución 2 como predeterminado, y los niveles de ejecución 3 y 5 se utilizan generalmente como valores predeterminados sin y
con X ejecutándose, respectivamente, en Red Hat y distribuciones relacionadas. El nivel de ejecución 0 no es un
valor predeterminado razonable, ya que el nivel de ejecución 0 corresponde al apagado del sistema; si lo configura como el
predeterminado, el sistema se apagará tan pronto como se inicie. Por tanto, la opción A no es correcta.
12. D. La utilidad update-rc.d afecta los niveles de ejecución en los que se ejecutan los servicios. Se necesita un servicio
nombre, una acción y un nivel de ejecución o lista de niveles de ejecución como argumentos. Por lo tanto, enable es un servicio
name, aunque confuso, y disable es un comando para desactivar el servicio. Esta
El comando se aplica a los niveles de ejecución 2 y 3. La opción D describe este efecto, y el resto
las opciones no.
13. C. El código fuente que se compila localmente se extrae tradicionalmente a / usr / src,
en un subdirectorio con el nombre del paquete que se instalará. Por tanto, la opción C es correcta,
aunque no hay garantía de que se encuentre el directorio relevante, es posible
el administrador anterior eliminó los archivos o utilizó una ubicación no estándar para compilar
ellos. La opción A describe una ubicación de almacenamiento temporal para los archivos comprimidos de origen en un Gentoo
Sistema Linux, pero no es una ubicación probable para un directorio fuente en un sistema Fedora, así que
esta opción es incorrecta. RPM usa el directorio / var / lib / rpm para almacenar su paquete
base de datos y archivos relacionados, pero no es una ubicación probable para que un administrador extraiga
código fuente para la compilación local, por lo que la opción B es incorrecta. Binarios que se distribuyen en
Los formularios tarball a veces se instalan en / opt, pero esta no es una ubicación estándar para el código fuente.
código, por lo que la opción D es incorrecta.
14. D. Muchos programas tienen un objetivo de desinstalación para realizar, lo que significa que si lo hace como opción D
sugiere, se desinstalará el software. No se garantiza que esta acción funcione, pero es un
enfoque común, como sugiere la pregunta. La opción A es incorrecta porque eliminará cualquier
otros binarios no relacionados, perderá cualquier archivo no binario (como páginas de manual), y podría
ni siquiera desinstale el binario, si se instaló en una ubicación no estándar. La opción B
eliminar el directorio del código fuente, pero a menos que el programa se haya ejecutado directamente desde esa ubicación

Página 85
(una configuración inusual), no eliminará el programa binario instalado, por lo que esta opción es
incorrecto. La opción C es incorrecta porque es una forma de desinstalar un paquete instalado a través del
Administrador de paquetes RPM (RPM), no desde un archivo tar de origen.
15. C. Tarballs son archivos archivados con tar y, frecuentemente, comprimidos con gzip o bzip2.
Por lo general, tienen nombres de archivo que terminan en .tgz, .[Link], .tbz, .tbz2 o .tar.bz2. Solamente
la opción C describe dicho archivo. Aunque el nombre del archivo no contiene una pista de que contiene
código fuente, esto no es infrecuente para los archivos tar de código fuente de Unix y Linux. .Pkg de la opción A
La extensión del nombre de archivo lo identifica como un probable archivo de paquete binario de Mac OS X, no como una fuente.
tarball, por lo que la opción A es incorrecta. Una extensión de nombre de archivo .zip identifica un archivo PkZip.
Aunque estos archivos son comparables a los tarballs en características, técnicamente no son tarballs.
Estos archivos se utilizan con más frecuencia en el mundo de Windows, por lo que es probable que la opción B
contiene un binario de Windows. Incluso si contiene código fuente, su naturaleza no tarball significa
que esta opción es incorrecta. La opción D toma la forma de un archivo RPM de origen. Aunque tal
Los archivos contienen código fuente, no son archivos comprimidos fuente, como especifica la pregunta, así que la opción D
Es incorrecto.
16. B. La opción B proporciona una descripción correcta, aunque simplificada, de cómo instalar muchas fuentes
paquetes de código. Es probable que la opción A no se compile correctamente, ya que el comando make install
precede ./configure. (Podría funcionar si el software no incluye un script de configuración,
pero la mayoría del software de código abierto utiliza este tipo de script.) La opción C no generará software
instalación, ya que no hay ninguna llamada para realizar la instalación u otra instalación de software
comandos. La opción D puede instalar el software, pero el comando make uninstall
desinstálelo inmediatamente.
17. A. La opción de prefijo - - para un script de configuración generalmente establece la base de la instalación
árbol de directorio. En este ejemplo, los archivos binarios probablemente irán en / opt / bin, las bibliotecas en / opt /
lib y así sucesivamente. Las opciones - - install, - - dir y - - goto son todas ficticias.
18. A, C. Copiar el programa compilado con cp, como en la opción A, instalará el software,
satisfaciendo así la pregunta; sin embargo, la propiedad y los permisos del archivo de programa
puede no ser óptimo. El programa de instalación, utilizado como en la opción C, cambia de propiedad y
permisos a medida que se copia el archivo, por lo que es una respuesta superior a la pregunta, pero tanto A como
C sigue siendo correcto. El comando rpm en la opción B intentará leer el programa como un RPM.
archivar e instalar su contenido; sin embargo, dado que theprog es un archivo de programa binario de Linux,
no funcionará y la opción B fallará. La opción D no funcionará porque la pregunta especificó
que el Makefile no incluye un destino de instalación, por lo que escribir make install (incluso con
el parámetro adicional theprog) no funcionará.
19. C. El archivo /etc/[Link] contiene texto que envía el servidor Telnet al control remoto.
Cliente Telnet antes de que Telnet envíe el inicio de sesión: indicador: exactamente cuál es la pregunta
requiere. No hay un archivo de configuración estándar /etc/[Link], y / etc / profile es
un archivo de configuración para el shell bash, que no ayudará a lograr los objetivos de la pregunta. los
El archivo / etc / issue es similar a /etc/[Link], pero controla el mensaje que se muestra
en la consola en modo texto local.
Respuestas a las preguntas de repaso
43

Página 86
44
Capítulo 1 Inicio del sistema y gestión avanzada del sistema
20. A. El archivo / etc / motd contiene el mensaje del día, que se muestra después de que los usuarios inician sesión.
utilizando herramientas en modo texto como consolas en modo texto o SSH. Un archivo / etc / motd vacío simplemente
significa que no aparecerá dicho mensaje, como describe la opción A. No existe tal cosa como
Documentación temporal propia de Morton, mencionada en la opción B. No existe un estándar
Archivo /etc/[Link], como se describe en la opción [Link] aforismos ingeniosos son creados por la fortuna
program, que normalmente se llama de forma que no involucre / etc / motd. Aunque ellos
puede que no se muestre, como sugiere la opción D, no hay ningún vínculo entre esto y el vacío
archivo / etc / motd; las fortunas se habilitan o inhabilitan de otras formas.

Página 87

Kernel de Linux
Configuración
EL SIGUIENTE PROFESIONAL DE LINUX
LOS OBJETIVOS DEL INSTITUTO ESTÁN CUBIERTOS EN
ESTE CAPÍTULO:
201.1 Componentes del grano (peso: 2)
201.2 Compilar un kernel (peso: 2)
201.3 Parchear un grano (peso: 1)
201.4 Personalice, compile e instale un kernel personalizado y
módulos de kernel (peso: 2)
201.5 Administrar / consultar el kernel y los módulos del kernel en
tiempo de ejecución (peso: 3)

Capítulo

2
Página 88
Los sistemas operativos modernos se construyen en capas, a partir de
el kernel : una pieza de software que sirve como guardián
entre el hardware y otro software, que reparte
memoria y tiempo de CPU, que administra los sistemas de archivos y el acceso a la red, y que de lo contrario
realiza tareas críticas de bajo nivel. En una computadora con Linux, el kernel se conoce como Linux :
técnicamente, esa palabra se aplica solo al kernel. Todo lo demás que puedas considerar
ser parte de Linux, como bash , el sistema X Window o el servidor de archivos Samba, está en
De hecho, técnicamente no forma parte de Linux. La mayoría de estas herramientas, incluidas las tres mencionadas, son
disponible en muchos otros sistemas operativos, como FreeBSD y Solaris.
Debido a que el kernel maneja hardware de bajo nivel y otras tareas críticas, su uso y
La configuración es inusualmente importante. Este capítulo cubre estas tareas, comenzando con
obtener e instalar kernels precompilados actualizados. La naturaleza de código abierto de Linux permite
que compile su propio kernel a partir del código fuente. Esta tarea es similar a compilar otros
binarios de los programas, como se describe en el Capítulo 1, “Inicio del sistema y sistema avanzado
Administración " ; sin embargo, el kernel es un software lo suficientemente complejo, con suficiente
opciones, que merece una consideración especial. Este capítulo concluye con una mirada al kernel
módulos : partes del kernel que se pueden cargar y descargar en un sistema en ejecución. Muchos
Los controladores de hardware de Linux toman la forma de módulos del kernel. La gestión de módulos le permite
para ajustar la forma en que Linux trata su hardware y la disponibilidad de otras características de nivel de kernel,
como sistemas de archivos.

Entendiendo el Kernel
La mayoría de los sistemas Linux funcionan bien con el kernel binario predeterminado proporcionado por la distribución
mantenedor. Sin embargo, incluso al utilizar un kernel de este tipo, debe comprender ciertos
características, como si está utilizando un núcleo estable o de desarrollo, qué controladores y
otras características que proporciona un kernel en particular, y cómo se llama el archivo del kernel.
Obtener e instalar un kernel
El sitio de inicio de los kernels de Linux es Linux Kernel Archives ( [Link] );
sin embargo, si está utilizando un kernel precompilado proporcionado con su distribución, es probable
lo obtuviste con el medio de instalación de tu distribución o descargándolo
desde el sitio de paquetes de su distribución utilizando APT, YUM o algún otro paquete
herramienta de mantenimiento.

Página 89
De cualquier manera, los kernels de Linux tienen tres o cuatro números separados por puntos, como en 2.6.35 o
[Link]. En el pasado, los núcleos se presentaban en dos formas: estable e inestable (o en desarrollo). Estable
Los núcleos estaban destinados a ser utilizables para el trabajo diario en el servidor de producción y el escritorio.
sistemas, mientras que los núcleos inestables contenían código experimental para soportar nuevo hardware o
implementar nuevas funciones. Los núcleos estables tenían incluso segundos números (como 2.4. X ), mientras que
los núcleos inestables tenían segundos números impares (como 2.5. x ).
Con el lanzamiento del 2.6. x , la antigua distinción estable / inestable se ha convertido
mucho más borroso. Algunas personas y grupos han creado lo que denominan kernel "estable"
ramas basadas en versiones específicas del kernel, como 2.6.16 y 2.6.27; sin embargo, en términos
del desarrollo general, la numeración ya no es una guía clara de lo que es estable y
lo que no es. El sitio de archivos del kernel de Linux proporciona un enlace destacado en la página principal
para permitir a los usuarios descargar el último kernel estable. Si desea ejecutar un kernel inestable,
necesitará buscar a través de los enlaces a la lista ampliada de todos los archivos del kernel. En la corriente
sistema de numeración, los cambios al tercer número representan núcleos con nuevas características importantes,
mientras que los incrementos hasta el cuarto número indican correcciones de errores en este conjunto de funciones.
Los kernels proporcionados por los mantenedores de distribución a menudo agregan otro número de revisión al
número de kernel principal para rastrear los parches aplicados por el mantenedor de la distribución en lugar de
que se aplica como parte del kernel estándar de Linux. Cómo estos números de revisión adicionales
se aplican varía de una distribución a otra.
Si desea obtener el código fuente del kernel que está ejecutando actualmente, puede usar
el comando uname , que devuelve información sobre el kernel y la arquitectura actuales.
Escribir uname - r devuelve el número de kernel actual y escribir uname - a devuelve más
información, incluidos varios detalles sobre su CPU, cuando se compiló el kernel,
y así.
Los núcleos suministrados en el sitio Linux Kernel Archives vienen como tarballs de origen; tú
debe compilarlos usted mismo, como se describe más adelante en este capítulo en "Preparación de un kernel" y
“Compilando un Kernel. ”Si no necesita personalizar su kernel, probablemente pueda usar
el kernel proporcionado por el encargado de la distribución. Si necesita actualizar este kernel, el
El proceso suele ser tan simple como actualizar cualquier otro paquete de software, usando yum , apt - get o
alguna otra herramienta de gestión de paquetes. Estas herramientas de instalación a menudo ejecutan scripts para actualizar
la configuración de su cargador de arranque para usar el nuevo kernel; sin embargo, en algunos casos puede
necesita ajustar la configuración del cargador de arranque, como se describe en “Agregar un kernel a GRUB. "
Después de actualizar un kernel, normalmente debe reiniciar su computadora para usarlo.
Si administra un sistema que no puede permitirse ningún tiempo de inactividad, puede
actualice su kernel sin reiniciar empleando una herramienta conocida como
Ksplice ([Link] Este software congela la ejecución de
los programas que administra el kernel, intercambian un nuevo kernel en la memoria,
y luego reanuda la operación del programa. Este proceso es transparente para el
programas que se están ejecutando.
Incluso si no desea compilar su kernel a partir del código fuente, es posible que desee tener
el código fuente del núcleo está disponible por un par de razones. Primero, el código fuente incluye un
directorio de documentación, que se describe brevemente, que puede ayudarlo a descubrir hardware específico
Entendiendo el Kernel
47

Página 90
48
Capítulo 2 Configuración del kernel de Linux
opciones o lidiar con características oscuras del kernel. En segundo lugar, algunos programas se basan en archivos de encabezado.
contenido en el árbol de fuentes del kernel para compilar. Por lo tanto, es posible que deba tener un
kernel, o al menos estos archivos de encabezado críticos, para compilar algún software que no sea del kernel.
Puede descargar y descomprimir el código fuente del kernel de Linux como lo haría con cualquier otro
otro tarball de código fuente, como se describe en el Capítulo 1. Descargue la versión .tar de linux .
gz o linux - archivo de versión .tar.bz2 , donde versión es el número de versión. El parche -
versión .gz y parche: los archivos de la versión .bz2 son archivos de parche, que puede utilizar para actualizar un
versión inmediatamente anterior del kernel a la última versión. La próxima sección
“Aplicación de parches del kernel” describe cómo parchear un kernel.
Tradicionalmente, el código fuente del kernel de Linux reside en / usr / src / linux - versión , donde
versión es el número de versión, como [Link] . Algunas distribuciones colocan sus núcleos en
el directorio de versión / usr / src / kernels / linux . Un enlace simbólico de / usr / src / linux
debe apuntar al directorio fuente actual del kernel. De esta forma, puede tener varias fuentes
árboles disponibles, pero cuando un archivo de código fuente hace referencia a algo en / usr / src / linux ,
encontrar lo que necesita. Si descomprime el archivo tar de origen, no se creará este enlace simbólico
automáticamente, por lo que debe hacerlo escribiendo:
# rm / usr / src / linux
# ln -s / usr / src / linux- versión / usr / src / linux
Es mejor verificar que / usr / src / linux es un enlace simbólico antes de hacer
cualquier cosa con él. Puede hacer esto escribiendo ls - ld / usr / src / linux , que
muestra el archivo actual como un directorio o un enlace simbólico, con un
expansión del vínculo simbólico, si eso es lo que es, para que pueda ver
qué directorio enlaza. Si encuentra que / usr / src / linux es un directorio,
puede cambiarle el nombre con mv en lugar de eliminarlo con rm .
Si desea utilizar una fuente del kernel que coincida exactamente con la utilizada por su distribución,
puedes instalarlo usando tu administrador de paquetes. Busque un paquete llamado linux - source ,
kernel - devel , o algo similar. Un paquete llamado linux - encabezados , kernel - encabezados o
algo similar contiene solo los encabezados necesarios para compilar software.
Leer la documentación del kernel
Antes de actualizar un kernel, es recomendable leer la documentación del nuevo kernel.
Puede leer / usr / src / linux / README para obtener una descripción general del kernel, incluida la compilación
instrucciones. La documentación sobre controladores específicos y subsistemas del kernel se encuentra en / usr / src /
linux / árbol de directorios de documentación . Desafortunadamente, el kernel es lo suficientemente grande como para
El árbol de directorios está un poco desordenado. El archivo 00 - INDEX contiene una descripción general de lo que cada archivo
y el subdirectorio contiene, por lo que es posible que desee examinar este archivo antes de hacer cualquier otra cosa.
La mayor parte de la documentación del kernel es muy técnica. Algo está escrito para programadores.
y será bastante misterioso para los no programadores. Sin embargo, otra documentación del kernel

Página 91
ser útil para los administradores del sistema. Este tipo de documentación a menudo especifica opciones que
se puede pasar a los módulos del kernel en el momento de la carga o al propio kernel cuando arranca.
Localización de binarios del kernel
Como muchos otros programas, el código fuente del núcleo por sí solo es de uso limitado. Una vez que es
compilado, el kernel produce bastantes archivos, el más importante de los cuales se divide en dos
categorías:
El archivo principal del kernel Este archivo contiene las partes centrales del kernel. Se carga por la bota
loader cuando la computadora arranca y, por lo tanto, es muy importante para el funcionamiento del sistema.
Módulos del kernel Los módulos del kernel residen fuera del archivo principal del kernel, generalmente en / lib /
árbol de directorios de módulos . (Los subdirectorios de este directorio corresponden a diferentes kernel
versiones.) Los módulos del kernel se pueden cargar y descargar después de que el sistema se haya iniciado, como
se describe más adelante en “Gestión de módulos del kernel en tiempo de ejecución. "
El archivo principal del kernel generalmente reside en / boot , pero a veces se coloca en la raíz
directorio ( / ). Puede tener varios nombres, como se detalla en la Tabla 2.1. A veces el
Los nombres de la Tabla 2.1 se modifican agregando una versión del kernel, como en bzImage - [Link] . Esta
La práctica le permite mantener varias versiones del kernel listas en una computadora, lo cual es útil
si no está seguro de si un nuevo kernel funcionará correctamente, puede instalar el nuevo kernel
sin destruir el anterior, dándote un respaldo en caso de problemas.
TABLA 2.1 Nombres comunes del kernel
Nombre
Explicación
vmlinux
Una versión sin comprimir del archivo del kernel de Linux; generalmente generado como
un paso intermedio y no copiado a / boot . Esta forma del núcleo es
no se puede iniciar directamente, ya que le faltan algunas funciones.
vmlinuz
Una variante de vmlinux que se ha comprimido con varias herramientas y
renderizado de arranque agregando algunas características. Proveedores de distribución de Linux
normalmente utilizan vmlinuz como el nombre de sus núcleos binarios precompilados.
zImage
Un formato en gran parte obsoleto similar al formato vmlinuz . En el pasado,
A los núcleos compilados localmente se les daba tradicionalmente este nombre. Como el
el kernel creció en tamaño, sin embargo, zImage se volvió inadecuado en sistemas x 86,
porque zImage tiene un tamaño limitado a 512 KiB.
bzImage
Una versión comprimida del kernel de Linux, similar a vmlinuz . Era
creado para superar las limitaciones técnicas del formato zImage . En la zona
Los núcleos compilados a menudo reciben este nombre.
núcleo
Un nombre genérico que se usa en algunos sistemas que emplean GRUB 2
cargador de arranque. Normalmente es un binario de estilo bzImage .
Entendiendo el Kernel
49

Página 92
50
Capítulo 2 Configuración del kernel de Linux

Preparando un grano
Si desea compilar su propio kernel, primero debe realizar un par de
pasos. El primero de ellos, que no siempre es necesario, es parchear el kernel para agregar nuevos
características o actualizar su versión. El segundo paso, que es fundamental, es configurar el kernel
para su hardware.
Aplicación de parches de kernel
Parchear un kernel le permite realizar cambios en la fuente del kernel que tiene. Una razón para
parche un kernel es para ahorrar tiempo de descarga: puede obtener un parche - versión .gz o parche -
versión .bz2 del sitio de archivos del kernel de Linux y aplíquelo a un código fuente de Linux
directorio que ya tienes. Debido a que los archivos de parche son mucho más pequeños que los archivos tar del núcleo completo,
esta práctica puede ahorrar tiempo y ancho de banda de la red. Sin embargo, debe aplicar el
parche o archivos a la versión correcta del kernel. Parches convencionales del kernel de Linux
El sitio de archivos se aplica a la versión básica del kernel inmediatamente anterior. Por ejemplo,
puede aplicar el parche - [Link].bz2 o el parche - 2.6.36.bz2 archivo de parche a un 2.6.35
árbol de fuentes del núcleo (con tres, no cuatro, números de versión separados por puntos).
Otra razón para aplicar un parche es utilizar un controlador experimental o de terceros, error
arreglar o característica. Dicho código puede eventualmente encontrar su camino hacia el kernel, pero si lo necesita
ahora, parchear un kernel puede ser la única forma de hacerlo. Al aplicar dicho parche, asegúrese
leer la documentación del autor; Es posible que el procedimiento varíe ligeramente (o
significativamente!) del que se describe aquí.
Para aplicar un parche, debe cambiar al directorio fuente actual de Linux y escribir
uno de los siguientes dos comandos, dependiendo del archivo que descargó:
# gzip -cd ../patch- versión .gz | parche -p1
# bzip2 -dc ../patch- versión .bz2 | parche -p1
Ajuste la ruta al archivo de parche, si es necesario. En lugar de hacer este trabajo manualmente,
puede usar el parche - script del kernel en / usr / src / linux / scripts :
# / usr / src / linux / scripts / patch-kernel linux
Este comando busca archivos de parche en el directorio actual y los aplica al
kernel que se encuentra en el directorio que especifique ( linux en este ejemplo). Monitorear la salida de
el comando con cuidado; debe informar que se han cambiado o agregado varios archivos. Si
ve mensajes que indican que ciertos archivos no se pueden cambiar, entonces algo está mal, tal vez
está intentando aplicar un parche contra una versión de kernel inapropiada, o podría estar
usando una opción incorrecta para el comando parche .
Si una operación de parche no tiene éxito, puede deshacerla incluyendo la - R ( - - reverso )
opción de parchear , como parche - p1 - R como parte de los comandos completos mostrados anteriormente.

Página 93
Si tiene un kernel con correcciones (digamos, [Link]) y desea actualizar al parche
el kernel a otra versión (digamos, [Link] o 2.6.36), puede aplicar el
parche para la versión que tiene al revés, usando la opción -R , y luego
aplique el parche para la versión que desee sin la opción -R . El primero
el paso "degrada" el kernel a la versión base, y el segundo paso
parchea el kernel a la versión que desee. Si desea actualizar por más
de una versión en la tercera posición (digamos, 2.6.34 a 2.6.36), tendrá
para aplicar varios archivos de parche.
Suponiendo que el proceso del parche se complete correctamente, debería poder continuar con
configurar y construir el kernel. Si ha aplicado un parche de terceros, asegúrese de pagar
atención a las opciones de configuración relacionadas con ese parche, como se describe en el
documentación.
En la práctica, la aplicación de parches puede suponer un modesto ahorro de tiempo; sin embargo, descuidado
la aplicación de parches puede causar problemas. Si aplica el archivo de parche incorrecto, y especialmente
Si no soluciona correctamente este problema, puede terminar con el código fuente de su kernel en un
estado irremediablemente inconsistente. Si tiene problemas, puede descargar el kernel completo
árbol de origen y descomprímalo para comenzar de nuevo.
Configuración de la fuente del kernel
Configurar el kernel puede ser una tarea abrumadora debido a la gran cantidad de opciones del kernel
disponible: 2.994, a partir de la versión [Link]. Si está comenzando desde la versión de su distribución
del kernel, sin embargo, es probable que la mayoría de las opciones no necesiten cambiarse; tú
debe poder enfocarse en las opciones que desee cambiar para lograr su objetivo
al recompilar el kernel y dejar el resto solo. Si está comenzando con un kernel estándar,
sin embargo, tendrás que tener mucho cuidado, ya que existen muchos tipos de opciones de configuración
que, si se configura incorrectamente, puede provocar que el kernel no se pueda iniciar. Puede que necesite conocer un gran
tratar sobre el hardware de su computadora, y particularmente su subsistema de disco, para asegurar la
el sistema puede arrancar.
Investigación de su hardware
Antes de iniciar las utilidades de configuración del kernel de Linux, debe aprender algo
sobre el hardware de su sistema para que sepa qué módulos de hardware instalar.
También debe saber qué sistemas de archivos y otras características de nivel de kernel utiliza su sistema para
que puede estar seguro de compilar el soporte necesario en su nuevo kernel.
En caso de duda, compile un controlador o una función como módulo. Innecesariamente
La compilación de un módulo agrega una fracción de segundo a varios segundos al
tiempo de compilación del kernel y consume algo de espacio en disco, pero normalmente no
causar otros problemas. Un módulo de kernel no utilizado no consume memoria o
Tiempo de CPU en un sistema en ejecución.
Preparando un grano
51

Página 94
52
Capítulo 2 Configuración del kernel de Linux
En su mayor parte, el kernel incluye controladores para hardware según el conjunto de chips que utiliza. los
chipset es uno o más chips que proporcionan la funcionalidad para el subsistema en cuestión.
El chipset a menudo es fabricado por una empresa distinta a la cuyo nombre aparece
en la caja del producto, lo que puede dificultar la identificación de su hardware en algunos casos.
Existen varios enfoques para resolver este problema:
Uso de la documentación de manuales de hardware para su hardware, o incluso publicidad en su
caja, puede identificar el chipset que utiliza. Preste atención tanto al fabricante como al modelo
número; A veces, un fabricante produce varios productos, cada uno de los cuales requiere un
controlador de Linux diferente. Un problema con este enfoque es que el mismo dispositivo puede funcionar
por varios nombres o números de modelo. Si el fabricante usa un nombre en un manual
y se usa otro nombre en la configuración del kernel, es posible que pierda la importancia de
el dispositivo.
Comprobación de dispositivos PCI Si escribe lspci en un indicador de shell de Linux, verá una lista de todos los
Dispositivos de interconexión de componentes periféricos (PCI) y PCI Express (PCIe) en la computadora.
La mayoría de los dispositivos críticos de una computadora utilizan el bus PCI o PCIe, por lo que puede ser una buena
forma de identificar lo que hay en su computadora.
Verificación de dispositivos USB Al escribir lsusb se revelan los dispositivos de bus serie universal (USB) conectados
a tu computador. Este comando funcionará correctamente solo si hay soporte para el USB
hardware integrado en la placa base o conectado a la placa base.
Comprobación de módulos cargados Si escribe lsmod en un indicador de shell de Linux, verá una lista de
los módulos del kernel que están cargados actualmente. Dado que la mayoría de las distribuciones de Linux compilan tanto
soporte de hardware como módulos como sea posible, es probable que esta lista esté casi completa para
tu sistema; sin embargo, los nombres de los módulos (en la primera columna de salida) a veces pueden
críptico. ¿Qué es el controlador r8169 , por ejemplo? (Es un controlador para un tipo de tarjeta Ethernet).
Se hace referencia a los nombres de los controladores en la configuración del kernel, pero necesita saber dónde
búscalos. Además, si los controladores están integrados directamente en el kernel, no aparecerán en el
Salida de lsmod , pero pueden ser fundamentales para el funcionamiento normal del sistema.
Uso de un núcleo funcional como modelo Si tiene el archivo de configuración del núcleo ( .config en
el directorio de origen del kernel) para un kernel que funcione, puede usar ese archivo como modelo. El siguiente
La sección "Uso de Kernel make Targets" describe este enfoque con más detalle.
Inspección visual A veces puede saber qué controladores necesita mirando el
hardware. Esto generalmente requiere abrir la computadora y examinar los nombres y
números de modelo estampados en los chips grandes de la placa base y cualquier hardware enchufable.
Desafortunadamente, dicha información de identificación a veces se ve oscurecida por pegatinas o calor
se hunde. Entre este problema y la necesidad de abrir la computadora, este método de identificación
el hardware suele ser el último recurso.
Debe prestar especial atención a los controladores del controlador de disco duro, Ethernet
adaptador, controlador USB y adaptador de video que utiliza su computadora. Soporte para sonido
El hardware, las impresoras y los escáneres suele ser menos crítico, ya que la computadora arrancará y
realizar sus funciones más importantes incluso si falta el soporte para estos dispositivos. Discos duros,
unidades ópticas, teclados, ratones, concentradores de red y módems de banda ancha rara vez necesitan
controladores especiales, aunque hay excepciones a esta regla.

Página 95
Algunos dispositivos, incluido el hardware de video, las impresoras y los escáneres, emplean controladores externos
del núcleo. En el caso del hardware de video, existen controladores del kernel para permitir cambios en el tamaño
y estilo de fuentes en modo texto o para ciertos programas gráficos que no son X; sin embargo, la mayoría
Los controladores de video importantes son utilizados por el servidor X, no por el kernel. Impresoras y escáneres tanto
requieren controladores del kernel para el hardware de la interfaz (como un puerto USB o paralelo), pero los controladores
para el dispositivo de modelo específico reside fuera del kernel, en Ghostscript y Common
Sistema de impresión Unix (CUPS) para impresoras o en Scanner Access Now Easy (SANE) o
otro software de escaneo para escáneres.
El papel de la computadora puede ser importante a la hora de decidir qué controladores construir. Por ejemplo,
Es probable que un sistema de escritorio requiera controladores para hardware de sonido, dispositivos de video avanzados,
y así; pero es probable que estos controladores no sean importantes para un servidor.
Uso de Kernel make Targets
Una vez que haya identificado sus principales componentes de hardware, puede comenzar a configurar
núcleo. Esto se hace con la ayuda de uno o más objetivos de marca , como se detalla en la Tabla 2.2. UNA
pocas otras opciones oscuras están disponibles; consulte el archivo / usr / src / linux / README para obtener más detalles.
Adicionales maquillaje objetivos, que se describen en las secciones posteriores de este capítulo, en realidad construir el núcleo
y ayudarte a instalarlo.
TABLA 2.2 La configuración común del kernel de Linux hace objetivos
Objetivo
Explicación
mrproper
Elimina la configuración antigua y los archivos temporales.
viejoconfig
Actualiza un archivo de configuración antiguo, actualizando solo aquellos elementos que
son nuevos.
silentoldconfig
Similar a oldconfig pero reduce el desorden de la pantalla.
defconfig
Crea un archivo de configuración usando valores predeterminados para su
plataforma.
allmodconfig
Crea un archivo de configuración que utiliza una configuración modular como
tanto como sea posible.
config
Configura todos los elementos del kernel mediante una interfaz basada en texto.
Lento y poco práctico con los núcleos modernos.
menuconfig
Configura el kernel usando un sistema de menú basado en texto. Adecuado
cuando se utiliza una consola basada en texto.
xconfig
Similar a menuconfig , pero la configuración se realiza usando un Qt -
entorno GUI basado.
gconfig
Similar a xconfig pero utiliza un entorno GUI basado en GTK.
Preparando un grano
53

Página 96
54
Capítulo 2 Configuración del kernel de Linux
Escribir make help en el árbol de fuentes del kernel produce una lista de destinos de make
y breves descripciones de cada uno. Esta lista incluye mucho más que
objetivos de configuración resumidos en la Tabla 2.2.
Si quiere estar seguro de que el árbol de fuentes del kernel está en un estado prístino, debe comenzar
escribiendo make mrproper . Esta acción limpia todo el antiguo temporal y la configuración.
archivos. Si está compilando un nuevo kernel y tiene disponible el código fuente de uno que funcione,
puede copiar el archivo .config oculto (que contiene la configuración del kernel) de un trabajo
el directorio fuente del kernel al directorio actual y luego escriba make oldconfig o make
silentoldconfig . A continuación, el programa le informará sobre varias funciones nuevas, como:
Solicitud de desarrollo y / o códigos / controladores incompletos (EXPERIMENTAL) [S / n /?] Y
Prefijo de la herramienta de compilación cruzada (CROSS_COMPILE) [] (NUEVO)
Si no sabe cómo responder a determinadas consultas, utilice la respuesta predeterminada (que
se escribe con mayúscula en la mayoría de los casos) suele ser el mejor enfoque. La mayoría de las funciones aceptan sí ( y ) y
no ( n ) respuestas a sus mensajes de configuración. Muchas funciones se pueden construir como módulos; tú
escriba m para implementar la compilación modular. Algunas características, como el compilador cruzado
en el ejemplo anterior, requieren respuestas de forma libre. Al presionar la tecla Enter se especifica el
predeterminado, que suele ser aceptable.
Si no tiene una fuente de kernel que funcione como modelo, es posible que desee comenzar escribiendo
hacer allmodconfig . El resultado, si tuviera que compilar el kernel inmediatamente después,
sería un núcleo que compila tantos componentes como módulos como sea posible. Dado un
disco RAM inicial apropiado (descrito más adelante, en "Preparación de un disco RAM inicial"), como
un kernel funcionará en la mayoría de las computadoras; pero puede que no sea óptimo. También llevará más tiempo
compilar que un kernel optimizado, ya que estará compilando módulos para una gran cantidad de
dispositivos de hardware que no tiene en su computadora.
Establecer las opciones de configuración del kernel
En este punto, probablemente debería optimizar aún más su configuración utilizando el
menuconfig , xconfig o gconfig target. La figura 2.1 muestra la pantalla creada al escribir
hacer xconfig . Las opciones de kernel se organizan de forma jerárquica. En la Figura 2.1, el
las categorías principales se muestran en el panel izquierdo, mientras que el panel superior derecho muestra subopciones
para cualquier categoría principal que haya seleccionado. Confusamente, las categorías de más alto nivel
tienen subcategorías que se expanden debajo de ellas en el panel izquierdo, así como subopciones
accesibles en el panel superior derecho. Las notas explicativas sobre las opciones aparecen en el
panel inferior derecho. Puede seleccionar opciones haciendo clic en ellas. Una marca de verificación significa que
La opción se compilará directamente en el kernel, mientras que un punto significa que la opción será
compilado como un módulo. (El destino de gconfig no admite esta función; debe verificar
un carácter Y, M o N a la derecha del área de selección de opciones. La configuración de menú basada en texto
usa una convención similar.) No todas las opciones se pueden compilar como módulos; algunos simplemente no
funcionan de esa manera, y algunas opciones controlan características que no son significativas como módulos. Tal
Las funciones dan opciones Y o N, pero no M.

Página 97
Las opciones de configuración del kernel cambian con bastante frecuencia con el desarrollo del kernel, y
la gran cantidad de opciones impide describirlas todas. Las categorías principales cambian
sin embargo, con relativa poca frecuencia. A partir del kernel [Link], son:
Configuración general En esta categoría aparecen opciones diversas y de nivel bastante alto,
incluidos muchos que se relacionan con cómo se inicia el sistema y qué estándares admite.
Habilitar la capa de bloque Esta categoría corta incluye algunas opciones oscuras relacionadas con
dispositivos de disco y cómo el kernel administra la programación de entrada / salida (E / S). Seleccione el predeterminado
opciones a menos que tenga una razón específica para hacer lo contrario.
Tipo de procesador y características Esta sección incluye opciones que controlan cómo Linux
gestiona la CPU, incluidas varias opciones que son específicas de la CPU. El paravirtualizado
La subsección Guest Support incluye opciones que son importantes si desea ejecutar ciertos
tipos de software de virtualización, que le permite ejecutar otro sistema operativo dentro de su Linux
sistema. (Consulte también la sección Virtualización, que se describe brevemente).
Opciones de administración de energía y ACPI Las opciones en esta área se relacionan con las características del hardware
diseñado para minimizar el uso de energía, incluido el soporte para suspender a RAM y suspender a
funciones de disco (o hibernación) que son particularmente importantes en las computadoras portátiles.
FIGURA 2.1 Un destino de configuración general del kernel, como xconfig , le permite
ver y ajustar todas sus opciones de kernel en tiempo de compilación.
Preparando un grano
55

Página 98
56
Capítulo 2 Configuración del kernel de Linux
Opciones de bus (PCI, etc.) A lo largo de la historia de Linux, se han
popular y luego se desvaneció. Los buses antiguos incluyen la Arquitectura Estándar de la Industria (ISA),
ISA extendido (EISA), VESA Local Bus (VLB), Arquitectura de microcanal (MCA) y
NuBus. Dependiendo de su plataforma, muchos de estos buses obsoletos pueden estar disponibles. Usted puede
recorte el tamaño de su kernel eliminándolos, si está seguro de que su hardware no los usa. Esta
La sección también incluye opciones relacionadas con la tarjeta de PC (comúnmente utilizada en computadoras portátiles).
Formatos / emulaciones de archivos ejecutables Es casi seguro que su kernel sea compatible con
Formato de archivo ejecutable y enlazable (ELF) para binarios. Soporte para los mayores [Link]
El formato rara vez es necesario hoy en día a menos que tenga algunos programas binarios extremadamente antiguos que
Necesito correr. Incluir soporte para varios binarios suele ser una buena idea. Encendido x 86 - 64
sistemas, incluido el soporte para IA32 suele ser prudente.
Soporte de red Esta área de configuración del kernel es enorme e incluye una gran cantidad
de opciones que pueden resultar confusas para los no iniciados. Tenga en cuenta que el hardware de red de bajo nivel
los conductores no residen en esta zona, sino en la siguiente. Por lo general, puede reducir considerablemente
tiempo de compilación y tamaño del kernel (o al menos del módulo) examinando las opciones y eliminando
características innecesarias. Por ejemplo, es poco probable que necesite pilas de redes oscuras como
como AppleTalk, DECnet o IPX. Por otro lado, si su red local usa uno de estos
protocolos, asegúrese de que esté instalado!
Controladores de dispositivos Esta área de configuración es enorme. Incluye opciones para apoyar
la mayoría de los dispositivos de hardware gestionados directamente por el kernel, incluido el disco duro
controladores, controladores de hardware de red, dispositivos multimedia (tarjetas sintonizadoras de TV y
Webcams), controladores de framebuffer de tarjetas de video, tarjetas de sonido y dispositivos USB de bajo nivel.
Muchas otras opciones en esta área se relacionan con hardware oscuro u obsoleto. Siga el
recomendaciones para dispositivos específicos o elegir compilar el controlador, al menos como un módulo,
si no está seguro de qué hacer.
Sistemas de archivos Esta categoría es extremadamente importante, ya que brinda soporte para
sistema de archivos utilizado en su dispositivo de arranque Linux. Asegúrese de activar el sistema de archivos apropiado,
que suele ser ext2fs, ext3fs, ext4fs, ReiserFS, XFS, JFS o Btrfs en los sistemas modernos.
CD-ROM, no Linux y otros sistemas de archivos diversos se enumeran en sus propias subcategorías.
La subcategoría Tipos de particiones también es importante, ya que controla qué sistemas de particiones
el kernel admite. En la mayoría de los sistemas, la opción de compatibilidad con BIOS de PC (MS-DOS Partition Tables)
es más crítico; esto activa el soporte para el sistema Master Boot Record (MBR) utilizado en la mayoría
Sistemas x 86 y x 86-64. La opción de soporte de partición GUID EFI es importante en los
Macintoshes y se está volviendo importante en otros sistemas.
Hacking de kernel Puede establecer opciones que sean de interés para los desarrolladores de kernel en
esta sección. Ocasionalmente, incluso quienes no sean desarrolladores deberán ajustar las opciones en esta área,
particularmente si está usando un parche de kernel más antiguo. (La opción Habilitar lógica __deprecated,
por ejemplo, es requerido por algunos controladores de terceros).
Opciones de seguridad En esta área se pueden controlar un puñado de funciones de seguridad.
API criptográfica Algunas funciones del kernel y el software que no es del kernel requieren
módulos para estar presentes en el kernel. Puede habilitarlos o deshabilitarlos aquí.

Página 99
Virtualización Esta categoría proporciona soporte para ciertas funciones de virtualización, que se utilizan para
ejecute otro sistema operativo mientras Linux se está ejecutando en el sistema.
Rutinas de la biblioteca Esta sección incluye un puñado de funciones que utilizan otros
módulos o por programas de espacio de usuario. Siga con la configuración predeterminada a menos que sepa que
debería ser cambiado.
Algunas características del kernel son particularmente importantes y, por lo tanto, merecen una mención especial:
Configuración general Versión local Puede agregar una cadena al número de versión del kernel usando
esta opción. Esta característica puede ser útil si necesita experimentar con las opciones del kernel; tú
puede construir diferentes núcleos con diferentes cadenas de versión local para significar una característica diferente
conjuntos, manteniendo así separados los directorios del módulo del kernel y produciendo diferentes
identificadores al utilizar uname o utilidades similares.
Configuración general Sistema de archivos RAM inicial y disco RAM (initramfs / initrd) Soporte Be
asegúrese de activar este soporte si tiene la intención de utilizar un disco RAM inicial (descrito brevemente, en
“Preparación de un disco RAM inicial”).
Configuración general Habilitar soporte de módulo cargable Asegúrese de que esta opción esté habilitada, a menos que
tiene la intención de construir un kernel con nada más que controladores integrados, una configuración extraña con
graves inconvenientes en las configuraciones típicas de escritorio o servidor en la actualidad.
Tipo de procesador y funciones Compatibilidad con multiprocesamiento simétrico Esta opción habilita
soporte para más de una CPU o núcleo de CPU. La mayoría de las computadoras modernas tienen dos o más
núcleos, por lo que activar este soporte tiene sentido a menos que esté seguro de que su CPU acaba
un núcleo.
Tipo de procesador y funciones Familia de procesadores Si está compilando un kernel para un
computadora, o para un conjunto de computadoras idénticas, puede obtener un poco de rendimiento adicional
configurando el modelo de CPU correcto en esta opción.
Tipo de procesador y funciones Compatibilidad con memoria alta Esta opción está disponible para x 86
CPU, pero no para x 86 - 64 CPU. Puede utilizarlo para optimizar el rendimiento en función de cómo
mucha RAM tiene su computadora. Si tiene menos de 1 GiB de RAM, seleccione Desactivado; si usted tiene
entre 1 GiB y 4 GiB de RAM, seleccione 4GB; y si tiene más de 4 GiB de RAM,
seleccione 64GB. Una selección incorrecta puede resultar en la imposibilidad de utilizar toda la memoria de su sistema.
La mayoría de las computadoras modernas tienen CPU de 64 bits x 86-64. En tales computadoras, es
Es mejor ejecutar una versión de 64 bits de Linux, especialmente si la computadora tiene más
de 4 GiB de RAM. Aunque Linux puede admitir hasta 64 GiB de RAM en un
CPU de 32 bits x 86, esta configuración impone un trabajo extra en el kernel y
crea algunas limitaciones sutiles para las aplicaciones. Una CPU de 64 bits, por el contrario,
admite directamente mucha más memoria, por lo que High Memory
La opción de soporte no está presente cuando se compila un kernel de 64 bits, es necesario
sólo como solución para las CPU de 32 bits más antiguas.
Soporte de red Opciones de red Red TCP / IP Casi todas las
Las computadoras necesitan esta opción, ya que el Protocolo de control de transmisión / Protocolo de Internet
Preparando un grano
57
Página 100
58
Capítulo 2 Configuración del kernel de Linux
(TCP / IP) es la base de Internet. Esta opción contiene una gran cantidad de subopciones.
Examínelos y siga las sugerencias o su juicio basado en su conocimiento de su
red local y el papel de la computadora en ella. Tenga en cuenta en particular la subopción del protocolo IPv6,
que controla el soporte para la versión de próxima generación de TCP / IP, que se está convirtiendo en un
necesidad en algunas áreas.
Soporte de red Opciones de red Filtrado de paquetes de red
Marco Esta opción es fundamental si desea configurar un enrutador o habilitar el firewall
reglas en su computadora.
Soporte de red Opciones de red Inalámbrico Asegúrese de habilitar esta opción si
su computadora utiliza un adaptador de red inalámbrica.
Controladores de dispositivos Compatibilidad con dispositivos SCSI La interfaz de sistemas informáticos pequeños (SCSI)
estándar es una interfaz de disco de gama alta. (También lo utilizan algunos escáneres, impresoras y otros
dispositivos.) Aunque es raro en las computadoras modernas, Linux usa una capa de emulación SCSI
para muchos dispositivos, incluidos los controladores para la tecnología avanzada en serie más común
Interfaz de disco adjunto (SATA) y dispositivos de almacenamiento USB. Por lo tanto, debe habilitar
Compatibilidad con SCSI, incluida la compatibilidad con discos SCSI y, normalmente, CD-ROM SCSI, en la mayoría de
sistemas. Sin embargo, si su sistema carece de dispositivos SCSI verdaderos, generalmente puede desmarcar la casilla SCSI
Sección Controladores de bajo nivel, omitiendo la gran cantidad de controladores SCSI de su compilación.
Controladores de dispositivo Controladores Serial ATA y Parallel ATA Esta sección incluye controladores para
los controladores de disco SATA y PATA más modernos y muchos más antiguos. Habilitar la sección general
y examínelo hasta que encuentre su controlador de disco. Tenga en cuenta que muchos conjuntos de chips de controlador incluyen
tanto SATA como PATA, pero a menudo se enumeran por separado en esta sección de controladores.
Por lo tanto, es posible que deba habilitar los controladores SATA y PATA. Si está construyendo un kernel para
una computadora específica con un chipset conocido, recomiendo construir estos controladores directamente en
el kernel, en lugar de como módulos.
Controladores de dispositivos Compatibilidad con controladores de dispositivos múltiples Esta sección incluye opciones para
Matriz redundante de discos independientes (RAID) y administrador de volumen lógico (LVM)
configuraciones, que son herramientas avanzadas de administración de discos descritas en el Capítulo 4,
“Gestión avanzada de discos. "
Controladores de dispositivo Compatibilidad con gráficos En la mayoría de los sistemas x 86 y x 86-64, las funciones
esta sección es opcional; sin embargo, habilitar el soporte de framebuffer para su chipset de video y
El soporte de la consola framebuffer le proporcionará opciones avanzadas para ajustar el texto:
consolas de modo. En algunas otras plataformas, debe incluir compatibilidad con framebuffer para obtener un
consola en modo texto y, a veces, incluso para X.
Controladores de video patentados del sistema X Window de AMD y nVidia
incluyen módulos del kernel que se compilan por separado del kernel. los
Los controladores estándar del búfer de marco del kernel son incompatibles con al menos algunos
controladores X propietarios, así que tenga cuidado al compilar el framebuffer
controladores directamente en el kernel si tiene la intención de utilizar los controladores propietarios.
(Sin embargo, compilar los controladores de framebuffer como módulos debería ser seguro).
Debe consultar la documentación del controlador propietario para obtener más detalles.

Página 101
Controladores de dispositivo Compatibilidad con USB Esta área incluye ambos controladores para USB de bajo nivel.
hardware (normalmente integrado en la placa base o en una tarjeta enchufable) y para algunos puertos USB
dispositivos o categorías de dispositivos, como el soporte de almacenamiento masivo USB, que se utiliza para
con unidades flash USB y otros medios enchufables. Muchos dispositivos USB requieren soporte en otros
áreas del kernel también.
Una vez que haya marcado todas las opciones del kernel que desea examinar, puede salir de
la herramienta de configuración. Guardará un nuevo archivo .config , que luego guiará a make en
determinar qué características del kernel se compilarán.

Compilando un Kernel
Con la configuración fuera del camino, puede compilar su kernel y preparar el sistema para
úsalo. El proceso de compilación es bastante sencillo, pero luego debe copiar el archivo del kernel
para / boot , instale módulos del kernel, prepare un disco RAM inicial y modifique su GRUB
configuración para apuntar al nuevo kernel. Es posible que también desee preparar un archivo de paquete en
algunas situaciones.
Construyendo un Kernel
Para construir un kernel, escriba make en el directorio fuente del kernel. Asumiendo que tienes el
las herramientas de desarrollo necesarias instaladas y que la configuración de su kernel no contiene
errores evidentes, el proceso de compilación se desarrollará sin problemas. Este proceso no requiere
su entrada, pero tomará un tiempo, de varios minutos a más de una hora, dependiendo
en la velocidad de la computadora y cuántas funciones del kernel está compilando. Como el
El proceso continúa, verá líneas de resumen que se muestran en la pantalla:
CC kernel / time / tick-sched.o
LD kernel / time / built-in. O
CC kernel / futex.o
Estas líneas resumen lo que se está haciendo en el proceso. En su mayor parte, necesitas
solo preocúpese de que la compilación esté en curso. Si la salida cesa, algo puede
estar equivocado, o quizás el archivo que se está compilando es inusualmente grande.
El valor por defecto marca de destino para el núcleo de Linux se basa tanto en el archivo principal del núcleo
y todos los módulos del kernel separados. Esto es equivalente a escribir make all .
Puede compilar el kernel y los módulos por separado escribiendo make bzImage
para construir el kernel o hacer módulos para construir los módulos. En algunos
plataformas, puede escribir make zImage en lugar de make bzImage .
En raras ocasiones, la compilación fallará y verá un mensaje de error. Esto puede
suceden porque estás usando un compilador más nuevo o más antiguo que los desarrolladores del kernel de Linux
Compilando un Kernel
59

Página 102
60
Capítulo 2 Configuración del kernel de Linux
esperar o debido a un problema técnico en la configuración. No hay reglas determinadas sobre cómo
Continúe, pero puede probar varios enfoques para solucionar el problema:
Si el error ocurrió al compilar una función que no es absolutamente necesaria para su
sistema, puede volver a la herramienta de configuración y eliminarlo.
Si la función es necesaria, es posible que obtenga mejores resultados si la cambia de estar construida como un
módulo para ser integrado en el kernel, o viceversa.
A veces, necesitará rastrear una característica de la que depende la fallada;
normalmente los desarrolladores marcan correctamente tales dependencias, pero en ocasiones algo
se pasa por alto.
Si ha parcheado el kernel, revise su procedimiento de parcheo. Asegúrate de haber aplicado
el parche a la versión correcta del kernel y verifique que se haya aplicado el parche
exitosamente. Puede intentar compilar una versión sin parchear del kernel para
comparación.
Si tiene más de una versión de GNU Compiler Collection (GCC) instalada,
intente usar una versión diferente para compilar el kernel.
Intente compilar una versión diferente del kernel. Incluso si necesita una versión específica,
puede encontrar una pista sobre el origen del problema cuando compile otro kernel.
Puede canalizar la salida de make a través de grep para buscar el error de cadena ,
como en make | grep - iw "error" , para reducir el desorden de la salida de make y
ver solo mensajes de error.
Una compilación exitosa del kernel termina sin mensajes de error. Si escribiste make
bzImage , debería ver un mensaje similar al siguiente:
Kernel: arch / x86 / boot / bzImage está listo (# 1)
Si escribió make para compilar tanto el archivo principal del kernel como todos los módulos, ese mensaje
estarán enterrados bastante arriba en la salida, y las líneas finales probablemente serán de estado simple
mensajes relacionados con la compilación de los últimos módulos del kernel.
Instalación de un kernel binary
Con el kernel compilado, puede instalarlo. En otras palabras, puede copiarlo de su
ubicación en el árbol de fuentes del kernel al directorio / boot . En la mayoría de las plataformas, el compilado
y el binario del kernel listo para usar se llama bzImage , pero podría tener otro nombre en algunos
plataformas. (Consulte la Tabla 2.1 para obtener más detalles). Si está compilando un kernel para un x 86 o x 86 - 64
system, estará en el subdirectorio arch / x86 / boot del árbol de fuentes del kernel, como se especifica
cerca del final de los mensajes de compilación. En otras plataformas, la ubicación debe ser
similar, aunque la parte x86 reflejará la arquitectura de su CPU.





Página 103
Algunas distribuciones y administradores mantienen una partición / boot separada
y manténgalo desmontado la mayor parte del tiempo para evitar accidentes
Daño a archivos de arranque críticos. Si esto es cierto en su sistema, asegúrese de montar
la partición / boot antes de copiar su nuevo kernel allí. Si no lo hace, el
el kernel no residirá donde debería y su sistema no arrancará correctamente.
Puede copiar el archivo bzImage a / boot como lo haría con cualquier otro archivo, aunque
normalmente debe ser root para hacer el trabajo. Es posible que desee cambiar el nombre del archivo, agregando su versión
número para permitir la coexistencia de varios núcleos:
# cp arch / x86 / boot / bzImage /boot/bzImage-[Link]
Recuerde el nombre de archivo que le dio al archivo del kernel, ya que lo necesitará más tarde, cuando
agregue el kernel a su configuración de GRUB.
Además del archivo del núcleo, es posible que desee copiar el archivo [Link] . Este archivo
contiene punteros a funciones en el kernel y se usa para depurar problemas del kernel.
Por lo tanto, copiarlo no es fundamental, pero puede ser útil. Una vez que el sistema se está ejecutando, / boot /
[Link] debe ser un enlace simbólico al archivo [Link] actual . Así, completamente
copiar y configurar este archivo requiere tres comandos:
# cp [Link] /boot/[Link]-[Link]
# rm /boot/[Link]
# ln -s /boot/[Link]-[Link] /boot/[Link]
Puede posponer estos comandos hasta después de haber arrancado su nuevo kernel, si lo desea.
Escribir make install sirve como un atajo para copiar el archivo del kernel, copiar el sistema
.map y, a menudo, crea un disco RAM inicial y modifica la configuración de GRUB para
el nuevo kernel. Sin embargo, los detalles varían de una distribución a otra, ya que la instalación
target se basa en el script installkernel , que muchos proveedores de distribución personalizan. Esta
La opción puede ser una forma útil de minimizar el esfuerzo de preparación del kernel; sin embargo, si necesita
personalizar su instalación o si no está seguro de lo que hacen los scripts de su distribución, puede
prefiera realizar las tareas individuales manualmente.
Instalación de módulos de kernel
La instalación de los módulos del kernel es sencilla: como root , escriba make modules_install . La utilidad de hacer
creará un subdirectorio en / lib / modules con el nombre del número de versión del kernel, como
/lib/modules/[Link] , y luego copie los módulos del kernel en este subdirectorio, creando
niveles adicionales de subdirectorios para ciertos conjuntos de módulos.
Si olvida instalar los módulos del kernel, es posible que la computadora no arranque
en el nuevo kernel. Si la computadora arranca, cualquier hardware u otro
La función administrada por un controlador modular no funcionará.
En funcionamiento, Linux requiere información sobre las dependencias entre los módulos del kernel.
Estas dependencias se almacenan en un archivo llamado [Link] , que se almacena en el kernel
Compilando un Kernel
61

Página 104
62
Capítulo 2 Configuración del kernel de Linux
directorio de módulos. Puede regenerar este archivo para el kernel que se está ejecutando actualmente escribiendo
depmod como root . Como parte del proceso de instalación del módulo, se llama a depmod para generar un
[Link] para los nuevos módulos del kernel.
El objetivo 201.4 se refiere a un objetivo de depmod a realizar . Tal objetivo
no existe, a partir del kernel [Link]; sin embargo, como se acaba de señalar, la
El destino de modules_install llama a la utilidad depmod .

Preparación de un disco RAM inicial


Un disco RAM inicial (también conocido como un sistema de archivos RAM inicial) es una colección de kernel crítico
módulos y un puñado de utilidades del sistema que el cargador de arranque lee del disco y pasa
al kernel en el momento del arranque. El kernel accede a ellos en la memoria como si estuvieran en un disco,
cargar módulos y ejecutar scripts y programas desde el disco RAM para montar
el sistema de archivos raíz. A partir de entonces, se puede acceder a herramientas adicionales desde el disco duro utilizando
los controladores que están integrados en el kernel o que el kernel cargó desde el disco RAM.
¿Cuándo debe preparar un disco RAM inicial?
Si su kernel incluye todos los controladores que necesita para arrancar dentro del archivo principal del kernel, una
El disco RAM no suele ser necesario; sin embargo, es fácil pasar por alto un módulo crítico. Si tu
El sistema utiliza un sistema de gestión de disco avanzado, como un software RAID o LVM.
configuración, o una red de área de almacenamiento (SAN), también se puede requerir un disco RAM inicial
para activar completamente estos subsistemas.
El soporte para un disco RAM inicial debe estar integrado en el kernel, como se describe
anteriormente en “Configuración de las opciones de configuración del kernel. "Puede especificar un cpio
archivo para usar como un disco RAM inicial cuando compila el kernel, pero es
más común pasar el nombre de archivo al kernel a través de una entrada de menú de GRUB,
como se describe más adelante en “Adición de un núcleo a GRUB. "
Desafortunadamente, las herramientas y procedimientos necesarios para construir un disco RAM inicial varían de
una distribución a otra, por lo que no existe un procedimiento que funcione en todos los sistemas. Dos
Sin embargo, las herramientas son comunes: mkinitrd y mkinitramfs . Algunas distribuciones se envían con
otras herramientas, algunas de las cuales están construidas sobre estas. Por ejemplo, Gentoo Linux proporciona una
herramienta llamada genkernel , que puede ayudar a automatizar varios pasos de generación del kernel. Mecanografía
genkernel initramfs construye un disco RAM inicial para el kernel actual (es decir, el que
que apunta / usr / src / linux ).
Usando mkinitrd
El programa mkinitrd es común en Red Hat, Fedora y distribuciones relacionadas. Para usarlo,
debe pasarle un nombre de imagen de disco RAM inicial y un número de versión del kernel, como en:
# mkinitrd /boot/[Link] [Link]

Página 105
Este comando crea el archivo / boot / initrd - [Link].img usando módulos del kernel para el
[Link] kernel. La utilidad mkinitrd admite varias opciones, que se resumen
en la Tabla 2.3.
TABLA 2.3 Opciones de mkinitrd
Opción
Explicación
- - versión
Muestra el número de versión de mkinitrd .
-v
Muestra información detallada sobre las acciones a medida que se realizan.
- - precarga = módulo
Carga el módulo antes que los módulos SCSI en el arranque del sistema.
Esta opción puede repetirse para tantos módulos como desee.
- - con = módulo
Carga el módulo después de los módulos SCSI en el arranque del sistema. Esta
La opción puede repetirse para tantos módulos como desee.
- - incorporado = módulo
Hace que mkinitrd se comporte como si el módulo especificado estuviera construido
en el kernel, incluso si no lo es.
-f
Permite sobrescribir un archivo de imagen existente. Normalmente, mkinitrd
aborta su operación si existe un archivo de imagen con el nombre especificado.
- - fstab = nombre de archivo
Sondea el nombre del archivo para determinar qué sistema de archivos admite
necesario. Si se omite esta opción, se utiliza / etc / fstab .
- - imagen - versión
Agrega el número de versión del kernel a la ruta de la imagen initrd
antes de que se cree la imagen.
- - no comprimir
Hace que el archivo de imagen se descomprima. (Normalmente, es
comprimido con gzip .)
- - no pivote
Hace que la imagen no use la llamada al sistema pivot_root en el
disco RAM inicial. Esto permite que el sistema funcione con la versión 2.2 antigua. X
kernels, pero algunos sistemas de archivos (como ext3fs) no funcionarán. Esta
La opción está programada para ser eliminada en el futuro.
- - omitir - lvm - módulos
Omite los módulos LVM de la imagen, incluso si / etc / fstab hace
parecen necesarios.
- - omitir - raid - módulos
Omite los módulos RAID de la imagen, incluso si / etc / fstab hace
parecen necesarios.
- - omitir - scsi - módulos
Omite los módulos SCSI de la imagen.
Compilando un Kernel
63

Página 106
64
Capítulo 2 Configuración del kernel de Linux
Usando mkinitramfs
Si su sistema no incluye mkinitrd , puede depender de mkinitramfs similares . Funciona en un
de manera similar, excepto que debe usar - o para especificar el nombre del archivo de salida para el archivo del disco RAM:
# mkinitramfs -o /boot/[Link] [Link]
Al igual que con mkinitrd , hay varias opciones disponibles que pueden modificar las acciones del programa.
Estos se resumen en la Tabla 2.4.
TABLA 2.4 Opciones de mkinitramfs
Opción
Explicación
- d confdir
Establece el directorio del archivo de configuración para el programa. los
el predeterminado es / etc / initramfs - tools .
-k
Hace que el programa retenga el directorio temporal utilizado para
crea la imagen. (Este directorio normalmente se elimina después de la imagen
creación.)
- o outfile
Establece el nombre de archivo de la imagen de salida.
- r raíz
Establece la partición raíz del sistema Linux. Esto normalmente se pasa
por el cargador de arranque.
-v
Crea una salida detallada de las acciones a medida que mkinitrd las realiza.
- - soportado - host -
version = version
Consulta si el programa puede crear una imagen de disco RAM para un
ejecutando kernel de la versión especificada .
- - compatible - objetivo -
version = version
Consulta si el programa puede crear una imagen de disco RAM para un kernel
de la versión especificada .
versión
Establece el número de versión del kernel; [Link] en el anterior
ejemplo. Si se omite esta opción, el kernel en ejecución
se utiliza la versión.

Preparación de un paquete de kernel


Si mantiene muchos sistemas Linux, es posible que desee preparar un kernel de una vez por todas
ellos. Para simplificar el mantenimiento, es posible que desee empaquetar su kernel en un RPM
Administrador de paquetes (RPM) o paquete Debian. Estas tareas se pueden realizar con el
rpm - pkg , binrpm - pkg y deb - pkg para crear en el directorio de origen del kernel de Linux.
Estos destinos crean un RPM de origen y binario, un RPM binario solamente y un RPM binario

Página 107
paquete, respectivamente. Estos objetivos requieren que la computadora tenga el paquete apropiado
herramientas instaladas, por supuesto. Los paquetes construidos de esta manera estarán disponibles en su habitual
Directorio de compilación RPM para los destinos de compilación RPM o en el directorio / usr / src para
Destino de Debian.
Puede copiar el paquete binario a cualquier computadora con una arquitectura compatible
y hardware e instálelo de la misma forma que instalaría un paquete de kernel binario proporcionado por
el mantenedor de distribución. Sin embargo, debe asegurarse de que el kernel incluya todos
los controladores necesarios y las funciones que utilizan todas las computadoras en las que desea
instalarlo. Si mantiene muchas computadoras idénticas, esta tarea no es demasiado difícil; tú
puede probar el kernel en un sistema y luego, si funciona, empaquetarlo para los demás. los
La tarea de garantizar la compatibilidad es más difícil si mantiene equipos con diferentes
placas base, tarjetas de video, interfaces de red y otras características. En este caso, es
Es totalmente posible que el kernel funcione bien en una computadora pero falle completamente
en otro.
En un sistema basado en RPM, instale un nuevo kernel con la opción - i en rpm ,
en lugar de - T . Usando - instalo el nuevo kernel sin reemplazar el antiguo
uno. Si usa - U , se eliminará el kernel antiguo, lo que puede provocar una
sistema que no puede arrancar si el nuevo kernel carece de un controlador clave.

Agregar un kernel a GRUB


Con su nuevo kernel construido y todos sus archivos en su lugar, es hora de agregar su nuevo kernel
a la configuración de su cargador de arranque. El Capítulo 1 describe tanto GRUB Legacy como GRUB
2 proceso de configuración del cargador de arranque, por lo que debe consultar si desea obtener detalles de lo que
significan las opciones de arranque.
Si instaló un kernel en forma binaria desde el administrador de paquetes de una distribución, las posibilidades
¿No necesitará editar explícitamente la configuración de su cargador de arranque? Instalaciones binarias de
este tipo normalmente actualiza su configuración de GRUB automáticamente. Si construiste tu kernel
usted mismo, sin embargo, es casi seguro que tendrá que editar la configuración del cargador de arranque para
incluir el nuevo kernel.
Agregar un kernel a GRUB Legacy
Como regla general, la forma más sencilla de agregar un nuevo kernel a una configuración de GRUB Legacy es
para copiar una entrada existente y luego modificarla para su nuevo kernel. Una configuración típica
se parece a esto:
título Fedora (2.6.32)
raíz (hd0,0)
kernel /vmlinuz-2.6.32 ro root = / dev / sda5
initrd /initrd-2.6.32
Compilando un Kernel
sesenta y cinco

Página 108
66
Capítulo 2 Configuración del kernel de Linux
Para agregar un nuevo kernel, primero debe copiar esta entrada y luego modificarla. Paga particular
atención a tres detalles:
Cambie la línea de título para que pueda identificar de forma única su nuevo kernel.
Cambie el nombre de archivo del kernel que aparece en la línea del kernel para que coincida con su nuevo kernel.
Recuerde que el nombre del archivo del kernel se especifica en relación con la raíz de la partición , no la
La raíz del sistema de archivos de Linux. En este ejemplo, el kernel probablemente esté ubicado en una
/ partición de arranque .
Si el nuevo kernel usa un disco RAM inicial, ajuste la línea initrd para que apunte al nuevo
archivo, o agregue una línea initrd si no está presente en la entrada original. Si el nuevo kernel lo hace
no utilice un disco RAM inicial, asegúrese de eliminar cualquier línea initrd que esté presente en el
entrada de modelo.
Las entradas de GRUB proporcionadas por los mantenedores de distribución a menudo incluyen opciones adicionales
en la línea del kernel u otras características. En la mayoría de los casos, es mejor mantener esas funciones adicionales
en su lugar en su copia de la entrada. A veces, eliminar una opción que no comprende
no hará ningún daño real; sin embargo, a veces es fundamental hacer que el sistema se inicie.
Puede investigar las opciones pasadas al kernel en la línea del kernel usando el
La documentación del kernel de Linux, como se describió anteriormente en "Lectura del kernel
Documentación. "
Como se describe en el Capítulo 1, GRUB Legacy usa una línea predeterminada para especificar qué
kernel para arrancar de forma predeterminada. Cuando agrega su nuevo kernel, puede colocarlo antes o
después de la configuración del kernel existente, como mejor le parezca. A continuación, es posible que desee modificar el
línea predeterminada para apuntar al nuevo kernel; sin embargo, si hace esto y el nuevo kernel no
funciona correctamente, tendrá que seleccionar manualmente otro kernel cuando reinicie para arreglar el
problema.
No reemplace su entrada de kernel más reciente cuando cree por primera vez
su nueva entrada del kernel! Si el nuevo kernel no funciona y no hay
otras opciones, su sistema será difícil de recuperar. Si quieres quedarte
sus opciones de arranque ordenadas, puede eliminar las entradas antiguas del kernel de
la configuración, pero debe esperar hasta que haya probado su nuevo
kernel antes de hacerlo.
Agregar un kernel a GRUB 2
Antes de continuar con cualquier reconfiguración de GRUB 2, recomiendo hacer una copia de seguridad de / boot /
grub / [Link] . Si encuentra problemas graves al arrancar su nuevo sistema, puede usar
un disco de arranque de emergencia para restaurar el archivo antiguo pero funcional sobre el nuevo pero roto.


Página 109
En algunos casos, agregar un kernel a GRUB 2 es más fácil que agregar uno a GRUB Legacy.
Esto se debe a que GRUB 2 incluye scripts de sondeo del sistema, como update - grub o grub -
mkconfig , para escanear la computadora en busca de kernels de Linux y sistemas operativos que no son Linux y para actualizar el
archivo de configuración de GRUB de tiempo de arranque real ( /boot/grub/[Link] ). Por lo tanto, después de crear
e instalar un nuevo kernel, debe escribir update - grub como root . (Si grub - mkconfig es
presente, puede probarlo si update - grub no funciona.) Verifique la salida de este script, o el
/boot/grub/[Link] , para referencias a su nuevo kernel. Si están presentes, es probable
estas entradas funcionarán, por lo que puede reiniciar y probar el nuevo sistema.
Si los scripts automáticos no detectan su kernel, a veces puede superar el
problema cambiando el nombre del kernel de una manera que el script pueda entender. A veces el
Los scripts solo buscan kernels con nombres que comienzan con vmlinuz o kernel , por lo que puede intentar
cambiando el nombre de su kernel para que coincida con ese patrón y vuelva a intentarlo. Si eso no funciona o si
prefiere crear una configuración personalizada de GRUB 2 a mano, puede editar el archivo /etc/grub.d/
40_custom y cree una entrada para su nuevo kernel, como se describe en el Capítulo 1. Un ejemplo
la entrada se ve así:
menuentry "Fedora ([Link])" {
establecer raíz = (hd0,1)
linux /vmlinuz-[Link] ro root = / dev / sda5
initrd /initrd-[Link]
}
Si su archivo /etc/grub.d/40_custom existente ya contiene dicha entrada, utilícela como
un modelo; cópielo y modifique el nombre del menú , el nombre del archivo del kernel en la línea de Linux ,
y el nombre de archivo del disco RAM inicial en la línea initrd - los mismos tres detalles críticos que
debe modificar al adaptar una entrada de GRUB Legacy (aunque GRUB 2 cambia dos de los
palabras clave utilizadas para identificar estos elementos).
Si su sistema carece de un archivo /etc/grub.d/40_custom o si no contiene entradas, puede
use el ejemplo anterior como modelo básico, o puede leer detenidamente /etc/grub/[Link]
para modelos. Es probable que este último proporcione modelos más complejos con opciones adicionales,
que puede o no funcionar mejor que el simple ejemplo que se muestra aquí. En caso de duda
puede crear dos o más entradas y probar cada una, luego eliminar cualquier no funcional o
entradas innecesarias una vez que haya determinado qué funciona mejor.
Para cambiar el kernel predeterminado, debe editar el archivo / etc / default / grub y cambiar el
Entrada GRUB_DEFAULT :
GRUB_DEFAULT = 0
Desafortunadamente, el número de la entrada predeterminada puede ser difícil de determinar hasta que haya
generó un archivo /boot/grub/[Link] escribiendo update - grub o grub - mkconfig . Así,
es posible que deba escribir este comando, luego contar las entradas en el archivo final para determinar
cuál desea usar como predeterminado, luego modifique / etc / default / grub , y finalmente escriba
Compilando un Kernel
67

Página 110
68
Capítulo 2 Configuración del kernel de Linux
actualizar - grub o grub - mkconfig nuevamente. Alternativamente, puede ubicar la entrada predeterminada en
/boot/grub/[Link] y modificarlo directamente:
establecer predeterminado = "0"
Sin embargo, este cambio no se conservará cuando usted (o algún script automatizado) reconstruya
el archivo /boot/grub/[Link] .

Administrar módulos del kernel en tiempo de ejecución


Los primeros núcleos de Linux consistían en un único archivo, que se cargaba en la memoria mediante el arranque.
cargador. Aunque los kernels modernos todavía usan este archivo de kernel principal, Linux ha admitido
módulos del kernel durante varios años. Colocar la mayoría de los controladores en módulos ayuda a mantener el tamaño de
el archivo principal del kernel hacia abajo, permite el uso de un solo kernel "genérico" en muchas computadoras
sin sobrecargar demasiado el tamaño del kernel y permite a los usuarios controlar cuándo y cómo
los controladores están cargados. Este enfoque requiere aprender algo sobre cómo los módulos son
controlado, sin embargo. Para empezar, debes saber cómo obtener información sobre tu kernel
versión y los módulos que están cargados actualmente. La carga de módulos también es importante para
su uso, y esta tarea se puede realizar configurando archivos de arranque para los módulos que
desea ser utilizado con frecuencia y mediante comandos únicos. Del mismo modo, descargar kernel
Los módulos pueden ser importantes en algunos casos. Finalmente, algunas herramientas pueden ayudarlo a mantener su
módulos del kernel, como cambiar las opciones predeterminadas y actualizar la información del sistema sobre
módulos disponibles.
Obtención de información sobre el kernel
y sus módulos
Antes de ajustar los módulos de su kernel, debe saber algo sobre el kernel y
los módulos ya instalados. Esta información puede ser útil porque puede informar a su
decisión de si es necesario cargar un nuevo módulo, qué módulos están utilizando
otros módulos y así sucesivamente.
Aprendiendo sobre el kernel
Puede obtener la información más importante sobre el kernel mediante el comando uname :
$ uname -a
Linux nessus [Link] # 3 SMP PREEMPT Domingo 26 de septiembre 23:32:11 EDT 2010 x86_64
Procesador AMD Athlon (tm) 64 X2 de doble núcleo 5400+ auténtico AMD GNU / Linux
Este programa proporciona varios tipos de información y puede indicarle qué información
proporcionar varias opciones, como se resume en la Tabla 2.5.

Página 111
TABLA 2.5 Opciones para uname
Opción corta
nombre
Opción larga
nombre
Explicación
- una
- - todas
Proporciona toda la información disponible. Esto suele ser un
opción segura de usar, aunque si sabe exactamente qué
información que necesita, puede crear un
mostrar usando una opción más específica o un conjunto de opciones.
-s
- - núcleo -
nombre
Produce el nombre del kernel, que normalmente es
Linux .
-n
- - nombre del nodo
Muestra el nombre de host del nodo de red ( nessus en el
ejemplo anterior). Este nombre es el que es localmente
configurado; dependiendo del nombre de dominio de la red
Configuraciones del servidor del sistema (DNS) y opciones del cliente,
la computadora podría o no ser realmente accesible
por este nombre.
-r
- - núcleo -
lanzamiento
Muestra el número de versión del kernel ( [Link] en el
ejemplo anterior). Esta información es a menudo muy
importante porque puede influir en qué módulos de controlador
se puede utilizar con el kernel.
-v
- - núcleo -
versión
Muestra información adicional sobre la versión del kernel. Esta
la información no incluye el número de versión del kernel,
sin embargo, como se muestra en la opción -r . Incluye el
fecha y hora de compilación del kernel ( # 3 SMP PREEMPT Dom 26 de septiembre
23:32:11 EDT de 2010 en el ejemplo anterior).
-m
- - máquina
Muestra un código para la CPU - x86_64 en el anterior
ejemplo, refiriéndose a un x 86 - 64 (también conocido como AMD64 o EM64T)
UPC.
- pags
- - procesador
Muestra una descripción de la CPU, como en AMD Athlon (tm)
64 X2 Dual Core Processor 5400+ en el anterior
ejemplo. Esta información suele ser muy útil si
necesita saber qué hardware de CPU específico está utilizando.
- yo
- - hardware -
plataforma
Muestra una cadena de identificación proporcionada por la CPU -
AuthenticAMD en el ejemplo anterior.
-o
- - operando -
sistema
Muestra el nombre del sistema operativo ( GNU / Linux en el
ejemplo). Esto es distinto del nombre del kernel (la - k
opción) porque se refiere al sistema operativo en su conjunto, no solo
el núcleo.
N/A
- - ayuda
Muestra un resumen de las opciones del programa.
N/A
- - versión
Muestra el número de versión de uname .
Administrar módulos del kernel en tiempo de ejecución
69
Página 112
70
Capítulo 2 Configuración del kernel de Linux
Algunas de estas opciones pueden parecer extrañas. Después de todo, probablemente sepas
perfectamente bien que está ejecutando Linux, entonces, ¿por qué usar una opción - k o - o ?
Sin embargo, la herramienta uname está disponible en sistemas operativos que no son Linux Unix, y así
es una forma práctica de que los scripts multiplataforma aprendan algo sobre
SO en el que se ejecutan. Los scripts se pueden ajustar ellos mismos
para que funcione correctamente en Linux, FreeBSD, Solaris, Mac OS X u otros
Ambientes. Si escribe un script de este tipo, tenga en cuenta que algunos sistemas operativos admiten
sólo las formas largas de las opciones (digamos, - - sistema operativo - en lugar de
- o ), por lo que debería utilizar la forma larga en scripts que podrían ejecutarse en
Sistemas Linux.
Para su propio uso, es probable que la información de lanzamiento del kernel sea la más importante.
Algunos módulos de kernel de terceros vienen en formas precompiladas que funcionan solo con ciertos
kernels, por lo que si la versión de su kernel no coincide, es posible que deba reconstruir la versión correcta,
como se describió anteriormente en “Compilación de un kernel. ”La arquitectura y los datos de la CPU también pueden
importante si aún no conoce esta información. Algunos programas funcionan solo con
ciertas CPU, y si necesita evaluar la velocidad de un sistema que no ha usado antes,
esto puede proporcionarle algunos datos básicos importantes. Los módulos del kernel precompilados también
normalmente funcionan solo con un tipo de CPU. Por ejemplo, no podría cargar un binario
módulo para una CPU x 86 en un kernel x 86 - 64 como el que produjo el anterior
salida de ejemplo.
Información y control del kernel
El directorio / proc aloja una variedad de archivos que proporcionan información y habilitan
control de muchos subsistemas Linux diferentes. Este directorio no es un directorio de disco ordinario;
es un sistema de archivos virtual , lo que significa que se genera sobre la marcha como un medio de interfaz
con programas y usuarios. (Los directorios / dev y / sys son otros dos ejemplos de
sistemas de archivos en Linux.)
De particular interés para el kernel es el subdirectorio / proc / sys / kernel , que contiene
una gran cantidad de archivos que le permiten ver y ajustar la configuración del kernel. Como práctica
importa, es poco probable que necesite utilizar este directorio con mucha frecuencia, ya que las herramientas de línea de comandos
proporcionar una interfaz más conveniente. Por ejemplo, uname proporciona acceso a varios archivos
en este directorio, como / proc / sys / kernel / ostype ( uname - s ) y / proc / sys / kernel /
versión ( uname - v ).

Página 113
Aprendiendo sobre los módulos del kernel
Puede aprender sobre los módulos que están cargados actualmente en su sistema usando lsmod ,
que no tiene opciones y produce un resultado como este:
$ lsmod
Módulo
Tamaño utilizado por
usblp
9283 0
e100
26134 0
r8169
31795 0
puente
40462 0
snd_hda_intel
17848 2
sr_mod
10922 0
CD ROM
28375 1 sr_mod
dm_mirror
10907 0
dm_region_hash
6280 1 dm_mirror
dm_log
7344 2 dm_mirror, dm_region_hash
Esta salida se ha editado por brevedad. Aunque las salidas tan cortas son
posibles con ciertas configuraciones, son raras.
La columna más importante de este resultado es la primera, denominada Módulo ; esta columna
especifica los nombres de todos los módulos que están cargados actualmente. Puedes aprender más sobre
estos módulos con modinfo , como se describe brevemente, pero a veces su propósito es bastante
obvio. Por ejemplo, el módulo cdrom proporciona acceso al CD - ROM (u otro dispositivo óptico
unidad de disco.
La columna Usado por de la salida de lsmod describe qué está usando el módulo. Todos
Las entradas tienen un número, que indica el número de otros módulos o procesos que están
utilizando el módulo. Por ejemplo, en el ejemplo anterior, el módulo usblp (usado para acceder
Impresoras USB) no está actualmente en uso, como lo revela su valor 0 , pero el snd_hda_intel
se está utilizando el módulo (utilizado para acceder al hardware de sonido), como lo muestra su valor de 2 . Si uno
de los módulos está siendo utilizado por otro módulo, el nombre del módulo que utiliza aparece en el
Usado por columna. Por ejemplo, el módulo sr_mod se basa en el módulo cdrom , por lo que este último
La columna Usado por del módulo incluye el nombre del módulo sr_mod . Esta información puede ser útil
al gestionar módulos. Por ejemplo, si su sistema produjo la salida anterior,
no se pudo eliminar directamente el módulo cdrom porque está siendo utilizado por el módulo sr_mod ,
pero podría eliminar el módulo sr_mod , y después de hacerlo, podría eliminar el cdrom
módulo. (Sin embargo, sería necesario volver a agregar ambos módulos para leer discos ópticos).
El comando lsmod solo muestra información sobre los módulos del kernel, no sobre
controladores que se compilan directamente en el kernel de Linux. Por esta razón, un
Es posible que el módulo deba cargarse en un sistema pero no en otro para usar
el mismo hardware porque el segundo sistema puede compilar los
controlador directamente en el kernel.
Administrar módulos del kernel en tiempo de ejecución
71

Página 114
72
Capítulo 2 Configuración del kernel de Linux
Puede aprender aún más sobre los módulos del kernel con la ayuda del comando modinfo .
Normalmente, escribe este comando seguido del nombre del módulo en el que está
interesado:
$ modinfo sr_mod
nombre de archivo: /lib/modules/[Link]/kernel/drivers/scsi/sr_mod.ko
licencia:
GPL
alias:
scsi: t-0x04 *
alias:
scsi: t-0x05 *
alias:
bloque-mayor-11- *
licencia:
GPL
descripción: controlador SCSI cdrom (sr)
srcversión: 8B17EBCB6C3BD4B1608CC70
depende:
CD ROM
vermagic: [Link] SMP preempt mod_unload modversions
parm: xa_test: int
La información devuelta generalmente incluye el nombre del archivo, su nombre de licencia, alias con los que
se conoce, una breve descripción, los nombres de los módulos de los que depende, algunos
información de la versión del kernel y parámetros que se pueden pasar al módulo. El exacto
Sin embargo, la información devuelta depende del módulo; algunos omiten algunos de estos campos o agregan
otros. Si está interesado en un solo campo, puede especificarlo con la opción -F fieldname ,
como en modinfo - F description sr_mod para obtener la descripción del módulo sr_mod .
La utilidad modinfo es más útil para aprender un poco sobre los módulos que ha visto en
Salida de lsmod que no puede identificar fácilmente. Desafortunadamente, muchos módulos carecen de los útiles
campo de descripción, por lo que en la práctica, modinfo suele ser menos útil de lo que podría ser.
Carga de módulos de kernel
Linux le permite cargar módulos del kernel con dos programas: insmod y modprobe . los
El programa insmod inserta un solo módulo en el kernel. Este proceso requiere que cualquier
los módulos en los que se basa el módulo que está cargando ya están cargados. El modprobe
programa, por el contrario, carga automáticamente cualquier módulo dependiente y por lo general lo es el
forma preferida de hacer el trabajo.
En la práctica, es posible que no necesite usar insmod o modprobe para cargar módulos
porque Linux puede cargarlos automáticamente. Esta habilidad se basa en el kernel
función de carga automática del módulo, que debe compilarse en el kernel, y
en varios archivos de configuración, que también son necesarios para modprobe y
algunas otras herramientas. El uso de insmod y modprobe puede resultar útil para probar nuevos
módulos o para solucionar problemas con el cargador automático.
En la práctica, insmod es un programa bastante sencillo de usar; lo escribe seguido de
el nombre de archivo del módulo:
# insmod /lib/modules/[Link]/kernel/drivers/cdrom/[Link]

Página 115
Este comando carga el módulo [Link] , que debe especificar por nombre de archivo.
Los módulos también tienen nombres de módulo, que suelen ser los mismos que el nombre del archivo pero sin
la extensión, como en cdrom para el archivo [Link] . Desafortunadamente, insmod requiere el
nombre de archivo del módulo, que puede ser tedioso de escribir, ¡o incluso localizar el archivo!
Puede pasar opciones de módulo adicionales al módulo agregándolas al comando
línea. Las opciones de módulo son muy específicas del módulo, por lo que debe consultar la documentación
para que el módulo aprenda qué aprobar. Los ejemplos incluyen opciones para decirle a una serie RS-232
controlador de puerto qué interrupción utilizar para acceder al hardware o para indicarle al búfer de cuadro de una tarjeta de video
controlador qué resolución de pantalla utilizar.
Algunos módulos dependen de otros módulos. En estos casos, si intenta cargar un módulo
eso depende de otros y esos otros módulos no están cargados, insmod fallará. Cuando esto
sucede, debe rastrear y cargar manualmente los módulos dependientes o usar
modprobe . En el caso más simple, puede usar modprobe tal como usa insmod , pasándole un
Nombre del módulo:
# modprobe cdrom
Al igual que con insmod , puede agregar opciones del kernel al final de la línea de comandos. diferente a
insmod , especifica un módulo por su nombre de módulo en lugar de su nombre de archivo de módulo cuando
usas modprobe . En términos generales, esto ayuda a que modprobe sea más fácil de usar, al igual que
el hecho de que modprobe carga automáticamente las dependencias. Esta mayor comodidad significa
que modprobe se basa en archivos de configuración, como se describe brevemente en "Mantenimiento del kernel
Módulos. ”También significa que puede usar opciones (colocadas entre el nombre del comando y
el nombre del módulo) para modificar el comportamiento de modprobe , como se resume en la Tabla 2.6.
Opción corta
nombre
Opción larga
nombre
Explicación
-v
- - detallado
Esta opción muestra información adicional en modprobe s '
operación. Normalmente, esto incluye un resumen de cada
operación insmod realizada.
- C nombre de archivo - - config
nombre del archivo
El programa modprobe usa un archivo de configuración llamado
/etc/[Link] . Puede cambiar el archivo
pasando un nuevo archivo con esta opción, como en modprobe
- C /etc/[Link] cdrom .
-n
- - funcionamiento en seco
Esta opción hace que modprobe realice comprobaciones y
todas las demás operaciones excepto el módulo real
inserciones. Puede utilizar esta opción junto
con - v para ver qué haría modprobe sin realmente
cargando el módulo. Esto puede resultar útil para depurar
especialmente si la inserción del módulo tiene algunos
efecto perjudicial, como deshabilitar el acceso al disco.
TABLA 2.6 Opciones comunes para modprobe
Administrar módulos del kernel en tiempo de ejecución
73

Página 116
74
Capítulo 2 Configuración del kernel de Linux
La lista de opciones de la Tabla 2.6 está incompleta. Los otros son relativamente oscuros,
por lo que es probable que no los necesite con frecuencia. Consulte la página de manual de modprobe para
más información.

Eliminar módulos del kernel


En la mayoría de los casos, puede dejar los módulos cargados indefinidamente; el único daño que un módulo
lo que hace cuando está cargado pero no se usa es consumir una pequeña cantidad de memoria. (El lsmod
programa muestra cuánta memoria consume cada módulo) .A veces, sin embargo, es posible que
desea eliminar un módulo cargado. Las razones incluyen recuperar esa pequeña cantidad de memoria,
descargar un módulo antiguo para que pueda cargar un módulo de reemplazo actualizado, y
eliminar un módulo que sospecha que no es confiable.
El trabajo real de descargar un módulo del kernel se realiza mediante el comando rmmod , que
es algo opuesto a insmod . El comando rmmod toma un nombre de módulo como
opción, sin embargo, en lugar de un nombre de archivo de módulo:
# rmmod cdrom
Opción corta
nombre
Opción larga
nombre
Explicación
-r
- - eliminar
Esta opción invierte el efecto habitual de modprobe ; causa
el programa para eliminar el módulo especificado y cualquier
de la que depende. (Depende - los módulos son
aunque no se eliminan si están en uso).
-f
- - fuerza
Esta opción le dice a modprobe que fuerce la carga del módulo
incluso si la versión del kernel no coincide con la
módulo especifica. Esta acción es potencialmente peligrosa,
pero ocasionalmente se requiere cuando se usa un tercero
módulos sólo binarios.
N/A
- - mostrar - depende Esta opción muestra todos los módulos sobre los que
el módulo especificado depende. Esta opción no se instala
cualquiera de los módulos; es de naturaleza puramente informativa.
-l
- - lista
Esta opción muestra una lista de opciones disponibles cuyas
los nombres coinciden con el comodín que especifique. Por ejemplo,
escribiendo modprobe - lv * muestra todos los módulos cuyos
los nombres comienzan con v . Si no proporciona ningún comodín, modprobe
muestra todos los módulos disponibles. Como - - mostrar - depende , esto
La opción no hace que se cargue ningún módulo.
TABLA 2.6 Opciones comunes de modprobe (continuación)

Página 117
Este comando de ejemplo descarga el módulo cdrom . Puede modificar el comportamiento de
rmmod de varias formas, como se resume en la Tabla 2.7.
TABLA 2.7 Opciones de rmmod
Nombre corto de la opción
Nombre de opción largo
Explicación
-v
- - detallado
Esta opción hace que se muestre rmmod
algo de información adicional sobre lo que es
haciendo. Esto puede ser útil si está
solucionar un problema.
-f
- - fuerza
Esta opción fuerza la extracción del módulo
incluso si el módulo está marcado como en
utilizar. Naturalmente, esta es una muy peligrosa
opción, pero a veces es útil si una
el módulo se está comportando mal de alguna manera
eso es aún más peligroso. Esta opción
no tiene ningún efecto a menos que el CONFIG_MODULE_
La opción de kernel FORCE_UNLOAD está habilitada.
-w
- - Espere
Esta opción hace que rmmod espere a que
módulo no se utilice, en lugar de
devolver un mensaje de error, si el módulo
Está en uso. Una vez que el módulo ya no está
siendo utilizado (por ejemplo, después de un disco óptico
está desmontado si intenta quitar el
cdrom ), rmmod luego descarga el
módulo y devoluciones. Hasta entonces, rmmod
no regresa, lo que hace que parezca que no es
haciendo algo.
-s
- - syslog
Puede enviar mensajes de error al
registrador del sistema en lugar de
salida de error estándar si usa esto
opción. Esto puede resultar útil en scripts
que se ejecutan en trabajos cron.
-V
- - versión
Esta opción muestra el número de versión
del programa rmmod .
Como insmod , rmmod opera en un solo módulo. Si intenta descargar un módulo que es
depende de otros módulos o está en uso, rmmod devolverá un mensaje de error. (El - w
La opción modifica este comportamiento, como se acaba de describir.) Si el módulo depende de otro
módulos, esos módulos se enumeran, por lo que puede decidir si desea descargarlos. Si tu quieres
Administrar módulos del kernel en tiempo de ejecución
75

Página 118
76
Capítulo 2 Configuración del kernel de Linux
para descargar una pila de módulos completa , es decir, un módulo y todos aquellos de los que depende
puede usar el comando modprobe y su opción - r , como se describe anteriormente en “Cargando
Módulos de kernel. "
EJERCICIO 2.1
Administrar módulos del kernel
Para aprender sobre los módulos del kernel, es útil experimentar. Este ejercicio te dará algunos
experiencia práctica. Se asume que tiene una computadora en la que se compila el controlador cdrom
como módulo. Si los controladores de disco óptico de su computadora están integrados directamente en el kernel, o si
no tiene unidad de disco óptico, es posible que deba seleccionar un módulo diferente para experimentar.
Antes de comenzar, debe ubicar un disco de datos. Cualquier disco de datos (CD-ROM, CD-R, DVD o
Blu-Ray, dependiendo de las capacidades de su hardware) servirá. Los CD de música no funcionan con
este procedimiento como está escrito. Con el disco en la mano, siga estos pasos:
1. Inserte el disco en la unidad y espere a que se apague la luz de acceso.
2. Adquirir privilegios de root iniciando sesión como root o escribiendo su e ingresando el root
contraseña. Debe escribir todos los siguientes comandos como root .
3. Monte el disco escribiendo mount / dev / cdrom / mnt / cdrom como root . Tu puedes necesitar
para cambiar el nombre de archivo del dispositivo o el punto de montaje, dependiendo de la computadora
configuración. Además, algunos sistemas Linux están configurados para montar automáticamente discos ópticos, por lo que
este paso puede ser innecesario.
4. Escriba lsmod | grep cdrom para ver la salida de lsmod relacionada con el módulo cdrom , que
debería estar en uso a menos que el controlador se haya compilado en el archivo principal del kernel. Este comando
También revelará el controlador específico del bus asociado con el dispositivo de disco óptico, generalmente
sr_mod o ide_cd_mod .
5. Escriba rmmod cdrom . El programa responderá que el controlador específico del bus está usando cdrom .
6. Escriba rmmod sr_mod (o cambie sr_mod a ide_cd_mod o cualquier módulo
identificado en el paso # 5). El programa responderá que el módulo está en uso, pero no dirá
por que. Esto se debe a que el módulo está siendo utilizado por un subsistema que no es módulo.
7.
Escriba umount / mnt / cdrom (cambiando el punto de montaje, si es necesario).
8. Repita los pasos 5 y 6. Esta vez, el paso 6 tendrá éxito. Luego puede escribir rmmod cdrom
para descargar ese módulo, y tendrá éxito. Este paso ilustra la eliminación de una pila de módulos
el camino más largo, utilizando rmmod en cada módulo individual.
9. Escriba modprobe - v sr_mod para volver a cargar la pila de módulos de disco óptico. (Cambiar sr_mod ,
si es necesario, para su sistema.) Se cargarán los módulos sr_mod y cdrom , como
revelado por la salida que genera la opción -v .
10. Monte su disco óptico nuevamente y verifique su contenido con ls para verificar que está funcionando.

Página 119
11. Escriba umount / mnt / cdrom para desmontar el disco óptico.
12. Escriba modprobe - v - r sr_mod (cambiando sr_mod , si es necesario). Esta acción se descargará
tanto sr_mod como cdrom , que ilustran cómo descargar una pila de módulos de forma rápida. En principio,
también se pueden descargar otros módulos, si fueron usados por sr_mod o cdrom y no
por cualquier otra cosa.
13. Verifique que cdrom esté descargado escribiendo lsmod | grep cdrom ; la salida estará vacía.
14. Escriba modprobe sr_mod para restaurar la pila del módulo de disco óptico y asegurarse de que funciona
correctamente cuando haya terminado con este ejercicio.
Por supuesto, puede experimentar con módulos del kernel adicionales; sin embargo, tenga cuidado: algunos
Los módulos son necesarios para el funcionamiento normal del sistema y, por lo tanto, nunca deben quitarse. En
En la mayoría de los casos, ni rmmod ni modprobe le permitirán eliminar el módulo, por lo que
el riesgo es bajo. A veces, sin embargo, eliminará un módulo solo para descubrir que lo necesita
algo que no es inmediatamente obvio. Por ejemplo, si elimina usblp , es posible que no
detecta un problema inmediatamente, pero si posteriormente intenta imprimir en una impresora USB,
el intento puede fallar. En el peor de los casos, reiniciar la computadora debería restaurarla a su estado normal.
mal funcionamiento. Pasos menos radicales, como recargar el módulo y reiniciar cualquier servicio
que depende de él, normalmente puede solucionar el problema.

Mantenimiento de los módulos del kernel


Herramientas como lsmod , modprobe y rmmod son muy útiles para administrar módulos del kernel.
Sin embargo, estas herramientas se basan en archivos de configuración, y saber cómo mantener estos archivos es
importante para mantener sus módulos funcionando sin problemas. La mayoría de estos archivos y las herramientas
que ayudan a modificarlos, solo es necesario tocarlos después de agregar o quitar un módulo a su
colección. A veces, sin embargo, es posible que desee cambiar la forma en que opera un módulo
pasándole las opciones del kernel; esto se puede hacer incluso si no ha compilado, agregado, reemplazado,
o eliminado un módulo.
Herramientas y archivos de mantenimiento del módulo del kernel
Dos archivos ayudan a administrar algunas características importantes del módulo del kernel:
Dependencias del módulo Las dependencias del módulo se almacenan en el archivo [Link] , que
reside en su directorio de módulos principal, / lib / modules / versión , donde la versión es el kernel
número de versión. (Este número a veces incluye códigos específicos de distribución).
normalmente edite este archivo directamente; en su lugar, usa depmod para trabajar en él. Escriba depmod sin
opciones como root reconstruirá el archivo [Link] para los módulos en el kernel actual
directorio de módulos. Esta acción también ocurre automáticamente cuando instala módulos del kernel,
como se describió anteriormente en “Instalación de módulos del núcleo. "
Configuración del módulo El archivo de configuración del módulo principal es /etc/[Link] o
/etc/[Link] . Este archivo contiene alias de módulo (es decir, nombres alternativos para módulos),
Administrar módulos del kernel en tiempo de ejecución
77

Página 120
78
Capítulo 2 Configuración del kernel de Linux
opciones de módulo y más. El formato de este archivo es sorprendentemente complejo, pero la mayoría de los cambios pueden
ser relativamente simple, como se describe brevemente en “Pasar opciones a los módulos del núcleo. " Muy viejo
distribuciones llamaron a este archivo /etc/[Link] , pero este nombre ha caído en desgracia.
En lugar de utilizar un /etc/[Link] o /etc/[Link] monolítico
archivo, muchas distribuciones modernas colocan archivos de configuración más pequeños en el
Directorio /etc/modules.d o /etc/modprobe.d . A veces una utilidad, como
como módulos: actualización , genera un archivo .conf desde el directorio, pero otros
veces, los archivos del subdirectorio se utilizan directamente. Si usa tal
distribución y desea cambiar la configuración de su módulo, debe hacer
entonces editando el archivo apropiado en /etc/modules.d o /etc/modprobe.d o
creando un nuevo archivo allí. Si ve un [Link] o [Link]
file, luego debe escribir módulos - actualizar como root.
Pasar opciones a los módulos del kernel
Puede pasar opciones a los módulos del kernel mediante insmod o modprobe ; sin embargo, Linux
normalmente carga un módulo automáticamente cuando determina que está intentando utilizar un dispositivo.
Cuando esto sucede, no puede pasar opciones manualmente al módulo del kernel. En cambio, tu
debe editar /etc/[Link] o /etc/[Link] (o un archivo en /etc/modules.d o
/etc/modprobe.d ) para indicarle al sistema las opciones que desea pasar. Para hacerlo, debes
agregue una línea de opciones , como esta:
opciones modo sisfb = 1280x1024 tasa = 75
Esta línea especifica opciones para el módulo sisfb , que es el controlador SiS framebuffer -
es decir, maneja modos de video basados en texto para ciertos chipsets de video SiS. (Framebuffer
X también puede utilizar los controladores a través del controlador de framebuffer X, pero X conduce
hardware de vídeo de forma más directa). Este ejemplo pasa dos opciones al módulo sisfb :
modo = 1280x1024 y tasa = 75 . Estas opciones le dicen al controlador que se ejecute a una resolución de 1280
1024 con una frecuencia de actualización de 75 Hz.
Desafortunadamente, las opciones de controlador están muy centradas en el controlador. Por ejemplo, si usara
el controlador de video vesafb (que funciona con muchas tarjetas de video compatibles con VESA) en lugar de
que el controlador sisfb , no usarías las opciones mode = y rate = ; en su lugar, usarías un
vga = opción, que toma un código numérico para configurar el modo de video. Tu mejor apuesta para aprender
acerca de las opciones que puede querer utilizar es consultar la documentación del controlador, como
descrito anteriormente en “Lectura de la documentación del kernel. "Si necesita pasar opciones a un
controlador que no se envió con un kernel estándar, consulte la documentación que lo acompaña.
Una vez que realice cambios en este archivo, debe escribir depmod , y si el módulo cuyo
se carga el comportamiento que desea afectar, descárguelo. Cuando lo recargue, las nuevas opciones deberían
tomar efecto. Algunos módulos, como los controladores de video framebuffer, no se pueden quitar fácilmente una vez
cargado, por lo que es posible que deba reiniciar la computadora para que los cambios surtan efecto.

Página 121
Resumen
Las distribuciones de Linux suelen proporcionar kernels precompilados que puede utilizar sin
modificación para la mayoría de los propósitos; sin embargo, a veces es necesario actualizar el kernel.
Puede hacer esto usando un kernel de su proveedor de distribución si solo necesita obtener
una actualización que corrige un error; sin embargo, si necesita las funciones de un nuevo kernel o si
necesita aplicar un parche de código fuente para obtener una característica inusual, tendrá que obtener el
el código fuente del kernel, compílelo e instálelo manualmente. La parte más difícil de esta tarea
es la configuración del kernel, debido a las miles de opciones del kernel. Afortunadamente puedes
use la configuración de un kernel que funcione como plantilla, y a menudo es posible deshabilitar grandes
grupos de opciones cuando sabe que su sistema no utiliza ninguna de ellas. Una vez que el kernel
La configuración está hecha, compilar e instalar el kernel es cuestión de escribir un puñado de
comandos. Agregar el kernel a su configuración de GRUB requiere más esfuerzo; esta tarea
generalmente implica copiar una configuración y luego modificarla para el nuevo kernel.
Una vez que un kernel se está ejecutando, aún puede requerir administración. Puedes identificar el kernel
que está utilizando con el comando uname . También puede cargar y descargar módulos del kernel,
que administran dispositivos de hardware específicos, sistemas de archivos y otras características, utilizando insmod ,
comandos modprobe y rmmod . Los módulos a veces requieren opciones para ajustar cómo
gestionar sus funciones. Estos se pueden pasar en la línea de comando insmod o modprobe , o
se puede ingresar en archivos de configuración de módulos como /etc/[Link] , / etc / modules
.conf , o un archivo en un subdirectorio llamado /etc/modprobe.d o /etc/modules.d .

Examen esencial
Resuma los nombres comunes y las ubicaciones de los binarios del kernel. Los binarios del kernel son
normalmente se encuentran en / boot , aunque a veces se almacenan en el directorio raíz ( / ).
Los binarios precompilados generalmente se denominan vmlinuz o vmlinuz - versión , donde versión es la
número de versión del kernel. Los núcleos compilados localmente se denominan con frecuencia zImage o zImage -
versión (en algunas plataformas oscuras o kernels muy antiguos) o bzImage o bzImage - versión
(en sistemas x 86 y x 86-64). Ocasionalmente, el nombre genérico kernel o kernel - versión es
usado. El archivo vmlinux es un kernel completo sin comprimir que se genera tarde en la compilación
proceso; se agregan algunas características y se comprime para crear las otras formas.
Describa dónde puede encontrar documentación sobre las características del kernel. Documentación del kernel
aparece en el árbol del directorio / usr / src / linux / Documentation . Gran parte de esta documentación
es información de programación altamente técnica, pero parte de ella describe el kernel y el módulo
opciones de uso para un administrador del sistema. La mayoría de las funciones del kernel también incluyen un breve resumen
descripciones que aparecen al hacer clic en la opción relevante en una herramienta de configuración basada en X
(o seleccionando el elemento de Ayuda al ejecutar make menuconfig ). Esta herramienta de configuración ayuda
es útil para decidir si compilar una característica o un conjunto de características.
Examen esencial
79

Página 122
80
Capítulo 2 Configuración del kernel de Linux
Describe por qué es posible que desees volver a compilar tu kernel. La recompilación de su kernel permite
que actualice al último kernel y optimice su kernel para su sistema. En la zona
Los núcleos compilados pueden incluir precisamente los controladores y otras características que necesita y
también se puede compilar con funciones de CPU para adaptarse a su sistema.
Explique la función de un archivo de parche del kernel. Un archivo de parche del kernel es un archivo único que codifica
cambios entre dos versiones de un kernel. Los archivos de parche del sitio principal del kernel permiten
y descargas de cambios en el kernel de bajo ancho de banda, si tiene una versión reciente
disponible y desea actualizar a una versión más reciente. Los parches de terceros le permiten
agregue controladores o características inusuales o en desarrollo al kernel.
Resuma el proceso de compilación del kernel. Para compilar un kernel, debe descargar el
código fuente del kernel, extraiga el código fuente, escriba make xconfig (o un comando similar) para
configure el kernel para su sistema, escriba make para compilar el kernel, escriba make modules_
install para instalar los módulos del kernel y luego copie el archivo del kernel en una ubicación conveniente
(normalmente / boot ). Luego debe reconfigurar su cargador de arranque para arrancar el nuevo kernel y
reinicie el sistema.
Describir las comunes maquillaje objetivos para el núcleo de Linux. El objetivo adecuado elimina
todos los archivos temporales y de configuración, mientras que clean elimina solo los archivos temporales. los
oldconfig target actualiza un archivo .config que ha copiado de una compilación anterior para incluir opciones
para el kernel actual. Las opciones config , menuconfig , xconfig y gconfig le permiten
para ajustar las opciones del kernel que se construirán. Los destinos zImage y bzImage crean el
kernel en sí, mientras que los módulos construyen módulos del kernel. El destino de modules_install instala
los módulos del kernel en / lib / modules .
Explique cómo puede crear un disco RAM inicial. Los discos RAM iniciales se pueden crear usando
mkinitrd , mkinitramfs o una utilidad similar. Debe pasar el nombre de archivo del disco RAM y
el número de versión del kernel a la utilidad y, opcionalmente, otras opciones de línea de comandos para
controlar las actividades del programa.
Resuma las herramientas utilizadas para cargar y descargar módulos del kernel. El insmod y modprobe
las herramientas cargan módulos del kernel. La herramienta insmod carga un solo módulo del kernel por nombre de archivo, mientras
modprobe carga un módulo y todos aquellos de los que depende por nombre de módulo. El rmmod
comando elimina un solo módulo del kernel, siempre que no esté en uso, mientras que modprobe puede
eliminar una pila de módulos si se llama con su opción -r .
Describe cómo saber qué opciones acepta un módulo. Puede utilizar la herramienta modinfo ,
como en modinfo cdrom , para obtener información técnica sobre un módulo, incluidas las opciones
acepta. Sin embargo, los parámetros enumerados por esta herramienta pueden ser un poco crípticos. Para una mas clara
explicación, debe buscar la documentación en / usr / src / linux / Documentation .
Explique cómo saber qué módulos están instalados en su sistema. El comando lsmod
muestra información sobre los módulos cargados actualmente, incluidos sus nombres, memoria
consumidos, si están en uso y qué otros módulos dependen de ellos. Tenga en cuenta que los controladores
integrado directamente en el kernel no aparece en esta lista.

Página 123
Preguntas de revisión
81

Preguntas de revisión
1. ¿Cuál es el nombre convencional para un kernel de Linux de arranque compilado localmente en un x 86
¿sistema?
A. / boot / vmlinux - versión
B. / boot / vmlinuz
C. / boot / bzImage - versión
D. / usr / src / linux - versión
2. ¿Cuál de las siguientes afirmaciones sobre / usr / src / linux suele ser cierta?
A. Es un enlace simbólico a un directorio que contiene el código fuente del kernel actual del sistema, o
la versión que se está preparando actualmente.
B. Contiene subdirectorios, cada uno de los cuales contiene el código fuente de una versión diferente.
del kernel de Linux.
C. Contiene binarios del kernel para x 86, x 86 - 64, PowerPC, Alpha y varias otras CPU
arquitecturas.
D. Debido a su contenido sensible, nadie más que el
superusuario del sistema (root).
3. ¿En qué directorio podría buscar información sobre las opciones que se pueden aplicar a su
módulo de controlador Ethernet de la computadora?
A. / usr / src / linux / Documentación
B. / lib / modules / opciones
C. / usr / share / doc / modules
D. /etc/[Link]
4. ¿Qué tipo de imagen de kernel se ha abandonado en gran medida en computadoras x 86 a favor de la
bzFormato de imagen?
A. vmlinux
B. zImage
C. initramfs
D. initrd
5. ¿Cuál de los siguientes comandos, cuando se escribe en / usr / src / linux después de configurar el
kernel, compila el archivo principal del kernel de Linux y sus módulos?
A. hacer bzImage
B. hacer módulos
C. hacer xconfig
D. hacer

Página 124
82
Capítulo 2 Configuración del kernel de Linux
6. ¿Qué dos de las siguientes características del núcleo en caso de que compilar en el archivo del kernel principal de
¿Una instalación normal basada en disco x 86 - 64 para simplificar el arranque del sistema? (Seleccione dos.)
A. Controladores para el controlador ATA o el adaptador de host SCSI de su disco de arranque
B. Soporte para su sistema de archivos raíz (/)
C. Controladores para su puerto USB
D. Controladores de framebuffer para su tarjeta de video
7.
Ha compilado e instalado un nuevo kernel, de la versión [Link]. Ahora quieres prepararte
un disco RAM inicial. El cual dos de los siguientes comandos lo harán, en función de su
¿distribución? (Seleccione dos opciones).
A. mkinitrd - o / boot / initrd - [Link] [Link]
B. mkinitrd / boot / initrd - [Link] [Link]
C. mkinitramfs / boot / initramfs - [Link] [Link]
D. mkinitramfs - o / boot / initramfs - [Link] [Link]
8. ¿Cuál de los siguientes comandos podría escribir mientras está en / usr / src / linux, después de copiar
el archivo de configuración de un kernel antiguo, para usar las opciones del kernel antiguo y actualizar el
configuración para nuevas opciones en el nuevo kernel?
A. hacer config
B. hacer allmodconfig
C. hacer oldconfig
D. hacer mrproper
9. ¿ En cuál de las siguientes circunstancias tendría menos sentido parchear un kernel?
A. Tiene un código fuente de kernel estable reciente y necesita agregar soporte para un nuevo
característica del kernel que no está en esa versión.
B. Tiene una fuente de kernel reciente, pero tiene un controlador defectuoso. Hay una solución disponible en una versión posterior.
kernel y está disponible como parche para su kernel actual.
C. Tiene la fuente del kernel 2.6.36 y desea actualizar a un kernel [Link].
D. Tiene el código fuente del kernel de su responsable de distribución y desea compilar un
Kernel "genérico" para su sistema.
10. Ha descargado el parche - archivo [Link].bz2. ¿Qué programa utilizará como parte de
la operación de parche para manejar la compresión de este archivo?
A. bunzip2
B. gunzip
C. alquitrán
D. cpio

Página 125
Preguntas de revisión
83
11. ¿Cuál de los siguientes comandos escribiría para configurar un kernel de Linux usando un
herramienta de modo de texto interactivo?
A. hacer xconfig
B. hacer menuconfig
C. hacer configuración
D. hacer textconfig
12. Ha configurado y compilado su nuevo kernel, versión [Link]. Ahora escribe make
instalación_módulos . ¿Dónde puede esperar encontrar los archivos del módulo?
A. / lib / modules / módulos - [Link]
B. /usr/src/linux/[Link]
C. /lib/modules/[Link]
D. /usr/lib/[Link]
13. ¿En qué archivo del árbol de fuentes del kernel de Linux se almacenan las opciones de configuración?
A. [Link]
B. configurar
C. .config
D. [Link]
14. Después de copiar una entrada de configuración existente de GRUB Legacy, ¿cuáles son las tres características más
¿Es importante modificar para que la nueva entrada funcione con un nuevo kernel?
A. El título, el nombre del archivo del kernel y el nombre del archivo initrd
B. El título, el nombre del archivo del kernel y la entrada raíz del kernel
C. Las opciones del kernel, el nombre del archivo initrd y las opciones initrd.
D. El nombre del archivo del kernel, las opciones del kernel y las opciones initrd.
15. ¿Qué esperaría ver si escribe uname - a ?
A. Información sobre el nombre de usuario del usuario actual, incluido el nombre real del usuario
B. Información sobre el sistema en ejecución, como el SO, la versión del kernel y la
Tipo de CPU
[Link]ón sobre el nombre de host de la computadora, tal como se define localmente
D. Información sobre los módulos del kernel cargados, incluidos los módulos sobre los que
depender
16. ¿Cuál es la diferencia práctica más importante entre insmod y modprobe?
A. insmod descarga un solo módulo, mientras que modprobe carga un solo módulo.
B. insmod carga un solo módulo, mientras que modprobe carga un módulo y todos aquellos en
del cual depende.
C. insmod no es un comando real de Linux, pero modprobe carga un módulo y todos los
del cual depende.
D. insmod carga un solo módulo, mientras que modprobe muestra información sobre los módulos.

Página 126
84
Capítulo 2 Configuración del kernel de Linux
17. Escribe el comando rmmod ide_core , pero el sistema responde con el mensaje ERROR:
El módulo ide_core está siendo utilizado por via82cxxx, ide_cd, ide_disk. Cuál es el significado de
esta respuesta?
A. Los módulos via82cxxx, ide_cd e ide_disk dependen de ide_core, por lo que ide_core
no se puede descargar sin descargar primero estos otros módulos.
B. El módulo ide_core se basa en los módulos via82cxxx, ide_cd e ide_disk, por lo que
no se puede descargar sin descargar primero ide_core.
C. El módulo ide_core es un módulo principal, lo que significa que nunca se puede descargar una vez
está cargado.
D. El módulo ide_core tiene errores o la utilidad rmmod está rota; nunca debería devolver un
mensaje de error.
18. ¿Qué archivo o archivos podría editar para cambiar las opciones que se pasan automáticamente a
módulos del kernel? (Seleccione todas las que correspondan.)
A. Archivos en el directorio /etc/modules.d
B. [Link] en el directorio de módulos
C. .config en el directorio del kernel
D. /etc/[Link]
19. Tiene dos computadoras, ambas con placas base y unidades de DVD idénticas. Ambos
ejecutar el kernel [Link], que se configuró y compiló de forma independiente en cada sistema.
En una (computadora), escribir lsmod produce una salida que incluye el módulo cdrom. En
el otro (ComputerB), mecanografía lsmod qué no producir una salida que incluye un módulo llamado
cdrom, incluso cuando la unidad de DVD está en uso. ¿Qué podría explicar esta diferencia?
A. El controlador cdrom se utiliza para acceder a dispositivos de CD - ROM, no a unidades de DVD, por lo que su presencia
en computadora pero no en computadorab no es importante.
B. La unidad "DVD" en la computadora es claramente una falsificación, ya que su uso no debería activar
carga del controlador cdrom.
C. El controlador cdrom está construido como un módulo en la computadora, pero está integrado en el kernel principal
archivo en computadora b.
D. Debe escribir insmod cdrom antes de usar la unidad en la computadorab, de lo contrario, las transferencias de datos
se corromperá.
20. ¿Cuál de los siguientes archivos contiene la misma información que se puede obtener escribiendo
uname - v ?
A. / usr / src / linux / Documentation / variables
B. / lib / modules / verbose
C. / etc / kernel / verbose
D. / proc / sys / kernel / versión

Página 127
Respuestas a las preguntas de repaso
1. C. Los kernels de Linux compilados localmente se suelen llamar / boot / bzImage o / boot / bzImage -
versión , donde versión es el número de versión. El archivo vmlinux es completo pero
imagen de kernel que no se puede iniciar utilizada para generar otros formatos de archivo de imagen, por lo que la opción A es incorrecta.
El archivo de versión / boot / vmlinuz o / boot / vmlinuz es el kernel de la distribución estándar, no
un kernel compilado localmente, por lo que la opción B es incorrecta. El nombre de la versión / usr / src / linux es
que se encuentra en el directorio de origen del kernel de Linux, no en un archivo de compilación del kernel, por lo que la opción D es incorrecta.
2. A. La opción A describe correctamente el estado habitual de / usr / src / linux. La opción B es incorrecta
porque / usr / src / linux generalmente apunta a una sola versión del kernel de Linux. Opción
Sin embargo, B podría ser cierto para / usr / src. La opción C es incorrecta porque, aunque Linux
El árbol de fuentes del kernel se puede usar para construir binarios para una amplia gama de CPU, es raro compilar
todos ellos en una computadora. La opción D es incorrecta porque el árbol de fuentes del kernel se
disponible en Internet; no hay nada particularmente sensible al respecto o sobre el
archivos intermedios o binarios finales producidos. Además, el acceso a algunos encabezados del kernel
los archivos son necesarios para los usuarios normales que necesitan compilar software.
3. A. El árbol del directorio / usr / src / linux / Documentation contiene archivos que describen el
características de muchos subsistemas y módulos del kernel de Linux, incluidas las unidades Ethernet. Así,
este directorio es un buen lugar para buscar la información especificada. Opciones B y C ambas
describir ubicaciones ficticias. La opción D es un nombre común para la configuración de un módulo
expediente. Aunque puede encontrar las opciones Ethernet actuales de su sistema en este archivo,
puede que no esté bien documentado. Además, la pregunta solicita un directorio y / etc /
[Link] es un archivo . Por tanto, la opción D es incorrecta.
4. B. El formato zImage alguna vez fue común en computadoras x 86, pero se ha abandonado en gran medida.
en esa plataforma, como especifica la pregunta. La opción A, vmlinux, es el nombre usado por un
forma completa pero no arrancable del kernel de Linux generado como un paso intermedio en
preparar otros formatos de kernel. Las opciones C y D son nombres dados a los discos RAM iniciales, no
imágenes de kernel.
5. D. Escribir make solo construirá tanto el archivo principal del kernel como todos los módulos del kernel, por lo que
la opción D es correcta. Alternativamente, puede escribir los comandos especificados por ambas opciones
A y B; sin embargo, estas opciones construyen el archivo del kernel y los módulos solos, respectivamente,
por lo que ninguno de los dos es adecuado y ambas opciones son incorrectas. La opción C especifica uno
de varios comandos de configuración del kernel; no compilará un kernel o sus módulos y también
incorrecto.
6. A, B. El kernel de Linux necesita poder acceder a su disco duro para continuar más allá del
etapa de arranque básica, por lo que necesita controladores para el controlador ATA o el adaptador de host SCSI de su disco duro
así como soporte para cualquier sistema de archivos que use en su partición raíz (/) en el kernel
sí mismo. Alternativamente, estos controladores se pueden colocar en un disco RAM inicial, pero esta configuración
requiere más trabajo. El puerto USB no es necesario durante el proceso de arranque, por lo que la opción C es
incorrecto. (Los controladores de CD-ROM son, por supuesto, necesarios para las distribuciones basadas en CD-ROM, pero
pregunta especificó una instalación basada en disco duro.) Aunque la compatibilidad con la tarjeta de video es requerida por
la mayoría de las instalaciones, el soporte básico de vídeo en modo texto es estándar y los controladores en X Window
El sistema maneja video GUI. Los controladores de framebuffer especificados en la opción D son definitivamente opcionales
en las plataformas x 86 y x 86 - 64, lo que hace que la opción D sea incorrecta.
Respuestas a las preguntas de repaso
85

Página 128
86
Capítulo 2 Configuración del kernel de Linux
7.
B, D. Las utilidades mkinitrd y mkinitramfs generan discos RAM iniciales. El cuatro
Las opciones usan cada uno de estos dos comandos, variando en cuáles usan un parámetro a - o antes de
el nombre de archivo del disco RAM inicial y cuáles no. Dado que el comando mkinitrd hace
No utilizar un parámetro - o pero mkinitramfs hace requieren este parámetro, que hace que las opciones B
y D correctas, mientras que las opciones A y C son incorrectas.
8. C. En el kernel de Linux, el destino de oldconfig para hacer hace lo que especifica la pregunta,
entonces la opción C es correcta. La opción A se utiliza para consultar al usuario en modo texto sobre cada
opción de kernel. Esto difiere de la acción de la opción oldconfig en esa vieja configuración
omite las opciones que ya están presentes en el archivo de configuración anterior, acortando enormemente la
proceso de configuración. La opción B es incorrecta porque descarta el archivo de configuración anterior
y construye uno nuevo con tantas opciones especificadas como construcción modular como sea posible.
La opción D hace que se eliminen todos los archivos intermedios y de configuración.
9. D. El código fuente del kernel de los encargados del mantenimiento de la distribución suele estar muy parcheado, lo que
la aplicación de nuevos parches para crear un kernel "genérico" es difícil. Por tanto, la opción D es una mala
elección para parchear; probablemente sea mejor descargar la versión deseada del kernel directamente en
este caso. Las opciones A y B describen casos en los que la aplicación de parches es razonable: debe
aplicar un parche de terceros para una nueva función del kernel (opción A) o un controlador actualizado (opción
SI). En el caso de la opción B, puede optar por actualizar al kernel más nuevo (descargando
todo o mediante la aplicación de un parche) o simplemente aplique el parche para la corrección, pero un parche es
un enfoque razonable en cualquier caso. La opción C describe un buen candidato para parchear; tu eres
actualizar sobre una diferencia de versión muy pequeña, que probablemente sea un parche fácil de aplicar.
10. A. La extensión de nombre de archivo .bz2 indica que el archivo de parche está comprimido con bzip2. Tal
Los archivos se pueden descomprimir con bunzip2, como especifica la opción A. El programa gunzip de la opción B es
utilizado para descomprimir archivos comprimidos con gzip; estos archivos suelen tener extensiones .gz, por lo que
La opción es incorrecta. Los programas tar y cpio especificados por las opciones C y D manejan el archivo
archivos, pero los archivos de parche no son archivos de almacenamiento, por lo que ambas opciones son incorrectas.
11. B. El comando de configuración del kernel make menuconfig inicia una interfaz interactiva basada en texto.
herramienta de configuración del menú. Esta herramienta proporciona las mismas capacidades que la herramienta basada en X que es
iniciado por make xconfig. Ambas herramientas son más flexibles que el texto básico -
modo hacer config. No hay destino de make textconfig.
12. C. La opción C especifica la ubicación habitual de los módulos del kernel para el kernel [Link].
(Si utiliza la opción Versión local de configuración general, el número de versión y,
nombre del directorio en / lib / modules, se puede expandir.) Dado que no hay módulos - prefijo
al número de versión del kernel en el nombre del directorio de módulos, la opción A es incorrecta.
Aunque los archivos de módulos individuales se pueden encontrar en el árbol de fuentes de Linux, así como
en la ubicación del archivo instalado, estos archivos no aparecen en un subdirectorio con el nombre de
versión del kernel, por lo que la opción B es incorrecta. Los módulos del kernel de Linux normalmente no aparecen
en cualquier lugar del árbol de directorios / usr / lib, por lo que la opción D es incorrecta.
13. C. El archivo .config contiene opciones de configuración para el kernel. Opciones A, B y D todas
describir archivos ficticios. (Tenga en cuenta que muchos paquetes que no son del núcleo incluyen un archivo de configuración, pero
este es un script que se utiliza para configurar el software para su sistema).

Página 129
14. A. El título debe cambiarse para que pueda identificar el nuevo kernel cuando reinicie
y los nombres de archivo para el kernel y el archivo initrd (si está presente) deben cambiarse a
inicie el kernel correcto con la imagen de disco RAM correcta. Por tanto, la opción A es correcta. Algunos
de estos tres elementos se repiten en las opciones B, C y D, pero ninguna de estas opciones incluye
todos ellos, y cada uno incluye elementos que normalmente no es necesario cambiar. El kernel
La entrada raíz y otras opciones normalmente no necesitan ajuste, y la entrada initrd no
normalmente tienen opciones, además del nombre de archivo de la imagen del disco RAM.
15. B. El comando uname muestra información del sistema, y - una opción para ese comando
hace que muestre toda la información que está diseñada para resumir. Opciones A, C y D
son todas incorrectas, aunque otras utilidades producirán estos resultados: whoami, hostname y
lsmod realiza los trabajos descritos por las opciones A, C y D, respectivamente.
16. B. La opción B resume correctamente las acciones principales de ambos comandos. Opcion A
establece que modprobe carga un solo módulo. Esto es solo parcialmente correcto; cargas modprobe
el módulo que especifique y aquellos de los que depende. La opción A también establece que insmod
descarga un módulo, cuando en realidad carga un módulo. La opción C dice que insmod no es un verdadero
comando, pero lo es. La opción D dice que modprobe muestra información sobre los módulos, pero
no es así; esa función es manejada por modinfo.
17. A. La utilidad rmmod solo puede eliminar módulos que no están siendo utilizados por otros módulos
o por otro software del sistema. El mensaje de error en este caso indica que el otro
módulos especificados se basan en ide_core, por lo que no puede descargar ide_core hasta que esa dependencia sea
roto al descargar estos otros módulos. La opción B especifica esta dependencia al revés.
Aunque algunos módulos son difíciles de eliminar una vez cargados, no se denominan "módulos principales"
como especifica la opción C. La utilidad rmmod puede devolver y devuelve mensajes de error cuando lo solicita
hacer algo que no puede hacer, al contrario de lo que dice la opción D.
18. A, D. El archivo /etc/[Link] controla la carga automática del módulo y las opciones pasadas
a los módulos automáticamente. En la mayoría de las distribuciones, edita este archivo directamente; sin embargo, algunos
requiere que edite archivos en /etc/modules.d y luego escriba módulos - actualice para tener el
módulos de actualización del [Link] en sí. El archivo [Link] al que se hace referencia en la opción B especifica
dependencias de módulo, no opciones de módulo pasadas a los módulos. El archivo .config del kernel
controla qué características del kernel se compilan; no especifica opciones pasadas a los módulos.
19. C. El comando lsmod muestra información sobre los módulos del kernel, pero no sobre los controladores que están
integrado en el archivo del kernel. Dada la evidencia presentada en la pregunta, es seguro concluir
que el controlador cdrom está integrado en el archivo principal del kernel utilizado por computerb, como indica la opción C.
El controlador cdrom se utiliza para acceder a unidades de CD - ROM y DVD, al contrario de las opciones A
y B. Aunque escribir insmod cdrom , como sugiere la opción D, podría ser necesario en algunos
situaciones, la pregunta especificaba que la unidad estaba en uso, por lo que claramente no era necesario
en la computadora b. Además, si no se escribe insmod cdrom , si es necesario, se producirá una
falla al acceder a la unidad, no corrupción de datos.
20. D. El árbol de directorios / proc / sys / kernel contiene información sobre muchas características críticas del kernel.
Muchas de estas funciones son accesibles o modificables a través de utilidades especializadas, incluida uname,
y el comando especificado muestra el contenido del archivo especificado en la opción D. Los archivos
especificadas en las opciones A, B y C son todas ficticias.
Respuestas a las preguntas de repaso
87

Página 130

Página 131

Sistema de archivos básico


administración
EL SIGUIENTE PROFESIONAL DE LINUX
LOS OBJETIVOS DEL INSTITUTO ESTÁN CUBIERTOS EN
ESTE CAPÍTULO:
203.1 Operación del sistema de archivos Linux (peso: 4)
203.2 Mantenimiento de un sistema de archivos Linux (peso: 3)
203.3 Creación y configuración de opciones del sistema de archivos
(peso: 2)
203.4 Gestión de dispositivos udev (peso: 1)

Capítulo

3
Página 132
Los archivos de Linux se almacenan en uno o más sistemas de archivos , que son
Grandes estructuras de datos que permiten el acceso a archivos almacenados por nombre.
Los sistemas de archivos requieren una cierta cantidad de esfuerzo para administrar y
mantener. Áreas específicas que deben ser atendidas para incluir el montaje de sistemas de archivos (es decir,
hacer accesibles los sistemas de archivos de disco adjuntándolos al árbol de directorios de Linux), creando
sistemas de archivos, reparar errores en sistemas de archivos y ajustarlos para un rendimiento óptimo.
También existen varios sistemas de archivos de casos especiales y variantes de sistemas de archivos. El espacio de intercambio no es
técnicamente un sistema de archivos, pero es espacio de almacenamiento en disco y por eso se trata en este capítulo. Óptico
Los discos utilizan sus propios sistemas de archivos especiales, que tienen métodos únicos de creación. Finalmente, el
La herramienta udev de Linux crea un sistema de archivos especial que se utiliza para acceder a los dispositivos de hardware. Usted
puede
escribir reglas udev que ajusten los nombres y otras características de los archivos que Linux crea
habilitar el acceso del programa al hardware.
La palabra sistema de archivos tiene dos significados. Este primero, como se acaba de describir,
se refiere a las estructuras de datos de disco de bajo nivel asociadas con el almacenamiento
áreas para archivos. El segundo significado es el de un directorio completo de Linux
árbol, como en "el directorio / etc en el sistema de archivos de Linux contiene la configuración
archivos. "No todos los sistemas de archivos en el sentido de una estructura de datos de bajo nivel tienen una
directorio / etc , pero cada sistema de archivos raíz de Linux de alto nivel tiene
un directorio. Esta distinción suele ser clara en el contexto, pero cuando hay
puede haber confusión, utilizo términos adicionales o diferentes para aclarar las cosas;
por ejemplo, podría usar los términos de nivel bajo o alto para referirme a un
significado específico de la palabra sistema de archivos , o podría usar el término directorio
árbol en lugar de sistema de archivos cuando se hace referencia a la estructura de alto nivel. Esta
El capítulo se ocupa de los sistemas de archivos de bajo nivel.

Hacer que los sistemas de archivos estén disponibles


Los sistemas de archivos son inútiles a menos que sean accesibles, por lo que este capítulo comienza con un vistazo a cómo
Los sistemas de archivos pueden estar montados en Linux. Esta tarea comienza con un recuento de los tipos de sistemas de archivos.
Luego puede buscar métodos para montar un sistema de archivos, ya sea por una sola vez o
de forma permanente (para que un sistema de archivos vuelva a aparecer cuando reinicie la computadora). Puedes
también desea utilizar un montador automático, que es un componente de software que
monta sistemas de archivos que no ha descrito explícitamente. Los automovilistas son especialmente útiles
con medios extraíbles. No importa cómo se hayan montado los sistemas de archivos en particular, debe

Página 133
Ser capaz de determinar qué sistemas de archivos están montados actualmente. También deberías poder
desmontar sistemas de archivos.
Identificación de tipos de sistemas de archivos
Linux admite bastantes sistemas de archivos diferentes, tanto nativos de Linux como aquellos destinados a
otros sistemas operativos. Algunos de estos últimos apenas funcionan en Linux, e incluso cuando funcionan de manera confiable,
por lo general, no admiten todas las características que espera Linux en sus sistemas de archivos nativos. Así,
al preparar un sistema Linux, utilizará uno o más de sus sistemas de archivos nativos para la mayoría o
todas las particiones:
Ext2fs El segundo sistema de archivos extendido (ext2fs o ext2) es el tradicional nativo de Linux
sistema de archivos. Fue creado para Linux y fue el sistema de archivos de Linux dominante en todo
finales de los noventa. Ext2fs tiene la reputación de ser un sistema de archivos confiable. Desde entonces ha sido eclipsado
por otros sistemas de archivos, pero todavía tiene sus usos. En particular, ext2fs puede ser una buena opción para
una pequeña partición / boot , si elige usar una, y para una pequeña (sub-gibibyte) extraíble
discos. En particiones tan pequeñas, el tamaño del diario utilizado por sistemas de archivos más avanzados
puede ser un problema real, por lo que ext2fs sin diario es una mejor opción. (Llevar un diario es
una función que permite una recuperación más rápida después de un corte de energía, un bloqueo del sistema u otro
desconexión incontrolada del disco duro de la computadora.) El tipo de sistema de archivos ext2
el código es ext2 .
Ext3fs El tercer sistema de archivos extendido (ext3fs o ext3) es básicamente ext2fs con un diario
adicional. El resultado es un sistema de archivos que es tan confiable como ext2fs pero que se recupera del poder
las interrupciones y el sistema se bloquean mucho más rápidamente. El código de tipo de sistema de archivos ext3 es ext3 .
Ext4fs El cuarto sistema de archivos extendido (ext4fs o ext4) es la versión de próxima generación
de esta familia de sistemas de archivos. Agrega la capacidad de trabajar con discos muy grandes (aquellos sobre
32 tebibytes) o archivos muy grandes (los de más de 2 tebibytes), así como extensiones destinadas a
mejorar el rendimiento. Su código de tipo de sistema de archivos es ext4 .
ReiserFS Este sistema de archivos fue diseñado desde cero como un sistema de archivos de diario para Linux
y es una opción popular en este rol. Es particularmente bueno para manejar sistemas de archivos con grandes
número de archivos pequeños (digamos, más pequeños que unos 32 KB) porque ReiserFS utiliza varios
trucos para apretar los extremos de los archivos en los espacios no utilizados de los demás. Este pequeño ahorro puede
suman un gran porcentaje de tamaños de archivo cuando los archivos son pequeños. Deberías usar reiserfs
como el código de tipo para este sistema de archivos.
A partir de la versión [Link] del kernel de Linux, la versión 3. x de ReiserFS está actualizada. De -
La reescritura desde cero de ReiserFS, conocida como Reiser4, se está desarrollando pero ha
aún no se ha integrado en el núcleo principal.
JFS IBM desarrolló el Journaled File System (JFS) para su sistema operativo AIX y luego lo volvió a implementar
en OS / 2. Posteriormente, la versión OS / 2 se donó a Linux. JFS es técnicamente
sofisticado sistema de archivos de diario que puede ser de particular interés si está familiarizado con
Hacer que los sistemas de archivos estén disponibles
91
Página 134
92
Capítulo 3 Gestión básica del sistema de archivos
AIX u OS / 2 o desea un sistema de archivos avanzado para usar en un sistema de arranque dual con uno de estos
Sistemas operativos. Como era de esperar, el código de tipo de este sistema de archivos es jfs .
XFS Silicon Graphics (SGI) creó su Extents File System (XFS) para su sistema operativo IRIX y,
como IBM, luego donó el código a Linux. Como JFS, XFS es un software muy sofisticado técnicamente
sistema de archivos. XFS se ha ganado una reputación por su robustez, velocidad y flexibilidad en IRIX,
pero algunas de las características de XFS que lo hacen tan flexible en IRIX no son compatibles con
Linux. Utilice xfs como código de tipo para este sistema de archivos.
Btrfs Este sistema de archivos (pronunciado "ef ess de mantequilla" o "ef ess de árbol de abejas") es un avanzado
sistema de archivos con características inspiradas en las del sistema de archivos Zettabyte (ZFS) de Sun. Como ext4fs,
JFS y XFS, Btrfs tiene un rendimiento rápido y puede manejar discos y archivos muy grandes. A partir de
el kernel [Link], Btrfs se considera experimental; sin embargo, sus funciones avanzadas hacen
es un probable sucesor de los populares sistemas de archivos actuales.
En la práctica, la mayoría de los administradores eligen ext3fs, ext4fs o ReiserFS como su principal
sistemas de archivos; sin embargo, JFS y XFS también funcionan bien, y algunos administradores los prefieren,
particularmente en discos grandes que almacenan archivos grandes. (Ext4fs también maneja archivos grandes, pero es
más reciente y, por lo tanto, menos confiable que JFS y XFS.) Datos duros sobre los méritos y problemas
con cada sistema de archivos son difíciles de conseguir, e incluso cuando existen, son sospechosos
porque el rendimiento del sistema de archivos interactúa con muchos otros factores. Por ejemplo, tan solo
señaló, ReiserFS puede meter más archivos pequeños en un espacio pequeño que otros sistemas de archivos, pero
esta ventaja no es muy importante si almacenará principalmente archivos más grandes.
Si está utilizando una plataforma que no sea x 86 o que no sea x 86-64, asegúrese de verificar
desarrollo del sistema de archivos en esa plataforma. Un sistema de archivos puede ser rápido y
confiable en una CPU pero lento y poco confiable en otra.
Además de estos sistemas de archivos nativos de Linux, es posible que deba tratar con algunos otros de
de vez en cuando, incluidos los siguientes:
FAT El sistema de archivos de la tabla de asignación de archivos (FAT) es antiguo y primitivo, pero omnipresente.
Es el único sistema de archivos de disco duro compatible con DOS y Windows 9 x / Me. Por esta razón,
todos los sistemas operativos principales entienden FAT, lo que lo convierte en un excelente sistema de archivos para intercambiar
datos en
Discos extraíbles. FAT varía en dos dimensiones ortogonales principales: el tamaño de los datos FAT
estructura después de la cual se nombra el sistema de archivos (punteros de 12, 16 o 32 bits) y soporte (o
falta de ella) para nombres de archivo largos. Linux detecta automáticamente el tamaño FAT, por lo que no debería
Necesito preocuparme por esto. Para utilizar los nombres de archivo FAT originales, que están limitados a ocho
caracteres con una extensión opcional de tres caracteres (los llamados nombres de archivo 8.3 ), utilice la
Código de tipo de sistema de archivos de Linux de msdos . Para usar nombres de archivo largos al estilo de Windows, use el sistema
de archivos
código de tipo de vfat . Un sistema de nombre de archivo largo sólo en Linux, conocido como umsdos , admite
Características de Linux: suficientes para que pueda instalar Linux en una partición FAT. El conductor de umsdos
se eliminó del kernel de Linux con la versión 2.6.11 debido a la falta de mantenimiento.
NTFS El sistema de archivos de nueva tecnología (NTFS) es el sistema de archivos preferido para Windows
NT / 200 x / XP / Vista. Desafortunadamente, el soporte NTFS de Linux es bastante rudimentario. A partir del

Página 135
2.6. x , Linux puede leer NTFS de manera confiable y puede sobrescribir archivos existentes, pero el
El kernel de Linux no puede escribir archivos nuevos en una partición NTFS.
Si debe tener un buen soporte de lectura / escritura NTFS para un sistema de arranque dual,
mire NTFS - 3G, que está disponible tanto en código abierto como propietario
("Edición comunitaria") versiones de Tuxera ([Link] Esta
es un controlador NTFS de lectura / escritura que reside en el espacio del usuario en lugar de en el kernel
espacio. Algunas distribuciones de Linux lo utilizan como controlador NTFS predeterminado.
HFS y HFS + Apple ha utilizado durante mucho tiempo el sistema de archivos jerárquico (HFS) con su Mac OS,
y Linux proporciona compatibilidad completa con HFS de lectura / escritura. Este soporte no es tan confiable como el de Linux.
Sin embargo, admite lectura / escritura FAT, por lo que es posible que desee utilizar FAT al intercambiar archivos con
Usuarios de Mac. Apple ha extendido HFS para admitir mejor discos duros grandes y muchos Unix, como
características con su HFS + (también conocido como Extended HFS), que es el sistema de archivos predeterminado en Mac OS
X sistemas. Linux 2.6. x agrega compatibilidad limitada con HFS +; pero el soporte de escritura solo funciona con
Diario HFS + deshabilitado.
ISO-9660 El sistema de archivos estándar para CD-ROM ha sido durante mucho tiempo ISO-9660 . Esta
el sistema de archivos viene en varios niveles. El nivel 1 es similar al FAT original en que admite
solo 8.3 nombres de archivo. Los niveles 2 y 3 añaden soporte para nombres de archivo más largos de 32 caracteres. Linux
soporta ISO-9660 usando su código de tipo de sistema de archivos iso9660 . Compatibilidad con ISO - 9660 de Linux también
funciona con las extensiones Rock Ridge , que son una serie de extensiones de ISO-9660 para
habilítelo para que admita nombres de archivo largos de estilo Unix, permisos, enlaces simbólicos, etc. Si un
disco incluye extensiones Rock Ridge, Linux las detectará y usará automáticamente.
Joliet Este sistema de archivos se utiliza de forma muy similar a Rock Ridge, como una extensión de ISO - 9660. Joliet
fue creado por Microsoft para su uso por Windows, por lo que enfatiza el sistema de archivos de Windows
características en lugar de las características del sistema de archivos Unix / Linux. Linux admite Joliet como parte de
su controlador iso9660 ; si un disco contiene Joliet pero no Rock Ridge, Linux usa Joliet
sistema de archivos.
UDF El formato de disco universal (UDF) es el sistema de archivos de próxima generación para discos ópticos.
Se usa comúnmente en DVD-ROM y discos ópticos grabables. Linux lo admite, pero
El soporte de lectura / escritura UDF aún está en su infancia.
En la práctica, si está preparando un disco duro para usar con Linux, debería
probablemente use solo sistemas de archivos Linux. Si está preparando un disco que se utilizará para un doble -
configuración de arranque, es posible que desee reservar algunas particiones para otros tipos de sistemas de archivos.
En el caso de los discos extraíbles, tendrá que decidir cuál es el más apropiado. Podrías
use ext2fs para un disco extraíble solo para Linux, FAT para un disco multiplataforma o ISO-9660
(quizás con Rock Ridge y Joliet) para un CD - R o un DVD grabable.
ISO-9660 y otros sistemas de archivos de disco óptico se crean con
herramientas diseñadas para este propósito, como se describe en la próxima sección
“Gestión de discos ópticos. "
Hacer que los sistemas de archivos estén disponibles
93

Página 136
94
Capítulo 3 Gestión básica del sistema de archivos
Además de estos tipos de sistemas de archivos de disco, existen varios otros tipos de sistemas de archivos. Red
sistemas de archivos, como el bloque de mensajes del servidor / sistema de archivos común de Internet (SMB / CIFS)
y el sistema de archivos de red (NFS), permiten que una computadora acceda a los discos de otra. Estas
Los protocolos se describen en el Capítulo 8, “Configuración de servidores de archivos. "Los sistemas de archivos virtuales dan
archivo, como el acceso a las características del kernel o al hardware. El sistema de archivos udev , descrito en la sección
"Administrar dispositivos con udev " es un ejemplo importante de un sistema de archivos virtual.
Montaje de un sistema de archivos una vez
Linux proporciona el montaje comando para montar un sistema de archivos a un punto de montaje. En la práctica,
El uso de este comando suele ser bastante sencillo, pero admite una gran cantidad de opciones.
Entendiendo el montaje
La sintaxis de mount es la siguiente:
mount [-alrsvw] [-t fstype ] [-o opciones ] [ dispositivo ] [punto de montaje ]
Los parámetros comunes para el montaje admiten una serie de características, como se describe en la Tabla 3.1.
Normalmente, un nombre de archivo de dispositivo (como / dev / sda5 ) y un punto de montaje (como / mnt / somedisk )
son necesarios cuando utiliza mount . Sin embargo, como se describe brevemente, hay excepciones a esta
regla. La lista de parámetros de montaje en la Tabla 3.1 no es completa; consulte la página de manual de mount
para algunas de las opciones más oscuras.
Nombre corto de la opción
Nombre de opción largo
Explicación
- una
- - todas
Este parámetro hace que mount monte todos
los sistemas de archivos enumerados en el archivo / etc / fstab ,
que especifica las particiones más utilizadas
y dispositivos. La próxima sección
"Montaje permanente de sistemas de archivos"
describe el formato de este archivo.
-r
- - solo lectura
Este parámetro hace que Linux monte el
sistema de archivos de sólo lectura, incluso si normalmente es un
sistema de archivos de lectura / escritura.
-v
- - detallado
Como ocurre con muchos comandos, esta opción produce
salida detallada: el programa proporciona
comentarios sobre las operaciones a medida que ocurren.
-w
- - rw
Este parámetro hace que Linux intente
para montar el sistema de archivos para lectura y
operaciones de escritura. Este es el valor predeterminado para la mayoría
sistemas de archivos, pero algunos controladores experimentales
predeterminado para operación de solo lectura. El - o rw
La opción tiene el mismo efecto.
TABLA 3.1 Opciones para montar

Página 137
Nombre corto de la opción
Nombre de opción largo
Explicación
- t fstype
- - tipos fstype
Utilice este parámetro para especificar el sistema de archivos
tipo. Los tipos comunes de sistemas de archivos son
descrito anteriormente en "Identificación del sistema de archivos
Tipos. "Si se omite este parámetro, Linux
intentará detectar automáticamente el sistema de archivos
tipo.
- Etiqueta L
N/A
Puede especificar un sistema de archivos por su humano -
etiqueta legible en lugar de por un dispositivo
nombre de archivo si usa esta opción.
- U uuid
N/A
Puede especificar un sistema de archivos mediante un
código numérico utilizando esta opción.
- o opciones
- - opciones opciones
Puede pasar adicional o sistema de archivos -
opciones específicas que utilizan este parámetro.
Linux requiere soporte en el kernel o como módulo del kernel para montar un
sistema de archivos de un tipo determinado. Si falta este soporte, Linux se negará a
montar el sistema de archivos en cuestión.
Las aplicaciones de montaje más comunes usan pocos parámetros porque Linux generalmente lo hace
un buen trabajo para detectar el tipo de sistema de archivos y los parámetros predeterminados funcionan razonablemente bien.
Por ejemplo, considere este ejemplo:
# mount / dev / sdb7 / mnt / shared
Este comando monta el contenido de / dev / sdb7 en / mnt / shared , detectando automáticamente el
tipo de sistema de archivos y usando las opciones predeterminadas. Normalmente, solo root puede emitir un montaje
mando; sin embargo, si / etc / fstab especifica la opción de usuario , usuarios o propietario , una
El usuario puede montar un sistema de archivos utilizando una sintaxis simplificada en la que solo el dispositivo o el montaje
se especifica el punto, pero no ambos. Por ejemplo, un usuario puede escribir mount / mnt / cdrom para montar
un CD - ROM si / etc / fstab especifica / mnt / cdrom como su punto de montaje y usa al usuario ,
usuarios u opción de propietario .
La mayoría de las distribuciones de Linux se envían con soporte de montaje automático, lo que provoca
el sistema operativo para montar automáticamente los medios extraíbles cuando se insertan.
En entornos de GUI, también se puede abrir un explorador de archivos en el
disco. Para expulsar el disco, el usuario deberá desmontar el sistema de archivos
utilizando umount , como se describe brevemente, o seleccionando una opción en el
entorno de escritorio.
Hacer que los sistemas de archivos estén disponibles
95

Página 138
96
Capítulo 3 Gestión básica del sistema de archivos
El punto de montaje es normalmente un directorio vacío . Si especifica un directorio con archivos
como punto de montaje, esos archivos parecerán desaparecer cuando monte el sistema de archivos en
El directorio. Sin embargo, esos archivos seguirán existiendo; simplemente estarán ocultos por los montados
sistemas de archivos. Para acceder a los archivos ocultos, debe desmontar el sistema de archivos que los oculta.
Conocer las opciones de montaje
Cuando necesita usar parámetros especiales, generalmente es para agregar opciones específicas del sistema de archivos.
La Tabla 3.2 resume las opciones más importantes del sistema de archivos. Algunos de estos son significativos
sólo en el archivo / etc / fstab , que se describe más adelante en “Montaje permanente de sistemas de archivos. "
Opción
Sistemas de archivos compatibles
Descripción
valores predeterminados
Todas
Provoca las opciones predeterminadas para esto
sistema de archivos que se utilizará. Se usa principalmente
en el archivo / etc / fstab para asegurarse de que
El archivo incluye una columna de opciones.
lazo
Todas
Le permite montar un archivo como si fuera un
partición de disco. Por ejemplo, monte - t vfat
- o loop [Link] / mnt / montajes de imagen
el archivo [Link] como si fuera un disco.
auto o noauto
Todas
Monta o no monta el sistema de archivos
en el momento del arranque o cuando root emite el
montar - un comando. El valor predeterminado es automático ,
pero noauto es apropiado para removible
medios de comunicación. Usado en / etc / fstab .
usuario o nouser
Todas
Permite o no permite a los usuarios normales
montar el sistema de archivos. El valor predeterminado es
no usuario , pero el usuario suele ser apropiado para
media removible. Usado en / etc / fstab .
Cuando se incluye en este archivo, el usuario permite
que los usuarios escriban mount / mountpoint (donde
/ mountpoint es el montaje asignado
point) para montar un disco. Solo el usuario que
montado el sistema de archivos puede desmontarlo.
usuarios
Todas
Similar al usuario , excepto que cualquier usuario
puede desmontar un sistema de archivos una vez que ha sido
montado.
propietario
Todas
Similar al usuario , excepto que el usuario debe
poseer el archivo del dispositivo. Algunas distribuciones
asignar la propiedad de algunos archivos del dispositivo
(como / dev / fd0 para el disquete) al
usuario de la consola, por lo que esta puede ser una opción útil.
TABLA 3.2 Opciones importantes del sistema de archivos para el comando mount
Página 139
Opción
Sistemas de archivos compatibles
Descripción
remonta
Todas
Cambia una o más opciones de montaje.
sin desmontar explícitamente una partición.
Para utilizar esta opción, emite un montaje
comando en un ya - montado
sistema de archivos pero con remontaje junto con
cualquier opción que desee cambiar. Esta
La función se puede utilizar para habilitar o deshabilitar
acceso de escritura a una partición, por ejemplo.
ro
Todas
Especifica un montaje de solo lectura del
sistema de archivos. Este es el predeterminado para
sistemas de archivos que no incluyen acceso de escritura
y para algunos con particularmente poco confiable
escribir soporte.
rw
Todo lectura / escritura
sistemas de archivos
Especifica un montaje de lectura / escritura del
sistema de archivos. Este es el valor predeterminado para la mayoría
leer / escribir sistemas de archivos.
uid = valor
La mayoría de los sistemas de archivos
que no son compatibles con Unix -
permisos de estilo, como
como vfat , hpfs , ntfs y
hfs
Establece el propietario de todos los archivos. Por ejemplo,
uid = 500 establece el propietario para quien tenga
ID de usuario de Linux 500. (Compruebe las ID de usuario de Linux
en el archivo / etc / passwd .)
gid = valor
La mayoría de los sistemas de archivos
que no son compatibles con Unix -
permisos de estilo, como
como vfat , hpfs , ntfs y
hfs
Funciona como uid = value , pero establece el grupo
de todos los archivos del sistema de archivos. Puedes encontrar
ID de grupo en el archivo / etc / group .
umask = valor
La mayoría de los sistemas de archivos
que no son compatibles con Unix -
permisos de estilo, como
como vfat , hpfs , ntfs y
hfs
Establece la umask para los permisos en
archivos. el valor se interpreta en binario como
bits que se eliminarán de los permisos
en archivos. Por ejemplo, umask = 027 produce
permisos de 750, o - rwxr - x - - - .
Usado junto con uid = value y
gid = value , esta opción le permite controlar
quién puede acceder a archivos en FAT, HPFS y
muchos otros sistemas de archivos ajenos.
dmask = valor
La mayoría de los sistemas de archivos
que no son compatibles con Unix -
permisos de estilo, como
como vfat , hpfs , ntfs y
hfs
Similar a umask , pero establece la umask para
sólo directorios, no para archivos.
Hacer que los sistemas de archivos estén disponibles
97

Página 140
98
Capítulo 3 Gestión básica del sistema de archivos
Opción
Sistemas de archivos compatibles
Descripción
fmask = valor
La mayoría de los sistemas de archivos
que no son compatibles con Unix -
permisos de estilo, como
como vfat , hpfs , ntfs y
hfs
Similar a umask , pero establece la umask para
sólo archivos, no para directorios.
conv = código
La mayoría de los sistemas de archivos utilizados
en Microsoft y Apple
Sistemas operativos: msdos , umsdos ,
vfat , hpfs y hfs
Si el código es B o binaria , Linux doesn 't
modificar el contenido de los archivos. Si el código es t o
texto , Linux automáticamente: convierte archivos entre
Estilo Linux y estilo DOS o Macintosh
caracteres de fin de línea. Si el código es un o
automático , Linux aplica la conversión a menos que
el archivo es un formato de archivo binario conocido. Es
por lo general, es mejor dejar esto en su estado predeterminado
valor de binario porque conversiones de archivos
puede causar serios problemas para algunos
aplicaciones y tipos de archivos.
norock
iso9660
Desactiva las extensiones de Rock Ridge para
ISO - 9660 CD - ROM.
nojoliet
iso9660
Desactiva las extensiones de Joliet para ISO - 9660
CD - ROM.
TABLA 3.2 Opciones importantes del sistema de archivos para el comando mount (continuación)
Algunos sistemas de archivos admiten opciones adicionales que no se describen aquí. La página de manual de
mount cubre algunos de estos, pero es posible que deba consultar la documentación del sistema de archivos
para algunos sistemas de archivos y opciones. Esta documentación puede aparecer en / usr / src / linux /
Documentation / filesystems o / usr / src / linux / fs / fsname , donde fsname es el nombre de
el sistema de archivos.
Montaje permanente de sistemas de archivos
El archivo / etc / fstab controla cómo Linux proporciona acceso a particiones de disco y extraíbles
dispositivos multimedia. Linux admite una estructura de directorios unificada en la que cada dispositivo de disco
(partición o disco extraíble) se monta en un punto particular del árbol de directorios.
Por ejemplo, puede acceder a una unidad flash USB en / media / usb . La raíz de este árbol es
accedido desde / . Los directorios fuera de esta raíz pueden ser otras particiones o discos, o pueden ser
directorios ordinarios. Por ejemplo, / etc debería estar en la misma partición que / , pero muchos
otros directorios, como / home , pueden corresponder a particiones independientes. El / etc / fstab
file describe cómo se distribuyen estos sistemas de archivos. (El nombre de archivo fstab es una abreviatura de
tabla del sistema de archivos. )

Página 141
El archivo / etc / fstab consta de una serie de líneas que contienen seis campos cada una; los campos
están separados por uno o más espacios o tabulaciones. Una línea que comienza con una almohadilla ( # ) es una
comenta y se ignora. El Listado 3.1 muestra un archivo / etc / fstab de muestra .
Listado 3.1: Archivo / etc / fstab de muestra
# opciones del sistema de archivos del punto de montaje del dispositivo dump fsck
/ dev / sda1 /
valores predeterminados de ext3
11
UUID = 3631a288-673e-40f5-9e96-6539fec468e9
/ usr
valores predeterminados de reiserfs
00
LABEL = / hogar / hogar
valores predeterminados de reiserfs
00
/ dev / sdb5 / windows vfat uid = 500, umask = 0 0 0
/ dev / cdrom / media / cdrom iso9660 usuarios, noauto 0 0
/ dev / sdb1 / media / usb auto users, noauto 0 0
servidor: / home / other / home nfs
usuarios, ejecutivo 0 0
// winsrv / shr / other / win usuarios cifs, credenciales = / etc / creds 0 0
/ dev / sda4 intercambio
cambiar valores predeterminados
00
El significado de cada campo en este archivo es el siguiente:
Dispositivo La primera columna especifica el dispositivo de montaje. Suelen ser nombres de archivo de dispositivo
que hacen referencia a discos duros, unidades de disquete, etc. La mayoría de las distribuciones ahora especifican
particiones por sus etiquetas o identificadores únicos universales (UUID), como en LABEL = / home
y UUID = 3631a288 - 673e - 40f5 - 9e96 - 6539fec468e9 entradas en el Listado 3.1. Cuando Linux
encuentra tal entrada, intenta encontrar la partición cuyo sistema de archivos tiene el especificado
nombre o UUID y móntelo. Esta práctica puede ayudar a reducir problemas si los números de partición
cambiar, pero algunos sistemas de archivos carecen de estas etiquetas. También es posible enumerar una unidad de red, como en
servidor: / home , que es la exportación de / home en la computadora llamada servidor ; o // winsrv / shr ,
que es el recurso compartido de shr en el servidor Windows o Samba llamado winsrv .
El UUID de cada sistema de archivos es teóricamente único en el mundo, por lo que
un buen identificador para usar en / etc / fstab . Los nombres de archivo de dispositivos, por el contrario, pueden
cambiar si vuelve a particionar el disco, agrega un disco o quita un disco. El blkid
El programa devuelve el UUID y el tipo de sistema de archivos de una partición, que puede
será útil si desea utilizar la especificación UUID usted mismo. Escriba blkid
dispositivo , donde dispositivo es una especificación de dispositivo como / dev / sda1 .
Punto de montaje La segunda columna especifica el punto de montaje; en el Linux unificado
sistema de archivos, aquí es donde se montará la partición o el disco. Por lo general, debe ser un
directorio vacío en otro sistema de archivos. El sistema de archivos raíz ( / ) es una excepción. Así es el intercambio
espacio, que se indica mediante una entrada de intercambio .
Tipo de sistema de archivos El código de tipo de sistema de archivos es el mismo que el código de tipo utilizado para montar un
sistema de archivos con el comando mount . Puede usar cualquier código de tipo de sistema de archivos que pueda usar
directamente con el comando mount . Un código de tipo de sistema de archivos de auto permite que el kernel detecte automáticamente
Hacer que los sistemas de archivos estén disponibles
99

Página 142
100
Capítulo 3 Gestión básica del sistema de archivos
el tipo de sistema de archivos, que puede ser una opción conveniente para dispositivos de medios extraíbles. Auto -
Sin embargo, la detección no funciona con todos los sistemas de archivos.
Opciones de montaje La mayoría de los sistemas de archivos admiten varias opciones de montaje, que modifican cómo
kernel trata el sistema de archivos. Puede especificar varias opciones de montaje, separadas por comas,
como en los usuarios, las opciones noauto para / media / cdrom y / media / usb en el Listado 3.1. Mesa
3.2 resume las opciones de montaje más comunes. Escriba man mount o consulte el sistema de archivos -
documentación específica para obtener más información.
Operación de respaldo El penúltimo campo contiene un 1 si la utilidad de volcado debe respaldar
una partición o un 0 si no debería. Si nunca utiliza el programa de copia de seguridad de volcado , esta opción
es esencialmente sin sentido. (El programa de volcado fue una vez una herramienta de copia de seguridad común, pero es
mucho menos popular hoy.)
Orden de verificación del sistema de archivos En el momento del arranque, Linux usa el programa fsck para verificar el sistema de
archivos
integridad. La última columna especifica el orden en el que ocurre esta verificación. Un 0 significa que
fsck no debería comprobar un sistema de archivos. Los números más altos representan el orden de verificación. La raíz
La partición debe tener un valor de 1 , y todas las demás que deben comprobarse deben tener un
valor de 2 . Algunos sistemas de archivos, como ReiserFS, no deben comprobarse automáticamente, por lo que
debe tener valores de 0 .
Si agrega un nuevo disco duro o tiene que volver a particionar el que tiene, es posible que deba
modifique / etc / fstab , especialmente si usa nombres de archivo de dispositivo para referirse a particiones. (Utilizando
Los códigos LABEL y UUID pueden obviar la necesidad de tales cambios, razón por la cual muchos
distribuciones utilizan estos métodos para especificar particiones en la actualidad.) Es posible que también deba editar
/ etc / fstab para modificar algunas de sus opciones. Por ejemplo, estableciendo el ID de usuario o umask en
Las particiones de Windows montadas en Linux pueden ser necesarias para permitir que los usuarios normales escriban en
dividir.
Usuario administrador - Medios montables
Es posible que desee brindar a los usuarios comunes la capacidad de montar ciertas particiones o
medios, como disquetes, CD - ROM y unidades flash USB. Para hacerlo, cree un
/ etc / fstab para el sistema de archivos, pero asegúrese de agregar la opción de usuario , usuarios o propietario
a la columna de opciones. La Tabla 3.2 describe las diferencias entre estas tres opciones.
El Listado 3.1 muestra algunos ejemplos de medios montables por el usuario: / media / cdrom , / media / usb ,
/ other / home y / other / win . Los dos primeros están diseñados para medios extraíbles.
e incluye la opción noauto , que evita que Linux pierda el tiempo intentando montar
ellos cuando el sistema operativo se inicia por primera vez. El segundo par de puntos de montaje son archivos compartidos de red
que se montan automáticamente en el momento del arranque; la opción de usuarios en estas líneas permite
usuarios normales para desmontar y luego volver a montar el sistema de archivos, lo que podría ser útil si,
digamos, los usuarios normales tienen la capacidad de apagar el servidor.

Página 143
Al igual que con cualquier sistema de archivos que desee montar, debe proporcionar puntos de montaje, es decir,
cree directorios vacíos, para medios que el usuario pueda montar. Los medios extraíbles suelen
montado en subdirectorios de / mnt o / media .
Muchas distribuciones modernas incluyen instalaciones de montaje automático que montan automáticamente
medios extraíbles cuando se insertan. La próxima sección "Uso de un montador automático"
describe la configuración del montador automático con más detalle.
La opción de credenciales para el punto de montaje / other / win en el Listado 3.1 merece más
elaboración. Por lo general, la mayoría de los recursos compartidos de SMB / CIFS requieren un nombre de usuario y una contraseña
como
medios de control de acceso. Aunque se puede utilizar el nombre de usuario = nombre y contraseña = pase
opciones a smbfs o cifs , estas opciones no son deseables, particularmente en / etc / fstab ,
porque dejan la contraseña vulnerable al descubrimiento, cualquiera que pueda leer / etc /
fstab puede leer la contraseña. La opción credenciales = archivo proporciona una alternativa:
puede usarlo para apuntar Linux a un archivo que contiene el nombre de usuario y la contraseña. Este archivo tiene
líneas etiquetadas:
nombre de usuario = hschmidt
contraseña = yiW7t9Td
Por supuesto, el archivo que especifique ( / etc / creds en el Listado 3.1) debe estar bien protegido;
debe ser legible solo para root y quizás para el usuario cuyo recurso compartido describe.
Usando un automontador
Existen varios montadores automáticos para Linux. Estos son programas que montan automáticamente un
sistema de archivos cuando se cumplen ciertas condiciones. En términos generales, los montadores de automóviles se dividen en dos
categorías: las que montan almacenamiento local cuando se inserta en la computadora y las
que montan sistemas de archivos (típicamente sistemas de archivos de red) cuando un usuario accede a su montaje
puntos. Estos dos tipos de montadores automáticos se describen en las páginas siguientes.
Uso del montador automático de un administrador de archivos
Cuando inserta un medio físico, como un DVD o una unidad flash USB, en un
computadora que ejecuta un entorno de escritorio, es probable que la computadora cree un escritorio
icono, monte el disco y muestre su contenido en un explorador de archivos, o muestre una notificación emergente
con opciones para el usuario. Esta respuesta aparentemente simple en realidad involucra varios programas
componentes. En un nivel bajo, una utilidad del sistema debe monitorear los cambios de hardware, como
la inserción de un disco y puede realizar acciones o notificar a otros programas sobre cambios de hardware.
En un nivel superior, el entorno de escritorio (o más precisamente, el administrador de archivos que forma parte
del entorno de escritorio) recibe mensajes relacionados con los cambios y montajes de hardware
sistemas de archivos cuando sus archivos de configuración así lo requieran.
Hacer que los sistemas de archivos estén disponibles
101

Página 144
102
Capítulo 3 Gestión básica del sistema de archivos
El software de bajo nivel en esta pila ha sido tradicionalmente la abstracción de hardware
Daemon de capa (HAL) (HALD). Este software se configura a través de archivos en / etc / hal
y directorios / usr / share / hal / fdi / policy / 10osvendor / . A veces puedes editar estos
archivos para efectuar cambios en cómo se tratan los medios extraíbles. Desafortunadamente, los archivos relevantes
varían de una distribución a otra, aunque generalmente incluyen el almacenamiento de cadenas en
sus nombres de archivo.
En 2009, las distribuciones comenzaron a alejarse de HAL. La intención es usar udev
más directamente para activar el montador automático y otras respuestas a los cambios de hardware. los
La próxima sección "Administración de dispositivos con udev " describe udev con más detalle.
Una vez que HAL o udev han notificado a un administrador de archivos sobre un disco insertado, el archivo del usuario
la configuración del administrador se hace cargo. Los detalles varían mucho de un administrador de archivos a otro. Como un
Ilustración, considere Thunar, que es el administrador de archivos predeterminado para Xfce. (Otros administradores de archivos
tienen opciones de ajuste similares, pero Thunar ofrece más opciones de montador automático que la mayoría,
es por eso que estoy describiendo Thunar aquí.) Para ajustar la configuración de Thunar, seleccione Editar
Preferencias de una ventana de Thunar. Esta acción produce las preferencias del administrador de archivos
caja de diálogo. Haga clic en la pestaña Avanzado y marque la casilla de verificación Habilitar administración de volumen.
(Si desea deshabilitar el montador automático, puede desmarcar esta casilla). Luego puede hacer clic en
Configure para que aparezcan las principales opciones de configuración, que se muestran en la Figura 3.1.
FIGURA 3.1 Los administradores de archivos ofrecen opciones que le permiten ajustar con precisión la forma
se manejan las inserciones de disco.
Puede marcar o desmarcar opciones específicas para ajustar cómo Thunar maneja determinados
eventos. Por ejemplo, si desea que los CD - ROM o DVD se monten automáticamente,
Asegúrese de que la opción Montar medios extraíbles al insertar esté marcada. Puedes usar este mismo

Página 145
cuadro de diálogo para especificar las aplicaciones que se utilizarán cuando se utilicen CD de audio, cámaras y algunos otros
dispositivos
están conectados a la computadora; haga clic en las pestañas correspondientes para ajustar esta configuración.
En términos de Thunar, los medios extraíbles son medios, como disquetes,
CD - ROM y DVD que se pueden insertar y extraer de las unidades.
Los discos extraíbles , por el contrario, son discos duros o dispositivos similares que pueden
conectarse o desconectarse de la computadora mientras está funcionando. Ejemplos
incluyen unidades flash USB y discos duros externos.
En términos generales, el administrador de archivos de Thunar y KDE, Konqueror, proporciona la mayor
opciones para configurar opciones de montaje automático. El administrador de archivos predeterminado de GNOME, Nautilus,
monta automáticamente todos los medios, incluidos los discos extraíbles y no extraíbles; ese
es decir, si usa GNOME, es probable que vea particiones del disco duro que no configura en
GNOME aparecerá en su escritorio.
Los montadores automáticos del administrador de archivos suelen crear puntos de montaje en el directorio / media .
Estos puntos de montaje pueden tener el nombre del tipo de medio, como / media / cdrom ; después de la
etiqueta del sistema de archivos; o después del UUID del sistema de archivos.
Si ve UUID u otros nombres poco útiles para sistemas de archivos que son automáticos:
montado, considere agregar una etiqueta de sistema de archivos al dispositivo. Esta tarea
se logra más fácilmente al crear un sistema de archivos; sin embargo, es
a veces es posible alterar la etiqueta del sistema de archivos después del hecho con herramientas
como tune2fs .
Los sistemas de archivos montados por el montador automático de un administrador de archivos normalmente pueden ser
desmontados por un
usuario normal, como se describe brevemente en “Desmontar un sistema de archivos. "El administrador de archivos también
generalmente proporciona alguna forma de desmontar los sistemas de archivos que ha montado, generalmente por derecho -
hacer clic en un icono del sistema de archivos y seleccionar una opción para desmontar, expulsar o eliminar el
sistema de archivos.
Usando autofs
Los sistemas de archivos de red, como SMB / CIFS y NFS, permiten a los usuarios de una computadora acceder
archivos almacenados en otra computadora. Esta es una habilidad muy útil, pero existen ciertos riesgos y
problemas asociados con él. Uno de estos problemas es que, si monta un sistema de archivos remoto
tan pronto como la computadora se inicie y la deje montada todo el tiempo, puede experimentar
problemas extraños si el servidor no está disponible; ciertas herramientas, como df , pueden pausar
durante períodos prolongados, ya que intentan repetidamente y no sondear el servidor. Manteniendo el control remoto
Los sistemas de archivos montados permanentemente también consumen algo de ancho de banda de red, que puede ser
inaceptable si un servidor tiene una gran cantidad de clientes.
El montador automático autofs existe para resolver, o al menos minimizar, estos problemas. diferente a
un montador automático del administrador de archivos GUI, autofs es una herramienta puramente a nivel de sistema sin nivel de usuario
configuración. No siempre se instala de forma predeterminada, por lo que primero debe asegurarse de haber
lo instaló en su sistema. (Como era de esperar, normalmente tiene el nombre de paquete autofs ).
Hacer que los sistemas de archivos estén disponibles
103

Página 146
104
Capítulo 3 Gestión básica del sistema de archivos
El archivo /etc/[Link] es el archivo de configuración principal de autofs . Tu distribución
tendrá un archivo predeterminado que probablemente no define ningún punto de montaje, aunque puede
incluir líneas que apunten a archivos de script ( /etc/[Link] y /etc/[Link] ) que vienen con
el paquete. Estos scripts configuran árboles de directorios / smb y / net que pueden funcionar en una variedad de
de redes, como se describe brevemente. Para definir directorios que autofs debe monitorear para el usuario
actividad, debe especificar un directorio base y un archivo de configuración para ese directorio en
el final de /etc/[Link] :
/ remoto /etc/[Link] --timeout = 60
En este ejemplo, el archivo /etc/[Link] controla el punto de montaje / remoto . Después
un servidor está montado, se desmontará después de 60 segundos (el valor de tiempo de espera ). Debes
ahora cree el archivo /etc/[Link] , que especifica subdirectorios (en relación con el
punto de montaje en /etc/[Link] - / remoto en este ejemplo) y los servidores a los que
conectar:
música
[Link]:/home/armstrong/music
research -fstype = nfs4 [Link]:/home/einstein/data
Estos ejemplos, junto con la entrada /etc/[Link] mostrada anteriormente, habilitan
acceso al directorio / home / armstrong / music en [Link] a través de / remote / music ,
y al directorio / home / einstein / data en [Link] a través de / remote / research .
La primera línea usa los valores predeterminados de NFS, pero la segunda agrega una opción que fuerza el uso de NFSv4.
Los archivos /etc/[Link] y /etc/[Link] son scripts que se pueden llamar como otros
archivos de configuración de autofs . Proporcionan configuraciones dinámicas que permiten el acceso a
servidores a través de sus nombres de host y nombres de exportación. Por ejemplo, suponga que incluye el
siguiente línea en /etc/[Link] :
/ red /etc/[Link]
Si su red local incluye un servidor llamado multi que exporta los directorios / opt
y / home a través de NFS, se puede acceder a esos directorios como / network / multi / opt y
/ network / multi / home , respectivamente, sin más configuración. El /etc/[Link]
el archivo teóricamente proporciona una funcionalidad similar para los recursos compartidos SMB / CIFS; sin embargo, el SMB /
El modelo de seguridad CIFS requiere un nombre de usuario y una contraseña, y el archivo [Link] se entrega
con la mayoría de las distribuciones carece de soporte para este requisito básico de SMB / CIFS. Una variante
de [Link] , llamado [Link] , está disponible en [Link]
windows_or_samba_shares_using_autofs y proporciona
un mejor nombre de usuario y contraseña
apoyo.
Aunque autofs está destinado principalmente a administrar sistemas de archivos de red, puede
también configúrelo para montar dispositivos de hardware locales. El archivo /etc/[Link] en la mayoría
distribuciones proporciona algunos ejemplos, como:
bota
-fstype = ext2
: / dev / hda1
flexible
-fstype = auto
: / dev / fd0

Página 147
Para usar tales configuraciones, debe hacer referencia a /etc/[Link] en /etc/[Link] .
Estas dos líneas harían que / dev / hda1 se montara en el subdirectorio de arranque , y
/ dev / fd0 para ser montado en el subdirectorio floppy del directorio especificado en / etc / auto
.master . Aunque las funciones de montaje automático de un explorador de archivos probablemente sean más convenientes para
para la mayoría de los usuarios, este tipo de configuración de autofs podría ser útil para usuarios de modo de texto puro o
para habilitar el montaje automático para programas que no son de inicio de sesión, como servidores.
Con sus archivos de configuración en su lugar, puede iniciar autofs , generalmente a través de un SysV o
Upstart script, como se describe en el Capítulo 1. Luego, puede comenzar a probarlo accediendo al
directorios que administra autofs . Una vez que autofs se esté ejecutando, puede cambiar su configuración
sin reiniciarlo; la herramienta detectará los cambios y los implementará de inmediato.
Cuando comience a experimentar con autofs , descubrirá una de las características del
herramienta: Después de un período de inactividad (especificado por el parámetro - - timeout en / etc / auto
.master ), el sistema de archivos está desmontado. Esta función puede minimizar problemas como los
anotado al principio de la sección.
Determinar qué está montado
Cuando Linux monta un sistema de archivos, normalmente registra este hecho en / etc / mtab . Este archivo tiene
un formato similar al de / etc / fstab y se almacena en / etc , pero no es una configuración
archivo que debe editar. Puede examinar este archivo para determinar qué sistemas de archivos son
montado, sin embargo. El archivo virtual / proc / mounts cumple una función similar a / etc / mstab ,
aunque los dos archivos difieren en ciertos aspectos. Antes del kernel 2.6.26, / proc / mounts
incluyó menos información que / etc / mtab ; pero con kernels 2.6.26 y posteriores, / proc / mounts
contiene más información. En principio, / etc / mtab puede ser un enlace simbólico a / proc /
monta , al menos con kernels recientes.
El comando df es otra forma de saber qué sistemas de archivos están montados. Este comando
muestra información adicional, como qué tan grande es cada sistema de archivos y cuánto de eso
el espacio está en uso:
$ df
Sistema de archivos
1K-bloques Usado Disponible Uso% Montado en
/ dev / sda2
20642428 9945008 9648844 51% /
udev
1479784668 1479116 1% / dev
/ dev / sda3
198337 94543 93554 51% / arranque
/ dev / sdb2
29931580 26075996 2335440 92% / hogar
Desmontar un sistema de archivos
El comando umount desmonta un sistema de archivos. (Sí, está escrito correctamente; el comando es
falta el primer n .) Este comando es más simple que montar . La sintaxis básica de umount es como
sigue:
umount [-afnrv] [-t fstype ] [ dispositivo | punto de montaje ]
Hacer que los sistemas de archivos estén disponibles
105
Página 148
106
Capítulo 3 Gestión básica del sistema de archivos
La mayoría de estos parámetros tienen significados similares a sus significados en mount , pero algunos
las diferencias merecen mención:
Desmontar todo En lugar de desmontar las particiones enumeradas en / etc / fstab , la opción - a causa
el sistema para intentar desmontar todas las particiones enumeradas en / etc / mtab . Normalmente
sistema en ejecución, es probable que esta operación tenga éxito solo en parte porque no podrá
desmonte algunos sistemas de archivos clave, como la partición raíz.
Forzar desmontaje Puede utilizar la opción -f para indicarle a Linux que fuerce una operación de desmontaje
que de otro modo podría fallar. Esta función a veces es útil al desmontar soportes NFS
compartido por servidores que se han vuelto inalcanzables.
Volver a lectura - Solo La opción - r le dice a umount que si no puede desmontar un sistema de archivos,
debería intentar volver a montarlo en modo de sólo lectura.
Desmontar particiones de un tipo de sistema de archivos específico La opción - t fstype le dice al sistema
para desmontar solo particiones del tipo especificado. Puede enumerar varios tipos de sistemas de archivos por
separándolos con comas.
El dispositivo y el punto de montaje Debe especificar solo el dispositivo o solo el punto de montaje ,
no ambos.
Al igual que con mount , los usuarios normales normalmente no pueden usar umount . La excepción es si el
la partición o el dispositivo aparece en / etc / fstab y especifica la opción de usuario , usuarios o propietario ,
en cuyo caso los usuarios normales pueden desmontar el dispositivo. (En el caso de usuario , solo el usuario
quien montó la partición puede desmontarla; en el caso de titular , el usuario que emite el
El comando también debe poseer el archivo del dispositivo, como con mount .) Estas opciones son las más útiles
para dispositivos de medios extraíbles.
Tenga cuidado al retirar disquetes o desconectar un disco USB, como
dispositivos (unidades flash USB o discos duros externos). Linux almacena en caché los accesos a
la mayoría de los sistemas de archivos, lo que significa que es posible que los datos no se escriban en el disco hasta
algún tiempo después de un comando de escritura. Debido a esto, es posible corromper
un disco expulsándolo o desenchufándolo, incluso cuando la unidad no está activa. Tú
siempre debe emitir un comando umount antes de expulsar un disco montado. (GUI
Las herramientas de desmontaje hacen esto detrás de escena, por lo que usar el desmontaje o
opción de expulsión es equivalente a usar umount .) Después de emitir la umount com-
mand, espere a que regrese el comando, y si el disco tiene indicadores de actividad,
espere a que dejen de parpadear para asegurarse de que Linux haya terminado de usar el dispositivo.
Esto no es un problema para la mayoría de los medios extraíbles internos, como las unidades de DVD,
porque Linux puede bloquear sus mecanismos de expulsión, evitando este tipo de problemas
lem. Otra forma de escribir el caché en el disco es usar el comando sync ; pero
debido a que este comando no desmonta completamente un sistema de archivos, no es un sustituto
tute para desmontar .

Página 149
No siempre se puede desmontar un sistema de archivos. En particular, si hay archivos abiertos en el
sistema de archivos, su comando umount fallará:
# desmontar / casa
umount: / home: el dispositivo está ocupado.
(En algunos casos, información útil sobre procesos que utilizan
el dispositivo es encontrado por lsof (8) o fuser (1))
Si desea desmontar el sistema de archivos, debe rastrear cualquier proceso que esté utilizando
y terminar ese proceso. Como se indica en el mensaje de error, los comandos lsof y fuser
a veces puede ser útil en esta tarea; enumeran archivos abiertos y enumeran procesos que usan archivos,
respectivamente. Si es imposible desmontar un sistema de archivos, a veces puede volver a montarlo y leer:
solo usando la opción de volver a montar para montar :
# mount -o remontar, ro / home
Si tiene éxito, esta acción hará que sea seguro utilizar algunas utilidades de verificación del sistema de archivos y
hará que sea menos probable que el disco sufra daños si se ve obligado a apagar
sin desmontar.

Mantenimiento de sistemas de archivos


Los sistemas de archivos no surgen simplemente y se mantienen por arte de magia; estas tareas deben
ser realizado por programas de utilidad, y debe saber cómo operar estos programas.
Las siguientes páginas describen estas tareas, incluida la creación del sistema de archivos, la comprobación y
reparar errores del sistema de archivos y ajustar los parámetros de rendimiento del sistema de archivos. Yo también
describir la creación y el uso del espacio de intercambio, que técnicamente no es un sistema de archivos, pero es un
estructura de datos importante que se puede almacenar en una partición como un sistema de archivos.
Crear sistemas de archivos
La mayoría de los sistemas de archivos, incluidos todos los sistemas de archivos nativos de Linux, tienen herramientas de Linux que
pueden crear
el sistema de archivos en una partición. Normalmente, estas herramientas tienen nombres de archivo con el formato mkfs. fstype ,
donde fstype es el código de tipo de sistema de archivos. Estas herramientas también se pueden llamar desde una interfaz
herramienta llamada mkfs ; pasa el código de tipo del sistema de archivos a mkfs usando su opción - t :
# mkfs -t ext3 / dev / sda6
Para sistemas de archivos ext2, ext3 y ext4, el programa mke2fs se usa a menudo
en lugar de mkfs . El programa mke2fs es solo otro nombre para mkfs.ext2 .
Mantenimiento de sistemas de archivos
107

Página 150
108
Capítulo 3 Gestión básica del sistema de archivos
Este comando crea un sistema de archivos ext3 en / dev / sda6 . Dependiendo del sistema de archivos,
la velocidad del disco y el tamaño de la partición, este proceso puede llevar desde un
fracción de segundo a más de un minuto. La mayoría de las herramientas de compilación de sistemas de archivos admiten
opciones, algunas de las cuales pueden aumentar considerablemente el tiempo necesario para crear un sistema de archivos. En
en particular, la opción -c es compatible con varios sistemas de archivos. Esta opción hace que la herramienta
Realice una verificación de bloques defectuosos utilizando el programa badblocks : todos los sectores de la partición
se comprueba para asegurarse de que pueda contener datos de forma fiable. Si no puede, el sector se marca como malo y
no se utiliza.
Si realiza una comprobación de bloques defectuosos y descubre que algunos sectores están defectuosos,
lo más probable es que el disco duro completo no tenga una vida larga. A veces esto
Sin embargo, este tipo de problema puede deberse a otros problemas, como cables defectuosos.
De los sistemas de archivos comunes de Linux, ext2fs, ext3fs y ext4fs proporcionan la mayoría de las opciones
en sus herramientas mkfs . (De hecho, estas herramientas son una y la misma; el programa simplemente crea
un sistema de archivos con las características apropiadas para el nombre que se usa para llamarlo).
escriba man mkfs.ext2 para conocer estas opciones, la mayoría de las cuales tratan con
características sin importancia. Una opción que merece mención es - m por ciento , que establece el
reservado - porcentaje de espacio. La idea es que no quieres que el disco se llene por completo
con archivos de usuario; Si el disco comienza a llenarse casi por completo, Linux debe informar que el disco está
completo antes de que realmente lo esté, al menos para los usuarios normales. Esto le da al usuario root la capacidad de iniciar sesión
in y cree nuevos archivos, si es necesario, para recuperar el sistema.
El porcentaje de espacio reservado ext2fs / ext3fs / ext4fs es el 5 por ciento, que
se traduce en bastante espacio en discos grandes. Es posible que desee reducir este valor (por ejemplo,
pasando - m 2 para reducirlo al 2 por ciento) en su sistema de archivos raíz ( / ) y tal vez incluso más bajo
(1 por ciento o 0 por ciento) en algunos, como / home . Configuración - m 0 también tiene sentido en
discos extraíbles, que probablemente no sean críticos para la recuperación del sistema y pueden ser un poco
estrecho para empezar.
Si un sistema de archivos se va a utilizar en un medio extraíble, es posible que desee darle una descripción
etiqueta para que los montadores automáticos puedan usar la etiqueta como punto de montaje, como se describe anteriormente en
“Utilizando el montador automático de un administrador de archivos. ”La mayoría de las herramientas de creación de sistemas de
archivos específicos del sistema de archivos
use - L etiqueta para establecer la etiqueta del sistema de archivos. ReiserFS y FAT son excepciones a esta regla;
mkreiserfs (también conocido como [Link] ) usa una opción en minúsculas, como en la etiqueta - l , mientras que mkdosfs
(aka [Link] o [Link] ) usos - n etiqueta .
Además de proporcionar sistema de archivos - herramientas de creación para Linux - sistemas de archivos nativos, Linux
las distribuciones generalmente proporcionan tales herramientas para varios sistemas de archivos que no son de Linux. Lo mas
importantes de estos pueden ser para FAT. La herramienta principal para esta tarea se llama mkdosfs , pero es
también suele estar vinculado a los nombres [Link] y [Link] . Este programa automáticamente
ajusta el tamaño de la estructura de datos FAT a 12, 16 o 32 bits dependiendo del tamaño del dispositivo.
No se requieren opciones especiales para crear un sistema de archivos FAT que pueda manejar el estilo de Windows
(VFAT) nombres de archivo largos; estos son creados por el sistema operativo. La variante [Link] y [Link]
los nombres de la utilidad no tienen ningún efecto sobre las capacidades de nombre de archivo largo del sistema de archivos creado.
En el ejercicio 3.1, practicarás la creación de sistemas de archivos utilizando mkfs y utilidades relacionadas.

Página 151
EJERCICIO 3.1
Crear sistemas de archivos
Intente crear algunos sistemas de archivos en una partición de repuesto o en un disco extraíble. Incluso un disquete
servirá, aunque no podrá crear sistemas de archivos de diario en un disquete. los
Los siguientes pasos suponen que está utilizando una unidad flash USB con al menos una partición, / dev /
sdc1 ; cambie la especificación del dispositivo según sea necesario. ¡Asegúrese de usar una partición vacía!
¡Ingresar accidentalmente el nombre de archivo del dispositivo incorrecto podría borrar todo su sistema!
Este ejercicio utiliza algunos comandos que se describen con más detalle más adelante en este capítulo. A
cree algunos sistemas de archivos, siga estos pasos:
1. Inicie sesión como root .
2. Use parted para verificar las particiones en su disco de destino escribiendo parted / dev / sdc
imprimir . Debería ver una lista de particiones, incluida la que usará para sus pruebas.
3. Verifique que su partición de prueba no esté montada actualmente. Escriba df para ver el
particiones montadas y verifique que / dev / sdc1 no esté entre ellas.
4. Escriba mkfs - t ext2 / dev / sdc1 . Debería ver aparecer varias líneas de información de estado.
5. Escriba mount / dev / sdc1 / mnt para montar el nuevo sistema de archivos en / mnt . (Puedes utilizar
otro punto de montaje, si lo desea).
6. Escriba df / mnt para ver la información contable básica del sistema de archivos. Tenga en cuenta los valores
en las columnas Tamaño , Usado y Disponible . Dados los valores predeterminados para ext2fs, la disponibilidad
El valor de la columna será un poco menos del 95% del valor de la columna Tamaño . La mayor parte de esto
la diferencia es el resultado del porcentaje de bloques reservados del 5%; pero algo de eso se debe a
espacio asignado a estructuras de datos del sistema de archivos de bajo nivel.
7.
Escriba umount / mnt para desmontar el sistema de archivos.
8. Escriba mkfs - t ext2 - m 0 / dev / sdc1 para crear un nuevo sistema de archivos ext2 en el dispositivo, pero
sin ningún espacio reservado.
9. Repita los pasos 5 a 7. Tenga en cuenta que ha aumentado el espacio disponible. El espacio disponible más
el espacio utilizado ahora debería ser igual al espacio total.
10. Repita los pasos 4 a 7, pero use un código de tipo de sistema de archivos de ext3 para crear un sistema de archivos de diario.
tem. (Esto no será posible si utiliza un disquete). Tenga en cuenta cuánto espacio
asumido por la revista.
11. Repita los pasos 4 a 7, pero use otro sistema de archivos, como JFS o ReiserFS. Note como el
sistema de archivos: las herramientas de creación difieren en la información que presentan y en su
cantidades de espacio disponible.
Tenga en cuenta que, debido a las diferencias en la forma en que los sistemas de archivos almacenan archivos y asignan espacio,
Una mayor cantidad de espacio disponible cuando se crea un sistema de archivos puede no traducirse en
una mayor capacidad para almacenar archivos.
Mantenimiento de sistemas de archivos
109

Página 152
110
Capítulo 3 Gestión básica del sistema de archivos

Comprobación de errores en los sistemas de archivos


Error humano, errores, cortes de energía, gatos tirando juguetonamente de los cables del disco duro externo,
y otros eventos pueden causar errores en las complejas estructuras de datos que se
sistemas de archivos. Cuando esto sucede, el resultado puede ser la pérdida de datos. En algunos casos, Linux se negará
para montar un sistema de archivos dañado. Para minimizar la pérdida de datos en sistemas de archivos dañados y habilitar
Linux para montar un sistema de archivos después de que ha sido dañado, existen herramientas de verificación del sistema de
archivos. El principal
La herramienta que utilizará para este propósito se llama fsck . Este programa es en realidad una interfaz para otros
herramientas, como e2fsck o xfs_check de XFS (que busca problemas) y xfs_repair
(que repara problemas). Los programas de ayuda específicos del sistema de archivos también se pueden llamar por el nombre
fsck. fstype , donde fstype es el código del tipo de sistema de archivos. La sintaxis de fsck es la siguiente:
fsck [-sACVRTNP] [-t fstype ] [-] [ fsck-options ] sistemas de archivos
Los parámetros más comunes de fsck le permiten realizar acciones útiles, como
resumido en la Tabla 3.3. Normalmente, ejecuta fsck solo con el nombre del dispositivo del sistema de archivos,
como en fsck / dev / sda6 . Sin embargo, puede agregar opciones según sea necesario. Consulte la página de manual de fsck para
opciones menos comunes.
TABLA 3.3 Opciones comunes para fsck
Nombre de la opción
Explicación
- UNA
Esta opción hace que fsck verifique todos los sistemas de archivos marcados para ser verificados
en / etc / fstab . Esta opción se usa normalmente en los scripts de inicio del sistema.
-C
Esta opción muestra un indicador de progreso del cheque en modo texto.
proceso. La mayoría de los programas de verificación del sistema de archivos no admiten esta función, pero
e2fsck lo hace.
-V
Puede obtener un resumen detallado del progreso utilizando esta opción.
-N
Esta opción le dice a fsck que muestre lo que normalmente haría sin
realmente haciéndolo.
- t fstype
Normalmente, fsck determina el tipo de sistema de archivos automáticamente. Usted puede
Sin embargo, fuerce el tipo con el indicador - t fstype . Usado junto con
- A , esto hace que el programa verifique solo los tipos de sistemas de archivos especificados,
incluso si otros están marcados para ser revisados. Si fstype tiene el prefijo no ,
luego se verifican todos los sistemas de archivos excepto el tipo especificado.
fsck - opciones
Los programas de verificación del sistema de archivos para sistemas de archivos específicos a menudo tienen sus propios
opciones. El comando fsck pasa opciones que no comprende o
los que siguen un guión doble ( - - ) al programa de verificación subyacente.
Las opciones comunes incluyen - a o - p (realizar una verificación automática),
-r (realizar una verificación interactiva), y -f (forzar una verificación completa del sistema de archivos
incluso si el sistema de archivos inicialmente parece estar limpio).
sistemas de archivos
El parámetro final suele ser el nombre del sistema de archivos o sistemas de archivos
siendo comprobado, como / dev / sda6 .

Página 153
Ejecute fsck solo en sistemas de archivos que no están montados actualmente o que están
montado en modo de sólo lectura. Cambios escritos en el disco durante la lectura /
Las operaciones de escritura pueden confundir a fsck y provocar daños en el sistema de archivos.
Linux ejecuta fsck automáticamente al inicio en particiones que están marcadas para este
en / etc / fstab , como se describió anteriormente en “Montaje permanente de sistemas de archivos. " Lo normal
El comportamiento de e2fsck hace que realice solo un examen rápido y superficial de una partición
si se ha desmontado limpiamente. El resultado es que el proceso de arranque de Linux no se retrasa
debido a una verificación del sistema de archivos a menos que el sistema no se haya apagado correctamente. Esta regla tiene
un par de excepciones, sin embargo: e2fsck fuerza una verificación si el disco ha durado más de un
cierta cantidad de tiempo sin verificaciones (normalmente seis meses) o si el sistema de archivos ha sido
montado más de un cierto número de veces desde la última comprobación (normalmente 20). Usted puede
cambie estas opciones usando tune2fs , como se describe más adelante en “Ajuste del sistema de archivos ajustable
Parámetros. ”Por lo tanto, ocasionalmente verá comprobaciones automáticas del sistema de archivos de ext2fs y
particiones ext3fs incluso si el sistema se apagó correctamente.
Los sistemas de archivos de diario eliminan las comprobaciones completas del sistema de archivos al iniciar el sistema, incluso si el
la computadora no se apagó correctamente. No obstante, estos sistemas de archivos aún requieren verificación
programas para corregir problemas introducidos por fallas de escritura no detectadas, errores, hardware
problemas y cosas por el estilo. Si encuentra un comportamiento extraño con un sistema de archivos de diario,
podría considerar desmontarlo y realizar una verificación del sistema de archivos, pero asegúrese de leer
la documentación primero. Algunas distribuciones de Linux hacen cosas extrañas con algunos diarios
programas de verificación del sistema de archivos. Por ejemplo, Mandriva usa un enlace simbólico de / sbin / fsck
.reiserfs a / bin / true . Esta configuración acelera los tiempos de arranque del sistema en caso de que ReiserFS
las particiones se marcan para comprobaciones automáticas, pero puede resultar confuso si necesita
comprobar el sistema de archivos. Si este es el caso, ejecute / sbin / reiserfsck para hacer el trabajo. Similar,
/sbin/[Link] generalmente no es más que un script que aconseja al usuario que ejecute xfs_check o
xfs_repair .

Ajuste de sistemas de archivos


Los sistemas de archivos son básicamente grandes estructuras de datos: son un medio para almacenar datos en el disco.
de forma que sea más fácil localizar los datos más tarde. Como todas las estructuras de datos, los sistemas de archivos
incluir compromisos de diseño. Por ejemplo, una función de diseño puede acelerar las comprobaciones del disco, pero
consumir espacio en disco. En muchos casos, no tiene opción con respecto a estos compromisos,
pero algunos sistemas de archivos incluyen herramientas que le permiten configurar opciones del sistema de archivos que afectan
actuación. Esto es particularmente cierto para ext2fs y ext3fs y ext4fs relacionados, aunque
También están disponibles herramientas para XFS, ReiserFS y otros. Las siguientes páginas describen herramientas
que puede utilizar para obtener información sobre sistemas de archivos, ajustar el rendimiento del sistema de archivos y
depurar sistemas de archivos de forma interactiva.
Mantenimiento de sistemas de archivos
111

Página 154
112
Capítulo 3 Gestión básica del sistema de archivos
Obtención de información del sistema de archivos
Antes de comenzar a ajustar los parámetros del sistema de archivos, a menudo es importante aprender sobre
el estado actual de sus sistemas de archivos. Varias utilidades pueden ayudar a lograr este objetivo,
particularmente para la familia ext2fs / ext3fs / ext4fs, XFS y ReiserFS.
Información sobre los sistemas de archivos Ext2, Ext3 o Ext4
Puede aprender mucho sobre su sistema de archivos ext2, ext3 o ext4 con el comando dumpe2fs .
La sintaxis de este comando es bastante sencilla:
dumpe2fs [ opciones ] dispositivo
El dispositivo es el archivo de dispositivo del sistema de archivos. Este comando acepta varias opciones , la mayoría
de los cuales son bastante oscuros. La opción más importante es probablemente - h , que provoca la
utilidad para omitir información sobre descriptores de grupo. (Esta información es útil en
depuración avanzada del sistema de archivos, pero no para el ajuste básico del sistema de archivos).
Opciones adicionales, consulte al hombre página para dumpe2fs .
A menos que sea un experto en sistemas de archivos y necesite depurar un sistema de archivos dañado,
probablemente quiera usar dumpe2fs con la opción -h . El resultado son unas tres docenas de líneas de
salida, cada una especificando una opción particular del sistema de archivos, como estas:
Nombre del volumen del sistema de archivos: <ninguno>
Montado por última vez en:
<no disponible>
UUID del sistema de archivos:
2e53147d-16ea-4e69-b6d3-07e897ab7ed1
Características del sistema de archivos: has_journal ext_attr resize_inode dir_index filetype
extensión flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Estado del sistema de archivos:
limpiar
Recuento de inodos:
128016
Recuento de bloques:
512000
Última comprobación:
Lun 20 de septiembre 21:30:42 2010
Intervalo de verificación:
15552000 (6 meses)
Siguiente comprobación después de:
Sáb 19 mar 21:30:42 2011
Algunos de los significados de estas opciones se explican por sí mismos; por ejemplo, el sistema de archivos
se verificó por última vez (con fsck , descrito en "Verificación de sistemas de archivos") el 20 de septiembre.
Otras opciones no son tan obvias; por ejemplo, la línea de conteo de inodos puede resultar desconcertante.
(Es un recuento de la cantidad de inodos admitidos por el sistema de archivos. Cada inodo contiene
información para un archivo, por lo que el número de inodos limita efectivamente el número de archivos que
puede almacenar.)
Las secciones posteriores de este capítulo describen algunas de las opciones que quizás desee cambiar. por
ahora, debe saber que puede recuperar información sobre cómo están sus sistemas de archivos
configurado actualmente con dumpe2fs . A continuación, puede utilizar esta información al modificar el
configuración; si su configuración actual parece razonable, puede dejarla en paz, pero si
parecen mal adaptados a su configuración, puede cambiarlos.

Página 155
A diferencia de muchas utilidades de disco de bajo nivel, puede ejecutar dumpe2fs de forma segura en un sistema de archivos que
montado actualmente. Esto puede ser útil cuando está estudiando su configuración para decidir
qué modificar.
Aprendiendo sobre XFS
La mayoría de los otros sistemas de archivos carecen de un equivalente a dumpe2fs , pero XFS proporciona algo con
al menos algunas similitudes superficiales: xfs_info . Para invocarlo, pase al comando el nombre del
partición que contiene el sistema de archivos que desea verificar:
# xfs_info / dev / sda7
metadatos = / dev / sda7 isize = 256 agcount = 88, agsize = 1032192 blks
=
seccsz = 512 attr = 0
datos =
bsize = 4096 bloques = 89915392, imaxpct = 25
=
sunit = 0 swidth = 0 blks, unwritten = 1
naming = versión 2 bsize = 4096
log = bsize interno = 4096 bloques = 8064, versión = 1
=
seccsz = 512 sunit = 0 blks
tiempo real = ninguno
extsz = 65536 bloques = 0, rtextents = 0
En lugar del nombre de la partición, puede pasar el punto de montaje, como / home o / usr /
local . A diferencia de la mayoría de las herramientas del sistema de archivos, xfs_info requiere que el sistema de archivos esté
montado. los
La información devuelta por xfs_info es bastante técnica, principalmente relacionada con tamaños de bloque, sector
tamaños, etc.
Otra herramienta XFS es xfs_metadump . Este programa copia los metadatos del sistema de archivos (nombres de archivo,
tamaños de archivo, etc.) a un archivo. Por ejemplo, xfs_metadump / dev / sda7 ~ / dump - file copia el
metadatos a ~ / dump - archivo . Este comando no copia el contenido real del archivo y, por lo tanto, no es útil como
una herramienta de respaldo. En cambio, está pensado como una herramienta de depuración; si el sistema de archivos se comporta de
manera extraña,
puede utilizar este comando y enviar el archivo resultante a los desarrolladores de XFS para su estudio.
Aprendiendo sobre ReiserFS
ReiserFS proporciona una herramienta conocida como debugreiserfs que puede mostrar datos críticos de ReiserFS.
La sintaxis del programa es:
debugreiserfs [-JpuqS] [-B archivo ] [-1 blocknum ] dispositivo
La Tabla 3.4 resume las opciones de debugreiserfs . El - J opción es probable que sea el
más útil para los administradores del sistema; sin embargo, si encuentra un problema y necesita ayuda
depurarlo, - p puede ser una buena forma de obtener ayuda. Al enviar los metadatos del sistema de archivos
(nombres de archivo, sellos de fecha, etc., sin el contenido real del archivo), un programador puede
Reproduzca la estructura de su sistema de archivos para estudiar cualquier problema que pueda tener.
Mantenimiento de sistemas de archivos
113

Página 156
114
Capítulo 3 Gestión básica del sistema de archivos
Ajuste de los parámetros ajustables del sistema de archivos
Varios sistemas de archivos proporcionan herramientas que le permiten ajustar sus parámetros de rendimiento.
Aunque los valores predeterminados funcionan lo suficientemente bien para muchos propósitos, es posible que desee ajustar estos
opciones si tiene necesidades particulares.
Ajuste de Ext2fs, Ext3fs o Ext4fs
El programa tune2fs le permite cambiar muchos de los parámetros del sistema de archivos que se informan
por dumpe2fs . La sintaxis de este programa es bastante simple, pero esconde una gran complejidad:
dispositivo tune2fs [ opciones ]
La complejidad surge debido a la gran cantidad de opciones que acepta el programa.
Cada característica que tune2fs le permite ajustar requiere su propia opción, como se resume en
Cuadro 3.5. Las opciones que se describen aquí son las que tienen más probabilidades de resultar útiles. Varios
hay otras opciones disponibles; consulte la página de manual de tune2fs para obtener más detalles.
Nombre de la opción
Explicación
-J
Muestra el encabezado del diario, que incluye una variedad de sistemas de archivos
detalles.
- pags
Extrae los metadatos del sistema de archivos a la salida estándar. Usted puede
redirigir la salida a un archivo y enviarlo a los desarrolladores de ReiserFS si
cree que ha encontrado un error de ReiserFS.
-u
Acepta una imagen de metadatos de ReiserFS (creada con el
programa 's - opción p ) para su inserción en el dispositivo . Esta opcion es
normalmente solo lo usan los desarrolladores que intentan recrear un usuario
problema del sistema de archivos.
-q
Modifica la acción de - p para suprimir el indicador de progreso predeterminado.
-S
Modifica la acción de - p para crear metadatos más completos
imagen.
- archivo B
Crea un archivo con una lista de los bloques que están marcados como malos en
el sistema de archivos.
- 1 blocknum
Muestra el contenido del número de bloque de disco especificado.
TABLA 3.4 Opciones comunes para debugreiserfs

Página 157
Como ocurre con la mayoría de las utilidades de disco de bajo nivel, no debe usar tune2fs para ajustar un
sistema de archivos. Si desea ajustar un sistema de archivos montado en clave, como su sistema de archivos raíz ( / ),
es posible que deba iniciar un sistema de disco de emergencia, como SystemRescueCd ( http: // www
.[Link] ). Los discos de instalación de muchas distribuciones también se pueden usar en esta capacidad.
Ajuste de XFS
Si usa XFS, el comando xfs_admin es el equivalente aproximado de tune2fs . Cuadro 3.6
resume algunas de las opciones de xfs_admin que puede querer ajustar.
Nombre de la opción
Explicación
- c montaje s
Ext2fs, ext3fs y ext4fs requieren una verificación periódica del disco con fsck . Este cheque
está diseñado para evitar que los errores se arrastren en el disco sin ser detectados. Tú
Puede ajustar el número máximo de veces que se puede montar el disco sin
una marca con esta opción, donde montajes es el número de montajes.
- Monturas C
Puede engañar al sistema para que piense que el sistema de archivos se ha montado
un cierto número de veces con la opción (en mayúsculas) - C monta ; esta
establece el contador de monturas en monturas .
- yo intervalo
Se requieren comprobaciones periódicas del disco en función del tiempo y del número
de monturas. Puede establecer el tiempo entre comprobaciones con esta opción, donde
intervalo es el tiempo máximo entre comprobaciones. Normalmente, el intervalo es un
número con el carácter d , w o m adjunto, para especificar días, semanas,
o meses, respectivamente.
-j
Esta opción agrega un diario al sistema de archivos, convirtiendo efectivamente un
sistema de archivos ext2 en un sistema de archivos ext3.
- m por ciento
Esta opción establece el porcentaje de espacio en disco reservado para su uso.
de raíz . El valor predeterminado es 5 , pero es excesivo en varios gigabytes.
discos duros, por lo que es posible que desee reducirlo. Es posible que desee configurarlo en 0 en
Discos extraíbles destinados a almacenar archivos de usuario.
- r bloques
Esta opción es similar a - m , pero establece los bloques reservados en un valor absoluto.
número de bloques de disco, en lugar de un porcentaje de espacio en disco.
- Etiqueta L
Puede cambiar la etiqueta del sistema de archivos con esta opción. La etiqueta no puede
exceder los 16 caracteres de longitud.
- U uuid
Puede cambiar el valor UUID de un sistema de archivos con esta opción. Usted
normalmente establece el UUID en un valor conocido (como el UUID que la partición
utilizado antes de ser reformateado); o puede usar clear como el
uuid valor para que tune2fs cree un UUID todo - 0, aleatorio para generar
un UUID aleatorio, o tiempo para generar un UUID basado en el actual
hora. No debe establecer el UUID en un valor que esté en uso en otro
¡dividir!
TABLA 3.5 Opciones comunes de tune2fs
Mantenimiento de sistemas de archivos
115

Página 158
116
Capítulo 3 Gestión básica del sistema de archivos
En uso, xfs_admin podría verse así:
# xfs_admin -L av_data / dev / sda7
escribiendo todos los SB
nueva etiqueta = "av_data"
Este ejemplo establece el nombre del sistema de archivos en / dev / sda7 en av_data . Al igual que con tune2fs ,
xfs_admin solo debe usarse en sistemas de archivos desmontados.
Tuning ReiserFS
La utilidad para ajustar las funciones de ReiserFS se llama reiserfstune . Se usa de manera muy similar a tune2fs
o xfs_admin , pasando una o más opciones y un nombre de archivo de dispositivo. La tabla 3.7 resume
las opciones de reiserfstune más útiles . Consulte su página de manual para opciones más oscuras.
TABLA 3.6 Opciones comunes de xfs_admin
Nombre de la opción
Explicación
-j
Esta opción habilita el formato de registro (diario) de la versión 2, que puede mejorar
rendimiento en algunas situaciones.
-l
Puede encontrar la etiqueta del sistema de archivos con esta opción.
- Etiqueta L
Puede cambiar la etiqueta del sistema de archivos con esta opción. La etiqueta
no puede exceder los 12 caracteres de longitud.
-u
Esta opción informa el valor UUID del disco. (La utilidad blkid también
informa el UUID para cualquier sistema de archivos que lo use).
- U uuid
Puede cambiar el valor UUID de un sistema de archivos con esta opción. Usted
normalmente establece el UUID en un valor conocido (como el UUID que la partición
utilizado antes de ser reformateado); o puede usar generate como el
uuid valor para que xfs_admin cree un nuevo UUID. Usted debe no establecido
el UUID a un valor que está en uso en otra partición!
Nombre corto de la opción
Nombre de opción largo
Explicación
- u uuid
- - uuid uuid
Puede cambiar el UUID de un sistema de archivos
valor con esta opción. Normalmente configurará
UUID a un valor conocido (como el
UUID la partición utilizada antes de ser
reformateado). Usted debe no establecer el UUID
a un valor que está en uso en otra partición!
- l etiqueta
- - etiqueta etiqueta
Puedes cambiar la etiqueta del sistema de archivos
con esta opción.
TABLA 3.7 Opciones comunes para reiserfstune

Página 159
Nombre corto de la opción
Nombre de opción largo
Explicación
- m monta
- - max - mnt - recuento
monta
ReiserFS requiere una verificación periódica del disco
con fsck . Esta comprobación está diseñada para
evitar que los errores se arrastren en el
disco sin ser detectado. Puede ajustar el
número máximo de veces que el disco
se puede montar sin un cheque con
esta opción, donde monta es el número
de montajes, utilice desactivar para desactivar el
función, o utilice el valor predeterminado para restaurar la
compilar: tiempo predeterminado. Esta opción funciona
solo con kernel 2.6.25 y posteriores.
- intervalo c
- - comprobar - intervalo
intervalo
Se requieren comprobaciones periódicas del disco según
tanto en el tiempo como en el número de montajes.
Puede establecer el tiempo entre controles
con esta opción, donde intervalo es el
tiempo máximo entre controles, en días,
o con desactivar para desactivar esta función.
- Marca de tiempo C
- - hora - última - comprobada
marca de tiempo
Puede configurar el código de fecha y hora
para la última verificación del sistema de archivos con esto
opción. La marca de tiempo puede ser ahora para
significa el tiempo presente o un tiempo en
Formato AAAAMMDD [HH [MM [SS]]] .
Depuración interactiva de un sistema de archivos
El programa debugfs es una herramienta interactiva para sistemas de archivos ext2, ext3 y ext4 que
proporciona las características de muchas otras herramientas del sistema de archivos en una. Para usar el programa,
escriba su nombre seguido del nombre de archivo del dispositivo correspondiente al sistema de archivos que desea
manipular. A continuación, verá el indicador de depuración :
# debugfs / dev / hda11
debugfs:
A pesar de sus nombres similares, debugfs y debugreiserfs son muy diferentes
programas. Como se describió anteriormente, debugreiserfs es una herramienta que proporciona
algunos datos básicos de ReiserFS y puede extraer metadatos de ReiserFS a un archivo para
entrega a los desarrolladores de ReiserFS.
Puede escribir comandos en este indicador para lograr objetivos específicos:
Mostrar información del superbloque del sistema de archivos El comando show_super_stats o stats
produce información de superbloque, similar a la que muestra dumpe2fs .
Mantenimiento de sistemas de archivos
117

Página 160
118
Capítulo 3 Gestión básica del sistema de archivos
Mostrar información de inodo Puede mostrar los datos de inodo en un archivo o directorio escribiendo
stat filename , donde filename es el nombre del archivo.
Recuperar un archivo Puede utilizar debugfs para recuperar un archivo escribiendo recuperar el nombre del inodo ,
donde inodo es el número de inodo del archivo eliminado y el nombre es el nombre de archivo que desea
dárselo. (Puede usar deshacer en lugar de recuperar si lo desea). Esta función es limitada
utilidad porque debe conocer el número de inodo asociado con el archivo eliminado. Usted puede
obtener una lista de inodos eliminados escribiendo lsdel o list_deleted_inodes , pero la lista puede
no proporciona suficientes pistas que le permitan concentrarse en el archivo que desea recuperar.
Extraer un archivo Puede extraer un archivo del sistema de archivos escribiendo write internal -
archivo externo - archivo , donde interno - archivo es el nombre de un archivo en el sistema de archivos que está
manipular y externo: el archivo es un nombre de archivo en su sistema Linux principal. Esta instalación puede
sea útil si un sistema de archivos está muy dañado y desea extraer un archivo crítico sin
montar el sistema de archivos.
Manipular archivos La mayoría de los comandos descritos en el Capítulo 4, “Disco avanzado
Management ”, funcionan dentro de debugfs . Puedes cambiar tu directorio con cd , crear enlaces
con ln , elimina un archivo con rm y así sucesivamente.
Obtener Ayuda Typing list_requests, LR , ayuda , o ? produce un resumen de los
comandos.
Salir Typing dejar sale del programa.
Este resumen solo rasca la superficie de las capacidades de debugfs . En manos de un
experto, este programa puede ayudar a rescatar un sistema de archivos muy dañado o al menos extraer
datos de él. Para obtener más información, consulte la página de manual del programa .
Aunque debugfs es una herramienta útil, es potencialmente peligrosa. No use
en un sistema de archivos montado, no lo use a menos que tenga que hacerlo, y sea muy
cuidado al usarlo. En caso de duda, deje los ajustes a los expertos. Ser
consciente de que los objetivos del examen LPIC 201 sí incluyen depuraciones .
El equivalente XFS más cercano a debugfs se llama xfs_db . Como debugfs , xfs_db proporciona
una herramienta interactiva para acceder y manipular un sistema de archivos; pero xfs_db proporciona menos herramientas
que son aptas para un uso principiante o intermedio. En cambio, xfs_db es una herramienta para expertos en XFS.
Manipular el espacio de intercambio
Algunas particiones no contienen archivos. En particular, Linux puede usar una partición de intercambio , que
es una partición que Linux trata como una extensión de memoria. (Linux también puede usar un intercambio
archivo , que es un archivo que funciona de la misma manera. Ambos son ejemplos de espacio de intercambio ).
ejecutar suficientes programas para que la memoria de su computadora se llene, Linux copia algo de memoria
contenido al espacio de intercambio, lo que le permite ejecutar más programas de los que podría
de otra manera. A veces, Linux hace esto incluso si tiene suficiente memoria para guardar todos sus
programas para liberar memoria para su uso en búferes de disco, lo que puede mejorar el disco

Página 161
tiempo de acceso. Un uso secundario del espacio de intercambio es guardar una imagen de la memoria del sistema si
usar un modo de suspensión en disco (también conocido como hibernación ), que es una forma de apagar la computadora
sin pasar por la secuencia de apagado normal. Para utilizar esta función, su espacio de intercambio
debe ser al menos tan grande como la memoria de su sistema.
Las particiones de intercambio de Linux normalmente usan un código de tipo MBR de 0x82. Desafortunadamente
Naturalmente, Solaris para x 86 también usa un código de tipo de partición MBR de 0x82, pero
en Solaris, este código se refiere a una partición de Solaris. Si tiene doble arranque entre
Solaris y Linux, este doble significado del código de tipo de partición 0x82 puede
causar confusión. Esto es particularmente cierto al instalar los sistemas operativos. Puedes
necesita usar el fdisk de Linux para cambiar temporalmente los códigos de tipo de partición
para evitar que Linux intente utilizar una partición de Solaris como espacio de intercambio o para
evitar que Solaris intente interpretar el espacio de intercambio de Linux como una partición de datos.
Aunque el espacio de intercambio no contiene un sistema de archivos per se y no está montado de la manera que
Las particiones del sistema de archivos están montadas, el espacio de intercambio requiere una preparación similar a la de
creación de un sistema de archivos. Esta tarea se realiza con el comando mkswap , que
generalmente se puede usar pasándole nada más que el identificador del dispositivo:
# mkswap / dev / sda7
Este ejemplo convierte / dev / sda7 en un espacio de intercambio. Existen varias opciones para mkswap ,
pero la mayoría son muy oscuros o peligrosos. Las opciones - L label y - U uuid son las
es más probable que utilice; estas opciones le permiten configurar la etiqueta y el UUID del intercambio
space para que pueda hacer referencia al espacio de intercambio por etiqueta o UUID en / etc / fstab o en otro lugar. Si
si no usa la opción -U , mkswap genera un UUID por sí mismo. Puede encontrar una partición de intercambio
UUID usando blkid .
Aunque el espacio de intercambio se crea a menudo en particiones, puede convertir un archivo ordinario en
intercambiar espacio usando mkswap . Luego puede hacer referencia al archivo en / etc / fstab o habilitarlo con
swapon , como se describe brevemente. Un archivo de intercambio puede ser conveniente si se queda sin espacio de intercambio;
puede crear un archivo de intercambio rápidamente y sin ajustar las particiones de su sistema. Intercambiar archivos
se puede crear en la mayoría de sistemas de archivos nativos de Linux, pero algunos sistemas de archivos no son adecuados para
sosteniendo archivos de intercambio. NFS, por ejemplo, no puede contener un archivo de intercambio. (Incluso si pudiera, colocando
swap
en un montaje en red produciría un rendimiento muy bajo).
Si crea un archivo de intercambio y posteriormente realiza una copia de seguridad de la partición en la que
reside, trate de evitar hacer una copia de seguridad del archivo de intercambio; será una pérdida de espacio
en el medio de respaldo. Del mismo modo, no tiene sentido hacer una copia de seguridad de swap
particiones.
Para usar el espacio de intercambio, debe activarlo con el comando swapon :
# swapon / dev / sda7
Mantenimiento de sistemas de archivos
119

Página 162
120
Capítulo 3 Gestión básica del sistema de archivos
La Tabla 3.8 resume varias opciones de intercambio . Para activar permanentemente el espacio de intercambio,
debe crear una entrada para él en / etc / fstab , como se describe anteriormente en "Permanentemente
Montaje de sistemas de archivos. "
TABLA 3.8 Opciones comunes para intercambiar
Nombre corto de la opción
Nombre de opción largo
Explicación
- una
- - todas
Activa todos los dispositivos de intercambio especificados en / etc /
fstab .
-e
- - si existe
Omite dispositivos que no existen sin
mostrando mensajes de error.
- Etiqueta L
N/A
Los montajes intercambian espacio por su etiqueta en lugar de
por su nombre de archivo de dispositivo.
- p prioridad
- - prioridad
prioridad
Establece un valor de prioridad de 0 a 32767 .
Se usa el espacio de intercambio con una prioridad más alta
preferentemente. Puede utilizar esta función si
tiene espacio de intercambio en discos de diferentes
velocidades; establecer una prioridad más alta para el más rápido
el disco mejorará el rendimiento. Prioridades
se puede configurar en / etc / fstab configurando el
pri = opción de prioridad .
-s
- - resumen
Muestra información resumida sobre el intercambio.
uso del espacio.
- U uuid
N/A
Los montajes intercambian espacio por UUID en lugar de por
su nombre de archivo de dispositivo.
Para desactivar el espacio de intercambio, puede utilizar swapoff:
# swapoff / dev / sda7
Puede usar la - una opción con swapoff para desactivar todo el espacio de swap. Si tu
desactive un archivo de intercambio y tenga la intención de no volver a utilizarlo nunca, recuerde eliminarlo para ahorrar espacio en el
disco.

Gestión de discos ópticos


Los medios ópticos son un medio popular para intercambiar archivos moderadamente grandes. La mayoría de CD - R y
CD: los medios RW contienen 700 MB de archivos (los discos más antiguos tienen 650 MB), formatos de DVD grabables
tienen capacidades de 4,7 a 8,5 GB y los discos Blu-ray tienen una capacidad de 25 a 50 GB. Escritura simple: una vez CD y

Página 163
Los DVD cuestan entre $ 0,10 y $ 1 y es probable que sigan siendo legibles durante varios años o décadas, dado
almacenamiento adecuado. Normalmente no monta un disco óptico y escribe archivos en él como lo haría
aunque un disquete; debe crear un sistema de archivos completo y luego copiar (o "grabar") ese
sistema de archivos al disco. (La próxima sección "Lectura y escritura de discos UDF" describe
una excepción a esta regla.) Este proceso requiere el uso de dos herramientas, mkisofs y cdrecord , o
requiere variantes o interfaces de estas herramientas.
Herramientas de disco óptico de Linux
El proceso de creación de un disco óptico de Linux consta de tres pasos:
1. Recopile archivos de origen. Primero debe recopilar los archivos de origen en una ubicación, normalmente una
subdirectorio de su directorio personal.
2. Cree un sistema de archivos. Apunta un sistema de archivos - programa de creación, mkisofs , a su fuente
directorio. Este programa genera un sistema de archivos ISO-9660 en un archivo de imagen. Recientemente,
mkisofs ha cambiado de nombre a genisofs ; sin embargo, el nombre mkisofs se conserva como un símbolo
enlace bolico a genisofs . Debido a que los objetivos de LPIC 201 se refieren a mkisofs , utilizo que
nombre del comando en este capítulo.
3. Grabe el disco. Utiliza un programa de grabación de discos ópticos, como cdrecord , para copiar
archivo de imagen al dispositivo óptico.
Las distribuciones recientes de Linux proporcionan mkisofs y cdrecord en un
paquete único llamado cdrtools o cdrkit ; o pueden dividirse en
paquetes genisoimage y wodim , respectivamente.
El programa growisofs (normalmente instalado en el paquete de herramientas dvd + rw ) combina
funcionalidad de mkisofs y cdrecord , pero growisofs solo funciona con DVD y Blu-ray
discos, no con los CD - R más pequeños. A su vez, muchas versiones de cdrecord no funcionarán con el
DVD y discos Blu-ray más grandes.
Otro enfoque para la creación de discos ópticos es utilizar interfaces GUI para el modo de texto.
herramientas. Estas herramientas GUI proporcionan una interfaz de apuntar y hacer clic, eliminando la necesidad de
recuerde los oscuros parámetros de la línea de comandos. Creación popular de discos ópticos GUI Linux
Las herramientas incluyen X - CD - Roast ( [Link] ), GNOME Toaster ( http: // freshmeat
.net / projects / gnometoaster / ) y K3B ( [Link] ).
Todas estas herramientas de disco óptico ofrecen una increíble variedad de opciones. En su mayor parte, el
Las opciones predeterminadas funcionan bastante bien, aunque es posible que deba proporcionar información para identificar
su unidad y velocidad de grabación, como se describe en la siguiente sección. Algunas opciones de mkisofs pueden
también es importante para generar archivos de imagen que se pueden leer en una amplia variedad de sistemas operativos, ya que
se describe más adelante en “Creación de discos multiplataforma. "
Un ejemplo de disco óptico de Linux
Para comenzar a crear discos ópticos, comenzar con mkisofs tiene sentido:
$ mkisofs -J -r -V “nombre del volumen” -o ../ [Link] ./
Gestión de discos ópticos
121

Página 164
122
Capítulo 3 Gestión básica del sistema de archivos
Este comando crea un archivo de imagen llamado [Link] en el padre de la actual
directorio, colocando archivos del directorio de trabajo actual ( ./ ) en el archivo de imagen resultante.
Las opciones - J y - r habilitan las extensiones Joliet y Rock Ridge, respectivamente, y las opciones - V
La opción establece el nombre del volumen como lo que especifique. Docenas de otras opciones y variantes
en estos están disponibles; consulte la página de manual de mkisofs para obtener más detalles.
Una vez que haya creado un archivo de imagen, puede grabarlo con un comando como el
siguiendo:
$ cdrecord dev = / dev / dvdrw velocidad = 4 ../ [Link]
El dispositivo ( dev = / dev / dvdrw ) debe existir y ser su unidad óptica. (Esto puede ser / dev /
dvdrw o algo similar incluso si está grabando un CD - R. Los detalles varían dependiendo de su
distribución y hardware). La velocidad de escritura se establece mediante la opción de velocidad , y la
El parámetro especifica la fuente del archivo que se va a grabar. Al igual que con mkisofs , cdrecord admite
muchas opciones adicionales; consulte su página de manual para obtener más detalles. Si el bit SUID no está establecido en este
programa, con la propiedad establecida en root , debe ejecutarlo como root .
Puede montar un archivo de imagen usando la opción loopback para verificar su
contenido antes de quemarlo. Por ejemplo, escribiendo mount - t iso9660 - o
loop [Link] / mnt / cdrom monta el archivo [Link] en / mnt / cdrom . Tú
Luego puede verificar que todos los archivos que deberían estar presentes estén presentes. Tú
debe ser root para usar esta opción, o debe haber creado un
Entrada / etc / fstab .
Al grabar DVD o discos Blu-ray, es posible que deba utilizar growisofs , que combina
las características de mkisofs y cdrecord :
$ growisofs -speed = 4 -Z / dev / dvdrw -J -r -V “nombre del volumen” ./
La opción - speed de growisofs es equivalente a la opción speed de cdrecord . Tú
especifique el dispositivo de destino utilizando - Z en lugar de dev = . Las opciones que siguen al dispositivo son
los mismos que los utilizados por mkisofs . El enfoque growisofs elimina la necesidad de
un archivo de imagen temporal, que es particularmente útil con discos más grandes. Si tu prefieres,
sin embargo, puede crear un archivo de este tipo con mkisofs o alguna otra utilidad y luego grabarlo con
growisofs agregando el archivo fuente a la opción - Z :
$ growisofs -speed = 4 -Z / dev / dvdrw = [Link]
Esta forma de growisofs también es útil para grabar un archivo de imagen de DVD que haya obtenido
de otra fuente, como una imagen de DVD de instalación de Linux que haya descargado del
Internet.
Creación de discos multiplataforma
Es posible que desee crear un disco que funcione en muchos sistemas operativos diferentes. Si es así, es posible que desee
para utilizar una amplia gama de sistemas de archivos y extensiones de sistemas de archivos. Dichos discos contienen solo

Página 165
una copia de cada archivo; Los sistemas de archivos están escritos de tal manera que todos apuntan
estructuras de directorio únicas en los mismos archivos. Por lo tanto, el espacio adicional requerido por tal
El disco multiplataforma es mínimo. Las características que puede utilizar en un disco de este tipo incluyen
siguiendo:
Siguiendo enlaces simbólicos La opción -f de mkisofs hace que la herramienta lea los archivos
que los enlaces simbólicos apuntan e incluyen en el CD - R, en lugar de escribir símbolos
enlaces como tales utilizando extensiones de Rock Ridge. Los siguientes enlaces simbólicos pueden aumentar el disco
espacio utilizado en un CD - R, pero esta opción es necesaria si desea que los enlaces simbólicos produzcan
resultados razonables en sistemas operativos que no entienden Rock Ridge, como Windows.
Long ISO - 9660 Nombres de archivo Normalmente, mkisofs crea solo nombres de archivo cortos para la base
Sistema de archivos ISO-9660. Los nombres de archivo largos se almacenan en Rock Ridge, Joliet u otro sistema de archivos
extensiones. Puede aumentar la longitud del nombre ISO - 9660 sin procesar a 31 caracteres con - l
(esa es una L minúscula ) opción.
Joliet Soporte El - J opción de mkisofs , como se señaló anteriormente, crea una imagen con Joliet
extensiones. Estas extensiones no interfieren con la lectura del disco desde sistemas operativos que no
entender a Joliet.
Soporte Rock Ridge Las opciones - R y - r agregan extensiones Rock Ridge. los
- La opción R agrega las extensiones, pero los archivos se almacenan usando su propiedad original y
permisos, que pueden ser inapropiados en otra computadora. Usar - r funciona igual,
excepto que cambia la propiedad de todos los archivos a root , otorga a todos los usuarios acceso de lectura a los archivos,
y elimina los permisos de escritura. Estas funciones suelen ser deseables en un disco que se va a
utilizado en cualquier computadora que no sea la del autor original.
Soporte UDF Puede agregar soporte para el sistema de archivos UDF al incluir la opción - udf .
UDF es el sistema de archivos de disco óptico “emergente” y es el sistema de archivos preferido para
DVD. La mayoría de los sistemas operativos modernos, incluidas las versiones recientes de Linux, Windows y Mac OS,
entender UDF.
Compatibilidad con HFS Para crear un disco que incluya compatibilidad con Mac OS HFS, agregue la opción - hfs .
Cuando inserta el disco resultante en una Macintosh, la computadora leerá el HFS
nombres de archivo. Una gran cantidad de opciones están relacionadas con este.
Discos de arranque Aunque no es realmente un problema multiplataforma, los discos de arranque pueden
importante. El estándar para discos de arranque se conoce como la especificación El Torito . A
cree un disco El Torito, debe pasar una imagen de arranque a mkisofs usando la - imagen b -
opción de archivo , donde imagen - archivo es el nombre de archivo de una imagen de disco de arranque, en relación con el
directorio que se utiliza para crear la imagen del disco. Normalmente, la imagen del disco es un disquete
imagen; cuando la computadora arranca, actúa como si estuviera arrancando desde un disquete. Si el
la imagen de arranque es de un disco duro completo, agregue el parámetro - hard - disk - boot ; si es de un disco
partición, use el parámetro - no - emul - boot . Puede crear un archivo de imagen de disco copiando
de la fuente original usando dd , como en dd if = / dev / fd0 of = [Link] para crear una imagen
de un disquete.
Gestión de discos ópticos
123

Página 166
124
Capítulo 3 Gestión básica del sistema de archivos
Lectura y escritura de discos UDF
Puede crear un disco UDF usando la opción - udf para mkisofs , como se acaba de describir; sin embargo,
mkisofs crea UDF como una adición al sistema de archivos ISO-9660, y el disco debe ser
creado utilizando el mismo proceso básico que un disco ISO-9660. Un disco creado de esta forma puede
montado como UDF, pero será un sistema de archivos de solo lectura.
Acceso de lectura / escritura aleatorio completo a un disco óptico, similar al acceso que tiene a USB
unidades flash u otros discos, se conoce como escritura de paquetes . Para obtener este apoyo, puede
use el controlador del kernel de Linux para UDF, el soporte de escritura de paquetes del kernel y las herramientas udf
paquete. Esta combinación le da acceso a unidades de DVD + RW como si fueran normales
discos duros. Los medios CD - RW no se pueden montar de manera de lectura / escritura con estas herramientas,
aunque puede montar medios CD - RW UDF para acceso de solo lectura.
Para comenzar a usar las funciones de escritura de paquetes, primero debe asegurarse de tener los
controladores del kernel y paquete udftools instalados. (Los controladores del kernel se incluyen con la mayoría
núcleos estándar de las distribuciones). A continuación, puede crear un sistema de archivos UDF en su DVD + RW
Dto:
# mkudffs / dev / dvdrw
Cambie el nombre de archivo del dispositivo según sea necesario. Luego puede montar el disco, copiar archivos a
, elimínelo y utilícelo de la misma forma que lo haría con un disco duro. Escribiendo a
Los discos UDF tienden a ser bastante lentos, así que esté preparado para esperar si está copiando muchos o grandes
archivos al disco. Al igual que ISO - 9660 con Rock Ridge, UDF es compatible con la propiedad estilo Linux
y permisos, por lo que debe tener esto en cuenta y establecer la propiedad y los permisos
apropiadamente si el disco se leerá en otras computadoras Linux o UNIX.
A diferencia de los discos creados con mkisofs o growisofs , los discos creados con
mkudffs no contiene ningún sistema de archivos ISO-9660. Por lo tanto, los sistemas operativos más antiguos que tienen
ningún soporte UDF no podrá leer discos creados por mkudff . Asimismo, si
especifica un punto de montaje de disco óptico en / etc / fstab con un sistema de archivos
tipo de iso9660 , no podrá montar dichos discos en Linux a menos que
usted especifica manualmente el tipo de sistema de archivos o monta el disco en algún otro
ubicación. Puede utilizar una especificación de sistema de archivos de udf o auto en / etc /
fstab para garantizar que solo se puedan montar discos UDF.

Administrar dispositivos con udev


La mayoría de los sistemas de archivos brindan acceso a archivos almacenados en medios físicos: discos duros, discos ópticos,
Unidades flash USB, etc. Sin embargo, algunos sistemas de archivos son virtuales: brindan acceso a
información o datos que no son de disco en forma de archivo. Un sistema de archivos virtual que puede necesitar
configurar es udev , que controla los archivos del dispositivo en el árbol del directorio / dev . Estos archivos

Página 167
dar acceso a los programas al hardware de la computadora: el teclado, el mouse, la impresora e incluso
discos duros y particiones en forma "sin procesar".
Configurar udev requiere comprender lo que hace. A continuación, puede crear reglas que
modificar el funcionamiento de udev . Si tiene problemas, es posible que deba utilizar utilidades para supervisar
La operación de udev al conectar y desconectar dispositivos o cargar y descargar el kernel relevante
módulos.
Entendiendo udev
Cuando una computadora Linux arranca, el kernel escanea el hardware para ver qué está disponible.
El subsistema udev luego crea entradas en el sistema de archivos virtual / dev para la mayoría de hardware
dispositivos. Este enfoque para el mantenimiento de archivos del dispositivo permite que el sistema se adapte a una amplia
variedad de hardware y mantiene el directorio / dev ordenado - antes de udev , Linux
Los sistemas con frecuencia tenían un conjunto fijo de entradas de directorio / dev para todo el hardware común.
dispositivos, incluso si esos dispositivos no existían en la computadora.
No todos los dispositivos de hardware obtienen entradas de directorio / dev . Dispositivos de red, como
como puertos Ethernet y WiFi, son excepciones notables. No obstante, udev
maneja estos dispositivos; puede usarlo para cambiar el nombre de los dispositivos de red o asegurarse
denominación coherente de los dispositivos de red en todos los arranques.
Existen estándares para nombrar dispositivos en / dev . Por ejemplo, la mayoría de los discos duros toman nombres
de la forma / dev / sd A , donde A es una letra. Las particiones de los discos duros tienen el mismo nombre
con un número agregado. Por tanto, / dev / sda es el primer disco duro, / dev / sdb es el segundo
disk, / dev / sda1 es la primera partición en el primer disco duro, y así sucesivamente. El directorio / dev
también contiene subdirectorios, que se utilizan para contener categorías completas de archivos de dispositivo. Cuadro 3.9
presenta algunos nombres de archivo de dispositivos Linux importantes. En esta tabla, A se refiere a una letra, # se refiere a
un número y * se refiere a nombres de archivos completos o subdirectorios. La tabla 3.9 está incompleta; muchos
otros dispositivos están disponibles. También hay variaciones de una distribución a otra en
qué nodos de dispositivo se crean, incluso en hardware idéntico.
Patrón de nombre de archivo de dispositivo
Explicación
/ dev / sd A
Un disco duro completo, accesible mediante la computadora pequeña
Subsistema de interfaz del sistema (SCSI). (Muchos discos no SCSI
use este subsistema en computadoras modernas).
/ dev / hd A
Un disco duro o un disco óptico completo, accesible mediante el
Subsistema de electrónica de dispositivos integrados (IDE). Direccionamiento IDE
se está volviendo raro.
/ dev / sd A #
Una partición de disco duro en un disco que usa el subsistema SCSI.
TABLA 3.9 Nombres de archivo de dispositivos Linux comunes
Administrar dispositivos con udev
125

Página 168
126
Capítulo 3 Gestión básica del sistema de archivos
Patrón de nombre de archivo de dispositivo
Explicación
/ dev / hd A #
Una partición de disco duro en un disco que usa el subsistema IDE.
/ dev / fd #
Un disquete.
/ dev / sr #
Un disco óptico, accesible mediante el subsistema SCSI. Uno
o más enlaces simbólicos llamados / dev / cdrom , / dev / cdrw , / dev /
También es probable que existan dvd y / dev / dvdrw .
/ dev / lp #
Un puerto paralelo.
/ dev / usb / lp #
Una impresora USB.
/ dev / ttyS #
Un puerto serie RS-232.
/ dev / tty #
Una consola de inicio de sesión en modo texto.
/ dev / pts / #
Una sesión en modo texto en un pseudo-terminal, que es un
sesión de inicio de sesión, consola en modo texto X o herramienta de inicio de sesión similar.
/ dev / bus / usb / *
Este árbol de directorio proporciona acceso a dispositivos USB. los
los nombres normalmente son muy poco informativos.
/ dev / snd / *
Estos archivos brindan acceso a su hardware de sonido.
/ dev / input / *
Se accede a los dispositivos de entrada humana (principalmente ratones) a través de estos
archivos. / dev / input / mice proporciona acceso a todos y cada uno de los ratones,
while / dev / input / mouse # proporciona acceso a ratones específicos.
/ dev / zero
Cuando se lee, este archivo de dispositivo produce una cadena interminable de
valores 0 binarios. Puede utilizarse como fuente para
en blanco un archivo o partición.
/ dev / null
Este archivo está diseñado para escribir, pero no está conectado a nada;
cualquier dato enviado a / dev / null desaparece.
TABLA 3.9 Nombres de archivo de dispositivos Linux comunes (continuación)
La mayoría de los dispositivos en / dev son dispositivos de caracteres , lo que significa que puede leer o escribir datos
un carácter (byte) a la vez. Los ejemplos incluyen puertos de impresora, ratones y consolas. Algunos
Los dispositivos, sin embargo, son dispositivos de bloque , lo que significa que debe leer o escribir datos en múltiples
fragmentos de bytes. Los dispositivos de bloque más comunes son los dispositivos de disco. La mayoría de los discos tienen 512 bytes
bloques, pero algunos usan bloques de mayor tamaño.
Como todos los archivos en Linux, los archivos en / dev tienen propietarios, propietarios de grupos y permisos.
Estas funciones controlan quién puede acceder a un dispositivo. En la mayoría de los casos, no desea
los usuarios tengan acceso completo de lectura / escritura a los dispositivos de disco sin formato; sin embargo, los usuarios normales
pueden
requieren acceso a los dispositivos de hardware de sonido. Una de las características clave de udev es que

Página 169
puede alterar la propiedad y los permisos predeterminados asociados con los archivos del dispositivo, dando así
acceso al hardware a aquellos usuarios que lo requieran.
Preparación para crear reglas de udev
El directorio /etc/udev/rules.d contiene uno o más archivos que contienen reglas udev . Estas
los archivos normalmente tienen nombres de la forma ## - descripción .reglas , donde ## es una secuencia
El número y la descripción es una breve descripción del tipo de reglas que residen en el archivo. los
El número de secuencia controla el orden en el que se ejecutan las reglas de udev cuando el sistema
arranca o cuando un dispositivo está conectado o desconectado de la computadora.
Para controlar udev , debe conocer los nombres de varios atributos del kernel relacionados con su
hardware. Una forma de aprender los nombres de los atributos relevantes es con el comando udevadm , que
tiene varios subcomandos que se pueden utilizar para examinar o manipular el subsistema udev . De
Particular relevancia para empezar es el subcomando info , que se puede utilizar con varios
parámetros para revelar los atributos asociados con cualquier archivo de dispositivo dado. El seguimiento
El comando demuestra este uso, produciendo los atributos asociados con / dev / input / mouse1 :
$ udevadm info -a -p $ (udevadm info -q ruta -n / dev / input / mouse1)
La información de Udevadm comienza con el dispositivo especificado por devpath y luego
sube por la cadena de dispositivos para padres. Imprime para todos los dispositivos
encontrado, todos los atributos posibles en el formato de clave de reglas udev.
Una regla para igualar, puede estar compuesta por los atributos del dispositivo
y los atributos de un único dispositivo principal.
mirando el dispositivo '/ class / input / input6 / mouse1':
KERNEL == ”mouse1”
SUBSYSTEM == ”entrada”
DRIVER == ””
mirando el dispositivo principal '/ class / input / input6':
KERNELS == "input6"
SUBSISTEMAS == ”entrada”
CONDUCTORES == ””
ATTRS {nombre} == ”Logitech Trackball”
ATTRS {phys} == ”usb-0000: 00: 13.0-3 / input0”
ATTRS {uniq} == ””
ATTRS {modalias} == ”entrada: b0003v046DpC404e0110-e0,1,2,4, k110,111,112, r0,1,8,
am4, lsfw "
mirando el dispositivo principal '/ class / input':
KERNELS == ”entrada”
SUBSYSTEMS == ”subsistema”
CONDUCTORES == ””
Administrar dispositivos con udev
127

Página 170
128
Capítulo 3 Gestión básica del sistema de archivos
Las versiones anteriores de las utilidades udev empleaban un programa separado para
cada acción de udevadm . El comando udevinfo tomó el lugar de udevadm
info . Si está utilizando una distribución anterior, es posible que deba hacer esto
sustitución.
Si desea modificar una regla de udev , debe ubicar las características que distinguen
dispositivo que desea afectar desde otros dispositivos. Por ejemplo, en la salida anterior, el
El campo ATTRS {nombre} puede ser único en su sistema. Algunos dispositivos informan números de serie,
nombres de controladores, códigos de identificación de proveedores u otras características que pueden ayudarlo a identificar
dispositivo.
Las reglas en un archivo de reglas udev consisten en una serie de pares clave / valor separados por comas, con
la clave y el valor separados por un operador, como se especifica en la Tabla 3.10. Los operadores entran
dos tipos: emparejamiento y asignación. Los operadores coincidentes se utilizan para especificar condiciones
para que se apliquen los operadores de asignación, es decir, los operadores de asignación en una regla son
activado si y solo si todos los operadores coincidentes se evalúan como verdaderos.
TABLA 3.10 operadores de udev
Operador
Tipo
Explicación
==
Pareo
Compara por igualdad
!=
Pareo
Compara la desigualdad
=
Asignación
Asigna el valor a la clave, reemplazando
el antiguo valor
+=
Asignación
Agrega el valor al conjunto de claves existente
valores
:=
Asignación
Asigna el valor a la clave y
no permitir cambios futuros
Preste especial atención a la diferencia entre el operador de coincidencia ==
y el = operador de asignación! Esta diferencia de un solo carácter es fácil
pasar por alto, y si lo hace mal, sus reglas de udev no funcionarán como usted
destinado a.
La tabla 3.11 especifica algunas claves de udev comunes . (Consulte la página de manual de udev para obtener información adicional
opciones.) Algunos de estos aparecen en el resultado del ejemplo anterior. Cuando especifica una clave en
un operador coincidente, puede utilizar comodines, como * para hacer coincidir cualquier cadena ,? para que coincida con cualquier
carácter único, o [abc] para que coincida con cualquier carácter del conjunto abc .

Página 171
TABLA 3.11 Teclas udev comunes
Llave
Tipo
Explicación
ETIQUETA
Controlar
Un nombre establecido para administrar el flujo de coincidencias dentro de un udev
archivo de reglas.
IR
Controlar
Una declaración que puede redirigir el flujo de coincidencias
operaciones dentro de un archivo de reglas udev .
ESPERA_PARA
Controlar
Hace que la coincidencia se detenga hasta que se cree el archivo especificado.
ACCIÓN
Pareo
El nombre de una acción que ha realizado udev , como agregar a
agregue un archivo de dispositivo.
NÚCLEO
Pareo
El nombre del kernel para el dispositivo, como sd * para cualquier SCSI
dispositivo de disco.
DEVPATH
Pareo
La ruta del dispositivo del kernel, como / devices / * .
SUBSISTEMA
Pareo
El nombre del kernel para el subsistema del dispositivo, como sonido
o neto .
CONDUCTOR
Pareo
El nombre de un controlador de dispositivo.
PROGRAMA
Pareo
Ejecuta un programa externo. Cuando se usa con un
clave coincidente, la clave se considera verdadera si el programa
devuelve un valor 0.
RESULTADO
Pareo
La salida estándar de la llamada PROGRAM más reciente .
ATTR { cadena }
Coincidencia o
Asignación
Un nombre arbitrario que se puede configurar para el dispositivo.
NOMBRE
Asignación El nombre de un archivo de dispositivo que se creará, relativo a / dev .
(No se crea un nodo de dispositivo para dispositivos de red, pero
NAME aún se puede usar para especificar el nombre del dispositivo).
SYMLINK
Asignación El nombre de un enlace simbólico que se creará, relativo a / dev .
PROPIETARIO
Asignación El propietario del archivo de dispositivo.
GRUPO
Asignación El grupo del archivo de dispositivo.
MODO
Asignación Los permisos del archivo de dispositivo.
CORRER
Asignación El nombre de un programa externo (en / lib / udev si el
nombre se especifica sin una ruta completa) para ser ejecutado. Tal
los programas deben ejecutarse rápidamente; si no lo hacen, causarán
retrasos en el procesamiento de udev .
OPCIONES
Asignación Establece opciones específicas del dispositivo, como all_partitions para
crear particiones para dispositivos de disco.
Administrar dispositivos con udev
129

Página 172
130
Capítulo 3 Gestión básica del sistema de archivos
Las versiones anteriores de udev usaban SYSFS { string } en lugar de ATTR { string } .
Muchas de las claves utilizadas para hacer coincidir se pueden convertir en formas plurales (como
como Subsistema de SUBSISTEMAS o ATTR { cadena } a ATTRS { cadena } ) para buscar
en varias capas de la ruta del dispositivo. Es decir, en la salida de información de udevadm
encontrará claves asociadas con varios niveles de controladores. Usando el singular
las reglas de coincidencia solo coinciden con una capa, mientras que la forma plural coincide
todos los dispositivos más altos en el árbol del partido.

Crear reglas de udev


Un ejemplo simple, que se muestra en el Listado 3.2, demuestra cómo se puede usar udev para ajustar
varios nodos de dispositivo. Puede crear un archivo como /etc/udev/rules.d/99 - [Link] . En
la mayoría de los casos, se debe no modificar los estándares de udev archivos de reglas, ya que 're probable que sea
reemplazado por actualizaciones del sistema.
Listado 3.2: Ejemplo de archivo de reglas udev
SUBSYSTEM! = ”Usb_device”, ACTION! = ”Add”, GOTO = ”minolta_rules_end”
# Minolta | DiMAGE Scan Elite 5400
ATTR {idVendor} == ”0686”, ATTR {idProduct} == ”400e”, SYMLINK + = ”scan5400”
MODE = ”0660”, OWNER = ”lisa”, GROUP = ”escáner”
LABEL = "minolta_rules_end"
# Dispositivo PCI 0x8086: 0x1030 (e100)
SUBSYSTEM == ”net”, ACTION == ”add”, ATTR {address} == ”00: 03: 47: b1: e3: d8”,
KERNEL == ”eth *”, NAME = ”eth0”
# Dispositivo PCI 0x10ec: 0x8168 (r8169)
SUBSYSTEM == ”net”, ACTION == ”add”, ATTR {address} == ”00: e0: 4d: a3: 22: c5”,
KERNEL == ”eth *”, NAME = ”eth1”
La primera línea del Listado 3.2, que incluye una instrucción GOTO , está diseñada para mantener la primera
la regla se ejecute excepto cuando se agregan dispositivos USB. Esta línea no es muy importante en
este ejemplo, pero usa una configuración similar para omitir muchas reglas de ejecución lenta
para mejorar la velocidad de udev . Si no se agrega un dispositivo USB, todo entre la primera línea
y la línea LABEL = "minolta_rules_end" se ignora.
La primera regla del Listado 3.2 ajusta los permisos y establece un enlace simbólico para un
dispositivo específico, identificado en la línea de comentarios (indicado por una marca de almohadilla inicial, # ) como un
Escáner de película Minolta DiMAGE Scan Elite 5400. Este dispositivo puede identificarse por su
Claves ATTR {idVendor} y ATTR {idProduct} . El objetivo principal de esta regla es ajustar la

Página 173
propiedad, propiedad del grupo y permisos del nodo del dispositivo, lo que permite al usuario lisa
y miembros del grupo de escáneres para acceder al dispositivo. La regla también crea un símbolo
link, / dev / scan5400 , para apuntar al nodo del dispositivo original. Tenga en cuenta que MODO , PROPIETARIO y
Todas las claves de GRUPO usan el operador = , ya que los archivos pueden tener un solo modo, propietario y grupo; pero
la tecla SYMLINK utiliza el operador + = , ya que varios enlaces simbólicos pueden apuntar a un solo
nodo de dispositivo, y si usó = , su regla anularía cualquier otro enlace simbólico que
puede ser creado por otras reglas, algo que probablemente no quieras hacer.
Las siguientes dos reglas son similares entre sí; ambos especifican nombres para particular
Dispositivos Ethernet, utilizando sus direcciones de hardware como claves. Reglas como esta son comunes en
equipos con varios dispositivos del mismo tipo. Sin estas reglas, no hay garantía
que un dispositivo determinado tendrá el mismo identificador cada vez que se inicie la computadora, es decir,
eth0 hoy podría convertirse en eth1 si reinicia la computadora mañana. Aunque tal
La inconsistencia no es un gran problema para algunos dispositivos, puede ser desastrosa para otros. UNA
una computadora con dos interfaces Ethernet podría usarse como enrutador, por ejemplo, y usted
puede configurar el sistema con una dirección específica en cada interfaz. Otros dispositivos que
podría necesitar distinguir de esta manera incluyen discos ópticos, discos duros, impresoras, televisores
sintonizadores y escáneres.
Las distribuciones modernas de Linux a menudo crean reglas similares a las dos últimas reglas
en el Listado 3.2 para dispositivos de red y discos ópticos. Estas reglas normalmente
aparecen en los 70 - persistentes - [Link] y 70 - persistentes - [Link]
archivos en /etc/udev/rules.d . Si cambia de hardware, puede terminar con
nuevos nombres de dispositivos Ethernet o nodos de dispositivos de disco óptico, que pueden no
ser un efecto deseable. Si esto sucede, debería poder editar estos
archivos para producir el nombre de nodo deseado. (Editar estos archivos es una
excepción a la regla de no editar el udev preexistente de su distribución
archivos de reglas.) Estos archivos pueden actualizarse de nuevo en el futuro, pero
los cambios normalmente persistirán.
A veces, es posible que prefiera crear un enlace simbólico con un nombre distintivo en lugar de
que especificar un nombre convencional para un dispositivo. Tal configuración se parecería mucho
el ejemplo del escáner Minolta en el Listado 3.2. A continuación, puede hacer referencia al dispositivo mediante un
nombre distintivo, como / dev / scan5400 , en el software.
Supervisión de la actividad de udev
Una vez que haya creado nuevas reglas de udev , querrá probarlas. No es necesario reiniciar
o incluso reiniciar cualquier programa para habilitar sus reglas; simplemente guarde el nuevo archivo de reglas. Vas a,
sin embargo, debe recargar el dispositivo para que su regla entre en vigencia. Si el dispositivo está caliente -
conectable (es decir, si se puede desconectar y volver a conectar de forma segura), como un dispositivo USB,
puede desenchufarlo y volver a enchufarlo, o quizás apagarlo y volver a encenderlo. Si
el dispositivo no es conectable en caliente, es posible que pueda hacer que las reglas de udev se vuelvan a interpretar
descargando y volviendo a cargar un módulo de kernel relevante, como se describe en el Capítulo 2, “Linux
Administrar dispositivos con udev
131

Página 174
132
Capítulo 3 Gestión básica del sistema de archivos
Configuración del kernel. "Si esto es imposible, es posible que deba ingresar el nivel de ejecución S o s , o incluso
reinicie la computadora para probar la nueva configuración de udev .
Si tiene problemas, puede encontrar algunas pistas utilizando udevadm , esta vez con su
opción de monitor . (Esta acción solía habilitarse a través del programa udevmonitor independiente ; el
Los objetivos de LPI se refieren a él como tal). Es probable que el resultado sea una serie de líneas como la siguiente
cuando activa un dispositivo:
KERNEL [1285302053.747736] agregar / clase / entrada / entrada7 (entrada)
KERNEL [1285302053.747891] agregar / clase / entrada / entrada7 / mouse1 (entrada)
KERNEL [1285302053.748003] agregar / clase / entrada / entrada7 / evento5 (entrada)
KERNEL [1285302053.748089] add / class / hidraw / hidraw1 (hidraw)
Estas líneas resumen los archivos de información (en / class y / devices , pero no en / dev )
que se crean para cada dispositivo. Cuando se quita un dispositivo, una línea similar, pero con
se muestra eliminar en lugar de agregar .

Resumen
La administración adecuada de los sistemas de archivos de una computadora Linux es necesaria para la
utilidad continua. El aspecto más básico de esta gestión es hacer que los sistemas de archivos estén disponibles,
que generalmente se hace montándolos. El comando mount monta un sistema de archivos
a un punto de montaje, mientras que el comando umount deshace esta asociación. Tú también puedes
montar permanentemente un sistema de archivos editando el archivo / etc / fstab , que controla cómo
Los sistemas de archivos se montan cuando se inicia la computadora.
Por supuesto, no puede montar un sistema de archivos si no se ha creado o si no se ha creado correctamente.
dañado y Linux proporciona herramientas que le permiten crear y reparar sistemas de archivos.
Específicamente, mkfs crea sistemas de archivos, mientras que fsck los revisa en busca de errores y repara cualquier
errores que encuentra. (Ambos programas son en realidad interfaces; el trabajo real lo realiza el sistema de archivos -
herramientas específicas, a las que puede llamar directamente si lo prefiere.) Varias herramientas específicas del sistema de archivos
le permite ajustar las operaciones del sistema de archivos, como ajustar la cantidad de espacio
reservado para root o alterar el funcionamiento de la revista. Los sistemas de archivos utilizados en los discos ópticos
(ISO - 9660 y sus extensiones, así como la UDF más reciente) requieren una atención especial porque
se crean utilizando herramientas especiales, como mkisofs . Estos sistemas de archivos también están escritos
a discos ópticos de una manera especial, usando cdrecord o growisofs , aunque una vez que estén
preparados, los discos ópticos se montan y utilizan de forma muy similar a otros sistemas de archivos. Aunque no es
un sistema de archivos, el espacio de intercambio se administra de manera similar, y debe estar familiarizado con el
herramientas mkswap , swapon y swapoff que manejan el espacio de intercambio.
Un sistema de archivos especial merece una atención especial: udev . Esta herramienta crea nodos de dispositivos,
que proporcionan a los programas acceso a hardware - consolas en modo texto, impresoras, escáneres,
e incluso dispositivos de disco sin formato. Aunque las distribuciones de Linux se envían básicamente con
configuraciones de udev , es posible que deba modificar la configuración estándar para garantizar
denominación coherente de dispositivos, para ajustar la propiedad o los permisos para que los usuarios puedan acceder
hardware, o por otras razones.

Página 175
Examen esencial
Describe el comando que se usa para montar un sistema de archivos. El comando de montaje se monta
un sistema de archivos. Normalmente, pasa un nodo de dispositivo y un punto de montaje, como en mount / dev / sda2
/ mnt / data para montar el sistema de archivos en / dev / sda2 en / mnt / data . Puede pasar adicional
opciones para afinar su funcionamiento. Si un sistema de archivos se define en / etc / fstab con el usuario ,
usuarios u opciones de propietario , los usuarios normales pueden usar mount , pasando solo el nodo del dispositivo o
punto de montaje, como en mount / mnt / data .
Resuma el formato de archivo / etc / fstab . El archivo / etc / fstab consta de líneas, cada una de las cuales
define un solo montaje. (Las líneas de comentario también pueden estar presentes; comienzan con marcas de almohadilla, # ).
Cada línea consta de seis campos separados por espacios o pestañas: el nombre de archivo del dispositivo, el
punto, el código del tipo de sistema de archivos, las opciones de montaje, el código de volcado y la verificación del sistema de archivos
orden.
Explique cómo se pueden desmontar los sistemas de archivos. El comando umount desmonta
sistemas de archivos. Este comando toma un nombre de dispositivo o punto de montaje de un sistema de archivos montado como
un argumento. Varias opciones pueden modificar su comportamiento. Normalmente, solo root puede usar esto
comando, aunque si / etc / fstab contiene una entrada relevante, los usuarios normales pueden desmontar
un sistema de archivos.
Describe cómo se crean los sistemas de archivos. La utilidad mkfs se utiliza para crear sistemas de archivos. En un
como mínimo, pasa el código de tipo de sistema de archivos usando la opción -t y el nombre de archivo del dispositivo.
Por ejemplo, mkfs - t ext4 / dev / sda8 crea un sistema de archivos ext4 en / dev / sda8 . los
El programa mkfs se basa en programas de ayuda para cada sistema de archivos, y puede llamar al ayudante
programas directamente si lo prefiere, como en mkfs.ext4 / dev / sda8 . Aunque mkfs y sus ayudantes
puede ser utilizado por usuarios normales, normalmente solo root tiene acceso de escritura a los archivos del dispositivo, por lo que en
la práctica sólo root puede utilizar estos programas en la mayoría de los dispositivos de disco.
Describe cómo se comprueban los sistemas de archivos en busca de errores. La utilidad fsck comprueba un sistema de archivos
en busca de errores y repara los errores que se encuentren. Como mínimo, pasas fsck el nombre
de un dispositivo que debe comprobarse, como en fsck / dev / sda8 . (Ese dispositivo no debe ser
¡montado!) Como mkfs , fsck en realidad se basa en programas de ayuda a los que puede llamar directamente.
Tanto fsck como sus programas auxiliares admiten opciones que modifican la forma en que procede la verificación;
Por ejemplo, puede forzar una verificación más completa incluso si una verificación rápida sugiere la
el sistema de archivos está limpio.
Resuma cómo se crea y administra el espacio de intercambio. El programa mkswap crea
espacio de intercambio, como en mkswap / dev / sda9 . Una vez creado, el espacio de intercambio se puede activar con
swapon o desactivado con swapoff . Para agregar permanentemente espacio de intercambio a un sistema,
puede crear una entrada en / etc / fstab , usando un código de tipo de sistema de archivos de intercambio y un punto de montaje
de permuta .
Describe las herramientas que se utilizan para crear discos ópticos. El programa mkisofs (también conocido como genisoimage )
crea un sistema de archivos ISO-9660 en un archivo, que opcionalmente incluye Rock Ridge o Joliet
Examen esencial
133
Página 176
134
Capítulo 3 Gestión básica del sistema de archivos
extensiones del sistema de archivos o un sistema de archivos HFS o UDF. El archivo de imagen se puede escribir en
un disco óptico usando los programas cdrecord o wodim (para CD) o growisofs
programa (para soportes DVD y Blu - ray). Alternativamente, growisofs incorpora mkisofs
características, que pueden agilizar la creación de discos ópticos; o puede utilizar cualquiera de varias GUI
interfaces que permiten la creación de discos ópticos de apuntar y hacer clic.
Explique cómo se configura udev Puede encontrar los archivos de configuración de udev en / etc / udev /
reglas.d ; cada archivo tiene un nombre de archivo que termina en .rules . Estos archivos contienen pares clave / valor
separados por operadores. Los operadores pueden realizar tareas de emparejamiento (que colectivamente
determinar si se aplica una regla) o puede significar una asignación (en la que un nodo de dispositivo
se crea o modifica o se toma alguna otra acción). Con estas reglas, puede ajustar
permisos de nodos, crear enlaces simbólicos, ejecutar scripts auxiliares externos o realizar otras
tareas para ayudar a administrar los nodos de dispositivos de su sistema.

Página 177
Preguntas de revisión
135

Preguntas de revisión
1. ¿Qué punto de montaje debería asociar con las particiones de intercambio?
A. /
B. / intercambio
C. / bota
D. Ninguno
2. Para acceder a los archivos en una memoria USB, escriba mount / dev / sdc1 / media / pen como root. Que tipos
de los sistemas de archivos, ¿se montará este comando, siempre que exista soporte para el sistema de archivos en el kernel?
A. Ext2fs
B. GRASA
C. HFS
D. Todo lo anterior
3. ¿Cuál de las siguientes entradas de / etc / fstab montará / dev / sdb2 como directorio / home?
en el momento del arranque?
A. / dev / sdb2 reiserfs / valores predeterminados de inicio 0 0
B. / dev / sdb2 / home reiserfs predeterminados 0 0
C. / home reiserfs / dev / sdb2 noauto 0 0
D. / home / dev / sdb2 reiserfs noauto 0 0
4. ¿Qué opciones de sistema de archivos podría especificar en / etc / fstab para crear un disco extraíble (USB
pendrive, disco Zip, disquete, etc.) ¿puede montar el usuario? (Seleccione todas las que correspondan.)
A. usuario
B. usuarios
C. propietario
D. propietarios
5. Su archivo / etc / fstab contiene la siguiente entrada:
/ dev / sdc5 / ext4 por defecto 1 1
Desafortunadamente, el orden en el que se detectan sus tres discos duros varía aleatoriamente de
un arranque a otro, lo que hace que esta entrada sea problemática. ¿Cómo podrías cambiar la entrada?
para solucionar este problema?
A. Reemplace / dev / sdc5 con una especificación de letra de unidad, como DRIVE = D:, obteniendo el
letra de unidad del explorador de archivos de GNOME, Nautilus.
B. Reemplace / dev / sdc5 con una especificación UUID, como UUID = 8b4cdbdd - b9b3 - 404a -
9a54 - c1691f1f1483, obteniendo el valor UUID usando blkid.
C. Reemplace el punto de montaje, /, con la especificación del punto de montaje independiente del variador
//dispositivo raíz// ; y cambie los valores predeterminados a rootdrive.
D. Reemplace el punto de montaje, /, con una especificación LABEL = apropiada, como
LABEL = root, obteniendo el valor LABEL usando dumpe2fs.

Página 178
136
Capítulo 3 Gestión básica del sistema de archivos
6. Acaba de volver a particionar un disco que no es de arranque, le agregó una partición de intercambio (/ dev / sdb7), creó
intercambio de espacio en la partición y se agregó una entrada adecuada a / etc / fstab para el nuevo intercambio
dividir. ¿Cómo se puede activar la nueva partición de intercambio? (Seleccione todas las que correspondan.)
A. montaje / dev / sdb7
B. mkswap / dev / sdb7
C. swapon / dev / sdb7
D. swapon - un
7.
¿Cuál es el propósito del archivo / etc / mtab?
A. Describe los sistemas de archivos que están montados actualmente, utilizando una sintaxis similar a la de
/ etc / fstab.
B. Controla los sistemas de archivos que monta el montador automático en respuesta a los intentos de
acceder a subdirectorios vacíos.
C. Proporciona información sobre los valores UUID y los tipos de sistemas de archivos contenidos en todos
particiones.
D. Resume los sistemas de archivos actualmente disponibles para el kernel de Linux, es decir, los
puedes montar.
8. Un servidor de archivos de red no está disponible mientras su computadora Linux estaba accediendo
en / mnt / remote. Ahora desea desmontar ese recurso compartido, pero debido a que el servidor tiene
desaparecido, umount se queja. ¿Cuál de los siguientes comandos es más probable que
¿Desmontaste correctamente este soporte que no responde?
A. desmontar - f / mnt / remoto
B. desmontar - a
C. montaje - o remontaje, ro / mnt / remoto
D. umount - - kill / mnt / remoto
9. ¿Qué logra el siguiente comando?
# mkfs.ext2 / dev / sda4
A. Establece el código de tipo de tabla de particiones para / dev / sda4 en ext2.
B. Convierte una partición FAT en una partición ext2fs sin dañar la partición
archivos existentes.
C. Crea un nuevo sistema de archivos ext2 en / dev / sda4, sobrescribiendo cualquier sistema de archivos existente y
datos.
D. Comprueba el sistema de archivos ext2 en / dev / sda4 en busca de errores, corrigiendo los
encuentra.

Página 179
Preguntas de revisión
137
10. ¿Cuál de las siguientes opciones se usa con fsck para forzarlo a usar un sistema de archivos en particular?
¿tipo?
A. - A
B. - N
C. - t
D. - C
11. ¿Cuál es la ventaja de un sistema de archivos de diario sobre uno convencional (sin diario)?
sistema de archivos?
R. Los sistemas de archivos de diario son más antiguos y están mejor probados que los sistemas de archivos sin diario.
B. Los sistemas de archivos de diario nunca necesitan tener sus sistemas de archivos revisados con fsck.
C. Los sistemas de archivos de diario admiten la propiedad y los permisos de Linux; no diario
los sistemas de archivos no lo hacen.
D. Los sistemas de archivos de diario requieren comprobaciones de disco más breves después de una falla de energía o del sistema.
choque.
12. ¿Cuáles de las siguientes funciones puede ajustar con tune2fs? (Seleccione todas las que correspondan.)
A. La presencia de una revista
B. El tamaño del sistema de archivos
C. El valor UUID del sistema de archivos
D. El propietario de todos los archivos del sistema de archivos
13. Ha eliminado accidentalmente un archivo en una partición ext3fs. Para recuperarlo, primero ingresas
debugfs, especificando el nodo de dispositivo de la partición. ¿Cómo recuperar el archivo?
A. Escriba restaurar y luego seleccione el archivo de la lista que aparece.
B. Escriba recuperar inodo , donde inodo es el número de inodo del archivo.
C. Escriba restaurar / ruta / nombre de archivo , donde ruta es la ruta completa al archivo y
filename es su nombre de archivo.
D. Escriba recuperar ruta / nombre de archivo , donde ruta es la ruta completa al archivo y
filename es su nombre de archivo.
14. Cada vez que reinicia su computadora, se verifica un sistema de archivos ext4 en / dev / sda3.
Sospecha que puede tener un valor incorrecto establecido que hace que el sistema lo verifique después
cada operación de montaje. ¿Cómo puedes probar esta hipótesis?
A. Escriba dumpe2fs - h / dev / sda3 y examine el recuento máximo de montaje y
valores máximos del intervalo de verificación.
B. Escriba tune2fs - c 26 / dev / sda3 y examine los valores de verificación del sistema de archivos.
C. Escriba tune4fs - c 26 / dev / sda3 y examine los valores de verificación del sistema de archivos.
D. Escriba resize2fs / dev / sda3 y examine el recuento de inodos y los valores de porcentaje de disco.

Página 180
138
Capítulo 3 Gestión básica del sistema de archivos
15. ¿Qué opción de mkisofs usaría si desea una computadora con Microsoft
¿Windows 7 puede leer nombres de archivo largos en un CD - R o DVD creado con Linux?
(Elija todas las que correspondan).
A. - J
B. - r
C. - hfs
D. - udf
16. Ha descargado la última versión de su distribución de Linux como una imagen de DVD de 4 GB
archivo ([Link]). ¿Cuál de los siguientes comandos grabará este archivo en un DVD en blanco?
asumiendo que se puede acceder a su unidad de DVD como / dev / dvdrw?
A. growisofs - Z / dev / dvdrw [Link]
B. cdrecord - Z / dev / dvdrw [Link]
C. growisofs - Z /dev/dvdrw=[Link]
D. mkisofs - o / dev / dvdrw - i [Link]
17. Desea grabar archivos en un disco DVD + RW durante un período de varios días, conservando el
capacidad de leer el disco en otra computadora en cualquier momento. Como puedes lograr
¿esta tarea?
A. Use mke2fs para crear un sistema de archivos ext2 en el disco, móntelo como si fuera un disco duro,
y escribir archivos en él.
B. Use growisofs con su opción - J para crear un sistema de archivos Joliet en el disco, móntelo como si
era un disco duro y escribir archivos en él.
C. Uso growisofs con su opción - UDF para crear un sistema de archivos UDF en el disco, montarlo como
si fuera un disco duro y escribir archivos en él.
D. Use mkudffs para crear un sistema de archivos UDF en el disco, móntelo como si fuera un disco duro,
y escribir archivos en él.
18. El archivo /etc/[Link] en [Link] contiene la siguiente línea:
/ mnt / net /etc/[Link]
El archivo /etc/[Link] incluye la siguiente línea:
templates [Link]:/data/templates
¿A qué archivo debería acceder un usuario de [Link] para leer el archivo / data / templates /
archivo [Link] en [Link] ?
A. /mnt/net/[Link]
B. /mnt/net/templates/[Link]
C. /data/templates/[Link]
D. /data/templates/mnt/net/[Link]

Página 181
Preguntas de revisión
139
19. ¿Cuál es el efecto de la siguiente regla udev, cuando se coloca en /etc/udev/rules.d/
99 - archivo [Link]?
KERNEL == ”video *”, DRIVER == ”saa7134”, SYMLINK + = ”video-A180”
A. Fuerza la carga del controlador saa7134 para un dispositivo de video para el cual un enlace simbólico
llamado / dev / video - A180 existe.
B. Crea un enlace simbólico llamado / dev / video - A180 que apunta al dispositivo principal
archivo para un dispositivo de video que tiene un controlador llamado saa7134.
C. Registra el nombre de un controlador como saa7134 para todos los dispositivos de video.
D. Vincula el archivo de dispositivo / dev / video - A180 existente con el hardware administrado por
el controlador saa7134.
20. Está utilizando un controlador de Linux de terceros que crea archivos de dispositivo llamados / dev / pd - c0 - ain,
/ dev / pd - c0 - aout, / dev / pd - c0 - din y varios más de esta forma. Quieres darles a los usuarios
en el grupo exper acceso total de lectura / escritura a estos dispositivos, mientras que evita que otros usuarios
acceder a ellos. ¿Qué regla de udev puede lograr este objetivo?
A. KERNEL == “pd - c? - * ", GRUPO =" exper ", MODO =" 0660 "
B. KERNEL == “pd - c? - * ", GRUPO ==" exper ", MODO =" 0660 "
C. NÚCLEO == "pd - c0 - *", GRUPO == "exper", MODO == "0660"
D. NÚCLEO == "pd - c0 - *", GRUPO == "exper", MODO = "0666"

Página 182
140
Capítulo 3 Gestión básica del sistema de archivos

Respuestas a las preguntas de repaso


1. D. Las particiones de intercambio no están montadas de la forma en que lo están los sistemas de archivos, por lo que no tienen
puntos de montaje.
2. D. Cuando se escribe sin una especificación de tipo de sistema de archivos, mount intenta detectar automáticamente el
tipo de sistema de archivos. Si el medio contiene alguno de los sistemas de archivos especificados, debe detectarse
y el disco montado.
3. B. El archivo / etc / fstab consta de líneas que contienen el identificador del dispositivo, el punto de montaje,
el código del tipo de sistema de archivos, las opciones de montaje del sistema de archivos, el indicador de volcado y la verificación del sistema de
archivos
frecuencia, en ese orden. La opción B proporciona esta información en el orden correcto y también
trabajo. La opción A invierte el segundo y tercer campo, pero por lo demás es correcta. Opciones C y
D ambos codifican el orden de los primeros tres campos y también especifican la opción de montaje noauto,
lo que hace que el sistema de archivos no se monte automáticamente en el momento del arranque.
4. A, B, C. Las opciones de usuario, usuarios y propietario en / etc / fstab permiten a los usuarios normales
montar un sistema de archivos, pero con implicaciones ligeramente diferentes: el usuario permite que cualquiera
montar un sistema de archivos, y solo ese usuario puede desmontarlo; los usuarios permiten a cualquiera montar un
sistema de archivos, y cualquiera puede desmontarlo; y propietario habilita solo al propietario de la montura
apunte para montar o desmontar un sistema de archivos. Es probable que cualquiera de estos vaya acompañado de
noauto, que evita que Linux intente montar el sistema de archivos en el momento del arranque. los
El parámetro de propietarios de la opción D no existe.
5. B. El método UUID de especificar un sistema de archivos puede proteger contra cambios en el nodo del dispositivo
nombres como los descritos en la pregunta. La opción B describe correctamente un
cambiar, aunque, por supuesto, el valor UUID exacto que utilice dependerá de su sistema.
Linux no reconoce letras de unidad como se describe en la opción A; esos son DOS y Windows
constructos. Por tanto, la opción A es incorrecta. La opción C es una solución completamente ficticia con
no hay elementos correctos. La opción D es una distorsión de una posible solución correcta; sin embargo, para
sea correcto, necesitaría reemplazar la especificación del dispositivo (/ dev / sdc5), no el montaje
punto. Por tanto, la opción D es incorrecta.
6. C, D. El comando swapon es la forma habitual de activar el espacio de intercambio. Uso de la opción C de
el comando activa una sola partición de intercambio, / dev / sdb7, y así satisface la pregunta
requisitos. El uso de swapon de la Opción D activa todos los espacios de swap que están definidos en
/ etc / fstab. Dado que la pregunta especifica que se ha creado tal entrada, la opción D
también funcionará. El comando mount de la opción A se usa para montar sistemas de archivos; es inútil con
espacio de intercambio, por lo que es incorrecto. El comando mkswap de la opción B crea un espacio de intercambio, que
pregunta especifica que ya se ha hecho. Por lo tanto, esta opción es innecesaria y dado que
no activa el espacio de intercambio, es incorrecto.
7.
A . La opción A describe correctamente el propósito de / etc / mtab. La opción B describe el propósito
de /etc/[Link] y otros archivos de configuración de autofs, por lo que esta opción es incorrecta.
La opción C describe la información que se puede obtener de la utilidad blkid, pero / etc / mtab
contendrá, en el mejor de los casos, información parcial de este tipo (especificará los sistemas de archivos utilizados en
particiones montadas , no todas, y no tendrá información UUID). Por tanto, la opción C
Es incorrecto. La opción D no describe la información contenida en ninguna configuración de Linux
expediente; sin embargo, escribir lsmod mostrará los módulos del sistema de archivos del kernel cargados (entre otros
módulos). En cualquier caso, la opción D es incorrecta.
Página 183
8. A. La opción -f para desmontar fuerza una operación de desmontaje cuando un servidor remoto está
inaccesible, por lo que es la respuesta adecuada a la condición descrita en la pregunta.
El comando de la opción B desmontará todos los sistemas de archivos en / etc / fstab, pero no es más probable que lo haga.
trabajar en unmounting / mnt / remote que en umount / mnt / remote. Desmontar todos los sistemas de archivos
También es probable que tenga efectos secundarios indeseables. El comando de la opción C volverá a montar la red
sistema de archivos en modo de sólo lectura. Si tiene éxito, esto podría ser mejor que dejarlo como está, pero
no desmontará el sistema de archivos. La opción D es ficticia; no hay opción - - kill para desmontar.
9. C. El comando mkfs crea un nuevo sistema de archivos, sobrescribiendo cualquier dato existente y
por lo tanto, los archivos existentes son inaccesibles. Este comando no establece el tipo de partición
código en la tabla de particiones. La utilidad fsck y sus ayudantes comprueban los sistemas de archivos en busca de errores.
10. C. La opción -t se usa para decirle a fsck qué sistema de archivos usar. Normalmente, fsck determina
el tipo de sistema de archivos automáticamente. La opción - A hace que fsck compruebe todos los sistemas de archivos
marcado para ser registrado en / etc / fstab. La opción - N le dice a fsck que no realice ninguna acción y que
mostrar lo que haría normalmente sin hacerlo. La opción -C muestra un modo de texto
indicador de progreso del proceso de verificación.
11. D. El diario de un sistema de archivos de diario registra las operaciones pendientes, lo que resulta en una
comprobaciones de disco después de un apagado incontrolado. Al contrario de la opción A, los sistemas de archivos de diario
son, como clase, más nuevos que los sistemas de archivos sin diario; de hecho, el diario ext3fs es
construido sobre ext2fs sin registro en diario. Aunque las comprobaciones de disco son más rápidas con el registro en diario
sistemas de archivos que con los sistemas de archivos que no registran por diario, los sistemas de archivos de diario tienen fsck
utilidades, y es posible que sea necesario ejecutarlas de vez en cuando. Todos los sistemas de archivos nativos de Linux
admitir la propiedad y los permisos de Linux; esto no es una ventaja de registrar en diario los sistemas de archivos,
contrario a la opción C.
12. A, C. La utilidad tune2fs le permite ajustar varios metadatos del sistema de archivos, como
parámetros del diario (incluida la presencia del diario, como indica la opción A), recuento de montajes
opciones y el valor UUID (como especifica la opción C). No puede ajustar el tamaño del sistema de archivos
aunque con tune2fs; esa tarea requiere resize2fs, por lo que la opción B es incorrecta. Porque
La propiedad del archivo es una característica de los archivos individuales, no del sistema de archivos en sí, la opción D es
incorrecto. (La propiedad del archivo para todos los archivos se puede ajustar mediante las opciones de montaje para algunos
sistemas de archivos, sin embargo.)
13. B. Desafortunadamente, la función de recuperación de debugfs requiere que conozca el número de inodo
de un archivo para restaurarlo; la opción B es correcta. Aunque las opciones A, C y D
sea más fácil de realizar, ninguno de ellos puede realizar la tarea indicada.
14. A. El programa dumpe2fs muestra varios metadatos del sistema de archivos, incluido el
montes recuento y valores de intervalo de verificación máximo, por lo que la opción A es correcta. (La opción - h
to dumpe2fs suprime cierta información extensa que es irrelevante para la pregunta en cuestión).
El comando de la Opción B cambiará el valor máximo de conteo de montaje a 26, lo que podría
corregir el problema si la hipótesis es correcta; pero no informará el valor actual, así que
no le permitirá probar su hipótesis. La opción C es como la opción B, pero especifica la
programa ficticio tune4fs; a pesar del 2 en los nombres, dumpe2fs, tune2fs, resize2fs,
y otros programas * 2fs funcionan con ext2fs, ext3fs y ext4fs. La opción D cambiará el tamaño
sistema de archivos para llenar su partición actual, pero no cambiará ni mostrará el montaje máximo
valor de recuento.
Respuestas a las preguntas de repaso
141

Página 184
142
Capítulo 3 Gestión básica del sistema de archivos
15. A, D. La opción - J crea un disco con extensiones Joliet y - udf crea uno con la
Sistema de archivos UDF. Las versiones recientes de Windows comprenden ambas extensiones. El r
La opción crea un disco con extensiones Rock Ridge, mientras que - hfs crea uno con HFS de Apple.
Windows no entenderá ninguno de estos sin controladores especiales, aunque Windows lo hará
aún podrá leer el sistema de archivos subyacente ISO-9660 (con nombres de archivo 8.3).
16. C. El programa growisofs se usa generalmente para grabar DVD, ya que muchas versiones de cdrecord
carecen de soporte para DVD. De las dos opciones de comando growisofs, C presenta la sintaxis correcta;
a la opción B le falta un signo igual crítico (=) entre el nombre de archivo del dispositivo y la imagen
nombre del archivo. Incluso si su versión de cdrecord admite DVD, la sintaxis de la opción B es incorrecta;
cdrecord usa dev = en lugar de - Z para especificar el dispositivo de destino. Se utiliza el comando mkisofs
para crear un archivo de imagen, no para grabarlo en un disco; y la sintaxis de la opción D es incorrecta en cualquier caso.
17. D. Para producir funciones de lectura / escritura de acceso completamente aleatorio en un disco DVD + RW es necesario utilizar
mkudffs para crear un sistema de archivos UDF puro en el disco, como especifica la opción D. Porque
diferencias de hardware entre discos duros y discos ópticos, ext2fs no se puede utilizar como un
sistema de archivos de lectura / escritura en discos ópticos, por lo que la opción A no funcionará. Las opciones B y C no
funciona porque growisofs crea sistemas de archivos de sólo lectura, no sistemas de archivos de lectura / escritura. Opción
Joliet de B es intrínsecamente de solo lectura, y aunque el sistema de archivos UDF creado por la opción C
se puede leer / escribir (como cuando lo crea mkudffs), growisofs crea una UDF de solo lectura
sistema de archivos (junto con un sistema de archivos ISO-9660 de solo lectura).
18. B. La primera columna en las líneas de los archivos /etc/[Link] especifica el directorio principal donde
el montador automático montará subdirectorios específicos correspondientes a sus montajes gestionados.
El archivo de configuración específico (/etc/[Link] en este caso) incluye los subdirectorios
dentro de los directorios específicos que se utilizarán como puntos de montaje. Por lo tanto, dada la especificada
files, / mnt / net / templates será el punto de montaje. Este punto de montaje corresponde al
Exportación NFS correspondiente a / data / templates en [Link]. Por lo tanto, / data /
templates / [Link] en ese servidor se puede leer desde / mnt / net / templates / iceflow
.txt en el cliente, como especifica la opción B.
19. B. La regla udev incluye dos condiciones coincidentes (KERNEL == "video *", que coincide
controladores con nombres genéricos que comienzan con video; y DRIVER == "saa7134", que coincide
dispositivos que utilizan el controlador saa7134) y un operador de asignación (SYMLINK + = “video -
A180 ”, que crea un vínculo simbólico). La opción B describe correctamente esta configuración.
Las opciones A, C y D confunden las acciones de asignación y coincidencia en las reglas de udev.
20. A. La regla udev de la opción A logrará el objetivo establecido. La opción B parece casi idéntica,
pero utiliza erróneamente el operador de coincidencia == en lugar del operador de asignación = en
la parte GROUP == "exper" de su regla. La opción C comete el mismo error y complica
replicar este error en su opción MODE == “0660”. La opción D es como la opción B, pero
utiliza 0666 como modo. Incluso si no fuera por el error en la comparación GRUPO, la opción D
establecería el modo incorrectamente, permitiendo a todos los usuarios acceder al hardware.

Página 185

Disco avanzado
administración
EL SIGUIENTE PROFESIONAL DE LINUX
LOS OBJETIVOS DEL INSTITUTO ESTÁN CUBIERTOS EN
ESTE CAPÍTULO:
204.1 Configuración de RAID (peso: 2)
204.2 Ajuste del acceso al dispositivo de almacenamiento (peso: 1)
204.3 Administrador de volumen lógico (peso: 3)
206.2 Operaciones de respaldo (peso: 3)

Capítulo

4
Página 186
El Capítulo 3, “Administración básica del sistema de archivos”, describe cómo
para crear y administrar sistemas de archivos. El tema de la gestión
Los sistemas de archivos están estrechamente relacionados con el tema de la gestión de datos.
estructuras que los contienen. Por lo general, estas estructuras de datos son particiones :
colecciones contiguas de sectores en un disco duro. La gestión de particiones se trata en la
LPIC - 1 exámenes. LPIC - 2, y por lo tanto este capítulo, enfatiza sistemas de archivos más avanzados
gestión de contenedores: matriz redundante de discos independientes (RAID) , que permite
fusionar varios discos para mejorar el rendimiento o la seguridad; y volumen lógico
Manager (LVM) , que permite combinar particiones o discos en un área de almacenamiento que
se puede gestionar de forma más flexible que las particiones convencionales. Aunque el examen LPIC - 2
enfatiza estos temas, el hecho de que se basan en particiones simples significa que este capítulo
comienza con información sobre particiones convencionales.
Este capítulo también cubre temas adicionales relacionados con el disco. El primero de ellos es ajustar
parámetros de hardware para un rendimiento óptimo. Normalmente, Linux funciona razonablemente
bueno sin modificaciones; sin embargo, a veces es posible mejorar el rendimiento
utilizando varias utilidades. Otro tema importante es el de realizar copias de seguridad de sus datos. Sin un
copia de seguridad, una falla del hardware del disco o la corrupción de las estructuras de datos del sistema de archivos pueden
provocar
un día muy malo, por lo que prepararse para tal problema es extremadamente importante.

Partición de discos
Los discos duros generalmente se dividen en segmentos, conocidos como particiones , que se pueden utilizar para
varios propósitos. En Linux, la mayoría de las particiones (o, para ser más precisos, los sistemas de archivos que
contienen) se montan en directorios específicos. Las particiones de intercambio son una excepción a esta regla;
se accede a ellos como un complemento de la memoria del sistema. Aunque el Capítulo 3 describe el sistema de archivos
y la gestión del espacio de intercambio, no describe la gestión de particiones. Las próximas páginas
describir este tema, incluidos los principios importantes y los tipos de partición y la
funcionamiento básico de las herramientas utilizadas para crear particiones.
Entendiendo las particiones
Las particiones se describen en una estructura de datos que se conoce genéricamente como tabla de particiones .
La tabla de particiones se almacena en uno o más sectores de un disco duro, en ubicaciones que son
definido por el tipo de tabla de particiones. A lo largo de los años, varios tipos diferentes de tablas de particiones
ha sido desarrollado. En 2010, tres tipos de tablas de particiones son los más importantes:

Página 187
Registro de arranque maestro (MBR) Este tipo de tabla de particiones es el más común en los discos
menos de 2 TiB de tamaño. Fue utilizado por el sistema operativo de disco de Microsoft (DOS) y ha sido
adoptado por la mayoría de los sistemas operativos que se ejecutan en el mismo hardware que DOS y su sucesor, Windows.
Desafortunadamente, MBR adolece de muchas limitaciones, como se describe brevemente, por lo que
lentamente abandonado. MBR se conoce por varios otros nombres, incluidas las particiones MS-DOS
y particiones BIOS.
Apple Partition Map (APM) Apple usó este tipo de tabla de partición en su 680 x 0 - y
Macintosh basados en PowerPC, y ha sido adoptado por algunos otros tipos de computadoras. Porque
Mac OS nunca ha dominado el mercado, APM es poco común excepto en Mac más antiguas
hardware; sin embargo, es posible que ocasionalmente se encuentre con un disco extraíble que utilice APM.
Tabla de particiones GUID (GPT) Este tipo de tabla de particiones se describe en Extensible
Definición de interfaz de firmware (EFI), pero se puede utilizar en sistemas que no son EFI. Apple cambió
a GPT para sus computadoras Macintosh cuando adoptó las CPU Intel. GPT supera a muchos
de los problemas de las tablas de particiones MBR y APM más antiguas, particularmente su tamaño de disco
límites, por lo que es probable que GPT se vuelva cada vez más importante a medida que aumenta el tamaño de los discos.
La mayoría de las computadoras Linux usan particiones MBR; sin embargo, si está ejecutando Linux en un
Mac basado en PowerPC, probablemente use APM. Mac más nuevas y algunos sistemas que no son Mac,
utilizar GPT.
Como se acaba de señalar, MBR tiene una serie de limitaciones. El más importante de ellos es que
utiliza punteros de 32 bits para referirse a los sectores del disco. Dado un tamaño de sector de 512 bytes, esto funciona
hasta un límite en el tamaño de la partición de exactamente 2 TiB (2 32
512 bytes 2,2 10 12 bytes, o
2 TiB). APM comparte el mismo límite. GPT, por el contrario, utiliza punteros de sector de 64 bits, por lo que puede
manejar discos de hasta 9.4 10 21 bytes - 8 ZiB (zebibytes).
Los fabricantes de discos están comenzando a alejarse de los sectores de 512 bytes
a 4096 - sectores de bytes. Este cambio puede extender la vida útil de MBR, ya que
su límite se eleva a 16 TiB con sectores de 4096 bytes.
MBR tiene algunas otras peculiaridades que merecen mención. El primero de ellos es que el original
La especificación MBR se proporciona solo para cuatro particiones. Cuando este límite se volvió problemático,
Se ideó una solución alternativa: Una de las cuatro particiones originales (ahora conocida como primaria
particiones ) se asignó como marcador de posición (una partición extendida ) para un número arbitrario
de particiones adicionales ( particiones lógicas ). Aunque se trata de una solución eficaz,
puede ser limitante. Todas las particiones lógicas deben residir en una única partición extendida, que
significa que las particiones primarias no pueden existir entre particiones lógicas. Como se usa un disco,
es común querer eliminar, agregar, mover y cambiar el tamaño de las particiones, y estas operaciones
puede volverse incómodo cuando se trabaja con la partición lógica primaria / extendida
requisitos. Además, algunos sistemas operativos, como Microsoft Windows, deben arrancar desde un
partición primaria. (Linux no es tan limitado). En Linux, las particiones primarias están numeradas
del 1 al 4, mientras que las particiones lógicas se numeran del 5 en adelante.
GPT utiliza un conjunto diferente de estructuras de datos que MBR, por lo que los límites y peculiaridades de GPT
son diferentes. Bajo GPT, no hay distinción entre primaria, extendida y lógica
Partición de discos
145

Página 188
146
Capítulo 4 ■
Gestión avanzada de discos
particiones. En cambio, GPT admite un número fijo de particiones (128 por defecto), todas
que se definen en la tabla de particiones principal. Compatibilidad con GPT y MBR ligeramente diferente
metadatos: por ejemplo, GPT admite un nombre de partición, que MBR no admite.
Independientemente del sistema de particiones que utilice, debe tener en cuenta una
limitación de particiones: Están compuestas por conjuntos contiguos de sectores. Por lo tanto, si
desea cambiar la forma en que se distribuyen las particiones, es posible que deba mover todos los datos en una
o más particiones. Esta es una de las limitaciones que LVM está diseñado para superar, ya que
descrito más adelante en “Configuración de LVM. "
Crear particiones
Hay varias herramientas de Linux disponibles para particionar discos MBR y GPT en Linux:
Los libparted Herramientas s El Proyecto GNU ' libparted ( [Link]
parted / ), que viene con el programa en modo texto dividido , es una herramienta popular que puede
manejar MBR, GPT, APM y varios otros formatos de tabla de particiones. Herramientas de GUI, como
El Editor de particiones GNOME (también conocido como GParted; [Link] ),
construido sobre libparted . La mayor fortaleza de estas herramientas es la capacidad de moverse y cambiar el tamaño
tanto las particiones como los sistemas de archivos que contienen. También pueden crear sistemas de archivos en el
al mismo tiempo que crea particiones.
La familia fdisk El programa fdisk de Linux lleva el nombre del programa DOS FDISK .
Aunque los dos son muy diferentes en funcionamiento, hacen el mismo trabajo básico: crean y
manipular tablas de particiones MBR. En Linux, fdisk es el programa básico, con un texto simple:
modo interfaz de usuario interactiva. El programa sfdisk puede realizar trabajos similares, pero está diseñado
para ser utilizado de forma no interactiva a través de opciones de línea de comandos. Por tanto, es útil en scripts.
El programa cfdisk utiliza una interfaz en modo texto más sofisticada similar a la de un
editor. Estos programas se envían con los paquetes estándar util - linux o util - linux - ng .
GPT fdisk Este paquete, que consta de los programas gdisk y sgdisk , está diseñado como un
funciona de forma similar a fdisk pero para discos GPT. El programa gdisk se basa en fdisk . A pesar de que
sgdisk está diseñado para la interacción basada en shell, se parece poco a sfdisk en su
detalles operativos. Puede obtener más información en [Link] .
Las particiones se pueden crear, eliminar y manipular de otro modo utilizando cualquiera de estos
programas (u otros programas para otros tipos de tablas de particiones). En la mayoría de los casos, inicia
el programa escribiendo su nombre seguido de un nombre de archivo de dispositivo de disco, como / dev / sda .
A continuación, verá un símbolo del sistema, como el siguiente para fdisk :
Comando (m para ayuda):
Si fdisk muestra un mensaje que indica que se detectó GPT en
el disco, salga inmediatamente escribiendo q ! Debe usar GPT fdisk o un
herramienta basada en libparted en dichos discos. Intentando usar fdisk en un GPT
Es probable que el disco cause problemas graves.

Página 189
Pase a fdisk la opción -u para que utilice sectores en lugar de cilindros como unidades predeterminadas de
medida. Pasar - c afecta donde fdisk comienza su primera partición. Como regla general, tanto
las opciones son deseables en los discos modernos, por lo que generalmente debe iniciarlo como fdisk - uc / dev / sda
(cambiando el nombre de archivo del dispositivo, si es necesario).
La tabla 4.1 resume los comandos fdisk más importantes que se pueden escribir en este
rápido. Algunos de estos comandos hacen algo en silencio, pero otros requieren interacción.
Por ejemplo, escribir n da como resultado una serie de solicitudes para el tipo de la nueva partición (primaria,
extendido o lógico), punto de inicio y tamaño o punto final. (Si debe editar un disco GPT, gdisk
admite todos los comandos que se muestran en la Tabla 4.1 excepto u , aunque algunos de los detalles
de interacciones posteriores difieren ligeramente).
TABLA 4.1 Comandos fdisk comunes
Mando
Explicación
re
Elimina una partición
l
Muestra una lista de códigos de tipo de partición
norte
Crea una nueva partición
o
Destruye la tabla de particiones actual, lo que le permite comenzar de nuevo.
pags
Muestra la tabla de particiones actual
q
Sale sin guardar cambios
t
Cambia el código de tipo de una partición
tu
Alterna unidades entre sectores y cilindros
v
Realiza comprobaciones sobre la validez de las estructuras de datos del disco.
w
Guarda cambios y salidas
Los comandos l y t merecen una elaboración: MBR admite un código de tipo de 1 byte para
cada partición. Este código ayuda a identificar en qué tipos de datos se supone que deben almacenarse
la partición. Por ejemplo, en hexadecimal, 0x07 se refiere a una partición que mantiene Alta
Datos del sistema de archivos de rendimiento (HPFS) o del sistema de archivos de nueva tecnología (NTFS), 0x82 se refiere a
una partición de intercambio de Linux y 0x83 se refiere a una partición de datos de Linux. En su mayor parte, Linux
ignora los códigos de tipo de partición; sin embargo, los instaladores de Linux confían con frecuencia en ellos, al igual que otros
Sistemas operativos. Por lo tanto, debe asegurarse de que los códigos de tipo de partición estén configurados correctamente. Fdisk de
Linux
Partición de discos
147

Página 190
148
Capítulo 4 ■
Gestión avanzada de discos
crea particiones 0x83 de forma predeterminada, por lo que debe cambiar el código si crea algo menos
una partición de Linux.
Si solo desea ver la tabla de particiones, escriba fdisk - lu / dev / sda . Esta
comando muestra la tabla de particiones, usando unidades de sectores, y luego
salidas. Puede cambiar el nombre de archivo del dispositivo para el dispositivo en el que está
interesado, por supuesto.
GPT también admite códigos de tipo de partición, pero estos códigos son valores GUID de 16 bytes en lugar de
de códigos de tipo MBR de 1 byte. GPT fdisk traduce los GUID de 16 bytes en códigos de 2 bytes
basado en los códigos MBR; por ejemplo, el código GPT para una partición de intercambio de Linux se convierte en
0x8200. Desafortunadamente, Linux y Windows usan el mismo código GUID para sus particiones,
entonces GPT fdisk traduce ambos a 0x0700. Los programas basados en libparted no dan
acceso a códigos de tipo de partición, aunque los utilizan internamente. Varios códigos de tipo GPT
se denominan "banderas" en los programas basados en libparted ; por ejemplo, la "bandera de arranque" se refiere
a una partición con el código de tipo para una partición del sistema EFI en un disco GPT.

Configuración de RAID
En una configuración RAID, se combinan varios discos para mejorar el rendimiento,
confiabilidad, o ambos. Las siguientes páginas describen RAID en general, RAID de Linux
subsistema, preparar un disco para su uso con RAID, inicializar las estructuras RAID y utilizar
Discos RAID.
Entendiendo RAID
El propósito de RAID depende de su nivel específico :
Modo lineal Esto no es técnicamente RAID, pero lo maneja el subsistema RAID de Linux.
En el modo lineal, los dispositivos se combinan agregando el espacio de un dispositivo a
de otro. El modo lineal no proporciona beneficios de velocidad ni confiabilidad, pero puede ser un
Manera rápida de combinar dispositivos de disco si necesita crear un sistema de archivos muy grande. El principal
La ventaja del modo lineal es que puede combinar particiones de tamaño desigual sin perder
Espacio de almacenamiento; otras formas de RAID requieren particiones subyacentes de igual tamaño e ignoran
parte del espacio si se alimentan con particiones de tamaño desigual.
RAID 0 (creación de bandas) Esta forma de RAID combina varios discos para presentar la ilusión
de una sola área de almacenamiento tan grande como todos los discos combinados. Los discos se combinan en un
de manera intercalada para que un solo gran acceso al dispositivo RAID (por ejemplo, cuando
leer o escribir un archivo grande) da lugar a accesos a todos los dispositivos componentes. Esta

Página 191
la configuración puede mejorar el rendimiento general del disco; sin embargo, si alguno de los discos falla, los datos
en los discos restantes se volverá inútil. Por lo tanto, la confiabilidad en realidad disminuye cuando se usa
RAID 0, en comparación con particiones convencionales.
LVM proporciona una función de creación de bandas similar a RAID 0. Por lo tanto, si desea utilizar
striping y LVM, puede omitir la configuración RAID y usar LVM solo.
Si sólo está interesado en la creación de bandas, puede utilizar RAID 0 o LVM.
RAID 1 (duplicación) Esta forma de RAID crea una copia exacta del contenido de un disco en
uno o más de otros discos. Si alguno de los discos falla, los otros discos pueden asumir el control, mejorando así
fiabilidad. El inconveniente es que las escrituras en disco tardan más, ya que los datos deben escribirse en
dos o más discos. Se pueden asignar discos adicionales como discos de reserva activa o de reserva activa,
que puede tomar el relevo automáticamente de otro disco si uno falla. (Los niveles de RAID más altos también
admite discos de espera en caliente.)
Los discos de repuesto en caliente normalmente están inactivos; entran en juego solo en el evento
otro disco falla. Como resultado, cuando ocurre una falla, el subsistema RAID
debe copiar los datos en el disco de repuesto dinámico, lo que lleva tiempo.
RAID 4 Los niveles más altos de RAID intentan obtener los beneficios de RAID 0
y RAID 1. En RAID 4, los datos se seccionan de una manera similar a RAID 0; pero una unidad
se dedica a almacenar datos de suma de comprobación. Si alguno de los discos falla, los datos de la suma de comprobación pueden
utilizado para regenerar los datos perdidos. La unidad de suma de control no contribuye a la
cantidad de datos almacenados; esencialmente, si tiene n discos de tamaño idéntico, pueden almacenar
la misma cantidad de datos que n - 1 discos del mismo tamaño en un sistema no RAID o RAID 0
configuración. En la práctica, necesita al menos tres discos de tamaño idéntico para
implementar una matriz RAID 4.
RAID 5 Esta forma de RAID funciona igual que RAID 4, excepto que no hay
unidad de suma de control; en su lugar, los datos de la suma de comprobación se intercalan en todos los discos de la matriz.
Los cálculos de tamaño de RAID 5 son los mismos que los de RAID 4; necesitas un mínimo de
tres discos, yn discos contienen n - 1 discos de datos.
RAID 6 ¿Qué sucede si dos unidades fallan simultáneamente? En RAID 4 y RAID 5, el resultado es
pérdida de datos. RAID 6, sin embargo, aumenta la cantidad de datos de suma de comprobación, por lo que aumenta
Resistencia al fallo del disco. El costo, sin embargo, es que necesita más discos: cuatro a la vez
mínimo. Con RAID 6, n discos contienen n - 2 discos de datos.
RAID 10 Una combinación de RAID 1 con RAID 0, denominada RAID 1 + 0 o RAID 10,
proporciona beneficios similares a los de RAID 4 o RAID 5. Linux proporciona soporte explícito
para que esta combinación simplifique la configuración.
Configuración de RAID
149

Página 192
150
Capítulo 4 ■
Gestión avanzada de discos
Existen niveles RAID adicionales; sin embargo, el kernel de Linux admite explícitamente
solo los niveles RAID anteriores. Si utiliza un controlador de disco RAID por hardware,
como se describe brevemente en el escenario del mundo real "Software vs. hardware
RAID ”, es posible que encuentre otros niveles de RAID.
La implementación de RAID de Linux generalmente se aplica a particiones en lugar de a todo
discos. Los controladores RAID del kernel combinan las particiones para crear nuevos dispositivos, con
nombres de la forma / dev / md # , donde # es un número desde 0 en adelante. Esta configuración permite
Puede combinar dispositivos con diferentes niveles de RAID, utilizar RAID solo para algunas particiones,
o incluso utilizar RAID con discos de diferentes tamaños. Por ejemplo, suponga que tiene dos 1.5
Discos TiB y un disco de 2 TiB. Puede crear una matriz RAID 4 o RAID 5 de 2 TiB utilizando
Particiones de 1 TiB en cada uno de los discos, una matriz RAID 0 de 1 TiB que utiliza 0,5 TiB de uno de
el disco de 1,5 TiB y el disco de 2 TiB, y una matriz RAID 1 de 0,5 TiB que utiliza 0,5 TiB del
segundo disco de 1,5 TiB y el disco de 2 TiB.
Cuando utilice el software RAID de Linux, debe tener en cuenta que los cargadores de arranque a veces
incapaz de leer matrices RAID. GRUB Legacy, en particular, no puede leer datos en una matriz RAID.
(RAID 1 es una excepción parcial; debido a que las particiones RAID 1 son duplicados entre sí,
GRUB Legacy puede tratarlos como particiones normales para acceso de solo lectura). GRUB 2 incluye
Sin embargo, es compatible con Linux RAID. Debido a esta limitación, es posible que desee dejar un pequeño
cantidad de espacio en disco en una partición convencional o utilizado como RAID 1, para su uso como Linux
/ partición de arranque .
Cuando particione un disco para RAID, debe asegurarse de asignar la partición adecuada
código de tipo. En un disco MBR, esto es 0xFD. Si edita un disco GPT con GPT fdisk, el
el código equivalente es 0xFD00. Si usa una herramienta basada en libparted con MBR o GPT
discos, una partición RAID se identifica como una con el indicador RAID configurado.
RAID se basa en las características del kernel de Linux. La mayoría de las distribuciones se envían con kernels que tienen la
apoyo necesario. Sin embargo, si compila su propio kernel, como se describe en el Capítulo 2,
"Configuración del kernel de Linux", debe asegurarse de activar las funciones RAID que necesita.
Estos se pueden encontrar en Controladores de dispositivos Compatibilidad con controladores de dispositivos múltiples (RAID y
LVM) Área de soporte RAID. Habilite el área principal de soporte RAID junto con el soporte para
el nivel o los niveles RAID específicos que desea utilizar. Es mejor compilar este soporte directamente
en el kernel, ya que esto a veces puede evitar la necesidad de crear un disco RAM inicial.
Software frente a hardware RAID
Este capítulo enfatiza el subsistema RAID de software de Linux; sin embargo, RAID también se puede
implementado por controladores de disco especiales con soporte RAID de hardware. Al usar tal
controlador, varios discos duros parecen para Linux como discos únicos con un disco convencional
nombre de archivo del dispositivo, como / dev / sda .

Página 193
Preparación de un disco para RAID de software
El primer paso en la configuración del software RAID es particionar el disco. Como se señaló anteriormente,
debe dar a las particiones el código de tipo correcto en fdisk o cualquier otro software de partición
que está utilizando. Son posibles dos métodos de particionamiento para RAID:
Puede crear una sola partición RAID en cada disco y luego, cuando haya definido el
matriz completa, cree particiones en ella como si la matriz RAID fuera un disco duro.
Puede crear varias particiones en los dispositivos de disco subyacentes, ensamblando cada una en
un dispositivo RAID separado que se utilizará para almacenar un sistema de archivos.
El primer método puede simplificar la configuración RAID inicial, pero el segundo método
es más flexible; El segundo método le permite utilizar diferentes niveles de RAID o incluso
combine discos de tamaño desigual en su configuración RAID.


En términos generales, las implementaciones de RAID de hardware son más eficientes que las de software.
Implementaciones RAID. Esto es particularmente cierto en RAID 1; un controlador RAID de hardware
Es probable que permita un verdadero acceso paralelo a ambas unidades, sin gastos adicionales. Hardware
RAID también calcula las sumas de comprobación necesarias para niveles RAID más altos, eliminando esta
carga de la CPU.
Tenga en cuenta que muchas placas base afirman tener soporte RAID integrado. La mayoría de estos,
Sin embargo, implemente su propia forma patentada de software RAID, que algunas personas
referirse como RAID falso . Estas implementaciones requieren controladores especiales, que pueden o pueden
no estará disponible para Linux. Como regla general, es mejor utilizar el software RAID de Linux
implementaciones. Si desea los beneficios de un verdadero RAID de hardware, probablemente tenga
para comprar un nuevo controlador de disco. Asegúrese de que el kernel de Linux admita cualquier RAID de hardware
controlador que compra.
Si tiene un controlador RAID de hardware real, debe consultar su documentación para
aprenda a configurarlo. Una vez configurado, debería presentar la ilusión de un disco que está
más grande que cualquiera de sus discos individuales. Entonces no es necesario aplicar el software de Linux
Características RAID; puede particionar y usar la matriz RAID de hardware como si fuera una
disco convencional.
Se accede a los discos de una matriz RAID de hardware en bloques, normalmente entre 16 KiB y
256 KiB de tamaño. Este tamaño de bloque es mayor que el tamaño del sector de 512 bytes, y este hecho puede
tienen implicaciones en el rendimiento. En particular, si las particiones no comienzan en múltiplos de
el bloque de asignación de la matriz RAID, el rendimiento puede degradarse entre un 10 y un 30 por ciento. los
Las últimas versiones del software de partición de Linux ofrecen opciones para alinear particiones en 1 MiB
límites, que es un valor predeterminado seguro para dichos dispositivos. Asegúrese de utilizar esta opción si
utiliza un controlador RAID de hardware.
Configuración de RAID
151

Página 194
152
Capítulo 4 ■
Gestión avanzada de discos
Cuando defina particiones RAID, asegúrese de que las particiones
combinarse en varios discos tengan el mismo tamaño posible. Si el
las particiones de los componentes son de tamaño desigual, solo la cantidad de espacio
en la partición más pequeña se utilizará en todas las demás. Por ejemplo, si
combina una partición de 800 MiB en un disco con dos de 900 MiB
particiones en otros dos discos, perderá 100 MiB de espacio
en cada uno de los dos discos con particiones de 900 MiB. A veces un pequeño
La cantidad de desperdicio es aceptable si sus discos tienen tamaños ligeramente diferentes.
Sin embargo, si la cantidad de espacio desperdiciado es significativa, es posible que desee
para utilizar el espacio que de otro modo se desperdiciaría como convencional (no RAID)
particiones.
Normalmente, los discos que se van a combinar mediante RAID serán del mismo tamaño. Si estás atascado
con discos de tamaño desigual, puede dejar algo de espacio en los discos más grandes fuera del RAID
matriz o, con suficientes discos, busque formas de combinar segmentos de subconjuntos de los discos.
(El modo lineal permite combinar discos de tamaño desigual).
Si está utilizando discos antiguos Parallel Advanced Technology Attachment (PATA), que
Permitir que dos discos se conecten a través de un solo cable, es mejor combinar dispositivos en
diferentes cables en una sola matriz RAID. La razón es que el ancho de banda PATA es limitado
por canal, por lo que combinar dos dispositivos en un solo canal (es decir, un cable)
producirá un beneficio de rendimiento menor que la combinación de dispositivos en diferentes canales.
Los discos Serial ATA (SATA) más nuevos no tienen este problema porque SATA admite un dispositivo
por canal. Los dispositivos Small Computer Systems Interface (SCSI) realizan múltiples tareas incluso en
un canal solo.
Montaje de una matriz RAID
Una vez que haya configurado las particiones que se incluirán en una matriz RAID, puede usar la
Herramienta mdadm para definir cómo se deben ensamblar los dispositivos. (El nombre de esta herramienta es la abreviatura de
administración de múltiples dispositivos ). La sintaxis de este comando es:
mdadm [ modo ] raid-device [ opciones ] componente-dispositivos
La Tabla 4.2 resume los valores de modo que puede usar, mientras que la Tabla 4.3 resume los
opciones más importantes . La mayor parte de su uso de mdadm empleará el modo - - create ; otro
Las opciones están destinadas a la resolución de problemas, el uso avanzado o la reconfiguración de un
creado matriz RAID. (El modo - - detección automática es llamado por los scripts de inicio cuando el sistema
arranca.) Si no se especifica ningún modo , el comando está en modo de administración o en modo misceláneo ; varios
En estos modos se pueden realizar diversas tareas.

Página 195
TABLA 4.2 Valores de modo común para mdadm
Nombre de modo largo
Nombre corto del modo Explicación
- - montar
- UNA
Ensambla los componentes de un
Matriz previamente ensamblada. Más útil
en la resolución de problemas o la activación de una matriz
transferido desde otra computadora.
- - construir
-B
Crea una matriz a partir de dispositivos que carecen de RAID
metadatos. Solo los expertos deben usar esto
modo.
- - crear
-C
Crea una matriz, incluida la necesaria
metadatos para ayudar a mdadm a administrar la matriz.
- - seguir o - - monitorear
-F
Supervisa una matriz para detectar cambios de estado.
- - crecer
-G
Crece, encoge o modifica de otro modo un
formación. Se usa para agregar particiones a una matriz o
notificar a mdadm sobre cambios en el tamaño de
particiones subyacentes.
- - incremental
- YO
Agrega un solo dispositivo a una matriz.
- - detección automática
N/A
Hace que el kernel busque dispositivos RAID
y activa cualquiera que pueda ser activado por el
núcleo.
TABLA 4.3 Opciones comunes para mdadm
Nombre de opción largo
Opción corta
nombre
Usado con
modos
Explicación
- - ayuda
-h
todas
Presenta información de ayuda básica.
- - versión
-V
todas
Muestra información sobre la versión.
- - detallado
-v
todas
Muestra información adicional sobre lo que
el programa lo hace.
- - fuerza
-f
todas
Sea más contundente; puede anular ciertos
condiciones que de otro modo podrían causar
una operación para abortar.
Configuración de RAID
153

Página 196
154
Capítulo 4 ■
Gestión avanzada de discos
Nombre de opción largo
Opción corta
nombre
Usado con
modos
Explicación
- - config = archivo
- archivo c
todas
Especifica el archivo de configuración. los
el predeterminado es /etc/[Link] o, si eso
el archivo no está presente, / etc / mdadm / mdadm
.conf .
- - escanear
-s
todas
Obtiene información faltante del
archivo de configuración.
- - metadatos =
nivel
- nivel e
todas
Establece el estilo de los metadatos. los
el valor predeterminado es 0,90 al crear matrices
o adivinar para otras operaciones.
El formato 0.90 limita las matrices a 28
componentes y componentes de límites
particiones a 2 TiB. 1 , 1.0 , 1.1 y 1.2
elevar estos límites.
- - raid - dispositivos =
num
- n num
crear, construir,
o crecer
Establece el número de dispositivos activos en
la matriz. Este valor más el número
de dispositivos de repuesto debe ser igual al total
número de dispositivos.
- - repuesto -
dispositivos = num
- x num
crear, construir,
o crecer
Establece el número de repuesto (extra)
dispositivos en la matriz.
- - chunk = tamaño
- tamaño c
crear, construir,
o crecer
Establece el tamaño, en kibibytes, de los datos.
bloques para los niveles RAID 0, 4, 5, 6 y 10.
El valor predeterminado es 64 .
- - nivel = nivel
- l nivel
crear o construir Establece el nivel de RAID. Las opciones válidas son
lineal , raid0 , 0 , raya , raid1 , 1 ,
espejo , raid4 , 4 , raid5 , 5 , raid6 , 6 ,
raid10 , 10 , multipath , mp , defectuoso y
contenedor .
- - nombre = nombre
- N nombre
crear, construir,
crecer, o
armar
Establece un nombre para la matriz, que puede
utilizarse para identificar los componentes de la matriz.
Esto requiere una versión - 1 superbloque
(nivel de metadatos).
- - agregar
- una
gestionar
Agrega un nuevo dispositivo a la matriz.
- - re añadir
N/A
gestionar
Agrega un dispositivo que se había eliminado
de vuelta a la matriz.
TABLA 4.3 Opciones comunes para mdadm (continuación)

Página 197
La tabla 4.3 está incompleta; mdadm es un programa extremadamente complejo con muchas opciones, la mayoría
de los cuales son de naturaleza altamente técnica. Debe consultar su página de manual para obtener más detalles.
A pesar de la complejidad de RAID, su configuración básica es bastante sencilla. A
cree una matriz RAID, comience usando mdadm con - - create . Entonces debes pasarlo
el nombre de un dispositivo RAID (normalmente / dev / md0 para el primer dispositivo), el nivel de RAID, el
número de dispositivos RAID y los nombres de archivo del dispositivo para todos los dispositivos componentes:
# mdadm --create / dev / md0 --level = 5 --raid-devices = 3
/ dev / sda6 / dev / sdc1 / dev / sdd1
Este ejemplo crea una matriz RAID 5 utilizando / dev / sda6 , / dev / sdc1 y / dev / sdd1 como
dispositivos componentes. Si no hay problemas, verá aparecer un dispositivo / dev / md0 , que
luego puede usarlo como si fuera un dispositivo de disco o una partición, como se describe brevemente.
Usando una matriz RAID
Una vez que haya creado una matriz RAID, puede comenzar a usarla. Como se señaló anteriormente, puede tratar
sus dispositivos RAID ( / dev / md0 y así sucesivamente) como si fueran particiones o subdividirlos por
colocando tablas de particiones en ellos o usándolos como volúmenes físicos en una configuración LVM.
Creación de sistemas de archivos en una matriz RAID
La forma más sencilla de utilizar una matriz RAID es hacerlo directamente: puede crear un sistema de archivos en
como si fuera una partición. Para hacer esto, trate el archivo de dispositivo RAID como el archivo de dispositivo de una partición
con mkfs , mount y las otras herramientas relacionadas con el sistema de archivos que se describen en el Capítulo 3:
# mkfs -t ext4 / dev / md0
# montaje / dev / md0 / mnt
También puede crear entradas / etc / fstab , sustituyendo / dev / md0 y otros dispositivos RAID
nombres de archivo para nombres de archivo de partición como / dev / sda1 . Cuando lo haga, sus dispositivos RAID deberían
montar automáticamente cuando reinicia la computadora.
Nombre de opción largo
Opción corta
nombre
Usado con
modos
Explicación
- - eliminar
-r
gestionar
Elimina un dispositivo de la matriz. Esta
El dispositivo debe estar marcado como repuesto o
dispositivo fallido.
- - fallar o - - establecer -
defectuoso
-f
gestionar
Marca un dispositivo como fallado.
- - detener
-S
misceláneo
Desactiva la matriz.
Configuración de RAID
155

Página 198
156
Capítulo 4 ■
Gestión avanzada de discos
Si planea mover archivos críticos del sistema, como el contenido de
/ usr , en dispositivos RAID, es posible que deba reconstruir su disco RAM inicial
para que incluya soporte RAID. Modifique su archivo / etc / fstab para hacer referencia
al dispositivo RAID y luego reconstruya el disco RAM inicial. El initrd o
La utilidad initramfs debe tener en cuenta el uso de RAID e incorporar los
apoyo. El Capítulo 2 describe la configuración inicial del disco RAM con más detalle.
Subdivisión de una matriz RAID
Si ha creado una matriz RAID masiva con la intención de subdividirla aún más, ahora
es el momento de hacerlo. Puede utilizar fdisk u otras herramientas de partición de disco para crear particiones
dentro de la matriz RAID; o puede utilizar el archivo del dispositivo RAID como un dispositivo componente en un
Configuración de LVM, como se describe brevemente.
Si subdivide su matriz RAID usando particiones, debería ver nuevos archivos de dispositivo
Aparecen que se refieren a las particiones. Estos archivos tienen el mismo nombre que el RAID principal
archivo de dispositivo, más py un número de partición. Por ejemplo, si crea tres particiones en
/ dev / md0 , podrían ser / dev / md0p1 , / dev / md0p2 y / dev / md0p3 . Entonces puedes tratar
estas particiones RAID como si fueran particiones en discos duros normales.
Otro método para subdividir una matriz RAID es implementar LVM encima. El proximo
La sección "Configuración de LVM" describe la configuración de LVM de forma genérica. Puede utilizar un RAID
archivo de dispositivo, como / dev / md0 , como si fuera una partición para la configuración de LVM.
Revisión de una configuración RAID
Una vez que haya configurado su matriz RAID, puede revisar los detalles examinando el
/ proc / mdstat pseudoarchivo. Un ejemplo simple se parece a esto:
Personalidades: [raid6] [raid5] [raid4]
md0: raid5 activo sdd1 [2] sdc1 [1] sda6 [0]
321024 bloques de nivel 5, bloque de 64 KB, algoritmo 2 [3/3] [UUU]
dispositivos no utilizados: <ninguno>
La línea Personalities revela qué nivel de RAID utiliza un dispositivo determinado; sin embargo, esta línea
agrupa varios tipos diferentes de RAID, como se muestra aquí.
Siguiendo la línea de Personalidades , verá grupos adicionales de líneas, una para cada
Dispositivo RAID. Este ejemplo muestra solo uno, md0 para / dev / md0 . Información incluida aquí
incluye el estado ( activo en este caso), el tipo de RAID exacto ( raid5 ), los dispositivos que
componen la matriz ( sdd1 , sdc1 y sda6 ), el tamaño de la matriz ( 321024 bloques ) y algunos
detalles técnicos adicionales. Los números entre corchetes que siguen al componente
Los nombres de dispositivo ( sdd1 , sdc1 y sda6 en este ejemplo) denotan la función del dispositivo en el
formación. Para RAID 5, se requieren tres dispositivos para la funcionalidad básica, por lo que los roles 0 a 2
son partes básicas de la matriz. Si se agregara un cuarto dispositivo, tendría un número de función de
3 , lo que lo convertiría en una unidad de repuesto; si fallara otra unidad, el subsistema RAID
automáticamente comenzaría a copiar datos en la unidad de repuesto y comenzaría a usarla.

Página 199
Configuración de Logical Volume Manager
LVM es similar a RAID en algunos aspectos, pero la razón principal para usar LVM es aumentar
la flexibilidad y facilidad de manipular sistemas de archivos de bajo nivel al proporcionar una
sistema de contenedores que las particiones. Desafortunadamente, para lograr esta mayor flexibilidad,
Se requiere más complejidad, que involucra tres niveles de estructuras de datos: volúmenes físicos,
grupos de volúmenes y volúmenes lógicos. A pesar de esta complejidad, una configuración básica de LVM
se puede configurar con unos pocos comandos; sin embargo, el uso de LVM de manera efectiva requiere
reconocimiento por las capacidades de LVM.
El Enterprise Volume Management System (EVMS) es un sistema para
administrar RAID, LVM y otros tipos de particiones y volúmenes
sistemas de gestión utilizando un único conjunto de herramientas. Ver http: // evms
.[Link] para obtener más detalles.
Comprensión del Administrador de volúmenes lógicos
Las particiones, como se utilizan tradicionalmente en la mayoría de las computadoras, son inflexibles. Comienza una partición
en un sector particular del disco, termina en otro sector del disco y contiene todos
los sectores entre esos dos, en orden secuencial. Para entender lo inflexible que es esto
configuración es, considere la Figura 4.1, que muestra el programa de particionamiento GParted
vista de un pequeño disco duro. Suponga que desea crear una nueva partición de 4 GiB en este
disco. Hay suficiente espacio, ubicado en dos segmentos de 2 GiB a cada lado de / dev / sdc3 .
Sin embargo, ese es el problema: el espacio libre se divide en dos partes , pero las particiones deben
compuesto por conjuntos contiguos de sectores.
FIGURA 4.1 Las particiones deben ser conjuntos de sectores contiguos, lo que puede hacer que la consolidación
espacio libre discontinuo incómodo y arriesgado.
Configuración de Logical Volume Manager
157

Página 200
158
Capítulo 4 ■
Gestión avanzada de discos
Puede usar herramientas de administración de particiones y sistemas de archivos como GParted para manipular
particiones existentes para producir espacio en disco contiguo. Por ejemplo, GParted puede mover
Figura 4.1 's / dev / sdc3 a la izquierda o derecha, creando una sola sección de 4 GiB de disco libre
espacio. Desafortunadamente, es probable que este tipo de operación requiera mucho tiempo y sea riesgosa. Datos
debe copiarse físicamente de una ubicación a otra en el disco, y si hay energía
falla, falla del sistema, datos inválidos en el disco, un error en el programa u otros problemas,
podría perder todos los datos de la partición que se está moviendo.
LVM existe, en parte, para resolver este tipo de problemas. En una configuración LVM, lógica
Los volúmenes , que son el equivalente LVM de las particiones, se asignan de forma muy similar a los archivos en un
sistema de archivos. Cuando crea un archivo, no necesita preocuparse por los sectores que ocupa o
si queda suficiente espacio contiguo para contener un archivo grande. El sistema de archivos se ocupa de
esos detalles y permite que los archivos se dividan en pedazos para que quepan en varios trozos pequeños si
no hay suficiente espacio libre contiguo. Sin embargo, LVM va más allá: LVM permite
volúmenes para abarcar varias particiones o incluso discos duros, lo que permite la consolidación del espacio
muy parecido a una configuración lineal RAID o RAID 0.
Para hacer su trabajo, LVM usa estructuras de datos en tres niveles diferentes:
Volúmenes físicos En la mayoría de los casos, los volúmenes físicos son particiones convencionales; sin embargo,
LVM se puede construir encima de dispositivos de disco completos si se desea. Usar particiones como volúmenes físicos
le permite utilizar particiones cuando tienen ventajas. Por ejemplo, GRUB Legacy no puede
leer volúmenes lógicos, por lo que es posible que desee colocar el directorio Linux / boot en una partición y
utilice otra partición como volumen físico LVM.
Grupos de volúmenes Un grupo de volúmenes es una colección de uno o más volúmenes físicos, que
se gestionan como un único espacio de asignación. El uso de grupos de volumen como nivel intermedio
de organización le permite crear sistemas de archivos más grandes de lo que cualquier dispositivo individual podría
manejar por sí mismo. Por ejemplo, si combina dos discos de 1 TiB en un solo grupo de volumen,
puede crear un sistema de archivos de hasta 2 TiB.
Volúmenes lógicos Como se indicó anteriormente, los volúmenes lógicos son el objetivo final de LVM.
Se crean y administran en grupos de volúmenes de manera muy similar a como usted crea y administra archivos en
un sistema de archivos. A diferencia de las particiones en un disco, los volúmenes lógicos se crean sin referencia
a los números de sector del dispositivo, y el subsistema LVM puede crear volúmenes lógicos que abarcan
varios discos o que no son contiguos.
Debido a que los volúmenes lógicos se crean y administran como archivos, LVM es un disco poderoso
herramienta de administración, especialmente si crea, elimina o cambia el tamaño de sus sistemas de archivos con regularidad.
Considere la Figura 4.1 nuevamente. Aunque GParted no gestiona LVM, si una similar
existente dentro de un LVM, puede crear un nuevo volumen lógico de 4 GiB sin
ajustando los volúmenes existentes. El nuevo volumen lógico simplemente se dividiría en
Espacio libre disponible.
El mayor inconveniente de los LVM es su complejidad adicional. Para utilizar LVM, normalmente
cree particiones, como lo haría sin LVM; sin embargo, es probable que cree menos
particiones con LVM de lo que lo haría en una configuración convencional. A continuación, debe utilizar varios
Utilidades LVM para preparar los volúmenes físicos para contener datos, para "pegar" los volúmenes físicos
juntos en un grupo de volumen y para crear volúmenes lógicos dentro de su grupo de volumen. los

Página 201
Las herramientas para leer la configuración de LVM también deben estar presentes en su disco RAM inicial y
kernel, o no funcionará cuando reinicie.
Otro inconveniente de los LVM es que pueden ser más peligrosos. Si pega varios
discos juntos en un LVM, una falla de un disco significa la pérdida de todos los datos en el LVM, similar
a una configuración lineal RAID o RAID 0. Incluso en una configuración de un solo disco, el LVM
Las estructuras de datos son necesarias para acceder a los archivos almacenados en los sistemas de archivos en la lógica
volumen. Por lo tanto, si las estructuras de datos de LVM están dañadas, puede perder el acceso a sus datos.
La construcción de LVM sobre una configuración RAID 1 o superior reduce los riesgos
asociado con LVM. Aunque esta configuración también agrega complejidad,
puede ser una forma útil de configurar el espacio en disco en servidores grandes u otros
sistemas con requisitos de almacenamiento importantes o que cambian con frecuencia.
A pesar de estos inconvenientes, las ventajas de LVM en términos de mayor flexibilidad a menudo hacen que
vale la pena usarlo, especialmente si su sistema ve muchos cambios en el sistema de archivos -
agregar discos, cambiar el tamaño de los sistemas de archivos, etc.
Creación y manipulación de volúmenes físicos
Si desea utilizar LVM, el primer paso es preparar los volúmenes físicos. En realidad hay
dos subpasos para este paso. El primer paso secundario es marcar sus volúmenes físicos como para
Uso de LVM. (Esto es necesario si usa particiones como volúmenes físicos, pero no si usa
discos enteros sin particiones o dispositivos RAID.) El código de tipo MBR para particiones LVM es
0x8E, así que si usa fdisk , asegúrese de ingresarlo como el código de tipo para sus volúmenes físicos.
Si usa discos GPT y los manipula con gdisk , use un código de tipo 0x8E00. Cuando
utiliza herramientas basadas en libparted con discos MBR o GPT, configure el indicador lvm .
El segundo paso secundario es comenzar a manipular el contenido de su etiqueta correctamente
volúmenes físicos. Esto se hace con una serie de herramientas cuyos nombres comienzan con pv , como
resumido en la Tabla 4.4. (Alternativamente, se puede acceder a estos comandos como subcomandos
del programa LVM .) Aunque una descripción completa de todas estas herramientas va más allá
alcance de este libro, debe conocer algunos de los usos más importantes para la mayoría
comandos comunes. Consulte la página de manual de cada comando para obtener detalles adicionales.
TABLA 4.4 Herramientas para la manipulación del volumen físico
Mando
Explicación
pvchange
Cambia los permisos de asignación en un volumen físico. Podrías
no permitir nuevas asignaciones si está realizando cambios en otros volúmenes
y tiene la intención de eliminar uno inmediatamente después.
pvck
Comprueba el volumen físico en busca de errores; similar a fsck para sistemas de archivos.
Configuración de Logical Volume Manager
159

Página 202
160
Capítulo 4 ■
Gestión avanzada de discos
Al preparar una configuración de LVM, pvcreate es el comando más importante.
Este comando admite una serie de opciones, la mayoría de las cuales son muy técnicas. (Consultar
su página de manual para obtener más detalles.) En la mayoría de los casos, debe pasarle el nombre de archivo del dispositivo de un
dispositivo de disco:
# pvcreate / dev / sda2
Este ejemplo crea un volumen físico en / dev / sda2 . Debe, por supuesto, crear
volúmenes físicos en todas las particiones u otros dispositivos que desee utilizar en su LVM
preparar.
Una vez que haya terminado su configuración de LVM, es posible que desee utilizar más
comandos de la Tabla 4.4 para monitorear y mantener su configuración LVM. El más importante
de estos es probable que sean pvdisplay y pvs para determinar cuánto espacio queda
sin asignar en sus volúmenes físicos, pvmove para mover datos entre volúmenes físicos,
Mando
Explicación
pvccrear
Inicializa una partición u otro dispositivo para que lo utilice LVM; similar a mkfs
para sistemas de archivos.
pvdisplay
Muestra información sobre un volumen físico, incluido el nombre del
grupo de volumen al que pertenece, su capacidad y cuánto de su
los volúmenes lógicos aún no consumen capacidad.
pvmove
Mueve datos de un volumen físico a otro. Puedes usar
esto antes de retirar un disco para mover datos fuera de él.
pvremove
Elimina las estructuras de datos de volumen físico de una partición; esencialmente
lo contrario de pvcreate . No use este comando hasta que haya
movió datos del volumen físico y los eliminó del volumen
grupo (usando vgreduce ).
pvresize
Cambia el tamaño de las estructuras de datos del volumen físico. Este comando hace
no cambiar el tamaño de la partición en la que reside; eso debe hacerse antes
(al agrandar) o después (al encoger) usando pvresize , típicamente
con fdisk .
pvs
Resume información sobre el volumen físico. Similar a
pvdisplay , pero más sucinto.
pvscan
Escanea particiones de disco en busca de estructuras de datos LVM.
TABLA 4.4 Herramientas para la manipulación del volumen físico (continuación)

Página 203
y pvremove para limpiar después de eliminar por completo un volumen físico de un
grupo de volumen.
Los comandos pvdisplay y pvs se pueden usar sin parámetros,
en cuyo caso muestran información sobre todos sus volúmenes físicos, o con un dispositivo
especificación de nombre de archivo, en cuyo caso muestran información solo en ese dispositivo. Los pvs
El comando muestra información más simple:
# pvs
PV
VG Fmt Attr PSize PFree
/ dev / sda8 altavoz lvm2 a- 141.25g 2.03g
/ dev / sdb9 altavoz lvm2 a- 29.78g 0
Este ejemplo muestra dos volúmenes físicos, / dev / sda8 y / dev / sdb9 , que juntos
constituyen el grupo de volumen del altavoz . Los tamaños de los volúmenes se enumeran en PSize
columna, y PFree muestra cuánto espacio libre existe en cada volumen físico. De esto
salida, puede ver que alrededor de 2 GiB están disponibles para asignación, todo en / dev / sda8 .
Para obtener más información, pvdisplay hace el trabajo:
# pvdisplay / dev / sda8
--- Volumen físico ---
Nombre de PV
/ dev / sda8
Nombre de VG
altavoz
Tamaño PV
141,27 GiB / no utilizable 23,38 MiB
Asignables
si
Tamaño PE
32,00 MiB
PE total
4520
Educación física libre
sesenta y cinco
Educación física asignada
4455
UUID PV
tZ7DqF-Vq3T-VGqo-GLsS-VFKN-ws0a-nToP0u
La mayor parte de esta información adicional no es muy útil; sin embargo, detalles técnicos
como el tamaño de las extensiones (tamaño PE ) y el UUID pueden ser importantes en algunas depuraciones
operaciones. La línea PV Size incluye información sobre la cantidad de espacio que se
inutilizable porque el tamaño de la partición no es un múltiplo par del tamaño de la extensión.
Si desea eliminar un disco de un LVM, primero debe usar el comando pvmove :
# pvmove / dev / sdb7 / dev / sda2
Este ejemplo mueve todos los datos de / dev / sdb7 a / dev / sda2 , siempre que / dev / sda2 sea
lo suficientemente grande. A continuación, puede utilizar el comando vgreduce , que se describe brevemente en "Creación y
Manipulación de grupos de volumen. ”Una vez hecho esto, puede utilizar pvremove para asegurarse de que
el volumen físico no se detecta en exploraciones futuras del sistema en busca de volúmenes físicos.
Configuración de Logical Volume Manager
161

Página 204
162
Capítulo 4 ■
Gestión avanzada de discos

Crear y manipular grupos de volumen


La Tabla 4.5 resume los comandos que manipulan los grupos de volúmenes. Consultar el
comandos individuales de hombre páginas para más detalles sobre su funcionamiento.
TABLA 4.5 Herramientas para la manipulación de grupos de volumen
Mando
Explicación
vgcfgbackup
Realiza una copia de seguridad de los metadatos del grupo de volúmenes, de forma predeterminada en archivos en / etc / lvm /
copia de seguridad .
vgcfgrestore
Restaura los metadatos del grupo de volúmenes, de forma predeterminada a partir de archivos en / etc / lvm /
copia de seguridad .
vgchange
Cambia ciertos atributos del grupo de volumen. Lo más importante, puede ser
se utiliza para activar o desactivar manualmente un grupo de volumen.
vgck
Comprueba los metadatos del grupo de volúmenes; similar a fsck para sistemas de archivos.
vgconvert
Convierte los metadatos del grupo de volúmenes de una versión a otra. LVM
La versión 2 (LVM2) es la versión actual en 2011 y ha sido durante algunos
hora.
vgcreate
Crea un grupo de volúmenes, comenzando con uno o más volúmenes físicos
tu específicas.
vgdisplay
Muestra información sobre sus grupos de volumen, incluida información sobre
el número de dispositivos físicos y volúmenes lógicos, así como el total
y espacio libre.
vgexport
Hace que un grupo de volúmenes sea desconocido para el sistema, lo que permite moverlo
a otra computadora para su integración en su configuración LVM.
vgextend
Agrega volúmenes físicos a un grupo de volúmenes existente.
vgimport
Hace que el sistema conozca un grupo de volumen.
vgimportclone
Importa un grupo de volúmenes y cambia el nombre de los volúmenes lógicos en conflicto. Esta
puede utilizarse si ha clonado un grupo de volúmenes con fines de copia de seguridad y
encuentra que necesita acceder a la copia de seguridad.
vgmerge
Fusiona dos grupos de volúmenes, uno de los cuales debe estar inactivo.
vgmknodes
Actualiza los archivos de dispositivo en / dev que hacen referencia a volúmenes lógicos. Normalmente
no llamado manualmente.

Página 205
Los comandos más utilizados de la Tabla 4.5 son vgchange , vgcreate ,
vgdisplay , vgextend , vgreduce , vgremove y vgs .
Al crear un grupo de volumen, por supuesto, comenzará con vgcreate , una vez que haya
creado uno o más volúmenes físicos. Este comando toma bastantes argumentos (consulte
su página de manual para obtener más detalles), pero normalmente, le pasa un nombre de grupo de volumen seguido del
nombres de archivo de uno o más volúmenes físicos:
# vgcreate speaker / dev / sda8 / dev / sdb9
Este ejemplo crea un grupo de volumen, que se llamará altavoz , utilizando los volúmenes físicos
/ dev / sda8 y / dev / sdb9 como componentes.
Una vez que se crea un grupo de volumen, puede mostrar información sobre él usando vgs y
vgdisplay . Al igual que con sus contrapartes de volumen físico, estos comandos se muestran concisos y
resúmenes no tan concisos de la información del grupo de volúmenes:
# vgs
VG #PV #LV #SN Attr VSize VFree
altavoz 2 6 0 wz - n- 171.03g 2.03g
# vgdisplay
--- Grupo de volumen ---
Nombre de VG
altavoz
ID del sistema
Formato
lvm2
Áreas de metadatos
2
Secuencia de metadatos No 33
Acceso VG
leer escribir
Mando
Explicación
vgreduce
Elimina uno o más volúmenes físicos no utilizados de un grupo de volúmenes.
vgremove
Elimina completamente un grupo de volúmenes de la computadora; efectivamente
lo contrario de vgcreate .
vgrename
Cambia el nombre de un grupo de volumen.
vgs
Muestra información resumida sobre un grupo de volúmenes; Similar a
vgdisplay pero con una salida más concisa.
vgscan
Escanea el sistema en busca de grupos de volumen. Normalmente innecesario pero puede ser
útil después de cambiar en caliente un nuevo disco.
vgsplit
Divide un grupo de volumen en dos; efectivamente lo contrario de vgmerge .
Configuración de Logical Volume Manager
163

Página 206
164
Capítulo 4 ■
Gestión avanzada de discos
Estado VG
redimensionable
MAX LV
0
Cur LV
6
LV abierto
3
PV máximo
0
Curva PV
2
Actuar PV
2
Tamaño VG
171,03 GiB
Tamaño PE
32,00 MiB
PE total
5473
Alloc PE / Tamaño 5408 / 169,00 GiB
PE libre / Tamaño 65 / 2,03 GiB
UUID de VG
gQOoBr-xhM9-I0Pd-dOvp-woOT-oKnB-7vZ1U5
Los comandos vgextend , vgreduce y vgremove son útiles al aumentar la
tamaño de, disminuir el tamaño de o eliminar por completo un grupo de volumen, respectivamente. Usar
vgextend , pásele un nombre de grupo de volúmenes seguido de los nombres de archivo de uno o más
volúmenes que desea agregar:
# vgextend speaker / dev / sdc2
El comando vgreduce es similar, excepto que el nombre de archivo del dispositivo de volumen físico es
opcional: si lo omite, el comando elimina todos los volúmenes físicos vacíos del
grupo de volumen. El comando vgremove se puede utilizar sin ningún parámetro; pero si tu
tiene más de un grupo de volúmenes definido, puede pasar ese nombre para eliminar solo ese
grupo de volumen.
Normalmente no necesitará usar el comando vgchange ; sin embargo, es muy importante en
algunas situaciones de emergencia. Si necesita acceder a un grupo de volumen desde un arranque de emergencia
CD, es posible que deba usar vgchange para activar su grupo de volumen:
# vgchange -ay
Este comando hace que los volúmenes lógicos del grupo de volúmenes estén disponibles. Si no se ejecuta,
ya sea explícitamente por usted o en un script de inicio del sistema, no encontrará ningún archivo de dispositivo en / dev
para sus volúmenes lógicos y, por lo tanto, no podrá acceder a ellos.
Crear y manipular volúmenes lógicos
Una vez que haya creado volúmenes físicos y grupos de volúmenes, es el momento de crear
volúmenes. Estos se pueden crear y manipular mediante los comandos enumerados en la Tabla 4.6.
Todos estos comandos admiten múltiples opciones; consultar a sus hombre páginas para obtener más detalles.

Página 207
Para crear un volumen lógico, por supuesto, usará lvcreate . Este comando toma una gran
varias opciones, pero es probable que solo necesite algunas:
# lvcreate -L 20G -n deb_root altavoz
Este comando crea un volumen lógico de 20 GiB ( - L 20G ) llamado deb_root ( - n deb_root )
en el grupo de volumen del altavoz . Una opción adicional merece atención: - i (o - - rayas ).
Esta opción especifica el número de franjas utilizadas para crear el volumen. Si su grupo de volumen
abarca varios volúmenes físicos en diferentes discos físicos, puede mejorar el rendimiento
dividiendo el volumen lógico en diferentes discos físicos, al igual que una matriz RAID 0.
Especificar - i 2 distribuirá el volumen lógico entre dos dispositivos. Si eres o no
dividir su volumen lógico, puede especificar dispositivos particulares para el volumen lógico
ocupar agregando los nombres de archivo del dispositivo al comando:
# lvcreate -L 20G -i 2 -n deb_root altavoz / dev / sda8 / dev / sdc2
TABLA 4.6 Herramientas para la manipulación de volúmenes lógicos
Mando
Explicación
lvchange
Cambia los atributos de un volumen lógico, como si debe ser
asignado a sectores contiguos y si se puede escribir.
lvconvert
Convierte entre estado lineal, espejo e instantánea.
lvcreate
Crea un volumen lógico.
lvdisplay
Muestra información detallada sobre los volúmenes lógicos.
lvextend
Expande el tamaño de un volumen lógico. (Esto no expande el
contenía el sistema de archivos.)
lvreduce
Reduce un volumen lógico. (Esto no reduce el sistema de archivos contenido,
aunque.)
lvremove
Elimina un volumen lógico.
lvrename
Cambia el nombre de un volumen lógico.
lvresize
Cambia el tamaño de un volumen lógico; realiza el trabajo de lvextend y lvreduce .
(Sin embargo, esto no reduce el sistema de archivos contenido).
lvs
Muestra un breve resumen de la información del volumen lógico.
lvscan
Analiza todos los discos en busca de volúmenes lógicos.
Configuración de Logical Volume Manager
165

Página 208
166
Capítulo 4 ■
Gestión avanzada de discos
Una vez que se crea un volumen lógico, se vuelve accesible a través de al menos dos archivos de dispositivo.
Uno está en / dev / mapper , y toma el nombre groupname - logname , donde groupname es el
El nombre del grupo de volúmenes y el nombre de registro es el nombre del volumen lógico. El segundo nombre es / dev /
nombre de grupo / nombre de registro . Por ejemplo, el comando lvcreate anterior crea archivos de dispositivo
llamado / dev / mapper / speaker - deb_root y / dev / speaker / deb_root . Normalmente, el dispositivo
El archivo en / dev / mapper es el verdadero nodo del dispositivo, mientras que el archivo en / dev / groupname es un símbolo
enlace al archivo en / dev / mapper ; sin embargo, algunas distribuciones crean un verdadero nodo de dispositivo bajo
algún otro nombre, como / dev / dm - 0 , y los archivos / dev / mapper y los de / dev /
groupname son enlaces simbólicos a este otro archivo.
No importa cómo estén organizados los archivos del dispositivo, puede usarlos tanto como lo haría
archivos de dispositivo de partición; puede crear sistemas de archivos en ellos usando mkfs , montarlos con
mount , enumerarlos en la primera columna de / etc / fstab , y así sucesivamente.
Si desea manipular sus volúmenes lógicos después de crearlos, puede usar
comandos adicionales de la Tabla 4.6. Los comandos lvs y lvdisplay producen concisos y
información detallada sobre los volúmenes lógicos:
# lvs
LV
VG Attr LSize Origin Snap% Move Log Copy% Convert
PCLOS
altavoz -wi-ao 30.00g
altavoz gentoo_root -wi-ao 10.00g
altavoz gentoo_usr -wi-a- 15.00g
altavoz gentoo_usrlocal -wi-a- 4.00g
hogar
altavoz -wi-ao 80.00g
# lvdisplay / dev / speaker / PCLOS
--- Volumen lógico ---
LV Nombre
/ dev / altavoz / PCLOS
Nombre de VG
altavoz
UUID LV
b1fnJY-o6eD-Sqpi-0nt7-llpp-y7Qf-EGUaZH
Acceso de escritura LV
leer escribir
Estado LV
disponible
# abierto
1
Tamaño LV
30,00 GiB
LE actual
960
Segmentos
2
Asignación
heredar
Leer adelante sectores auto
- actualmente establecido en 256
Bloquear dispositivo
253: 5
Si encuentra que un volumen lógico se ha vuelto demasiado pequeño, puede expandirlo con lvextend
o lvresize :
# lvextend -L + 10G / dev / speaker / PCLOS

Página 209
El signo más ( + ) que precede al tamaño indica que el volumen lógico se expandirá
por tanto; omitir el signo más le permite especificar un tamaño absoluto. Por supuesto que puede
solo aumente el tamaño de un volumen lógico si el grupo de volúmenes tiene suficiente espacio libre. Después
cambia el tamaño de un volumen lógico, normalmente debe cambiar el tamaño del sistema de archivos que contiene:
# resize2fs / dev / speaker / PCLOS
El programa resize2fs cambia el tamaño de un sistema de archivos para que coincida con el contenedor, o puede especificar un
tamaño después del nombre de archivo del dispositivo. Por supuesto, debería utilizar cualquier herramienta de cambio de tamaño del
sistema de archivos
es apropiado para el sistema de archivos que utiliza. Si desea reducir un volumen lógico, debe
cambie el tamaño del sistema de archivos primero , y debe especificar explícitamente un tamaño para el sistema de archivos:
# resize2fs / dev / speaker / PCLOS 20G
A continuación, puede cambiar el tamaño del volumen lógico para que coincida con este tamaño:
# lvresize -L 20G / dev / speaker / PCLOS
Tenga mucho cuidado de establecer el tamaño de forma precisa y correcta al reducir
volumen lógico para que coincida con un tamaño de sistema de archivos reducido. Puedes agregar una seguridad
margen reduciendo el sistema de archivos a un tamaño más pequeño que el deseado, cambiando el tamaño
el volumen lgico al tamao deseado, y luego usando el automtico
tamaño: función de coincidencia de resize2fs o una herramienta similar para que coincida con la lógica
tamaño del volumen.
Si desea cambiar la función de un volumen lógico, puede usar lvrename para darle un
nuevo nombre:
# altavoz lvrename PCLOS SUSE
Este comando cambia el nombre del volumen lógico PCLOS en el volumen del altavoz
grupo a SUSE . Si un volumen lógico ya no es necesario, puede eliminarlo con lvremove :
# lvremove / dev / speaker / SUSE
Las herramientas en modo texto para administrar LVM son flexibles pero complejas. Como un
cuestión práctica, a veces es más fácil administrar un LVM usando una GUI
herramienta, como Kvpm ( [Link] ) o system - config -
lvm ( [Link] ). Estas herramientas
presentar interfaces GUI para LVM y ayudar a integrar el cambio de tamaño del sistema de archivos
en el proceso, que puede ser particularmente útil al cambiar el tamaño lógico
volúmenes.
Configuración de Logical Volume Manager
167

Página 210
168
Capítulo 4 ■
Gestión avanzada de discos
El ejercicio 4.1 lo guía a través de todo el proceso de creación y uso de un LVM.
configuración, aunque a pequeña escala.
EJERCICIO 4.1
Crear y usar un LVM
Para realizar este ejercicio, debe tener una partición de disco duro de repuesto. Espacio de almacenamiento
en una unidad flash USB funcionará bien, si no tiene más espacio en disco disponible. Asegúrate de tener
eliminó todos los datos valiosos de cualquier partición que desee utilizar antes de continuar.
Para configurar su LVM de prueba, proceda de la siguiente manera:
1. Inicie sesión en la computadora como root , adquiera privilegios de root usando su , o esté preparado para
emita los siguientes comandos usando sudo .
2. Si está utilizando una unidad flash USB o un disco duro externo, conéctelo a la computadora y
espere a que su luz de actividad deje de parpadear.
3. Esta actividad asume que usará / dev / sdb1 como la partición de destino. Primero debes
marque la partición con el tipo correcto usando fdisk , así que escriba fdisk / dev / sdb para
empezar. (Puede usar gdisk en lugar de fdisk si su disco usa GPT en lugar de MBR).
4. En fdisk , escriba py revise la tabla de particiones para verificar que está utilizando la
disco. De lo contrario, escriba q y vuelva a intentarlo con el disco correcto.
5. En fdisk , escriba t para cambiar el código de tipo de la partición que desea utilizar. Si el disco
tiene más de una partición, se le pedirá un número de partición; ingresarlo. Cuando
se le solicita un código hexadecimal, escriba 8e . (Escriba 8e00 si está usando gdisk y un disco GPT).
6. En fdisk , escriba p nuevamente para revisar la tabla de particiones. Verifique que la partición que desea
use ahora tiene el código de tipo correcto. Si es así, escriba w para guardar los cambios y salir.
7.
En el indicador de shell, escriba pvcreate / dev / sdb1 (cambiando el nombre de archivo del dispositivo, según sea necesario).
El programa debería responder Volumen físico “/ dev / sdb1” creado con éxito .
8. Escriba vgcreate testvg / dev / sdb1 . El programa debe responder el grupo de volumen "testvg"
creado con éxito .
9. Escriba pvdisplay para obtener información sobre el grupo de volúmenes, incluido su tamaño.
10. Escriba lvcreate - L 5G - n testvol testvg para crear un volumen lógico de 5 GiB llamado testvol
en el grupo de volumen testvg . (Cambie el tamaño del volumen lógico como desee o
necesario para encajar en su grupo de volumen.) El programa debe responder Volumen lógico
"Testvol" creado .
11. Escriba ls / dev / mapper para verificar que el nuevo grupo de volúmenes esté presente. Deberías ver
un archivo de control , un archivo llamado testvg - testvol , y posiblemente otros archivos si su computadora
ya utiliza LVM para otros fines.
12. Escriba lvdisplay / dev / testvg / testvol para ver información sobre el volumen lógico. Verificar
que es del tamaño correcto. (Puede usar el nombre de archivo / dev / mapper / testvg - testvol
en lugar de / dev / testvg / testvol , si lo desea).

Página 211
13. Escriba mkfs - t ext3 / dev / mapper / testvg - testvol para crear un sistema de archivos en el nuevo
volumen. (Puede usar otro sistema de archivos, si lo desea). Este comando puede tomar varios
segundos para completar, especialmente si está utilizando un dispositivo de disco USB 2.0.
14. Escriba mount / dev / mapper / testvg - testvol / mnt para montar su nuevo volumen lógico. (Tú
puede usar un punto de montaje que no sea / mnt , si lo desea).
15. Copie algunos archivos en el volumen lógico, como en cp / etc / fstab / mnt . Lea los archivos con
less u otras herramientas para verificar que la copia se realizó correctamente.
16. Escriba df-h / mnt para verificar el tamaño del sistema de archivos del volumen lógico. Debe ser el tamaño
que especificó en el paso # 10, o posiblemente un poquito más pequeño.
17. Escriba umount / mnt para desmontar el volumen lógico.
18. Escriba vgchange - un testvg para desactivar el volumen lógico.
19. Si utilizó un disco USB, ahora puede desconectarlo de forma segura.
Si ya no desea experimentar con LVM en este disco, ahora puede usar vgremove ,
pvremove y mkfs para eliminar los datos LVM y crear un sistema de archivos regular en la partición.
También debe usar fdisk o gdisk para cambiar su código de tipo de nuevo a 0x83 (o 0x0700 para GPT
discos), o algún otro valor que sea adecuado para cualquier sistema de archivos que utilice. Alternativamente, si
desea utilizar LVM en un entorno de producción, puede escribir vgchange - ay para reactivar
el grupo de volúmenes, cree volúmenes lógicos adecuados y agréguelos a / etc / fstab .

Usar instantáneas de LVM


LVM proporciona una función útil conocida como instantánea . Una instantánea es un volumen lógico que
conserva el estado de otro volumen lógico, lo que le permite realizar cambios en el original
conservando el estado original del volumen. Las instantáneas se crean muy rápidamente, por lo que
puede utilizarlos para hacer una copia de seguridad de un disco en un momento determinado, o puede utilizar una instantánea como
"salida" rápida en caso de que un cambio importante en el sistema no funcione. Por ejemplo, puede crear un
instantánea y luego instale las principales actualizaciones de paquetes que sospecha que pueden causar problemas.
Si las actualizaciones del paquete no funcionan a su satisfacción, puede usar la instantánea para restaurar
el sistema a su estado original.
El último sistema de archivos de Linux, Btrfs, incluye su propia función de instantánea. LVM
Las instantáneas funcionan con cualquier sistema de archivos que esté almacenado en un volumen lógico.
Para crear una instantánea, use el comando lvcreate con su opción - s ( - - instantánea ):
# lvcreate -L 10G -s -n rápido / dev / altavoz / PCLOS
Configuración de Logical Volume Manager
169

Página 212
170
Capítulo 4 ■
Gestión avanzada de discos
Este ejemplo crea un nuevo volumen lógico, ágil , que duplica el contenido actual
de / dev / speaker / PCLOS . El tamaño de la instantánea (10 GiB en este ejemplo) puede ser sustancialmente
más pequeño que el tamaño del volumen de la fuente. Para la mayoría de los propósitos, una instantánea puede tener solo 10 o
20 por ciento del tamaño del volumen lógico original. Cuando esté montado, aparecerá la instantánea
ser tan grande como el volumen original. Los comandos lvs y lvdisplay revelan cuánto
de la capacidad del volumen de instantáneas se está utilizando, debajo de la columna % Snap de lvs o la
Asignado a la línea de instantáneas de lvdisplay .
Puede montar y utilizar el volumen de instantáneas como lo haría con cualquier otro
volumen. Usado de esta manera, un volumen de instantánea puede ser una herramienta de respaldo útil. Ordinario
Las operaciones de respaldo pueden tardar minutos u horas en completarse, lo que significa que en
sistema usado la copia de seguridad puede ser inconsistente - archivos relacionados creados o cambiados dentro
milisegundos entre sí se pueden respaldar en diferentes momentos, uno antes y otro después de una
casi - cambio simultáneo. Una instantánea evita estos problemas: la instantánea refleja el estado
del sistema de archivos en un momento determinado, lo que permite una copia de seguridad más consistente.
Otro uso de las instantáneas es proporcionar una forma de revertir los cambios realizados en el original.
sistema de archivos. Para hacer esto, crea la instantánea exactamente de la forma descrita. Si el
los cambios que ha realizado no funcionan, luego utilizará la instantánea para restaurar el original
sistema de archivos. Si el sistema de archivos original no es crítico para el funcionamiento normal del sistema, puede hacerlo
esto desde un inicio normal del sistema; sin embargo, este tipo de operación a menudo involucra los principales
sistema, que no se puede desmontar. Todavía puede realizar la operación de combinación, pero
ser diferido hasta que desmonte el sistema de archivos montado, lo que normalmente significa hasta que
reinicia la computadora. La combinación usa la opción - - merge para lvconvert :
# lvconvert --merge / dev / speaker / snappy
Una vez que se complete esta operación, el estado original del volumen lógico original será
restaurado. La combinación también eliminará automáticamente el volumen de la instantánea, por lo que si lo desea
para volver a intentar cualquier operación que haya provocado estas acciones, tendrá que volver a crear el
volumen de la instantánea.
La capacidad de fusionar instantáneas es bastante reciente; se originó en el 2.6.33
kernel y las herramientas LVM versión 2.02.58. Si quieres intentar una instantánea
al fusionarse con software anterior, primero deberá actualizar.

Ajuste del acceso al disco


Como la mayoría de los equipos informáticos, los discos duros han sufrido cambios importantes a lo largo de los años.
El resultado es que hay una gran cantidad de tipos de discos y controladores para todos estos discos y
su hardware de interfaz. Esta gran cantidad de hardware significa que a veces es necesario
para ajustar el acceso al disco para optimizar el rendimiento del disco de Linux. Para hacer esto, primero debes
comprender los distintos dispositivos de disco para que pueda identificar correctamente su propio disco
hardware y aprenda qué recursos utiliza. A continuación, puede emplear cualquiera de un puñado de
utilidades para optimizar la forma en que su sistema accede a los discos.

Página 213
Algunas operaciones de ajuste de disco pueden ser manejadas por utilidades de nivel superior que
los descritos aquí. El ajuste del sistema de archivos, por ejemplo, se realiza mediante herramientas
como tune2fs , que ajusta las funciones del sistema de archivos ext2, ext3 y ext4.
Estas herramientas se describen en el Capítulo 3.

Comprensión del hardware del disco


Los discos duros se pueden clasificar de muchas formas; sin embargo, desde el punto de vista de Linux, la mayoría
Una distinción importante entre los tipos de disco es cómo interactúan los discos con la computadora.
Hoy en día son comunes cuatro interfaces:
PATA La interfaz Parallel Advanced Technology Attachment (PATA) fue una vez
rey del mercado de PC. Anteriormente conocido como ATA, Integrated Device Electronics
(IDE) o Enhanced IDE (EIDE) , los dispositivos PATA se caracterizan por un ancho de 40 o
Cables planos de 80 pines para transferencia de datos. Estos cables pueden conectar hasta dos discos a un
conector único en una placa base o tarjeta PATA enchufable. En años pasados, las unidades PATA
para ser configurado como maestro o esclavo mediante un jumper; pero las unidades PATA modernas tienen un
configure un ajuste que funcione bien en la mayoría de los casos. El término ATA hoy a menudo se refiere a
PATA o el SATA más reciente (descrito a continuación). Un formato de datos asociado con ATA, el
Interfaz de paquete ATA (ATAPI) , permite que ATA se utilice para dispositivos que no sean discos duros,
como discos ópticos.
SATA La interfaz Serial ATA (SATA) es la sucesora de PATA. Las unidades SATA usan mucho
Cables más delgados que los de las unidades PATA, como se muestra en la Figura 4.2. Cada cable SATA se conecta
un dispositivo a la placa base o tarjeta controladora SATA, lo que evita la necesidad de un puente
configuración relacionada con la identificación del variador. (Algunas unidades SATA tienen puentes para otras
sin embargo) .Aunque la mayoría de los dispositivos SATA son internos de la computadora, un
Algunas unidades externas utilizan una variante del protocolo, conocida como eSATA.
FIGURA 4.2 SATA (izquierda) presenta cables de conexión mucho más delgados que el anterior
PATA (derecha).
Ajuste del acceso al disco
171

Página 214
172
Capítulo 4 ■
Gestión avanzada de discos
SCSI El estándar SCSI (Small Computer System Interface) se parece físicamente a PATA,
en que utiliza cables planos, aunque son un poco más anchos, con 50 pines. SCSI admite hasta
a 8 o 16 dispositivos por cable, dependiendo de la versión SCSI, pero el adaptador de host SCSI
en la computadora cuenta como un dispositivo, por lo que el límite en el número de discos es siete o quince. En
en el pasado, SCSI era el favorito para servidores y estaciones de trabajo de alta gama. Hoy, SCSI tiene
perdió popularidad, pero los dispositivos SCSI todavía están disponibles. Una interfaz SCSI de próxima generación,
conocido como Serial Attached SCSI (SAS) , también está disponible. Además de ser el próximo -
interfaz SCSI de generación, SAS es un paso hacia la integración de las líneas SCSI y ATA.
USB El bus serie universal es un método popular para conectar dispositivos externos,
incluidos discos duros portátiles y unidades flash USB. La primera y segunda generación de USB
tienen un rendimiento deficiente en comparación con todas las interfaces de disco duro dedicadas, excepto las más antiguas, pero
USB 3.0 mejora enormemente la velocidad del USB.
Además de estas cuatro interfaces, se utilizan o se han utilizado varias otras. Estas
Las interfaces alternativas son modernas pero raras (como IEEE - 1394, también conocida como FireWire) o
interfaces obsoletas.
Desde la perspectiva del software de Linux, todos los usos de hardware de disco duro menos los más desconocidos
uno de los dos juegos de controladores:
PATA Los controladores PATA, identificados en el kernel como ATA / ATAPI / MFM / RLL, son oficialmente
obsoleto con los kernels más recientes, lo que significa que estos controladores todavía son compatibles
pero es probable que se eliminen en el futuro. Estos controladores se utilizan con mayor frecuencia con PATA
discos sin embargo, este conjunto de controladores incluye soporte para cierto hardware SATA. Dispositivos que utilizan
estos controladores reciben nombres con el formato / dev / hda , / dev / hdb , etc. El primero de estos
( / dev / hda ) está reservado para la unidad maestra en el primer controlador, / dev / hdb es el esclavo
unidad en el primer controlador, / dev / hdc es la unidad maestra en el segundo controlador, por lo que
en. Por lo tanto, dependiendo de cómo se conecten las unidades, es posible que se omitan letras; una computadora puede
tiene / dev / hda y / dev / hdc pero no / dev / hdb . Las unidades ópticas PATA reciben los mismos tipos
de identificadores, aunque normalmente también se puede acceder a ellos como / dev / cdrom y otros
nombres.
SCSI El subsistema SCSI del kernel de Linux, originalmente utilizado por dispositivos SCSI, ha
adoptó otros tipos de dispositivos de disco, incluidos la mayoría de los dispositivos SATA, dispositivos USB y hoy
incluso muchos dispositivos PATA. Los discos duros administrados por los controladores SCSI de Linux reciben nombres de
/ dev / sda , / dev / sdb , etc. Los huecos en la secuencia normalmente no existen para el disco duro interno.
discos, pero pueden desarrollarse cuando se quita el USB u otros discos externos. Discos ópticos
administrados por estos controladores usan nombres de / dev / sr0 , / dev / sr1 , etc., con enlaces simbólicos
usando / dev / cdrom , / dev / dvd y nombres similares.
Es importante darse cuenta de que los controladores de disco de Linux están escritos para los circuitos del controlador.
en la placa base o en la tarjeta controladora de disco; los discos individuales no necesitan controlador per se, ya que
El hardware de disco está estandarizado dentro de cada categoría. Las técnicas y utilidades descritas
en las próximas páginas, sin embargo, le permitirá ajustar los métodos de acceso al disco en caso de que
las necesidades de un disco en particular no se detectan automáticamente.

Página 215
La mayoría de las computadoras modernas incluyen conectores para al menos cuatro dispositivos de disco en el
tarjeta madre. En la mayoría de los casos, el chipset principal de la placa base proporciona el controlador de disco
circuitos. En algunos casos, especialmente en placas base que admiten más de cuatro discos,
se utilizan dos controladores de disco diferentes. Las tarjetas enchufables están disponibles para expandir el número o
tipo de dispositivos de disco que puede usar una computadora.
En algunos casos, conectar un disco a un controlador de placa base diferente
El puerto puede superar los problemas de rendimiento. Esto puede ser cierto si cambia
puertos mueve el disco de un controlador de disco a otro; algunas veces
los controladores de Linux para un controlador son deficientes, o puede haber disco /
incompatibilidades de hardware del controlador que impiden el rendimiento. Tal
el intercambio suele ser fácil de implementar una vez que haya abierto el
caso, por lo que puede ser bueno intentarlo si tiene problemas con el disco.
Desde una perspectiva de configuración de Linux, la naturaleza de la tecnología utilizada para almacenar
datos - platos giratorios en un disco duro, dispositivos magneto - ópticos (MO), dispositivo de estado sólido
(SSD), o algo más, es en su mayoría irrelevante. Todos estos dispositivos presentan el
mismo tipo de interfaz para Linux, utilizando los controladores PATA o SCSI para habilitar el kernel y
herramientas de nivel superior para leer y escribir datos desde y hacia el disco. Algunos dispositivos tienen sutiles
peculiaridades, como la necesidad de alinear particiones de formas particulares (como se describe en el mundo real
Escenario “Software vs. hardware RAID”), pero fundamentalmente son lo mismo. Óptico
las unidades (CD-ROM, DVD y discos Blu-ray) son una excepción; como se describe en el Capítulo 3,
Se debe acceder a estos dispositivos de diferentes formas, especialmente para escribir.
Identificación del uso de recursos de disco
Los controladores de disco, como todos los dispositivos de hardware, utilizan recursos de hardware. En la mayor parte,
el uso de recursos es administrado automáticamente por el kernel de Linux y sus controladores; sin embargo, tu
es posible que desee verificar, y quizás ajustar, algunos detalles.
Un recurso de hardware importante es la solicitud de interrupción ( IRQ o interrupción ) utilizada por
el dispositivo. Siempre que ocurra algún evento en el dispositivo de hardware, como cuando el usuario presiona
un botón de expulsión en un disco extraíble, el hardware indica este evento a la computadora a través de
una interrupción. La arquitectura tradicional x 86 admite 16 interrupciones, numeradas del 0 al 15;
sin embargo, las computadoras modernas admiten más interrupciones que esta.
En el esquema tradicional x 86, las IRQ 14 y 15 están dedicadas a la
controladores PATA secundarios. Hoy, sin embargo, es posible que estas interrupciones no se utilicen. Usted puede
aprenda cómo se asignan sus interrupciones examinando el pseudoarchivo / proc / interrupts :
$ cat / proc / interrupciones
CPU0 CPU1
0:
127 2550 Temporizador de borde IO-APIC
1: 1048 574249 IO-APIC-borde i8042
7:
1
0 IO-APIC-edge parport0
Ajuste del acceso al disco
173

Página 216
174
Capítulo 4 ■
Gestión avanzada de discos
8:
0
275 IO-APIC-borde rtc0
9:
0
0 IO-APIC-fasteoi acpi
12: 9519 4373252 IO-APIC-borde i8042
dieciséis:
118 37123 IO-APIC-fasteoi ohci_hcd: usb3, ohci_hcd: usb4,
hda_intel
17:
16 4753 IO-APIC-fasteoi ehci_hcd: usb1
18:
8 6696 IO-APIC-fasteoi ohci_hcd: usb5, ohci_hcd: usb6,
ohci_hcd: usb7, radeon @ pci: 0000: 01: 05.0
19:
76 44026 IO-APIC-fasteoi ehci_hcd: usb2, hda_intel
20: 38739 77465820 IO-APIC-fasteoi cx88 [0], cx88 [0]
21: 34021 21279132 IO-APIC-fasteoi eth0
22: 3846 1959346 IO-APIC-fasteoi ahci
40:
136 89933 PCI-MSI-borde eth1
NMI:
0
0 interrupciones no enmascarables
LOC: 197186178 205069577 Interrupciones del temporizador local
SPU:
0
0 falsas interrupciones
PMI:
0
0 interrupciones de supervisión del rendimiento
PND:
0
0 Rendimiento pendiente de trabajo
RES: 194455575 191841607 Reprogramación de interrupciones
CALIFORNIA:
381
346 Interrupciones de llamada de función
TLB: 136306 146018 Derribos de TLB
THR:
0
0 interrupciones APIC de umbral
MCE:
0
0 Excepciones de verificación de máquina
MCP: 2557 2557 Sondeos de verificación de máquinas
ERRAR:
1
MAL:
0
Busque en la última columna de la salida un controlador relacionado con el acceso al disco. En este ejemplo, IRQ
16 y 19 están asociados con hda_intel , un controlador de disco; y IRQ 22 está vinculado con
ahci , un método moderno de acceso a disco. Las IRQ 16 y 19 de este ejemplo se comparten: varios
los dispositivos utilizan la misma interrupción. Esto rara vez causa problemas en el hardware moderno, pero si
sospecha que sus accesos al disco se ven afectados por una interrupción compartida, puede investigar
opciones del módulo de controlador para cambiar cómo se asignan las interrupciones. Investiga los impulsores de ambos
sus dispositivos de disco y lo que sea que esté compartiendo las interrupciones con ellos, como se describe en
Capítulo 2. También puede revisar las opciones de firmware de su computadora; estos pueden permitirte
para ajustar la asignación de IRQ. Finalmente, la utilidad sysctl y su archivo de configuración, / etc /
[Link] , a menudo se puede utilizar para ajustar las asignaciones de IRQ. Intente escribir sysctl - a | grep irq
para conocer las opciones relevantes y luego cambiar las que encuentre en /etc/[Link] .
Un segundo tipo de recurso de hardware que quizás desee ajustar es el acceso directo a la memoria
(DMA) asignación. En una configuración DMA, un dispositivo transfiere datos directamente hacia y desde un
área de la memoria, en lugar de pasar datos a través de la CPU de la computadora. DMA puede acelerar

Página 217
acceso, pero si dos dispositivos intentan utilizar el mismo canal DMA, los datos pueden corromperse. Tú
puede examinar / proc / dma para revisar las asignaciones de direcciones DMA:
$ cat / proc / dma
3: parport0
4: cascada
Los problemas de DMA son extremadamente raros en las computadoras modernas. Si necesita ajustarlos,
sin embargo, puede revisar la documentación de su controlador y la configuración de sysctl tanto como lo haría
para conflictos de IRQ para encontrar una manera de reasignar un dispositivo para usar un nuevo canal DMA.
Prueba del rendimiento del disco
Si sospecha que hay problemas con el disco, primero debe intentar cuantificar la naturaleza del problema.
La utilidad hdparm puede ser útil para esto. Pase el parámetro - t para probar la lectura no almacenada en caché
rendimiento en el dispositivo:
# hdparm -t / dev / sda
/ dev / sda:
Lecturas del disco almacenado en búfer de tiempo: 264 MB en 3,00 segundos = 87,96 MB / s
Usando una mayúscula - T en lugar de una minúscula - t prueba el rendimiento
de la caché del disco, que es principalmente una medida de la memoria de su computadora
actuación. Aunque esta medida no es muy interesante en términos de real
rendimiento del disco, muchas personas habitualmente hacen ambas pruebas al mismo tiempo,
como en hdparm - tT / dev / sda . Para obtener mejores resultados, ejecute la prueba hdparm dos o tres
veces en un sistema descargado.
Como regla general, los discos convencionales en 2011 deberían producir cifras de rendimiento en el
decenas de megabytes por segundo o más. Puede intentar rastrear especificaciones
en su disco del fabricante; sin embargo, a los fabricantes de discos les gusta citar su disco
velocidades de interfaz, que son invariablemente más altas que sus velocidades de transferencia de disco (también conocidas como
tasas de transferencia). Incluso si puede encontrar una tasa de transferencia interna para una unidad, es probable que sea un poco
optimista.
El rendimiento de SSD puede ser significativamente mejor que el de los discos giratorios convencionales,
al menos cuando se utiliza una verdadera interfaz de disco como SATA. (Las unidades flash USB tienden a ser bastante
lento.) Si aplica hdparm a una matriz RAID 0, 4, 5, 6 o 10, es probable que vea muy bien
tasas de transferencia también.
Tenga en cuenta que es probable que el rendimiento en el uso real sea inferior al producido por
hdparm ; esta utilidad lee una gran cantidad de datos de la unidad sin utilizar el sistema de archivos.
En el uso en el mundo real, el sistema de archivos estará involucrado, lo que degradará el rendimiento porque
de sobrecarga adicional de CPU, la necesidad de buscar varias ubicaciones para leer datos del sistema de archivos, y
otros factores. El rendimiento de escritura también puede ser inferior al rendimiento de lectura.
Ajuste del acceso al disco
175

Página 218
176
Capítulo 4 ■
Gestión avanzada de discos
Ajuste de los parámetros del disco
Si usa un dispositivo a través de un controlador PATA de Linux, la utilidad hdparm se puede usar para ajustar el disco
parámetros de acceso, no solo para medir el rendimiento. La Tabla 4.7 resume la mayoría
características importantes de hdparm que mejoran el rendimiento , incluida una para ahorrar energía.
Consulta el programa 's hombre de la página para más hdparm opciones.
TABLA 4.7 Opciones de hdparm para mejorar el rendimiento
Opción
Explicación
-dn
Los dispositivos PATA se pueden ejecutar en Entrada / Salida programada (PIO)
modo o en modo DMA. El modo DMA produce cargas de CPU más bajas para el disco
accesos. El uso de - d0 habilita el modo PIO y - d1 habilita el modo DMA. los
La opción - d1 se usa generalmente junto con - X (que se describe brevemente).
Esta opción no funciona en todos los sistemas; Linux requiere soporte explícito
para el modo DMA de un chipset ATA específico si va a utilizar esta función.
- modo p
Este parámetro establece el modo PIO, que en la mayoría de los casos varía de 0 a
5. Los modos de PIO más altos corresponden a un mejor rendimiento.
modo -c
Consulta o establece el estado de transferencia de 32 bits. Omitir modo para consultar el estado, configurar
mode a 0 para deshabilitar la compatibilidad con 32 bits, establezca el modo en 1 para habilitar la compatibilidad con 32 bits,
o establezca el modo en 3 para habilitar el soporte de 32 bits usando una secuencia especial necesaria
por algunos conjuntos de chips.
- S tiempo de espera
Esta opción establece una función de ahorro de energía: el tiempo que una unidad esperará sin
cualquier acceso antes de que entre en un estado de bajo consumo. Se necesitan unos segundos para
un impulso para recuperarse de tal estado, muchos escritorios dejan el tiempo de espera en
0 , que desactiva esta función. En las computadoras portátiles, sin embargo, es posible que desee configurar
tiempo de espera para otra cosa. Los valores entre 1 y 240 son múltiplos de
5 segundos (por ejemplo, 120 significa un retraso de 600 segundos o 10 minutos);
241 - 251 significan 1 - 11 unidades de 30 minutos; 252 es un tiempo de espera de 21 minutos; 253 es un
tiempo de espera específico de la unidad; y 255 es un tiempo de espera de 21 minutos y 15 segundos.
-v
Puede ver una variedad de configuraciones de disco con esta opción.
-X
modo de transferencia
Esta opción establece el modo de transferencia DMA utilizado por un disco. los
transfermode generalmente se establece en un valor de sdma x , mdma x o udma x .
Estos valores establecen los modos DMA simple, DMA de varias palabras o Ultra DMA,
respectivamente. En todos los casos, x representa el valor del modo DMA, que
es un número. En hardware moderno, debería poder utilizar un
modo Ultra DMA alto, como - X udma5 o - X udma6 . Usa esta opción
con cuidado; establecer un modo inadecuado puede hacer que el disco se vuelva
inaccesible, lo que a su vez puede hacer que su sistema se cuelgue.
Aunque hdparm es útil para ajustar discos PATA, la mayoría de sus opciones no tienen efecto en SCSI
discos, incluidos la mayoría de los discos SATA, USB e incluso PATA que utilizan la nueva interfaz SCSI para
PATA. Afortunadamente, esto no suele ser un problema, ya que los verdaderos discos SCSI y los dispositivos más nuevos
que se administran a través del subsistema SCSI generalmente se configuran de manera óptima de manera predeterminada.

Página 219
La utilidad sdparm , a pesar de la similitud del nombre con hdparm , no es realmente un equivalente SCSI
de hdparm . No obstante, puede utilizar sdparm para conocer e incluso ajustar su SCSI
dispositivos. La Tabla 4.8 resume las opciones sdparm más importantes ; consulte su página de manual
para opciones sdparm más oscuras . Para usarlo, pase una o más opciones seguidas de un dispositivo
nombre, como / dev / sr0 o / dev / sda .
TABLA 4.8 Opciones comunes de sdparm
Nombre de opción largo
Nombre corto de la opción Explicación
- - todas
- una
Muestra una variedad de información técnica sobre
el dispositivo.
- - enumerar
-e
Muestra información sobre las páginas y los campos.
que puede ser ajustado por sdparm . Ignora el
especificación del dispositivo.
- - flexible
-f
Corrige problemas en la interpretación de respuestas.
que puede ser causado por dispositivos o controladores con errores.
- - obtener campo
- campo g
Recupera un campo individual de datos técnicos.
- - consulta
- yo
Muestra las páginas del modo de consulta para el dispositivo.
- - largo
-l
Crea resultados adicionales con muchos
comandos.
- - conjunto = STR = n
- s STR = n
Establece un campo en un valor especificado. Usar con
¡extrema precaución!
- - seis
-6
Utiliza un modo de interfaz de 6 bytes, en lugar del
modo más reciente de 10 bytes. Útil con SCSI más antiguo
dispositivos.
Muchas funciones de sdparm permiten enviar señales SCSI de bajo nivel a su
Dispositivos SCSI. Esta habilidad es potencialmente muy peligrosa. Usted no debe
Experimente con opciones sdparm aleatorias .

Supervisión de fallas en un disco


Los discos duros modernos ofrecen una función conocida como autocontrol, análisis e informes
Technology (SMART), que es una herramienta de autodiagnóstico que puede utilizar para predecir
Ajuste del acceso al disco
177

Página 220
178
Capítulo 4 ■
Gestión avanzada de discos
fracaso. La verificación periódica de sus unidades para detectar tales problemas puede ayudarlo a evitar costosos
incidentes; Si una herramienta SMART presenta un problema, puede reemplazar el disco antes de perder
cualquier dato!
Se encuentran disponibles varias herramientas de monitoreo SMART para Linux. Uno de ellos es smartctl ; tú
puede obtener un informe SMART en una unidad escribiendo smartctl - a / dev / sda , donde / dev / sda es
el nodo del dispositivo de disco. Gran parte de la salida será difícil de interpretar, pero puede buscar
para la siguiente línea:
Resultado de la prueba SMART de autoevaluación de salud general: APROBADO
La salida de smartctl es más ancha que las 80 columnas estándar. Lo encontraras
más fácil de interpretar si lo ejecuta desde una consola que tenga al menos 90 columnas de ancho.
Si lo ejecuta desde un terminal basado en X, ensanchelo antes de ejecutar smartctl .
Por supuesto, si el informe indica una falla, debe leer detenidamente el resto del informe.
para saber cuál es el problema. También puede usar smartctl para ejecutar pruebas activas en una unidad;
consulte su página de manual para obtener más detalles.
Si prefiere una herramienta GUI, la utilidad GSmartControl ( [Link] )
puede ser lo que necesitas. Ejecútelo, haga clic en un icono correspondiente a un disco duro y verá un
ventana similar a la de la Figura 4.3. La línea de resumen final en la pestaña Identidad revela la
la salud general de la unidad. Si esa línea indica problemas o si desea examinar los detalles,
puede hacer clic en las otras pestañas. La pestaña Realizar pruebas le permite ejecutar pruebas activas en la unidad.
FIGURA 4.3 Una herramienta de monitoreo SMART le permite identificar hardware de disco defectuoso
antes de que te cause dolor.

Página 221
Si una prueba SMART revela problemas, debe reemplazar la unidad de inmediato. Usted puede
transferir datos particionando el nuevo disco y creando sistemas de archivos en él y luego usando tar
o cpio para copiar datos, o puede utilizar una herramienta de copia de seguridad y transferencia de datos como CloneZilla
( [Link] ).

Copia de seguridad y restauración


un ordenador
Muchas cosas pueden salir mal en una computadora y hacer que pierda datos. Discos duros
puede fallar, accidentalmente puede ingresar algún comando extremadamente destructivo, un cracker
podría entrar en su sistema, o un usuario podría eliminar accidentalmente un archivo, por nombrar solo un
pocas posibilidades. Para protegerse contra estos problemas, es importante que mantenga una buena
copias de seguridad de la computadora. Para hacer esto, seleccione el hardware de respaldo apropiado, elija un respaldo
programa e implementar copias de seguridad de forma regular. También debe tener un plan en
lugar para recuperar algunos o todos sus datos en caso de que surja la necesidad.
Elección del hardware de respaldo
Casi cualquier dispositivo que pueda almacenar datos de la computadora y leerlos se puede utilizar como un
medio de respaldo. Los mejores dispositivos de respaldo son económicos, rápidos, de gran capacidad y
de confianza. Sin embargo, no es necesario que sean dispositivos de acceso aleatorio . Acceso aleatorio
los dispositivos son capaces de acceder rápidamente a cualquier dato. Discos duros, CD - ROM y
Los DVD son todos dispositivos de acceso aleatorio. Estos dispositivos contrastan con los dispositivos de acceso secuencial ,
que debe leer todos los datos intermedios antes de acceder al componente buscado.
Las cintas son los dispositivos de acceso secuencial más comunes. La tabla 4.9 resume las críticas
información sobre los tipos más comunes de dispositivos de respaldo. Para algunos, como la cinta, hay
son dispositivos de mayor capacidad (y más costosos) para respaldos de red.
TABLA 4.9 Estadísticas vitales para dispositivos de respaldo comunes
Dispositivo
Costo de manejo
Costo de
medios de comunicación
Sin comprimir
capacidad
Velocidad
Tipo de acceso
Cinta
$ 150 - $ 4000
$ 0.25 - $ 3.00 /
GB
36 GB - 1,5 TB
3 - 140 MB / s
Secuencial
Duro interno
discos
$ 100 (por
retirable
kit de montaje)
0,20 USD / GB
(incluso
montaje
cuadro)
80 GB - 2 TB
50 - 100 MB / s aleatorio
Copia de seguridad y restauración de una computadora
179

Página 222
180
Capítulo 4 ■
Gestión avanzada de discos
Las cifras son aproximadas a finales de 2010. Históricamente, los precios de todos los medios de almacenamiento
ha caído rápidamente y las capacidades han aumentado. Es probable que los costos sean menores y las capacidades mayores
en el futuro.
Los tipos de dispositivos que aparecen en la Tabla 4.9 son los que se utilizan con más frecuencia para realizar copias de seguridad.
Sistemas Linux. Los pros y los contras de usar dispositivos específicos son:
Cintas Las unidades de cinta han sido históricamente la opción más popular para realizar copias de seguridad
ordenadores. Su naturaleza de acceso secuencial es un obstáculo para algunas aplicaciones, pero no
un problema para las copias de seguridad de rutina. El mayor problema con las cintas es que son menos confiables
que algunos medios de respaldo, aunque la confiabilidad varía sustancialmente de un tipo de cinta a
otro, y los mejores son razonablemente fiables.
Discos duros Es posible utilizar discos duros para realizar copias de seguridad. Si su computadora es
equipado con un kit que permite quitar rápidamente una unidad de una computadora, puede
cambie los discos duros hacia adentro y hacia afuera y muévalos fuera del sitio para almacenarlos, si lo desea. Comentarios similares
aplicar a discos duros externos. Sin embargo, los discos duros internos sin una bahía de disco extraíble
son susceptibles de ser robados o dañados junto con la computadora de la que deben hacer copias de seguridad.
Óptica Los medios ópticos son fiables a corto plazo, pero menos fiables a largo plazo que
una vez creído. Los medios de alta calidad, correctamente almacenados, pueden durar teóricamente décadas; pero en
En la práctica, las fallas a veces ocurren después de solo uno o dos años. Algunos medios ópticos son grandes
suficiente para respaldar sistemas pequeños enteros, pero para trabajos realmente grandes, la mayor capacidad de
cintas o discos duros es deseable. La necesidad de utilizar herramientas especiales, como cdrecord , para escribir
Los dispositivos ópticos pueden complicar los planes de respaldo, pero este no es un obstáculo insuperable.
En el pasado, los mejores dispositivos de respaldo para computadoras y redes enteras eran las cintas.
El bajo costo y la alta capacidad de las cintas las hacían muy adecuadas para realizar múltiples
copias de seguridad de equipos completos. Sin embargo, en los últimos años, los precios de los discos duros se han desplomado,
haciendo que los discos duros externos o extraíbles sean más atractivos que las cintas para muchas aplicaciones.
A veces es deseable complementar las copias de seguridad en cinta o en discos duros extraíbles con dispositivos ópticos.
copias de seguridad.
Dispositivo
Costo de manejo
Costo de
medios de comunicación
Sin comprimir
capacidad
Velocidad
Tipo de acceso
Duro externo
discos
$ 50 - $ 7000
$ 0.20 - $ 2.00 /
GB
80 GB - 16 TB 1
12 - 100 MB / s aleatorio
Óptico
$ 25 - $ 200
$ 0.04 - $ 0.50 /
GB
650 MB - 50 GB 1 - 45 MB / s
Aleatorio
1La capacidad del disco duro externo puede ser mayor que la interna porque algunos discos duros externos incluyen
Controladores RAID y múltiples discos físicos en un solo gabinete.
TABLA 4.9 Estadísticas vitales para dispositivos de respaldo comunes (continuación)
Página 223
Por lo general, es aconsejable mantener varias copias de seguridad y almacenar algunas de ellas lejos de la
computadoras que deben proteger. Dicho almacenamiento externo protege sus datos en caso de incendio,
vandalismo u otros traumas físicos importantes. Mantener varias copias de seguridad lo hace más probable
Podrá recuperar algo, incluso si es una copia de seguridad anterior, si la más reciente
el medio de respaldo falla. A algunos administradores les gusta seguir la estrategia 3 - 2 - 1 para las copias de seguridad,
lo que implica mantener tres copias de los datos en al menos dos tipos diferentes de
medios con al menos una copia fuera del sitio.
Se accede a los dispositivos de cinta en Linux mediante / dev / st0 (SCSI) o / dev / ht0 (PATA)
nombres de archivo de dispositivo. Los nombres de archivo / dev / nst0 y / dev / nht0 son variantes de no rebobinado de
estos nombres: cuando se usa / dev / st0 o / dev / ht0 , la cinta se rebobina automáticamente después
cada operación; pero cuando se usa / dev / nst0 o / dev / nht0 , la cinta no se rebobina. Si un
computadora tiene más de una unidad de cinta de un tipo particular, el número al final de la
El nombre de archivo del dispositivo se incrementa para cada unidad adicional, como en / dev / st1 para el segundo SCSI
unidad de cinta.
Si decide utilizar discos duros en soportes extraíbles como medio de respaldo, necesitará
unidades internas ordinarias y hardware de montaje. El hardware viene en dos partes: a
bahía de montaje que cabe en la computadora y un marco en el que se monta el disco duro.
Para usar el sistema, deslice el marco con el disco duro en el compartimiento de montaje. Puedes obtener
con uno de cada componente, pero es mejor comprar un marco para cada disco duro, que
aumenta efectivamente el costo de los medios. Desde el punto de vista del software Linux, el disco duro extraíble
Los sistemas funcionan como discos duros normales u otros sistemas de discos extraíbles, como unidades flash USB.
La mayoría de estos sistemas utilizan discos SATA, a los que accederá como / dev / sdb , / dev / sdc o algunos
otro identificador de dispositivo SCSI. Es probable que los discos estén particionados y las particiones
probablemente contenga sistemas de archivos Linux ordinarios.
Los discos externos con interfaces USB o eSATA son muy comunes y pueden funcionar bien
medios de respaldo; sin embargo, deberá comprar varios de ellos para obtener una seguridad de respaldo óptima.
Alternativamente, puede usar un carrito o cable externo, al cual puede conectar fácilmente un
disco duro. La compra de un carrito y varios discos duros le permite mantener varias copias de seguridad.
Para obtener una velocidad óptima, obtenga una unidad USB 3.0 o eSATA y asegúrese de que su computadora admita
esta interfaz de alto rendimiento!
Elección del software de respaldo
Linux admite varios programas de respaldo. Algunas son herramientas diseñadas para respaldar
archivos, directorios o computadoras. Otros se basan en estas herramientas más simples para proporcionar redes
instalaciones de respaldo. Los programas de copia de seguridad básicos incluyen tar , cpio , dump y dd . ARKEIA
( [Link] ) y BRU ( [Link] ) son dos
paquetes de respaldo que brindan soporte de red explícito y interfaces GUI. AMANDA
( [Link] ), Bacula ( [Link] ) y BackupPC ( http: //
[Link] ) son paquetes de copia de seguridad compatibles con la red que pueden realizar
una copia de seguridad de toda una red. La utilidad rsync es un programa relativamente simple para
realizar transferencias de datos de red. Cuando se trata de cintas, el programa mt es útil para
controlar el hardware de la cinta.
Copia de seguridad y restauración de una computadora
181

Página 224
182
Capítulo 4 ■
Gestión avanzada de discos
Esta sección proporciona una mirada a tar , cpio , dd , rsync y mt como ejemplos de cómo
hasta un sistema Linux.
Usando alquitrán
El nombre del programa tar significa “archivador de cinta”. "A pesar de esto, puede utilizar tar para archivar
datos a otros medios. De hecho, bolas de alquitrán (ficheros de archivo creado por el alquitrán y típicamente comprimido
con gzip o bzip2 ) se utilizan a menudo para transferir varios archivos entre ordenadores en
un paso, como cuando se distribuye el código fuente. (El Capítulo 1 describe el uso de alquitrán
en este contexto.)
El programa tar es un paquete complejo con muchas opciones, pero la mayor parte de lo que harás
con la utilidad se puede cubrir con algunos comandos comunes. La tabla 4.10 enumera los principales
tar comandos, y la Tabla 4.11 enumera los calificadores que modifican lo que hacen los comandos.
Siempre que ejecuta tar , usa exactamente un comando, y generalmente usa al menos un
Calificatorio.
TABLA 4.10 comandos tar
Mando
Abreviatura
Descripción
- - crear
C
Crea un archivo
- - concatenar
UNA
Agrega archivos tar a un archivo
- - adjuntar
r
Agrega archivos no tar a un archivo.
- - actualización
tu
Agrega archivos que son más nuevos que los de un
archivo
- - diff o - - comparar
re
Compara un archivo con los archivos del disco
- - lista
t
Muestra el contenido de un archivo.
- - extraer o - - obtener
X
Extrae archivos de un archivo
TABLA 4.11 calificadores de alquitrán
Calificatorio
Abreviatura
Descripción
- - directorio de directorio
C
Los cambios en el directorio dir antes de realizar
operaciones
- - archivo [ host :] archivo
F
Utiliza el archivo llamado archivo en la computadora
llamado host como el archivo de almacenamiento

Página 225
Calificatorio
Abreviatura
Descripción
- - listado - incremental
expediente
gramo
Realiza una copia de seguridad o restauración incremental,
usando archivo como una lista de archivos previamente archivados
- - un - archivo - sistema
l (en mayores
versiones de tar )
Realiza copias de seguridad o restaura solo un sistema de archivos
(dividir)
- - multi volumen
METRO
Crea o extrae un
archivo de varias cintas
- - cinta - longitud N
L
Cambia las cintas después de N kilobytes
- - mismo - permisos
pags
Conserva toda la información de protección
- - absoluto - caminos
PAGS
Conserva los nombres de archivo iniciales / en
- - detallado
v
Enumera todos los archivos leídos o extraídos cuando se usan con
- - lista ; muestra el tamaño de los archivos, la propiedad y
sellos de tiempo
- - verificar
W
Verifica el archivo después de escribirlo
- - excluir archivo
(ninguna)
Excluye archivo del archivo
- - excluir - del archivo
X
Excluye los archivos enumerados en el archivo del archivo.
- - gzip o - - descomprimir
z
Procesa un archivo a través de gzip
- - bzip2
j (algunos mayores
versiones utilizadas yo
oy)
Procesa un archivo a través de bzip2
De los comandos enumerados en la Tabla 4.10, los más comúnmente utilizados son - - create ,
- - extraer y - - listar . Los calificadores más útiles de la Tabla 4.11 son - - archivo , - - listado -
incremental , - - un - sistema - de - archivos , - - mismos - permisos , - - gzip , - - bzip2 y - - detallado .
Si no especifica un nombre de archivo con el calificador de archivo - - , tar intentará utilizar un
dispositivo, que a menudo (pero no siempre) es un archivo de dispositivo de cinta.
Usando cpio
El programa cpio es similar a tar en que crea un archivo de almacenamiento. Ese archivo se puede almacenar
en el disco, o puede dirigirse directamente a su dispositivo de cinta. Esta puede ser una forma conveniente de
haga una copia de seguridad del equipo, ya que no requiere almacenamiento intermedio. Para restaurar datos, usa
cpio para leer directamente desde el archivo del dispositivo de cinta.
Copia de seguridad y restauración de una computadora
183

Página 226
184
Capítulo 4 ■
Gestión avanzada de discos
La utilidad cpio tiene tres modos de funcionamiento:
Copiar - Modo de salida Este modo, que se activa mediante el uso del - o o - - crear opción, crea una
archivar y copiar archivos en él.
Copiar - En modo se activa la copia - en el modo mediante el uso de la - i o - - Extracto de opción. Esta
modo extrae datos de un archivo existente. Si proporciona un nombre de archivo o un patrón para
match, cpio extraerá solo los archivos cuyos nombres coincidan con el patrón que proporcione.
Modo Copiar - Pasar Este modo se activa mediante la opción - p o - paso a través . Combina
los modos de copia y copia, lo que le permite copiar un árbol de directorios de una ubicación a
otro.
Los modos de copia de salida y copia de entrada se denominan de forma confusa.
Además de las opciones utilizadas para seleccionar el modo, cpio acepta muchas otras opciones,
los más importantes se resumen en la tabla 4.12. Para hacer una copia de seguridad de una computadora,
combine la opción - - crear (o - o ) con una o más de las opciones de la Tabla 4.12; a
restaurar datos, hará lo mismo pero use - - extract (o - i ). En cualquier caso, cpio actúa sobre
nombres de archivo que escribe en la consola. En la práctica, probablemente utilizará la redirección
operador ( < ) para pasar una lista de nombres de archivo al programa.
TABLA 4.12 Opciones para usar con cpio
Opción
Abreviatura Descripción
- - restablecer - acceso - hora - a
Restablece el tiempo de acceso después de leer un archivo para que
no parece haber sido leído.
- - adjuntar
- UNA
Agrega datos a un archivo existente.
- - patrón -
file = nombre de archivo
- E nombre de archivo
Utiliza el contenido del nombre de archivo como una lista de archivos para
extraerse en modo de copia.
- - archivo = nombre de archivo
- F nombre de archivo
Utiliza el nombre de archivo como archivo cpio ; si esto
se omite el parámetro, cpio usa entrada estándar o
salida.
- - formato = formato
- formato H
Utiliza un formato específico para el archivo de almacenamiento.
Los valores comunes para el formato incluyen bin (el
predeterminado, un formato binario antiguo), crc (un formato más nuevo
formato binario con una suma de comprobación) y tar (el
formato utilizado por tar ).

Página 227
Usando dd
La utilidad dd es una herramienta de copia de archivos de bajo nivel, con la capacidad de aplicar ciertos
transformaciones al mismo tiempo. Como herramienta de respaldo, dd es útil para respaldar un
sistema de archivos en bruto, incluso uno que Linux no admita o que haya sido gravemente dañado.
La tabla 4.13 resume las opciones dd que es más probable que utilice al realizar una copia de seguridad
sistema de archivos usando esta herramienta. Consulte la página de manual del programa para obtener opciones adicionales.
Opción
Abreviatura Descripción
N/A
- Yo nombre de archivo
Utiliza el nombre de archivo especificado en lugar del estándar
entrada. (A diferencia de - F , esta opción no redirige
datos resultantes.)
- - no - absoluto -
nombres de archivo
N/A
En el modo de copia, extrae archivos relativos al
directorio actual, incluso si los nombres de archivo en el archivo
contienen rutas de directorio completas.
N/A
- O nombre de archivo
Utiliza el nombre de archivo especificado en lugar del estándar
salida. (A diferencia de - F , esta opción no redirige
datos de entrada.)
- - lista
-t
Muestra una tabla de contenido para la entrada.
- - incondicional
-u
Reemplaza todos los archivos, sin pedir primero
verificación.
- - detallado
-v
Muestra los nombres de archivo a medida que se agregan o
extraído del archivo. Cuando se usa con - t ,
muestra información de listado adicional (similar a
ls - l ).
TABLA 4.13 Operandos dd comunes
Operando
Descripción
bs = tamaño
Opera en trozos (bloques) de tamaño de bytes a la vez.
cuenta = bloques
Copia el número especificado de bloques.
if = archivo
Utiliza el archivo como archivo de origen (entrada). Si se omite este operando,
se supone una entrada estándar.
de = archivo
Escribe la salida en el archivo especificado . Si se omite este operando,
se supone una salida estándar.
Copia de seguridad y restauración de una computadora
185

Página 228
186
Capítulo 4 ■
Gestión avanzada de discos
Para usar dd para hacer una copia de seguridad de una partición, especifique el nombre de archivo del dispositivo de la partición
original con
if = y una partición de respaldo, archivo o dispositivo con = . Por ejemplo, si desea hacer una copia de seguridad
/ dev / sda2 a un archivo en un disco duro externo que está montado en / media / backups , puede
escriba lo siguiente:
# dd if = / dev / sda2 of = / media / backups / [Link]
Si desea restaurar la copia de seguridad, debe invertir los operandos if = y of = .
Debe realizar una copia de seguridad o restaurar solo los sistemas de archivos desmontados utilizando dd .
Hacer una copia de seguridad de un sistema de archivos montado puede producir un sistema de archivos incoherente.
Restaurar a una partición montada puede producir daños graves en el disco. Si tu
necesita hacer una copia de seguridad de un sistema en ejecución usando dd y si el dispositivo en cuestión es
parte de un LVM, puede utilizar la función de instantánea LVM, como se describió anteriormente
en "Uso de instantáneas LVM" y haga una copia de seguridad del volumen de la instantánea.
Si desea aplicar compresión, puede omitir of = (en la copia de seguridad) o if = (en la restauración)
opción y use dd con un programa de compresión en una tubería:
# dd if = / dev / sda2 | gzip -9> /media/backups/[Link]
# gunzip /media/backups/[Link] - | dd de = / dev / sda2
El primer comando hace una copia de seguridad de / dev / sda2 ; el segundo comando restaura esa partición.
La mayor fortaleza de dd es la independencia de su sistema de archivos; puedes hacer una copia de seguridad de cualquier cosa con
dd , incluso si Linux proporciona soporte limitado o nulo para el sistema de archivos. También puede hacer una copia de seguridad
sistema de archivos dañado con dd , lo cual es útil si desea intentar una reparación pero teme causar
más daño al sistema de archivos original. El mayor problema con dd es que, porque
realiza una copia de seguridad de todo byte a byte, desperdicia tiempo y espacio en disco haciendo copias de seguridad
espacio no utilizado en el sistema de archivos. Si tiene una partición de 20 GiB, necesitará 20 GiB de respaldo
espacio de almacenamiento si se realiza una copia de seguridad sin comprimir, incluso si la partición contiene solo 2 KiB de archivos.
Operando
Descripción
saltar = bloques
Omite el número especificado de bloques en la entrada.
buscar = bloques
Comienza a escribir el número especificado de bloques en el archivo de salida.
conv = conversiones
Aplica reglas de conversión de una lista. Desde una perspectiva de respaldo,
noerror es la regla de conversión más interesante; esto causa el
programa para continuar si encuentra un error de entrada / salida, habilitando
copia de seguridad (aunque posiblemente dañada) incluso desde o hacia hardware defectuoso.
TABLA 4.13 Operandos dd comunes (continuación)
Página 229
La aplicación de compresión puede minimizar este problema, pero en algunos casos, las partes no utilizadas de un
El sistema de archivos contiene datos antiguos, por lo que la copia de seguridad puede ser más grande de lo necesario.
La utilidad dcfldd ( [Link] ) es una variante dd con
características adicionales, como un indicador de progreso. La utilidad ddrescue
( [Link] ), aunque
diferente de dd y dcfldd en detalles de uso, se esfuerza más por recuperar
datos de medios defectuosos, que a veces es de vital importancia.
Usando rsync
Para pequeñas tareas de respaldo de red, rsync puede ser todo lo que necesita. Este programa está diseñado para
copiar datos de una computadora a otra en una red, manteniendo dos directorios de red
sincronizado. El programa admite una gran cantidad de opciones y variantes de máquina
especificaciones; sin embargo, un uso general se parece a esto:
$ rsync -av ./ usuario @ remoto: / copias de seguridad /
Este comando copia todos los archivos en el directorio actual a la computadora remota , usando
el nombre de usuario del usuario y coloca los archivos en el directorio ~ / backups de ese sistema.
Como se muestra aquí, los usuarios normales pueden utilizar rsync . Alternativamente, puede ser utilizado por
un script de respaldo para hacer sus transferencias. En cualquier caso, rsync se basa en otro archivo de red:
herramienta de transferencia, como ssh . En algunos casos, esta herramienta puede requerir una contraseña, por lo que puede
necesita estar presente para escribirlo; o puede configurar las computadoras para habilitar la contraseña - gratis
transferencias de archivos.
Aunque rsync no transfiere datos directamente a un medio de respaldo a menos que sea un disco duro
que está montado, puede ser útil para transferencias de datos de red. Los usuarios pueden copiar sus archivos a un
servidor de respaldo central, o el servidor de respaldo puede usar rsync para tomar archivos del cliente de respaldo
ordenadores. En cualquier caso, la computadora del servidor de respaldo puede respaldar los archivos en cinta o
algún otro medio de almacenamiento.
Uso de cpio o tar para hacer una copia de seguridad de una computadora
Las secciones anteriores describen las características básicas de varias utilidades de respaldo comunes. Eso
Sin embargo, es informativo ver cómo se utilizan estas herramientas en la práctica. Por lo tanto, esta sección
ilustra cómo utilizar cpio o tar para realizar una copia de seguridad de una computadora.
A menudo es deseable comprimir las copias de seguridad, pero los programas cpio y tar no comprimen
datos mismos. Para hacer esto, estos programas se basan en un programa externo, como gzip o
bzip2 , para comprimir un archivo cpio o tar completo . El problema con este enfoque es que si
se produce un error al restaurar el archivo comprimido, todos los datos desde ese error en adelante
se perderá. Esto hace que los archivos cpio o tar comprimidos sean peligrosos para la copia de seguridad. Por suerte,
La mayoría de las unidades de cinta admiten compresión en su hardware, y estas utilizan
algoritmos de compresión. Por lo tanto, si su unidad de cinta admite compresión, debe
no comprima una copia de seguridad cpio o tar . Deje que la unidad de cinta haga ese trabajo, y si hay una lectura
Copia de seguridad y restauración de una computadora
187

Página 230
188
Capítulo 4 ■
Gestión avanzada de discos
error al restaurar, probablemente perderá sólo uno o dos archivos. Si su unidad de cinta no incluye
funciones de compresión incorporadas, no debe comprimir sus copias de seguridad o utilizar otro
utilidad, la mayoría de los cuales no sufren este problema.
Para hacer una copia de seguridad de una computadora con cpio , un comando como el siguiente hará el trabajo:
# buscar / | cpio -oF / dev / st0
Debido a que cpio espera una lista de archivos en la entrada estándar, este comando usa el comando find
comando y una tubería para alimentar esta información a cpio . La opción - o le dice a cpio que
crea un archivo y - F especifica dónde debe crearse; en este caso, usa / dev / st0
para crear el archivo en el dispositivo de cinta.
Sin embargo, este comando tiene algunos efectos negativos. En particular, respalda todo,
incluyendo el contenido del sistema de archivos / proc y cualquier disco extraíble montado que pueda
estar. Puede usar la opción - xdev para encontrar que el programa omita montado
directorios de su búsqueda, pero esto significa que tendrá que enumerar explícitamente cada partición que
quiero tener una copia de seguridad. Por ejemplo, puede usar un comando como el siguiente para respaldar
hasta las particiones / home , root ( / ), / boot y / var :
# buscar / inicio / / boot / var -xdev | cpio -oF / dev / st0
Este comando enumera los directorios en un orden particular. Porque la cinta es un
secuencial - medio de acceso, el sistema restaurará elementos en el orden en
que fueron respaldados. Por lo tanto, para las restauraciones parciales más rápidas,
enumere los sistemas de archivos que más espera tener que restaurar primero. En
este ejemplo, / home aparece primero porque los usuarios a veces eliminan
archivos accidentalmente. Retroceder / volver a casa primero, por lo tanto, resulta más rápido
restauración de dichos archivos.
Dependiendo del sistema de archivos que use, es posible que vea una cadena de número de inodo truncado
mensajes. Esto sucede cuando usa un formato cpio antiguo con un sistema de archivos que usa inode
números superiores a 65.536. Para superar este problema, especifique otro formato, como
crc , utilizando - H .
El procedimiento para realizar copias de seguridad con alquitrán es similar; sin embargo, tar no necesita una lista de
archivos enviados a él; proporciona una lista de archivos o directorios en la línea de comando:
# tar cvpf / dev / st0 --one-file-system / home / / boot / var
Normalmente, tar desciende del árbol de directorios; la opción - - one - file - system evita esto,
muy parecido a la opción - xdev para buscar .
Después de crear una copia de seguridad con tar , es posible que desee utilizar tar - - diff (también conocido
como - - compare , od ) comando para verificar la copia de seguridad que acaba de escribir con los archivos
en disco. Alternativamente, puede incluir el calificador - - verify ( W ) para hacer esto
automáticamente. Verificar su copia de seguridad no garantiza que sea legible cuando lo necesite
, pero al menos debería detectar errores importantes causados por cintas muy degradadas. En el otro

Página 231
Por otro lado, es casi seguro que la verificación devolverá algunos errores falsos debido a archivos
cuyo contenido haya cambiado legítimamente entre estar escrito y ser comparado. Esta
puede ser cierto para los archivos de registro, por ejemplo.
Realización de copias de seguridad con medios ópticos
Los medios ópticos requieren procedimientos especiales de respaldo. Como se describe en el Capítulo 3, herramientas como
como cdrecord o growisofs son necesarios para escribir en estos discos.
Una opción para realizar copias de seguridad en discos ópticos es usar mkisofs y luego cdrecord para copiar
archivos a un CD - R o use growisofs para copiar archivos a un DVD o disco Blu - ray. Si copia archivos
Sin embargo, "sin procesar" de esta manera, perderá parte de la información, como los bits de permiso de escritura.
Tendrá más suerte si crea un archivo cpio o tar en el disco, como lo haría cuando
copia de seguridad en cinta. Luego usaría mkisofs / cdrecord o growisofs para copiar este archivo a
el disco. El resultado será un CD - R que puede montar y que contendrá un archivo que
puede leer con cpio o tar .
Una opción algo más directa es crear un archivo de almacenamiento y grabarlo directamente en el
disco óptico usando cdrecord , sin pasar por mkisofs . Tal disco no se podrá montar en el
de forma habitual, pero puede acceder al archivo directamente utilizando el archivo del dispositivo óptico. En
restauración, esto funciona de manera muy similar a una restauración en cinta, excepto que usted especifica el dispositivo óptico
nombre de archivo (como / dev / cdrom ) en lugar del nombre de archivo del dispositivo de cinta (como / dev / st0 ).
Uso de mt para controlar una unidad de cinta
En terminología cpio y tar , cada copia de seguridad es un archivo. Es probable que este archivo contenga muchos archivos
del sistema original, pero como un archivo de paquete RPM o Debian, el archivo de almacenamiento es un
entidad única. A veces, un archivo de almacenamiento es mucho más pequeño que la cinta en la que está colocado.
Si desea almacenar más de un archivo de almacenamiento en una cinta, puede hacerlo utilizando el
nombre de archivo del dispositivo de cinta sin rebobinado. Por ejemplo, los siguientes comandos logran el
mismo objetivo que los mostrados en la sección anterior, pero de una manera algo diferente
y con resultados sutilmente diferentes:
# tar cvlpf / dev / nst0 / home
# tar cvlpf / dev / nst0 /
# tar cvlpf / dev / nst0 / boot
# tar cvlpf / dev / nst0 / var
Después de emitir estos comandos, la cinta contendrá cuatro archivos tar , uno para cada
los cuatro directorios. Para acceder a cada archivo después de escribirlos, debe usar una utilidad especial
Copia de seguridad y restauración de una computadora
189
Página 232
190
Capítulo 4 ■
Gestión avanzada de discos
llamado mt . Este programa avanza y retrocede entre archivos de cinta y de otra manera
controla las funciones de la cinta. Su sintaxis es la siguiente:
mt -f operación del dispositivo [ recuento ] [ argumentos ]
El parámetro de dispositivo es el nombre de archivo del dispositivo de cinta. La utilidad mt admite muchos
operaciones, como se resume en la Tabla 4.14.
TABLA 4.14 Operaciones comunes de tm
Operación
Descripción
fsf
Avanza los archivos de conteo .
bsf
Mueve archivos de conteo hacia atrás .
eod o seod
Mueve al final de los datos de la cinta.
rebobinar
Rebobina la cinta.
offline o rewoffl
Rebobina y descarga la cinta. (La descarga no tiene sentido en algunos
conduce pero expulsa la cinta en otros).
retensión
Rebobina la cinta, la enrolla hasta el final y luego la rebobina
de nuevo. Esta acción mejora la confiabilidad con algunos tipos de cinta,
especialmente si la cinta no se ha utilizado durante varios meses.
borrar
Borra la cinta. (Este comando generalmente no borra el
datos; simplemente marca la cinta como vacía).
estado
Muestra información sobre la unidad de cinta.
carga
Carga una cinta en la unidad. Innecesario con muchas unidades.
compresión
Habilita o deshabilita la compresión pasando un argumento de 1 o 0 ,
respectivamente.
compresión de datos
También habilita y deshabilita la compresión.
Las operaciones de compresión y compresión de datos no son idénticas;
a veces, una unidad de cinta funciona con una pero no con la otra.

Página 233
Por ejemplo, suponga que creó una copia de seguridad en una cinta SCSI, pero ahora desea crear
otra copia de seguridad en la misma cinta sin eliminar la primera copia de seguridad. Podrías emitir el
siguientes comandos para realizar esta tarea:
# mt -f / dev / nst0 rebobinar
# mt -f / dev / nst0 fsf 1
# tar cvlpf / dev / nst0 / directorio / a / back / up
# mt -f / dev / nst0 sin conexión
Estos comandos rebobinan la cinta, espacian el primer archivo, crean una nueva copia de seguridad y
luego descargue la cinta. Dichos comandos son particularmente útiles al realizar incrementos
copias de seguridad, como se describe brevemente.
Planificación de un programa de respaldo
Copia de seguridad informática regular es importante, sino precisamente la forma regular es una cuestión que varía
de un sistema a otro. Si el contenido de una computadora casi nunca cambia (como podría ser cierto
de un enrutador dedicado o una estación de trabajo cuyos archivos de usuario residen en un servidor de archivos), copias de seguridad
una vez
un mes o incluso con menos frecuencia podría estar en orden. Para los servidores de archivos críticos, una vez al día no es demasiado
a menudo. Tendrá que decidir por sí mismo la frecuencia con la que sus sistemas requieren respaldo.
Tenga en cuenta factores como la frecuencia con la que cambian los datos, la importancia de la
datos, el costo de recuperar los datos sin una copia de seguridad actual y el costo de hacer una
apoyo. Los costos se pueden medir en dinero, su propio tiempo, la productividad perdida de los usuarios y
quizás perdió ventas.
Incluso el defensor de las copias de seguridad más entusiasta debe admitir que crear una copia de seguridad completa de un gran
sistema de forma regular puede ser una tarea tediosa. Una copia de seguridad puede tardar varias horas,
dependiendo del tamaño de la copia de seguridad y la velocidad del hardware. Por esta razón, la mayoría de los paquetes de respaldo,
incluido tar , admite copias de seguridad incrementales . Puede crearlos usando - - enumerados -
calificador de archivo incremental a tar , como se muestra en este ejemplo:
# tar cvplf / dev / st0 --listed-incremental / root / inc / / home
Este comando almacena una lista de los archivos que se han respaldado (junto con la identificación
información para ayudar a tar a determinar cuándo los archivos han cambiado) en / root / inc . El siguiente
Una vez que se emite el mismo comando, tar no respaldará los archivos que ya se hayan respaldado
arriba; solo hará una copia de seguridad de los archivos nuevos. Por lo tanto, puede crear un horario en el que realice un
copia de seguridad de toda la computadora solo ocasionalmente, por ejemplo, una vez a la semana o una vez al mes. Usted d
Haga esto eliminando el archivo de incremento y ejecutando una copia de seguridad como de costumbre. En semanas intermedias
o días, puede realizar una copia de seguridad incremental, en la que sólo los archivos nuevos y modificados
respaldado. Estas copias de seguridad incrementales tomarán comparativamente poco tiempo.
Con cpio , la clave para las copias de seguridad incrementales está en la lista de archivos que se envían al programa. Tú
puede realizar una copia de seguridad incremental utilizando las opciones de búsqueda para ubicar solo archivos o archivos nuevos
que han cambiado desde la última copia de seguridad. Por ejemplo, la opción de archivo más reciente para buscar
hace que ese programa devuelva solo archivos que se hayan modificado más recientemente que file .
Copia de seguridad y restauración de una computadora
191

Página 234
192
Capítulo 4 ■
Gestión avanzada de discos
Por lo tanto, puede crear un archivo (quizás un registro de su actividad de respaldo) durante cada respaldo
y utilícelo como una forma de determinar qué archivos se han modificado desde la última copia de seguridad.
Puede utilizar copias de seguridad incrementales junto con mt para almacenar múltiples
copias de seguridad en una cinta. Por lo general, tendrá dos cintas para un conjunto de respaldo: una para un
copia de seguridad y una para las copias de seguridad incrementales intermedias. Suponga que realiza una copia de seguridad
completa en
Lunes. El martes, insertaría la cinta incremental y realizaría la primera
apoyo. El miércoles, insertaría esta cinta y escribiría mt - f / dev / nst0 fsf 1 para omitir
la copia de seguridad incremental del martes pasado y luego realice otra copia de seguridad incremental. En
El jueves, escribiría mt - f / dev / nst0 fsf 2 , y así sucesivamente.
Realizar copias de seguridad incrementales tiene un par de inconvenientes. Uno es que complican
restauracion. Suponga que realiza una copia de seguridad completa el lunes y copias de seguridad incrementales cada
otro día. Si un sistema falla el viernes, deberá restaurar la copia de seguridad completa y varias
copias de seguridad incrementales. En segundo lugar, después de restaurar una copia de seguridad incremental, su sistema
contienen archivos que ha eliminado desde la copia de seguridad completa. Si los archivos tienen una vida útil corta en un
computadora, esto puede resultar en la restauración de muchos archivos "muertos" cuando llegue el momento
para hacerlo.
A pesar de estos problemas, las copias de seguridad incrementales pueden ser una herramienta extremadamente útil para ayudar
hacer que las copias de seguridad sean manejables. También pueden reducir el desgaste de cintas y unidades de cinta,
y pueden minimizar el tiempo que lleva restaurar archivos si sabe que los archivos que necesita
para restaurar fueron respaldados en una cinta incremental.
Ya sea que realice copias de seguridad incrementales o nada más que completas
copias de seguridad, debe mantener varias copias de seguridad. Garantías de la Ley de Murphy
que su copia de seguridad fallará cuando más la necesite, por lo que tener una
para su copia de seguridad (incluso si es de una semana o un mes antes) puede ayudar
inmensamente. Un plan de respaldo típico incluye un conjunto rotativo de cintas de respaldo.
Por ejemplo, puede tener dos cintas por semana, una para una copia de seguridad completa en
un día y otro para realizar varias copias de seguridad incrementales. Entonces, ocho cintas
mantenga copias de seguridad durante cuatro semanas.

Preparación para desastres: recuperación de copias de seguridad


Se recomienda crear copias de seguridad, pero no es suficiente. También debes tener alguna forma
para restaurar copias de seguridad en caso de desastre. Esta tarea involucra dos aspectos: restauraciones parciales y
recuperación de emergencia.
Las restauraciones parciales implican recuperar solo unos pocos archivos no críticos. Por ejemplo, los usuarios pueden
acudir a usted y pedirle que restaure los archivos de sus directorios de inicio. Puedes hacerlo de manera justa
fácilmente usando el comando - - extract ( x ) tar , como en:
# cd /
# tar xvpf / dev / st0 home / username / filename

Página 235
Esta secuencia implica cambiar al directorio raíz y emitir un
ruta relativa al archivo o directorio que se debe restaurar. Esto es requerido
porque tar normalmente elimina los archivos iniciales / iniciales que respalda, por lo que
los archivos se registran en el archivo como nombres de archivo relativos. Si intenta restaurar un
archivo con un nombre de archivo absoluto, no funcionará.
Cuando usa cpio , el procedimiento es similar, pero usa la opción - - extract ( - i ),
junto con otras opciones para alimentar el nombre del archivo y quizás hacer otras cosas:
# cd /
# cpio -ivF / dev / st0 inicio / nombre de usuario / nombre de archivo
Este comando cpio usa - F para que cpio recupere datos del
archivo especificado ( / dev / st0 ) en lugar de la entrada estándar. Alternativamente,
podría usar la redirección para hacer el trabajo, como en cpio - iv </ dev / st0
inicio / nombre de usuario / nombre de archivo .
Ya sea que esté usando tar o cpio , necesitará saber el nombre exacto del archivo o
directorio que desea restaurar para hacer esto. Si no conoce el nombre exacto del archivo,
puede que necesite usar el comando - - list ( t ) para cpio o tar para examinar el contenido completo de
la cinta, o al menos todo hasta que vea el archivo que desea restaurar.
Si utiliza copias de seguridad incrementales, puede utilizar la lista de archivos incrementales para
localice el nombre de archivo que desea restaurar.
Un problema mucho más grave es el de recuperar un sistema que está muy dañado. Si
su disco duro ha fallado o su sistema ha sido invadido por crackers, debe restaurar
todo el sistema desde cero, sin el beneficio de su instalación normal. Usted puede
tome cualquiera de los varios enfoques para este problema, incluidos los siguientes:
Disco de instalación de la distribución La mayoría de los discos de instalación de las distribuciones de Linux tienen algunos
especie de sistema de recuperación de emergencia. Estos sistemas suelen ser Linux pequeños pero funcionales
instalaciones con un puñado de herramientas vitales, como fdisk , mkfs , Vi y tar . Revisar su
distribución de la documentación o iniciar su medio de inicio y estudiar sus opciones para obtener más información.
Sistema Linux basado en CD Ahora hay varios sistemas Linux disponibles que arrancan desde CD -
ROM o DVD. Los ejemplos incluyen Knoppix ( [Link] ), SystemRescueCd
( [Link] ) y PartedMagic ( [Link] ). Todos estos
Los sistemas se pueden utilizar para ayudar a recuperar o restaurar una instalación de Linux dañada.
Sistema de emergencia en disco extraíble Puede crear su propio sistema de emergencia en un
disco extraíble, como una unidad flash USB. Una unidad flash de 16 GiB es suficiente para guardar una
Copia de seguridad y restauración de una computadora
193

Página 236
194
Capítulo 4 ■
Gestión avanzada de discos
cómoda instalación de Linux, aunque no funcionará tan rápido como una instalación en un
Disco duro PATA, SATA o SCSI.
Partición de recuperación de emergencia Si planifica con anticipación, puede crear una pequeña
instalación de su distribución preferida junto con la instalación habitual. Debieras
No monte este sistema en / etc / fstab . Este sistema puede ser útil para recuperarse de algunos
problemas, como la corrupción del sistema de archivos de software, pero no es útil para otros, como un
falla total del disco duro.
Reinstalación parcial Puede reinstalar un sistema Linux mínimo y luego usarlo para recuperar
su instalación original. Este enfoque es muy parecido a la partición de recuperación de emergencia.
enfoque, pero la recuperación ante desastres lleva más tiempo. Por otro lado, funcionará incluso
si su disco duro está completamente destruido.
Cualquiera que sea el enfoque que elija utilizar, debe probarlo antes de necesitarlo. Aprender en
al menos los conceptos básicos de las herramientas disponibles en cualquier sistema que planee utilizar. Si usa inusual
herramientas de copia de seguridad (como software de copia de seguridad comercial), asegúrese de copiar esas herramientas a su
sistema de emergencia o téngalos disponibles en un disco extraíble separado. Si es necesario
recuperar clientes a través de enlaces de red, probar esas configuraciones también.
Es posible que no pueda probar completamente sus herramientas de restauración de emergencia. Idealmente, deberías
inicie las herramientas, restaure un sistema y pruebe que el sistema funciona. Esto puede ser posible si
tiene hardware de repuesto para experimentar, pero si no tiene este lujo, es posible que tenga
para conformarse con realizar una restauración de prueba de algunos archivos y probar un arranque de emergencia
procedimiento - digamos, usando Super GRUB Disk ( [Link] ). Tenga en cuenta que un
el sistema recién restaurado no podrá arrancar; necesitará una herramienta como Super GRUB Disk para
arrancar la primera vez. Luego puede reinstalar GRUB para restaurar la capacidad del sistema para arrancar desde
el disco duro.

Resumen
La mayoría de las distribuciones de Linux crean instalaciones basadas en particiones bastante convencionales de forma
predeterminada;
Sin embargo, las herramientas avanzadas pueden ser alternativas muy útiles a la partición convencional.
esquemas en determinadas situaciones. RAID le permite combinar varios discos duros juntos para
crear sistemas de archivos más grandes, para mejorar la velocidad, para mejorar la confiabilidad o para hacer todas estas cosas.
LVM puede usar una sola área de almacenamiento o múltiples áreas de almacenamiento para crear sistemas de archivos más grandes,
para
mejorar la velocidad, mejorar la flexibilidad o hacer todas estas cosas. Puede combinar RAID
y LVM para obtener todos estos beneficios. Sin embargo, tanto RAID como LVM tienen el costo de
complejidad agregada, y algunas configuraciones pueden reducir la confiabilidad.
Ajustar el acceso al disco puede mejorar el rendimiento del disco. Las mejoras más dramáticas
son posibles con discos PATA más antiguos, especialmente si los controladores y opciones predeterminados son
mal configurado para los discos. Para discos SCSI y SATA más modernos, rendimiento espectacular
Las mejoras son poco probables, pero es posible que desee probar el rendimiento de su disco solo para

Página 237
seguro que es razonable. Esto incluye el uso de una utilidad SMART para verificar que el hardware del disco
no está a punto de fallar.
Después de esforzarse en crear una configuración ideal de partición, RAID o LVM; instalando
Linux; y modificando el sistema, sería una pena tirar todo ese esfuerzo. Tu
los usuarios dirían lo mismo sobre sus datos en su computadora. Por lo tanto, debe planificar y
Implemente una estrategia de respaldo, respaldando sus datos de manera regular. Si lo hace, los problemas
como errores importantes del usuario, errores importantes de software, intrusiones del sistema, fallas de hardware y
Incluso el robo de hardware se puede superar en cuestión de minutos u horas restaurando un
apoyo.

Examen esencial
Explique las necesidades de particionamiento de una configuración RAID. Particiones MBR agregadas a un
La matriz RAID de software de Linux debe ser del tipo 0xFD. En un disco GPT, la partición está marcada
como tipo 0xFD00 en GPT fdisk o con el indicador de incursión configurado en herramientas basadas en libparted .
Un solo disco puede contener una o más particiones RAID, cada una de las cuales se combina con una
partición coincidente en otro disco físico.
Resuma los principales niveles de RAID admitidos por Linux. RAID lineal, aunque
técnicamente no es RAID, combina dispositivos de una manera simple, uno tras otro. RAID 0
combina dos dispositivos del mismo tamaño de forma intercalada para mejorar el rendimiento.
RAID 1 crea una copia duplicada de un dispositivo en otro para mejorar la confiabilidad. REDADA
los niveles 4, 5 y 6 usan sumas de comprobación y un dispositivo adicional (dos para RAID 6) para mejorar ambos
fiabilidad y rapidez. RAID 10 es similar a RAID 4 y 5 en su propósito, pero funciona
combinando las funciones RAID 1 y RAID 0.
Explique las necesidades de particionamiento de una configuración LVM. Particiones MBR en Linux
La configuración de LVM debe ser de tipo 0x8E. En un disco GPT, la partición se marca como tipo 0x8E00
en GPT fdisk o con el indicador lvm configurado en herramientas basadas en libparted . Un solo disco puede contener
una o más particiones LVM, que se pueden combinar entre sí o con particiones en otras
discos para crear un grupo de volumen.
Resuma los tres niveles de estructuras de datos empleados por LVM. Los volúmenes físicos son
en la parte inferior de la jerarquía de la estructura de datos LVM; se trata de particiones, volúmenes RAID,
u otros dispositivos de bajo nivel que estén debidamente señalizados y marcados con datos LVM básicos
estructuras. Los volúmenes físicos se combinan en grupos de volúmenes, que actúan como un conjunto de
espacio en disco asignable. Los volúmenes lógicos se crean dentro de este grupo de espacio en disco y pueden
ser utilizado como particiones; normalmente contienen sistemas de archivos o espacio de intercambio.
Describa cómo LVM puede mejorar las operaciones de respaldo. Puede crear una instantánea de un
volumen lógico - es decir, un duplicado del volumen lógico original que no cambiará ni siquiera
ya que los accesos continúan sobre el original. Haciendo una copia de seguridad de la instantánea en lugar del original
volumen lógico, se asegura de que estará en un estado coherente, incluso si el original está siendo
se utiliza mucho y, por lo tanto, puede producir una copia de seguridad que contiene archivos que no coinciden.
Examen esencial
195

Página 238
196
Capítulo 4 ■
Gestión avanzada de discos
Describa cómo se puede optimizar la velocidad de acceso al disco PATA. Puede utilizar el programa hdparm
para probar la velocidad de lectura del disco sin procesar y para configurar varias opciones de acceso al disco de bajo nivel. Éstos
incluyen
el uso del modo DMA frente al modo PIO, así como el modo de transferencia DMA o PIO específico. Estas
Las opciones son significativas solo para discos PATA más antiguos que utilizan la PATA recientemente obsoleta.
conductores.
Resuma las opciones comunes de hardware de respaldo. La cinta es el medio de copia de seguridad tradicional,
y sigue siendo una buena opción para grandes instalaciones. La cinta puede ser cara para los pequeños
sistemas, sin embargo. Para tales computadoras, un disco duro externo o extraíble puede ser una buena
alternativa. Los medios ópticos (CD - R, DVD grabables y discos Blu - ray grabables) se pueden
un medio de copia de seguridad útil para sistemas más pequeños o para pequeñas cantidades de datos, pero estos medios
carecen de la capacidad para realizar copias de seguridad de instalaciones muy grandes.
Resuma las opciones comunes de software de respaldo. Los programas tar y cpio son ambos
herramientas de copia de seguridad populares basadas en archivos que son útiles para realizar copias de seguridad de instalaciones
completas de Linux.
Al realizar una copia de seguridad de sistemas de archivos exóticos que Linux puede no admitir por completo o cuando necesite un
imagen de bajo nivel antes de intentar reparaciones o modificaciones de un valioso sistema de archivos, dd es un
buena elección. Herramientas comerciales y basadas en la red, como BRU, ARKEIA, AMDANDA,
Bacula y BackupPC son útiles para realizar copias de seguridad de sistemas grandes o para realizar copias de seguridad
de redes enteras.
Explique los programas de respaldo comunes. Una copia de seguridad completa hace una copia de seguridad de todos los archivos
en una computadora
o en un árbol de directorios. Estas copias de seguridad son fáciles de restaurar pero consumen una gran cantidad de espacio.
en el medio de respaldo. Para ahorrar tiempo y espacio, se pueden realizar copias de seguridad incrementales en
entre copias de seguridad completas. Estas copias de seguridad almacenan solo los archivos que han cambiado desde la última
copia de seguridad completa o incremental. Normalmente, realizará una copia de seguridad completa de vez en cuando
(quizás una vez al mes o una vez a la semana), con copias de seguridad incrementales con mayor frecuencia. los
la programación óptima depende de muchos factores, incluida la frecuencia con la que cambian los archivos, la
valiosos son sus datos y sus recursos disponibles.

Página 239
Preguntas de revisión
1. Al escribir fdisk - lu / dev / hda en una computadora Linux con un disco MBR se produce una lista
de cuatro particiones: / dev / hda1, / dev / hda2, / dev / hda5 y / dev / hda6. De los cuales
lo siguiente es cierto?
R. El disco contiene dos particiones primarias y dos particiones extendidas.
B. O / dev / hda1 o / dev / hda2 es una partición extendida.
C. La tabla de particiones está dañada; debería haber un / dev / hda3 y un / dev / hda4 antes
/ dev / hda5.
D. Si agrega un / dev / hda3 con fdisk, / dev / hda5 se convertirá en / dev / hda6 y / dev /
hda6 se convertirá en / dev / hda7.
2. Un nuevo servidor llegará al final de la semana. Tendrá cuatro discos duros de 1 TiB instalados
y configurado en una matriz RAID 5 sin unidades de repuesto de reserva activa. Cuantos datos pueden ser
almacenado dentro de esta matriz?
A. 4 TiB
B. 3 TiB
C. 2 TiB
D. 1 TiB
3. Su gerente le ha dicho que el servidor que se está moviendo del laboratorio de pruebas a
la producción debe tener las dos unidades reflejadas. Para qué nivel de RAID se utiliza
espejo?
A. RAID 6
B. RAID 5
C. RAID 1
D. RAID 0
4. ¿Qué puede concluir de la siguiente línea, que se encuentra en / proc / mdstat?
md0: raid4 activo sdd2 [2] sdc1 [1] sda8 [0]
A. El dispositivo / dev / md0 RAID 4 se crea a partir de / dev / sda8, / dev / sdc1 y / dev / sdd2
particiones.
B. Al dispositivo RAID / dev / md0 le falta una partición; debe tener cuatro componentes
particiones, dado su nivel RAID (4).
C. El dispositivo RAID / dev / md0 está muy mal configurado; los números de partición del
los dispositivos componentes deben coincidir.
D. Ninguno de los anteriores.
Preguntas de revisión
197

Página 240
198
Capítulo 4 ■
Gestión avanzada de discos
5. ¿Cuál de los siguientes comandos ensambla correctamente una matriz RAID 1 desde el componente?
dispositivos / dev / sda1 y / dev / hda2?
A. mdadm - - crear - - nivel = 1 - - raid - dispositivos = 2 / dev / sda1 / dev / hda2
B. mdadm - - nivel = 1 - - raid - dispositivos = 2 / dev / sda1 / dev / hda2
C. mdadm - - nivel = 5 - - raid - dispositivos = 2 / dev / sda1 / dev / hda2
D. mdadm - - crear / dev / md0 - - nivel = 1 - - raid - dispositivos = 2 / dev / sda1 / dev / hda2
6. Una vez que se inicia Linux, ¿qué archivo puede ver para ver qué IRQ están en uso en Linux?
¿computadora?
A. / etc / interrupts
B. / arranque / interrupciones
C. / root / interrupciones
D. / proc / interrupciones
7.
¿Por qué debería tener cuidado al utilizar hdparm?
R. La herramienta hdparm puede configurar opciones de hardware que no son compatibles con algunos hardware,
causando así la corrupción de datos.
B. Debido a que hdparm modifica las tablas de particiones, un error puede resultar en la pérdida de una o más
particiones y todos sus datos.
C. Al cambiar las asignaciones de archivos de dispositivos de hardware, puede confundirse acerca de qué
la unidad es / dev / hda y cuál es / dev / hdb.
D. La herramienta hdparm puede hacer que Linux trate una partición ext2fs como si fuera FAT,
resultando en una grave corrupción de datos.
8. ¿Cuál de las siguientes herramientas se utiliza para inicializar una partición para que pueda funcionar como
volumen físico en una configuración LVM?
A. pvchange
B. pvcreate
C. lvcreate
D. lvconvert
9. ¿Cuál de los siguientes archivos de dispositivo podría incluir razonablemente en un grupo de volumen?
suponiendo que estén debidamente señalizados y preparados? (Seleccione todas las que correspondan.)
A. / dev / sdc
B. / dev / md1
C. / dev / sda7
D. / dev / hdb2

Página 241
10. Su computadora se ha bloqueado debido a daños en el sistema de archivos y debe realizar
recuperación de emergencia mediante un disco de arranque de emergencia. ¿Cómo puedes activar tu LVM?
dispositivos, si no se activan automáticamente cuando inicia su disco de emergencia?
A. vgscan
B. vgimport
C. vgchange - ay
D. vgdisplay
11. ¿Dónde es probable que encuentre nodos de dispositivos para el grupo de volumen MyGroup?
A. / dev / mapper
B. / dev / mygroup
C. / dev / lvm
D. / dev / LVM / MyGroup
12. ¿Cuál es el procedimiento apropiado para aumentar el tamaño de un volumen lógico que contiene un
sistema de archivos ext3? (Suponga que existe suficiente espacio libre en el grupo de volumen).
A. Use resize2fs para cambiar el tamaño del sistema de archivos, y luego lvresize para cambiar el tamaño de la lógica
volume, y luego resize2fs nuevamente para hacer que el sistema de archivos llene el volumen lógico
precisamente.
B. Utilice resize2fs para cambiar el tamaño del sistema de archivos seguido de lvresize para cambiar el tamaño de la lógica
volumen.
C. Uso GParted para mover otros volúmenes lógicos, si es necesario, de modo que el volumen lógico
se puede cambiar el tamaño y luego cambiar el tamaño del volumen lógico de destino.
D. Utilice lvresize para cambiar el tamaño del volumen lógico seguido de resize2fs para cambiar el tamaño del
sistema de archivos.
13. Tiene una instalación antigua de Debian en el volumen lógico de Debian en el volumen MyLVM
grupo. Quiere instalar una nueva versión de Fedora Linux para reemplazar este Debian antiguo
instalación. El volumen lógico de Debian actual es del tamaño adecuado para la nueva instalación,
pero desea darle al volumen lógico un nuevo nombre para evitar confusiones. Como puedes
¿hacer esto?
A. vgrename MyLVM - n fedora - o debian
B. lvrename MyLVM debian fedora
C. mv / dev / MyLVM / debian / dev / MyLVM / fedora
D. lvadjust MyLVM - nombre debian, fedora
Preguntas de revisión
199

Página 242
200
Capítulo 4 ■
Gestión avanzada de discos
14. ¿Cuáles de los siguientes comandos se utilizan comúnmente para crear archivos de almacenamiento? (Seleccionar todo
eso aplica.)
A. restaurar
B. alquitrán
C. cinta
D. cpio
15. ¿Cuál de los siguientes comandos realiza una copia de seguridad del directorio / home en una unidad de cinta ATAPI?
A. tar cvlpf / home / dev / st0
B. tar cvlpf / home / dev / ht0
C. tar cvf / dev / st0 / home
D. tar cvf / dev / ht0 / home
16. ¿Cuál es el problema con los siguientes comandos, que están destinados a registrar un incremento
copia de seguridad en una cinta que ya contiene una copia de seguridad incremental?
# mt -f / dev / st0 fsf 1
# tar cvpf / dev / st0 --listed-incremental / root / inc / home
A. El comando mt debe terminar en 2, en lugar de 1, para pasar a la segunda posición
en la cinta.
B. Al hacer una copia de seguridad de / home, el archivo incremental debe residir en / home, no en / root.
C. El nombre de archivo del dispositivo debe ser un nombre que no sea de reenvío (como / dev / nst0), no un
rebobinar el nombre (/ dev / st0).
D. La copia de seguridad incremental debe incluir el directorio raíz (/); no puede incluir solo / home.
17. Necesita restaurar algunos archivos que se eliminaron accidentalmente. Cuál de los siguientes
Se pueden usar comandos para listar el contenido de un archivo almacenado en una cinta SCSI?
A. cpio - itv> / dev / st0
B. cpio - otv> / dev / st0
C. cpio - otv </ dev / st0
D. cpio - itv </ dev / st0
18. Llega al trabajo el lunes por la mañana y descubre que el servidor se ha bloqueado. Todas las indicaciones
señalan que el accidente ocurrió esa misma mañana. Los scripts hacen automáticamente una copia de seguridad completa
del servidor todos los viernes por la noche y una copia de seguridad incremental todas las demás noches. Que cintas hacen
necesita restaurar los datos en un nuevo servidor? (Elija todas las que correspondan).
A. Cinta del jueves
B. Cinta del viernes
C. Cinta del sábado
D. Cinta del domingo

Página 243
19. Una partición de 20 GiB, / dev / sda1, que contiene su instalación principal de Linux, se ha convertido
dañado por el uso inadecuado de una utilidad de disco de bajo nivel. Antes de intentar repararlo con
fsck, decide realizar una copia de seguridad en una partición de 25 GiB que no se utiliza actualmente, / dev / sdc6. Como puedo
¿tu hiciste esto?
A. dd if = / dev / sda1 de = / dev / sdc6
B. dd de = / dev / sda1 si = / dev / sdc6
C. dd if = / dev / sda1 of = / dev / sdc6 bs = 1024 count = 2048
D. dd of = / dev / sda1 if = / dev / sdc6 bs = 1024 count = 2048
20. ¿Cuál de los siguientes es un medio de copia de seguridad secuencial?
A. Cinta
B. Disco duro externo
C. DVD grabable
D. Blu - ray grabable
Preguntas de revisión
201

Página 244
202
Capítulo 4 ■
Gestión avanzada de discos

Respuestas a las preguntas de repaso


1. B. Las particiones lógicas están numeradas del 5 en adelante, y residen dentro de una extensión
partición con un número entre 1 y 4. Por lo tanto, una de las dos primeras particiones debe
ser una partición extendida que alberga las particiones 5 y 6. Porque las particiones lógicas son
numerados a partir del 5, sus números no cambiarán si posteriormente se agrega / dev / hda3.
El disco contiene una partición primaria, una extendida y dos lógicas.
2. B. En una matriz RAID 5, la cantidad de datos que se pueden almacenar es igual a la cantidad de
discos menos 1, ya que esa cantidad de espacio se utilizará para almacenar información de paridad. (Caliente
las unidades de repuesto en espera reducen aún más el espacio de almacenamiento disponible, si se utilizan) .En este caso, hay
un total de cuatro unidades. Restar uno significa que la cantidad de espacio de datos disponible es igual a
tres veces el tamaño del disco de 1 TiB, o un total de 3 TiB.
3. C. En una matriz RAID 1, los discos se duplican. RAID 5 es una implementación de división de discos
con paridad, mientras que RAID 0 es la división de discos sin paridad. RAID 6 es un experimento
implementación de bandas con paridad que pueden sobrevivir al fallo de dos discos a la vez.
4. A. La opción A resume correctamente parte de la información codificada en la línea especificada.
(La matriz también se marca como activa y el orden de los dispositivos se codifica en el
números que siguen a sus nombres.) La opción B es incorrecta porque las matrices RAID 4 se pueden construir
desde tan solo tres dispositivos; el nivel de RAID no especifica el número mínimo de
dispositivos componentes. La opción C es incorrecta porque la implementación de RAID de software de Linux
no requiere que los dispositivos de los componentes tengan números de partición coincidentes. Porque opción
A es correcta, la opción D no puede ser correcta.
5. D. La opción D es el comando correcto para hacer lo que pide la pregunta. (Esta respuesta reúne el
matriz para que sea accesible como / dev / md0; la pregunta no especifica un dispositivo de destino en particular,
pero debe especificar uno con mdadm.) La opción A es correcta, excepto que falta el
nombre de archivo del dispositivo para la opción - - create. A las opciones B y C les faltan las necesarias
- - crear la opción por completo, y la opción C indica incorrectamente que el nivel RAID es 5.
6. D. Una vez que se inicia Linux, puede verificar el consumo de recursos examinando los archivos en el
/ proc sistema de archivos. En particular, / proc / interrupts contiene información de uso de IRQ. El otro
Las opciones enumeradas no existen como archivos estándar actualizados dinámicamente en Linux.
7.
A. El programa hdparm manipula las opciones de bajo nivel en los controladores de disco duro ATA, como
como el uso de los modos DMA o PIO. Si un controlador tiene errores o no es compatible con un
modo, el resultado puede ser la corrupción de datos o la pérdida de acceso a los discos duros. La utilidad no tiene nada
que ver con tablas de particiones, asignaciones de archivos de dispositivos o sistemas de archivos en sí.
8. B. La utilidad pvcreate establece las estructuras de datos básicas que necesita LVM en un
volumen, por lo que la opción B es correcta. La utilidad pvchange cambia los atributos de volumen físico pero
no prepara una partición como la pregunta. Las opciones C y D operan ambas en lógica
volúmenes, no volúmenes físicos: lvcreate crea un nuevo volumen lógico y lvconvert
convierte entre modos, como por ejemplo cuando se fusiona una instantánea con su padre.

Página 245
9. A, B, C, D. Todos los dispositivos enumerados se pueden incluir en una configuración LVM. A pesar de que
usar un disco completo, como en la opción A, es inusual, es una opción válida. La opción B denota un RAID
dispositivo, que puede incluir si desea combinar los beneficios de RAID y
LVM. Las opciones C y D son opciones LVM convencionales en particiones que utilizan SCSI y PATA
discos, respectivamente.
10. C. El comando vgchange con su opción -ay, activa los dispositivos de un grupo de volumen, por lo que
la opción C es correcta. El comando vgscan busca grupos de volúmenes pero no se activa
los nodos de dispositivo para los volúmenes lógicos que contiene. Se utiliza el comando vgimport
para importar (activar) un grupo de volumen previamente exportado (desactivado); pero la pregunta
especifica que los problemas fueron causados por un bloqueo del sistema, no una exportación incorrecta
grupo de volumen, por lo que la opción B es incorrecta. El comando vgdisplay muestra información sobre
el grupo de volumen; no activa los nodos de dispositivo para sus volúmenes lógicos.
11. A. El directorio / dev / mapper contiene archivos de dispositivo para volúmenes lógicos, por lo que la opción A es correcta.
(Los archivos tomarán el formato / dev / mapper / MyGroup - lvname , donde lvname es el
nombre del volumen.) Aunque / dev / groupname , donde groupname es el nombre del grupo de volumen,
normalmente contiene duplicados de nodos de dispositivos de volumen lógico, porque Linux usa un caso:
sistema de archivos sensible, la opción B es incorrecta. Ni / dev / lvm ni / dev / LVM es un estándar
ubicación para los nodos de dispositivos de volumen lógico, por lo que las opciones C y D son incorrectas. Tenga en cuenta que
cualquiera de estas opciones se puede hacer correcta creando reglas udev personalizadas; sin embargo,
estas no son configuraciones estándar.
12. D. La opción D resume correctamente el procedimiento. Las opciones A y B son ambas posibilidades
al reducir un volumen lógico, pero la pregunta se refiere a aumentar el volumen lógico.
La opción C resume correctamente el procedimiento para ajustar las particiones, pero una de las claves
Las ventajas de LVM es que evita la necesidad de ajustar los tamaños y posiciones de
contenedores del sistema de archivos distintos al que se está ajustando.
13. B. La opción B presenta el comando correcto para hacer lo que pide la pregunta. Vgrename de la opción A
El comando se usa para cambiar el nombre de un grupo de volúmenes (MyLVM en este ejemplo), y la sintaxis en
la opción A es incorrecta, por lo que esta opción es incorrecta. Aunque la opción C cambiará temporalmente
el nombre del archivo del dispositivo, el efecto no durará en los inicios y el nombre del volumen lógico
en sí mismo no se cambiará. El comando lvadjust de la opción D es ficticio.
14. B, D. Los programas tar y cpio son utilidades comunes de creación de archivos de Linux. los
el comando restaurar restaura (pero no hace una copia de seguridad) de los datos; su comando de contraparte de respaldo
es volcado. No hay un comando de cinta estándar en Linux.
15. D. El nombre de archivo del dispositivo para una unidad de cinta ATAPI es / dev / ht0; / dev / st0 se refiere a SCSI
unidad de cinta. El dispositivo de destino o el nombre de archivo debe seguir el calificador - - file (f); los primeros dos
Las opciones intentan hacer una copia de seguridad del contenido del dispositivo de cinta en el archivo / home.
16. C. El dispositivo / dev / st0 (y / dev / ht0, para el caso) se rebobina después de cada operación.
Por lo tanto, el primer comando dado pasará a la primera copia de seguridad incremental y luego
rebobinar inmediatamente. Por lo tanto, el segundo comando sobrescribirá el primer
apoyo.
17. D. Con la utilidad cpio, la opción - i se usa para leer desde una fuente externa - en este
caso que viene en (<) de / dev / st0. Las opciones - tv se utilizan para mostrar los archivos en la cinta.
y proporcione una lista de lo que hay allí.
Respuestas a las preguntas de repaso
203

Página 246
204
Capítulo 4 ■
Gestión avanzada de discos
18. B, C, D. Para restaurar los datos, debe restaurar la copia de seguridad completa más reciente, que fue
hecho el viernes por la noche. Después de la restauración completa, debe restaurar las copias de seguridad incrementales en
el orden en que se hicieron. En este caso, dos incrementales (sábado y domingo)
se realizaron después de la copia de seguridad completa y también deben restaurarse.
19. A. La opción A presenta el comando correcto para hacer lo especificado. La opción B invierte la
if = y of = opciones, el efecto es que el / dev / sdc6 actualmente vacío será
duplicado en / dev / sda1, ¡eliminando por completo su instalación ya dañada!
La opción C agrega innecesariamente las opciones de tamaño de bloque (bs =) y count =; y peor, se pone
mal, de modo que solo se copiarán 2048 KiB (2 MiB) de la partición de 20 GiB.
La opción D agrava los errores de las opciones B y C, que de hecho es mejor
que la opción B, ya que solo se perderán 2 MiB de datos de la partición de destino.
20. A. La cinta es un medio de copia de seguridad secuencial. Los discos duros, DVD y discos Blu-ray son todos
medios de acceso aleatorio, no secuenciales.

Página 247

Redes
Configuración
EL SIGUIENTE PROFESIONAL DE LINUX
LOS OBJETIVOS DEL INSTITUTO ESTÁN CUBIERTOS EN
ESTE CAPÍTULO:
205.1 Configuración de red básica (peso: 3)
205.2 Configuración de red avanzada y
resolución de problemas (peso: 4)
205.3 Resolución de problemas de red (peso: 5)

Capítulo

5
Página 248
Las computadoras de hoy son a menudo inútiles sin una red. Personas
usar computadoras para navegar por la Web, intercambiar correo electrónico, almacenar
documentos en computadoras remotas, e incluso juegos. Linux
las computadoras se pueden configurar como clientes de red (que inician conexiones), como servidores
(que responden a las solicitudes de conexión de los clientes), o ambos. Por esta razón, es fundamental
que comprende cómo configurar una red.
La configuración de red comienza con abrir una interfaz de red y asignar
atributos básicos. Las configuraciones más avanzadas implican diagnósticos más sofisticados
y configuraciones de enrutamiento, incluidas las medidas de seguridad que pueden permitir a los usuarios intercambiar
documentos confidenciales en redes inseguras. Porque las configuraciones de red a menudo van
mal, este capítulo concluye con una mirada a los diagnósticos de red y la resolución de problemas.
Este capítulo enfatiza el Protocolo de control de transmisión / Internet.
Conjunto de herramientas de red de protocolo (TCP / IP). TCP / IP es el más común
tipo de red en la actualidad, y es la base de la Internet que abarca todo el mundo.
Otros tipos de redes, como AppleTalk, Internetwork Packet Exchange /
El intercambio de paquetes secuenciado (IPX / SPX) y DECnet existen y siguen
utilizado en algunos entornos. Linux admite muchas de estas redes
pilas de protocolos , como se les llama, pero deben configurarse de manera diferente
de las herramientas TCP / IP descritas en este capítulo y en otras partes de este libro.

Realización de la configuración básica de la red


Se deben configurar varias funciones de red básicas antes de poder continuar con las
tareas avanzadas, incluida la configuración de las herramientas de red que son las razones por las que
conectar una computadora a una red. (La mayoría de estas herramientas se describen a continuación
capítulos de este libro.) Si su red emplea protocolos inalámbricos (también conocidos como Wi-Fi ), el primero de
estas tareas es realizar estas conexiones inalámbricas. (En una red cableada, la tarea equivalente es
simplemente conectando un cable a la computadora.) Una vez que el hardware cableado o inalámbrico de bajo nivel
está configurada, puede proceder a conectarse a una red (utilizando la configuración automática o manual).
Configuración de la dirección IP), estableciendo opciones de enrutamiento básicas y utilizando scripts de red de nivel superior.
Conexión a una red inalámbrica
Para utilizar una red inalámbrica, primero debe saber algo sobre la red. Esta
el conocimiento puede provenir de su propio trabajo en la creación de la red, preguntando a otros

Página 249
al respecto, o mediante la búsqueda de redes públicas. Con este conocimiento en la mano, puede
active su dispositivo inalámbrico, vinculándolo a la red inalámbrica local. (Esta acción no
sin embargo, haga que las funciones de red estén completamente disponibles; es simplemente análogo a conectar
un cable en un puerto. Las secciones siguientes describen cómo activar la red TCP / IP.)
Configuración o aprendizaje de una red
Para comenzar el proceso, primero debe obtener información sobre la configuración de su red inalámbrica.
Si está utilizando una red inalámbrica configurada por otra persona, como la de su empleador
red o un punto de acceso público, debería poder obtener la información relevante de
su mantenedor. Si está utilizando una red que mantiene usted mismo, como una casa
red o una que haya configurado para su empleador, puede encontrar la información en
las herramientas de configuración proporcionadas por su WAP o enrutador de banda ancha. Esta información puede
a menudo se puede acceder a través de un servidor web ejecutado en el dispositivo. Por ejemplo, la Figura 5.1 muestra la
pantalla de configuración para un enrutador de banda ancha. En este modelo, la pantalla de opciones inalámbricas
contiene varias pestañas, cada una de las cuales proporciona ciertos datos. Preste especial atención a
banda de radio (802.11g en la Figura 5.1), identificador del conjunto de servicios (SSID; NoWires en la Figura 5.1),
canal (Canal 1 en la Figura 5.1), tipo de autenticación y clave de autenticación. (Estos últimos
Hay dos elementos en la pestaña Seguridad, que no se muestra en la Figura 5.1.)
FIGURA 5.1 Los WAP y los enrutadores de banda ancha proporcionan herramientas de configuración en las que
opciones inalámbricas para su red.
Realización de la configuración básica de la red
207

Página 250
208
Capítulo 5 Configuración de redes
Si está configurando su propia red inalámbrica, asegúrese de habilitar la
nivel de seguridad más alto posible, acceso protegido Wi-Fi 2 (WPA2). Más temprano
Los sistemas de seguridad, en particular Wired Equivalent Privacy (WEP), son
extremadamente vulnerable. Usarlos permite a cualquiera con modesta habilidad
para espiar todo el tráfico de su red. Dependiendo de su seguridad local
configuraciones, los intrusos pueden entrar fácilmente en otros
computadoras inalámbricas en su red desde fuera de su edificio usando un
Ordenador portatil.
Antes de continuar con la configuración de la red, es posible que desee buscar los
redes locales utilizando la herramienta iwlist . Si ha configurado su propia red, debería ver
entre las opciones disponibles. Si está de viaje, utilice el acceso inalámbrico proporcionado por un
cafetería, hotel u otra fiesta, puede utilizar iwlist para localizar las redes disponibles.
Pasar la exploración o escaneado de comandos para iwlist , opcionalmente precedido por el dispositivo de red
(normalmente wlan0 ):
# escaneo iwlist wlan0
wlan0 Escaneo completado:
Celda 01 - Dirección: 00: 27: 81: A5: 0C: 10
ESSID: "NoWires"
Protocolo: IEEE802.11N-24G
Modo: Maestro
Canal: 11
Clave de cifrado: activada
Tasas de bits: 130 Mb / s
Extra: Tarifas (Mb / s): 1 2 5.5 6 9 11 12 18 24 36 48 54
Calidad = 65/100 Nivel de señal = -58 dBm Nivel de ruido = -102 dBm
IE: IEEE 802.11i / WPA2 versión 1
Cifrado de grupo: CCMP
Cifrados por pares (1): CCMP
Suites de autenticación (1): PSK
Extra: Última baliza: hace 122 ms
Si ejecuta este comando como un usuario normal, solo mostrará información en el
redes a las que ya está conectado; pero si lo ejecuta como root , la salida de iwlist
incluye todas las redes cercanas (o células, en el lenguaje de iwscan ). En la práctica, el
El valor y el canal de ESSID son las configuraciones más importantes. Si el cifrado está activado, debe
conocer, o poder obtener, la contraseña de la red; pero si el cifrado está desactivado, puede
utilizar la red sin contraseña.

Página 251
El hecho de que pueda utilizar una red abierta no significa que deba
hazlo. Las personas a veces configuran mal su hardware de red para que
no utiliza cifrado. Por otro lado, algunas redes inalámbricas públicas
se configuran de esta manera deliberadamente. Tenga en cuenta que cualquier dato que
enviar a través de un enlace inalámbrico no cifrado puede ser monitoreado fácilmente por terceros
partes, por lo que solo debe utilizar dichas redes para tareas no sensibles o
a través de herramientas con su propio cifrado, como Secure Shell (SSH) remoto
protocolo de inicio de sesión.
Además de buscar redes, el comando iwlist puede entregar información sobre
las características de una interfaz de red Wi-Fi. Para usarlo de esta manera, reemplace escanear con
otro nombre de subcomando, como se resume en la Tabla 5.1. Algunos subcomandos adicionales
están disponibles, pero son extremadamente oscuros o están en desuso (ya no oficialmente
soportado).
TABLA 5.1 Subcomandos comunes de iwlist
Subcomando
Función
escanear o escanear
Enumera todas las redes disponibles (o aquellas a las que
la interfaz ya está vinculada, cuando se ejecuta como un usuario normal)
frec , frecuencia , o canal
Muestra todos los canales disponibles para el dispositivo
tasa , bit o tasa de bits
Muestra todas las velocidades (tasas de bits) admitidas por el dispositivo
claves , enc o cifrado
Muestra los tamaños de clave de cifrado disponibles
poder
Muestra los modos de administración de energía disponibles
poder TX
Enumera los ajustes de potencia de transmisión disponibles para el dispositivo.
rever
Muestra la configuración de reintento actual
evento
Enumera los eventos inalámbricos admitidos por el dispositivo
auth
Enumera los parámetros de autenticación que están configurados actualmente.
wpa o wpakeys
Enumera las claves WPA configuradas en el dispositivo.
modu o modulación
Enumera la modulación utilizada por el dispositivo.
Realización de la configuración básica de la red
209

Página 252
210
Capítulo 5 Configuración de redes
Conectar su computadora a una red Wi-Fi local
Para iniciar la conexión básica a la red Wi-Fi local, utilice iwconfig
comando, pasándole los datos relevantes usando nombres de opciones como essid y canal ,
precedido por el nombre del dispositivo de red inalámbrica (normalmente wlan0 ):
# iwconfig wlan0 essid NoWires channel 1 mode Managed key s: N1mP7mHNw
Este ejemplo establece las opciones para que wlan0 use la red administrada en el canal 1 con
el SSID de NoWires y una contraseña de N1mP7mHNw . La contraseña requiere algunos extra
comentarios. Normalmente, iwconfig toma una contraseña como una cadena de valores hexadecimales,
con guiones opcionales entre bloques de 2 bytes, como en 0123 - 4567 - 89AB . A menudo, sin embargo, el
la contraseña se proporciona como una cadena de texto. La cadena s: debe preceder a la contraseña en este caso, como
que se muestra en el ejemplo.
Para obtener detalles sobre opciones adicionales de iwconfig , incluidas algunas muy técnicas,
consulte su página de manual .
Una vez que haya configurado una interfaz inalámbrica, puede verificar su configuración usando
iwconfig sin opciones o con solo el nombre de la interfaz:
# iwconfig wlan0
wlan0 IEEE 802.11g ESSID: "NoWires"
Modo: Frecuencia gestionada: 2,462 GHz Punto de acceso: 08: 10: 74: 24: 1B: D4
Tasa de bits = 54 Mb / s Tx-Power = 27 dBm
Límite mínimo de reintentos: 7 RTS thr: off Fragment thr = 2352 B
Clave de cifrado: 374E-503D-6d37-4E48-0A [2]
Calidad del enlace = 100/100 Nivel de señal = -32 dBm Nivel de ruido = -94 dBm
Rx inválido nwid: 0 Rx cripta inválida: 0 Rx inválido frag: 0
Reintentos excesivos de Tx: 0 Misceláneos no válidos: 0 Baliza perdida: 0
Además de proporcionar información sobre la configuración, iwconfig proporciona algunos
información, como la calidad del enlace, errores recibidos ( Rx ) y transmitidos ( Tx ), etc.
Usando Wicd
Las herramientas iwlist e iwconfig pueden administrar conexiones Wi-Fi, pero también pueden
tedioso y frustrante de usar: un pequeño error al copiar una opción de la información
le dan o descubren que el uso de iwlist para iwconfig puede resultar en una incapacidad para conectarse
a la red. Aunque no se menciona en los objetivos de LPI, una herramienta que puede
simplificar el mantenimiento de una conexión Wi-Fi es Wicd ( [Link] ).
Este paquete proporciona tanto modo texto ( wicd - cli y wicd - curses ) como GUI ( wicd - gtk )
herramientas para administrar sus conexiones de red. La Figura 5.2 muestra una GUI de Wicd en funcionamiento.
Haga clic en el botón Conectar o Desconectar para administrar las conexiones, o haga clic en Propiedades
para ajustar los detalles de cada red.

Página 253
Además de administrar las funciones de Wi-Fi, Wicd puede administrar funciones de TCP / IP de nivel superior,
como direcciones IP, nombres de host y enrutamiento, las funciones que se describen en las siguientes páginas.
Además, Wicd puede administrar conexiones por cable, incluidas las opciones que permiten
redes inalámbricas según las que estén disponibles.
Conexión a una red con DHCP
Una de las formas más sencillas de configurar una computadora para usar una red TCP / IP es usar el
Protocolo de configuración dinámica de host (DHCP), que habilita una computadora en una red
para administrar la configuración de muchos otros equipos. Funciona así: cuando una computadora
Al ejecutar un cliente DHCP se inicia, envía una transmisión en busca de un servidor DHCP. los
el servidor responde (usando nada más que la dirección de hardware del cliente) con la configuración
información que el cliente necesita para permitirle comunicarse con otras computadoras en el
red: lo más importante, la dirección IP y la máscara de red del cliente y la puerta de enlace de la red
y direcciones de servidor del Servicio de nombres de dominio (DNS). El servidor DHCP también puede proporcionar
cliente un nombre de host y proporcionar varios otros detalles de la red. El cliente luego configura
sí mismo con estos parámetros. La dirección IP no se asigna de forma permanente; se refiere a
como una concesión DHCP , y si no se renueva, el servidor DHCP puede ceder la concesión a otro
computadora. Por lo tanto, de vez en cuando, el cliente vuelve a consultar con el servidor DHCP para
renovar su contrato de arrendamiento.
Linux puede funcionar como servidor DHCP y como cliente DHCP. Capítulo 7,
“Configuración de red avanzada” describe la configuración del servidor DHCP.
FIGURA 5.2 Wicd habilita la administración de Wi-Fi de apuntar y hacer clic similar a la de otros sistemas operativos.
Realización de la configuración básica de la red
211

Página 254
212
Capítulo 5 Configuración de redes
Tres clientes DHCP son de uso común en Linux: pump , dhclient y dhcpcd (no para
confundirse con el servidor DHCP, dhcpd ). Algunas distribuciones de Linux se envían con solo una
de estos, pero otros se envían con dos o incluso con los tres. Todas las distribuciones tienen un DHCP predeterminado
cliente: el que se instala cuando le dice al sistema que desea usar DHCP en el sistema
tiempo de instalación. Aquellos que se envían con varios clientes DHCP generalmente le permiten intercambiar
uno por otro simplemente quitando el paquete antiguo e instalando el nuevo.
Idealmente, el cliente DHCP se ejecuta durante el inicio del sistema. Esto puede ser manejado por su propio SysV
script de inicio o mediante un archivo de configuración Upstart, como se describe en el Capítulo 1, "Sistema
Puesta en marcha y gestión avanzada del sistema. "En otros casos, el cliente DHCP se puede ejecutar
como parte del archivo de inicio de configuración de red principal (normalmente un archivo de inicio de SysV llamado
red o redes ). El sistema a menudo usa una línea en un archivo de configuración para determinar
si ejecutar un cliente DHCP. Por ejemplo, Red Hat y Fedora establecen esta opción en un archivo
llamado / etc / sysconfig / network - scripts / ifcfg - eth0 (este nombre de archivo puede diferir si usa
algo que no sea una única interfaz Ethernet). La línea en cuestión se ve así:
BOOTPROTO = dhcp
Si la variable BOOTPROTO se establece en otra cosa, cambiarla como se muestra aquí
configurar el sistema para utilizar DHCP. Por lo general, es más fácil usar una herramienta de configuración de GUI para configurar
esta opción, sin embargo.
Ubuntu usa el archivo / etc / network / interfaces para un propósito similar, pero los detalles
diferir de. En un sistema que usa DHCP, aparece una línea como la siguiente:
iface eth0 inet dhcp
Los detalles pueden variar, por supuesto; por ejemplo, el nombre de la interfaz ( eth0 ) puede ser algo
más. Es posible que prefiera utilizar las herramientas de configuración del sistema GUI para ajustar estas opciones.
Una vez que un cliente DHCP está configurado para ejecutarse cuando se inicia el sistema, la tarea de configuración
está hecho, al menos, si todo funciona como debería. En muy raras ocasiones, es posible que deba
modificar la configuración de DHCP para evitar las incompatibilidades cliente / servidor o para tener el DHCP
el cliente hace algo inusual. Consulte la página de manual de su cliente DHCP si necesita
hacer cambios. Luego, tendrá que modificar su script de inicio SysV o un archivo al que se refiere
para cambiar su funcionamiento.
Si necesita ejecutar manualmente un cliente DHCP, normalmente puede hacerlo escribiendo su nombre (como
root ), seguido opcionalmente por un identificador de red, como en dhclient eth0 para tener el DHCP
El cliente intenta configurar eth0 con la ayuda de cualquier servidor DHCP que encuentre en esa red.
Conexión a una red con una dirección IP estática
Si una red carece de un servidor DHCP, debe proporcionar opciones de configuración de red básicas
a mano. Puede establecer estas opciones mediante archivos de configuración o comandos interactivos.
Ajuste de archivos de configuración de red
Para establecer una dirección IP estática a largo plazo, ajuste un archivo de configuración como / etc /
sysconfig / network - scripts / ifcfg - eth0 o / etc / network / interfaces . El Listado 5.1 muestra
un archivo ifcfg-eth0 típico , configurado para usar una dirección IP estática. (Tenga en cuenta que este archivo es exacto
la ubicación y el nombre pueden variar de una distribución a otra).

Página 255
Listado 5.1: Un archivo de configuración de red de muestra
DISPOSITIVO = eth0
BOOTPROTO = estático
IPADDR = [Link]
NETMASK = [Link]
RED = [Link]
DIFUSIÓN = [Link]
GATEWAY = [Link]
ONBOOT = sí
Si desea que la computadora tenga varias direcciones IP en una sola
cable de red, puede hacerlo. Defina la primera dirección de la forma habitual,
luego crea uno nuevo usando el nombre eth0: 0 (o eth1: 0 o lo que sea
variante es apropiada). La segunda dirección se llama alias de IP .
Se requieren varios elementos específicos, o al menos útiles, para la configuración de la dirección IP estática:
Dirección IP Puede configurar la dirección IP manualmente con el comando ifconfig (descrito
en más detalle en breve) o con el elemento IPADDR en el archivo de configuración.
Máscara de red Puede configurar la máscara de red manualmente con el comando ifconfig o con
el elemento NETMASK en un archivo de configuración.
Dirección de puerta de enlace Puede configurar manualmente la puerta de enlace con el comando route . Para configurarlo
permanentemente, necesita ajustar un archivo de configuración, que puede ser la misma configuración
archivo que contiene otras opciones u otro archivo, como / etc / sysconfig / network / routes .
En cualquier caso, es probable que la opción se llame GATEWAY . La puerta de enlace no es necesaria en un
sistema que no está conectado a una red más amplia, es decir, si el sistema funciona sólo en un local
red que no contiene enrutadores.
Configuración de DNS Para que Linux use DNS para traducir entre direcciones IP y nombres de host,
debe especificar al menos un servidor DNS en el archivo /etc/[Link] . Preceder a la IP
dirección del servidor DNS por la palabra clave servidor de nombres , como en servidor de nombres [Link] .
Puede incluir hasta tres líneas de servidor de nombres en este archivo. Ajustar este archivo es todo lo que necesita
hacer para configurar las direcciones del servidor de nombres; no tienes que hacer nada más para que el
ajuste permanente. También puede configurar el nombre de dominio local de su computadora en este archivo usando
la opción de dominio , como en el dominio [Link] para establecer el dominio en [Link] .
El script de configuración de red puede contener opciones adicionales, pero la mayoría de estas
están relacionados con otros. Por ejemplo, el Listado 5.1 tiene una opción que especifica la interfaz
name ( DEVICE = eth0 ), otro que le dice a la computadora que asigne una dirección IP estática
( BOOTPROTO = estático ), y un tercero para abrir la interfaz cuando se inicia la computadora
( ONBOOT = sí ). Los elementos NETWORK y BROADCAST del Listado 5.1 se derivan de IPADDR
y NETMASK , pero puede cambiarlos si comprende las consecuencias.
Realización de la configuración básica de la red
213

Página 256
214
Capítulo 5 Configuración de redes
Desafortunadamente, estos detalles de configuración varían de una distribución a otra. por
Por ejemplo, si usa Ubuntu, editaría / etc / network / interfaces en lugar de / etc /
sysconfig / network - scripts / ifcfg - eth0 . El diseño y formato precisos de la información.
en los dos archivos difiere, pero la misma información básica está presente en ambos. Puedes
es necesario consultar la documentación específica de la distribución para conocer estos detalles. Alternativamente,
Las herramientas de GUI suelen ser bastante fáciles de entender, por lo que puede buscarlas.
Si no está seguro de qué ingresar para los valores básicos de red (la dirección IP, la red
máscara, dirección de puerta de enlace y direcciones de servidor DNS), debe consultar su red
administrador. No ingrese valores aleatorios o valores que invente que sean similares a los
utilizado por otros sistemas en su red. Si lo hace, es poco probable que funcione en absoluto, y puede
posiblemente cause una gran cantidad de problemas, por ejemplo, si usa por error una dirección IP que
reservado para otra computadora.
Usar comandos interactivos
Como se acaba de mencionar, el programa ifconfig es de vital importancia para configurar tanto la IP
dirección y la máscara de red. Este programa también puede mostrar la configuración actual. Uso básico de
ifconfig para que aparezca una interfaz de red se parece a lo siguiente:
ifconfig interface up addr netmask mask
Por ejemplo, el siguiente comando muestra eth0 (la primera tarjeta Ethernet) usando el
dirección [Link] y la máscara de red [Link]:
# ifconfig eth0 hasta [Link] netmask [Link]
Este comando vincula la dirección IP especificada a la tarjeta para que la computadora responda
a la dirección y afirma ser esa dirección al enviar datos. Sin embargo, no configura un
ruta para el tráfico más allá de su red actual. Para eso, necesitas usar el comando route :
# ruta agregar gw predeterminado [Link]
Sustituya su propia dirección de puerta de enlace por [Link] . Tanto ifconfig como route pueden
mostrar información sobre la configuración de red actual. Para ifconfig , omita up y
todo lo que sigue; para ruta , omita agregar y todo lo que sigue. Por ejemplo, para
ver la configuración de la interfaz, puede ejecutar el siguiente comando:
# ifconfig eth0
eth0 Encapsulado de enlace: Ethernet HWaddr 00: A0: CC: 24: BA: 02
inet addr: [Link] Bcast: [Link] Máscara: [Link]
UP BROADCAST EJECUTANDO MULTICAST MTU: 1500 Métrico: 1
Paquetes RX: 10469 errores: 0 descartado: 0 desbordamientos: 0 trama: 0
Paquetes de TX: 8557 errores: 0 descartado: 0 desbordamientos: 0 portadora: 0
colisiones: 0 txqueuelen: 100
Bytes RX: 1017326 (993,4 Kb) Bytes TX: 1084384 (1,0 Mb)
Interrupción: 10 Dirección base: 0xc800
Cuando se configura correctamente, ifconfig debe mostrar una dirección de hardware ( HWaddr ), una IP
dirección ( inet addr ) y estadísticas adicionales. Debe haber pocos o ningún error, eliminado

Página 257
paquetes, o desbordamientos para paquetes recibidos ( RX ) y transmitidos ( TX ). Idealmente, pocos (si
cualquier) colisiones deberían ocurrir, pero algunas son inevitables si su red utiliza un hub en lugar de
que un interruptor. Si las colisiones suman más de un pequeño porcentaje del total transmitido y
paquetes recibidos, es posible que desee considerar la sustitución de un concentrador por un conmutador. Para usar la ruta para
Con fines de diagnóstico, puede probar el siguiente comando:
# ruta
Tabla de enrutamiento de IP del kernel
Destino Gateway Genmask Flags Métrica Ref Use Iface
[Link] *
[Link] U 0 0 0 eth0
[Link] *
[Link] U 0 0 0 lo
predeterminado [Link] [Link] UG 0 0 0 eth0
La opción -v para enrutar produce una salida más detallada. Esto es útil
cuando se utiliza la ruta de determinadas formas, aunque normalmente no produce
más resultados en una configuración simple como la que se muestra en este
ejemplo.
Este comando muestra que los datos destinados a [Link] (es decir, cualquier computadora con
una dirección IP entre [Link] y [Link]) va directamente sobre eth0 . los
La red [Link] es una interfaz especial que "regresa" a la computadora de origen.
Linux usa esto para algunos propósitos de redes internas. La última línea muestra el valor predeterminado
ruta , que describe qué hacer con todo lo que no coincide con ninguna otra entrada en
la tabla de enrutamiento. Esta línea especifica el sistema de puerta de enlace de la ruta predeterminada como [Link]. Si
falta o está mal configurado, parte o todo el tráfico destinado a redes externas, como la
Internet, no irá más allá de su segmento de red local.
Al igual que con la configuración de DHCP, casi siempre es más fácil utilizar una herramienta de configuración de GUI
para configurar direcciones IP estáticas, al menos para nuevos administradores. Las ubicaciones exactas de la
Los archivos de configuración difieren de una distribución a otra, por lo que los ejemplos enumerados anteriormente
puede que no se aplique a su sistema.
La llegada de IPv6
Las direcciones IP enfatizadas en este capítulo se aplican a la versión 4 de la parte IP de TCP /
IP. Esta versión ha estado vigente durante muchos años. Se está llevando a cabo una importante actualización a IP,
sin embargo, y se conoce con el nombre de IPv6 , para IP versión 6. IPv6 agrega varias características y
mejoras a TCP / IP, incluido el soporte estándar para conexiones más seguras y
soporte para muchas más direcciones. Consulta [Link]
[Link] o [Link] para obtener información detallada sobre IPv6.
Realización de la configuración básica de la red
215

Página 258
216
Capítulo 5 Configuración de redes

Uso de herramientas de configuración de GUI


La mayoría de las distribuciones incluyen sus propias herramientas de configuración GUI para interfaces de red. por
Por ejemplo, Fedora y Red Hat se envían con una herramienta GUI personalizada llamada Configuración de red
( system - config - network ) y SUSE tiene una herramienta de interfaz gráfica de usuario y en modo texto llamada YaST. los
Los detalles de funcionamiento de estos programas difieren, pero la herramienta de configuración de la GUI proporciona un medio
para ingresar la información descrita anteriormente.
Aunque el examen LPI no cubre las herramientas de configuración de la red GUI, generalmente son
más fácil de localizar y utilizar que los archivos de configuración en los que se almacenan los ajustes. Por lo tanto, tu
es posible que desee buscar la herramienta de distribución y aprender a usarla. Una vez que entiendas el
principios de configuración de red (direcciones IP, DHCP, etc.), no debería tener
problemas para ingresar la información necesaria en los campos de la GUI.
Los detalles precisos de cómo configurar un sistema Linux utilizando herramientas GUI difieren de uno
distribución a otro. Por ejemplo, YaST de SUSE no presenta sus opciones con precisión
de la misma forma que la herramienta de configuración de red de Fedora. Los principios básicos son los mismos,
aunque; debe elegir si desea utilizar una asignación de dirección IP estática o una
sistema como DHCP e introduzca una serie de opciones clave, según la configuración
método que elija.
Uso de los comandos ifup e ifdown
La mayoría de las distribuciones de Linux actuales se envían con dos comandos, ifup e ifdown , que combinan
las funciones de varios otros comandos de red, sobre todo ifconfig y route . En
en sus formas más simples, activan o desactivan las interfaces en función de la información
en cualquier archivo que utilice su distribución para almacenar datos de configuración de red:
# ifup eth0
Determinando la información de IP para eth0 ... hecho.
TCP / IP admite un máximo teórico de aproximadamente 4 mil millones de direcciones. Aunque esto puede
suena como un montón, esas direcciones no se han asignado de la manera más eficiente posible.
Por lo tanto, a medida que Internet se ha expandido, la cantidad de direcciones verdaderamente disponibles
se ha estado reduciendo a un ritmo rápido. IPv6 eleva el número de direcciones a 2 128 , o 3,4
10 38 . Esto es suficiente para dar cada milímetro cuadrado de superficie terrestre en la Tierra 2.2 10 18
direcciones.
IPv6 está comenzando a emerger como una verdadera fuerza de red en muchas partes del mundo. los
Estados Unidos, sin embargo, se está quedando atrás en la implementación de IPv6. El kernel de Linux incluye
Compatibilidad con IPv6, y la mayoría de las distribuciones ahora intentan configurar IPv6 automáticamente
redes además de IPv4. Lo más probable es que para cuando la oficina promedio
necesita IPv6, será estándar. Configurar un sistema para IPv6 es algo diferente a
configurándolo para IPv4, que es lo que enfatiza este capítulo.
Página 259
Después de emitir este comando, eth0 estará completamente configurado, incluidas todas las rutas
información, suponiendo que la haya configurado correctamente mediante el uso de la red de distribución
herramientas de configuración o editando manualmente archivos de configuración como / etc / network /
interfaces y / etc / sysconfig / network - scripts / ifcfg - eth0 . Puedes traer el
interfaz hacia abajo con la misma facilidad escribiendo ifdown eth0 .
Los comandos ifup e ifdown son útiles para verificar que la configuración de red está
configurado correctamente para la próxima vez que arranque la computadora. También son útiles si quieres
para desactivar rápidamente la red o volver a activarla, porque puede escribir menos
comandos y no necesita recordar todos los detalles de direcciones IP, rutas y
pronto. Sin embargo, si necesita experimentar o depurar un problema, use ifconfig y route
es preferible individualmente, porque le dan un control más preciso sobre el proceso.
Configurar nombres de host
Las computadoras "piensan" en términos de números, por lo que TCP / IP usa números para identificar de manera única
ordenadores. Sin embargo, los humanos funcionan mejor con las palabras. Por lo tanto, las computadoras también suelen tener
nombres, conocidos como nombres de host . Las redes enteras también tienen nombres, conocidos como nombres de dominio .
Los nombres de host suelen aparecer como la primera parte de un nombre de dominio completo (FQDN) . por
ejemplo, [Link] es un FQDN, tsiolkovsky es el nombre de host y [Link]
es el nombre de dominio.
Los nombres de host se configuran de dos formas:
En DNS Su administrador de red debería poder agregar una entrada para su computadora
al servidor DNS de su red. Esta entrada debería hacer que su computadora sea direccionable por
nombre de otras computadoras en su red local, y tal vez de Internet en general.
Alternativamente, los archivos / etc / hosts de los sistemas remotos se pueden modificar para incluir su sistema.
En su computadora local Varios programas locales deben conocer el nombre de su computadora.
Por ejemplo, es posible que desee que su nombre de host se muestre como parte de un símbolo del sistema
o ingresado automáticamente en programas de correo electrónico. Para esta tarea, debe establecer su nombre de host
en la zona. Tenga en cuenta que esto es completamente independiente de su nombre de host DNS. En teoría, puede configurar
los dos a valores muy diferentes, pero es probable que esta práctica lleve a confusión y tal vez
incluso el fracaso de algunos programas para funcionar correctamente.
La herramienta más básica para configurar su nombre de host localmente se llama, apropiadamente,
nombre de host . Escriba el comando solo para ver cuál es su nombre de host, o escríbalo con un nuevo
name para establecer el nombre de host del sistema con ese nombre:
# hostname [Link]
Muchas distribuciones de Linux buscan en el archivo / etc / hostname o / etc / HOSTNAME una
nombre de host para configurar en el momento del arranque. Por lo tanto, si desea establecer su nombre de host de forma permanente,
debe buscar estos archivos, y si hay alguno, debe editarlo. Fedora usa / etc /
sysconfig / network para este fin, entre otros. Si no puede encontrar uno de estos archivos,
consulte la documentación de su distribución; es concebible que su distribución almacene sus
nombre de host en una ubicación inusual.
Realización de la configuración básica de la red
217

Página 260
218
Capítulo 5 Configuración de redes
Usando PPP con DSL
Los usuarios de banda ancha, en particular aquellos con conexiones de línea de abonado digital (DSL),
a veces tienen que usar una variante del Protocolo punto a punto (PPP) para hacer su
conexiones. PPP es una forma de acceso a Internet basada en el inicio de sesión: se utiliza una utilidad PPP para
iniciar una conexión a una computadora remota, que incluye un intercambio de un nombre de usuario
y una contraseña. Hace una década, PPP se utilizaba en el acceso a Internet por discado (y todavía se utiliza
en esta capacidad), pero algunos proveedores de DSL han adaptado PPP para sus propios fines. En
En el caso de DSL, este método de configuración se denomina PPP sobre Ethernet (PPPoE).
En muchos casos, la forma más sencilla de utilizar una configuración PPPoE es comprar un
enrutador. Este dispositivo se conecta al módem DSL y realiza la conexión PPPoE. los
El enrutador de banda ancha funciona como un enrutador Ethernet o Wi-Fi ordinario, en la medida en que su
las computadoras locales están preocupadas, por lo que puede configurar Linux como lo haría en cualquier otra
red.
Si debe conectar un sistema Linux directamente a una red DSL que usa PPPoE, debe
utilice un cliente PPPoE de Linux. La mayoría de las distribuciones de Linux se envían con estos clientes; pero configuración
los detalles varían de una distribución a otra. Tu mejor apuesta es buscar tu distribución
Herramienta de configuración de red GUI; lo más probable es que pueda encontrar un conjunto de opciones que
claramente etiquetado como aplicable a DSL o PPPoE.

Comprobación de la conectividad básica


Con su red configurada e inicializada, puede realizar una prueba básica de su funcionamiento
usando un comando: ping . Este comando envía un protocolo de mensajes de control de Internet
(ICMP) al sistema que usted nombre (vía dirección IP o nombre de host) y espera una respuesta.
En Linux, ping continúa enviando paquetes una vez cada segundo más o menos hasta que lo interrumpe
con una pulsación de tecla Ctrl + C. (En su lugar, puede especificar un número limitado de pruebas a través de - c num
opción.) Aquí hay un ejemplo de su salida:
$ ping -c 4 altavoz
PING altavoz ([Link]) 56 (84) bytes de datos.
64 bytes de [Link] ([Link]): icmp_seq = 1 ttl = 64 tiempo = 0.194ms
64 bytes de [Link] ([Link]): icmp_seq = 2 ttl = 64 time = 0.203ms
64 bytes de [Link] ([Link]): icmp_seq = 3 ttl = 64 tiempo = 0.229ms
64 bytes de [Link] ([Link]): icmp_seq = 4 ttl = 64 tiempo = 0.217ms
--- Estadísticas de ping del altavoz ---
4 paquetes transmitidos, 4 recibidos, 0% de pérdida de paquetes, tiempo 3002ms
rtt min / avg / max / mdev = 0,194 / 0,210 / 0,229 / 0,022 ms

Página 261
Este comando envió cuatro paquetes y esperó su regreso, lo que ocurrió bastante
rápidamente (en un promedio de 0,210 ms) porque el sistema de destino estaba en la red local.
Al hacer ping a los sistemas en redes locales y remotas, puede aislar dónde
ocurre el problema. Por ejemplo, si puede hacer ping a sistemas locales pero no a sistemas remotos,
Lo más probable es que el problema esté en la configuración de su enrutador. Si puede hacer ping por dirección IP
pero no por su nombre, el problema está en su configuración de DNS. Si tienes problemas,
consulte la próxima sección “Solución de problemas de red. "
En el ejercicio 5.1, se familiarizará con algunas de las herramientas que se utilizan para configurar
configuración de red básica. Utilizará estas herramientas tanto para estudiar como para cambiar su red
configuración.
EJERCICIO 5.1
Configurar una conexión de red
En este ejercicio, se asume que la computadora está configurada correctamente para usar IPv4
Red Ethernet, que incluye tanto el acceso a la red local como el acceso a una red más grande
(probablemente Internet) a través de un enrutador.
Algunos de los procedimientos de este ejercicio pueden romper fácilmente la conectividad de su red si
Algo va mal. Si esto sucede, escribir ifdown seguido de ifup es una forma de recuperarse.
Si esto falla, es casi seguro que reiniciar la computadora funcionará, aunque es una solución radical.
Para estudiar y modificar la configuración de red de su sistema, siga estos pasos:
1. Inicie sesión en el sistema Linux como usuario normal.
2. Inicie un xterm desde el sistema de menús del entorno de escritorio, si utilizó un inicio de sesión de GUI
método.
3. Adquiera privilegios de root . Puede hacer esto escribiendo su en un xterm , seleccionando Sesión
Nueva consola raíz de Konsole, o usando sudo (si está configurado) para ejecutar los comandos
en los siguientes pasos.
4. Escriba ifconfig . Este comando muestra información sobre la configuración de su red local
para todas sus interfaces de red. La mayoría de los sistemas tienen una interfaz loopback ( lo ) y un
Interfaz Ethernet ( eth0 ). Busque una línea en la sección de Ethernet que incluya la cadena
inet addr: . El siguiente número de 4 bytes es su dirección IP. Escríbalo, así como
el valor de su máscara de red ( Máscara :) . Estudie también la otra información en este resultado, como
como el número de paquetes recibidos ( RX ) y transmitidos ( TX ), el número de errores, la
número de colisiones y la dirección de hardware del adaptador Ethernet.
5. Escriba ruta - n . La salida es la información de la tabla de enrutamiento de su computadora. Esto normalmente
incluye información sobre la dirección de red de bucle invertido ([Link]/24), la
dirección de red y una ruta predeterminada (identificada como la ruta para [Link]). Algunos sistemas
puede mostrar menos líneas o más, según la configuración local. El valor por defecto
La ruta incluye una dirección IP en la columna Puerta de enlace . Anote esa dirección.
Realización de la configuración básica de la red
219
Página 262
220
Capítulo 5 Configuración de redes
EJERCICIO 5.1 (continuación)
6. Utilice ping para probar la conectividad con equipos locales y remotos. Necesitas el nombre
o dirección IP de al menos una computadora local y al menos una computadora distante (más allá
su enrutador local). Escriba la dirección de ping donde dirección es el nombre o la dirección IP de cada
máquina de prueba. Realice esta prueba para localhost o [Link] , su propia máquina (use
la dirección IP que anotó en el paso 4), su enrutador local (use la dirección IP que anotó
en el paso 5) y una computadora distante (si está conectado a Internet, puede usar
un sitio accesible en Internet, como [Link] ). Todas estas pruebas de ping deben ser
exitoso. Sin embargo, tenga en cuenta que algunos sistemas están configurados para ignorar los paquetes enviados por
ping . Por lo tanto, algunas de estas pruebas pueden fallar si se encuentra con dichos sistemas. Puedes aprender el
configuración de los sistemas locales de sus administradores, pero para los sitios de Internet, puede
simplemente quiere probar otro sitio si el primero que prueba falla.
7.
Elimine la conexión Ethernet local escribiendo ifconfig eth0 down.
8. Repita los pasos 4 a 6. Tenga en cuenta que la interfaz eth0 ya no se muestra cuando escribe
ifconfig , todas las rutas asociadas con él se han eliminado de la tabla de enrutamiento, y
Los sistemas de ping accesibles desde la interfaz ya no funcionan. (Linux conserva algunos
información sobre su enlace Ethernet anterior, por lo que es posible que aún pueda hacer ping a la computadora
sí mismo a través de su anterior dirección eth0 ).
9. Restablezca la conexión Ethernet local escribiendo ifconfig eth0 up address
máscara de máscara de red , donde la dirección es la dirección IP original y la máscara es la original
netmask, ambos identificados en el paso 4.
10. Repita los pasos 4 a 6. Tenga en cuenta que el comando ifconfig agregó automáticamente su
red local a la tabla de enrutamiento, pero aún falta la ruta predeterminada. Como resultado,
no puede ponerse en contacto con ningún sistema que se encuentre fuera de la red local. Si su servidor DNS
es un sistema de este tipo, esto significa que su capacidad para comunicarse incluso con máquinas locales por su nombre puede
estar afectado también.
11. Restaure la ruta predeterminada escribiendo route add default gw gateway , donde gateway es
la dirección del enrutador que identificó en el paso 5.
12. Repita los pasos 4 a 6. Si su configuración de red es típica, toda la conectividad debe
restaurado. (Algunos sistemas más exóticos aún pueden carecer de ciertas rutas).

Configuración de opciones de red adicionales


Una computadora de escritorio, computadora portátil o estación de trabajo típica, o incluso muchos servidores, no necesita más red
configuración que ya se ha descrito. (Una excepción es la configuración del firewall, que es
descrito en el Capítulo 7, “Configuración de red avanzada. ”) Alguna red adicional

Página 263
Las opciones, sin embargo, son útiles en muchas computadoras. Estos incluyen enrutamiento avanzado
configuraciones y configuraciones de red privada virtual (VPN). Tu tambien deberias ser
familiarizado con algunas herramientas básicas de supervisión de redes.
Configuración de opciones avanzadas del enrutador
Como se explicó anteriormente, los enrutadores pasan el tráfico de una red a otra. Tu configuras tu
Sistema Linux para contactar directamente sistemas en la red local. También le das a la computadora
la dirección de un enrutador, que su sistema utiliza como puerta de entrada a Internet en general. Cualquier tráfico
que no está destinado a la red local se dirige a este enrutador, que lo pasa a su
destino. En la práctica, es probable que haya una docena o más de enrutadores entre usted y la mayoría
Sitios de Internet. Cada enrutador tiene al menos dos interfaces de red y mantiene una tabla de reglas
con respecto a dónde enviar datos en función de la dirección IP de destino. Tu propia computadora Linux
tiene una tabla de este tipo, pero probablemente sea muy simple en comparación con las de los principales enrutadores de Internet.
Además de la configuración del enrutamiento, están disponibles algunos comandos relacionados con el enrutamiento que
puede ayudarlo a comprender el direccionamiento de red en su red.
Configuración de Linux como enrutador
Linux puede funcionar como un enrutador, lo que significa que puede vincular dos o más redes juntas,
dirigir el tráfico entre ellos sobre la base de su tabla de enrutamiento. Esta tarea se maneja, en
parte, por el comando de ruta . Este comando puede usarse para hacer mucho más que especificar
sin embargo, un solo sistema de puerta de enlace, como se describió anteriormente. Una versión simplificada de la ruta.
la sintaxis es la siguiente:
ruta {agregar | del} [-net | -host] destino [netmask nm ] [gw gw ]
[rechazar] [[dev] interfaz ]
Usted especifica agregar o eliminar junto con un destino (una computadora o dirección de red) y
opcionalmente otros parámetros. Las opciones - net y - host fuerzan a la ruta a interpretar el objetivo
como dirección de red o computadora, respectivamente. La opción de máscara de red le permite establecer una máscara de red como
que desee, y gw le permite especificar un enrutador a través del cual se envían paquetes al objetivo especificado
debería ir. (Algunas versiones de route usan gateway en lugar de gw ). La palabra clave de rechazo
instala una ruta de bloqueo, que rechaza todo el tráfico destinado a la red especificada. (Esta
no es un firewall). Las rutas de bloqueo aparecen en las tablas de enrutamiento con un signo de exclamación
marque ( ! ) en la columna Banderas . Finalmente, aunque la ruta generalmente puede averiguar el
dispositivo de interfaz (por ejemplo, eth0 ) por sí solo, puede forzar el problema con la opción dev .
Como ejemplo, considere la Figura 5.3, y particularmente las dos estaciones de trabajo en el
[Link]/24 red. Ambos equipos tienen una sola interfaz de red, pero el
La red tiene dos enrutadores: La computadora Linux en el centro de la Figura 5.3, que conduce a
la red [Link]/24 e Internet; y el enrutador [Link], que conduce
a la red [Link]/24. Es de suponer que estas computadoras tendrán una ruta predeterminada establecida, como
descrito anteriormente, para enlazar a Internet. Luego usaría el comando route para agregar
una segunda ruta para permitir que el tráfico pase a la red [Link]/24. Puedes configurar esto
ruta con el siguiente comando:
# route add -net [Link] máscara de red [Link] gw [Link]
Configuración de opciones de red adicionales
221

Página 264
222
Capítulo 5 Configuración de redes
Es deseable una configuración similar para las computadoras en la red [Link]/24.
Establecer múltiples rutas de esta manera es deseable, pero no siempre es absolutamente necesario. Si el
El enrutador principal de la subred conoce cualquier enrutador secundario en la red, el enrutador principal
enviará paquetes dirigidos a las subredes relevantes de vuelta al enrutador secundario. Por ejemplo,
suponga que el enrutador [Link] sabe que [Link] (la computadora Linux en el
centro de la figura) se vincula a las redes [Link]/24 y [Link]/24. Si uno de los
estaciones de trabajo en la red [Link]/24 envían paquetes para la subred [Link]/24, la
El enrutador [Link] redirigirá los paquetes de manera apropiada. El problema es que esto desperdicia
ancho de banda, ya que los mismos paquetes atravesarán la red [Link]/24 dos veces: una vez
desde la estación de trabajo al enrutador principal y nuevamente desde el enrutador principal al secundario
enrutador. Por lo tanto, es deseable configurar las opciones de enrutamiento adicionales en las computadoras relevantes.
Las tablas de enrutamiento incorrectas pueden causar problemas graves porque algunos o todos
las computadoras no responderán. Puede examinar su tabla de enrutamiento escribiendo
enrutar solo y comparar los resultados con lo que debería su tabla de enrutamiento
ser. (Consulte a un administrador de red si no está seguro de cuál es su ruta
tabla debe contener). A continuación, puede eliminar rutas incorrectas y agregar nuevas
unos para reemplazarlos, si es necesario. En última instancia, por supuesto, cambiar su
archivos de configuración es la mejor solución, pero escribir un par de rutas
Los comandos harán el truco a corto plazo.
Computadora Linux
[Link]
[Link] enrutador
Estación de trabajo [Link]
[Link] estación de trabajo
Cambiar
[Link] enrutador
[Link]
Cambiar
Internet
[Link]/24
red
Red [Link]/24
Estación de trabajo [Link]
[Link] estación de trabajo
[Link]/24 red
FIGURA 5.3 Algunas configuraciones de red requieren configuraciones de tabla de enrutamiento inusuales.

Página 265
Simplemente agregar varias rutas puede ser útil si una computadora tiene múltiples redes
interfaces, pero no debe funcionar como un enrutador. Esto podría ser cierto para una computadora portátil que
tiene conexiones de red tanto cableadas como inalámbricas, especialmente si el cable e inalámbrico
las redes no se conectan de ninguna otra manera.
Una computadora Linux que está conectada a dos redes, como en la computadora Linux en el
centro de la Figura 5.3, puede comunicarse con ambos; sin embargo, esta configuración
no vincula automáticamente las dos redes. Es decir, computadoras en el
Las redes [Link]/24 y [Link]/24 no podrán comunicarse con cada
otro a menos que esa computadora central de Linux esté configurada como un enrutador. Para habilitar esta función,
debe modificar un archivo de clave en el sistema de archivos / proc :
# echo "1"> / proc / sys / net / ipv4 / ip_forward
Este comando habilita el reenvío de IP. La configuración permanente de esta opción requiere
modificar un archivo de configuración. Algunas distribuciones lo establecen en /etc/[Link] :
net.ipv4.ip_forward = 1
Otras distribuciones utilizan otros archivos de configuración y opciones, como / etc / sysconfig /
sysctl y su línea IP_FORWARD . Si no puede encontrarlo, intente usar grep para buscar ip_forward
o IP_FORWARD , o modifique un script de inicio local para agregar el comando para realizar el cambio.
Comprobación de la resolución de la dirección
En un nivel bajo, TCP / IP se basa en un protocolo conocido como Protocolo de resolución de direcciones.
(ARP). Se utiliza una utilidad de Linux del mismo nombre pero en minúsculas ( arp ) para monitorear ARP
actividad en una sola computadora.
Los dispositivos de hardware de red, como las tarjetas Ethernet, tienen direcciones de hardware integradas.
Puede determinar la dirección de hardware de una interfaz de red con ifconfig ; es el primero
línea de salida, etiquetada HWaddr :
# ifconfig eth0
eth0 Encapsulado de enlace: Ethernet HWaddr 00: A0: CC: 24: BA: 02
En este ejemplo, la dirección de hardware de eth0 es 00: AD: CC: 24: BA: 02 - una secuencia de seis
bytes expresado en hexadecimal (base 16) y separados por dos puntos ( : ). Otro separador
a veces se utilizan caracteres, como guiones. Los primeros tres bytes en una Ethernet
La dirección de hardware representa el fabricante del hardware, mientras que los últimos tres bytes son
asignado por el fabricante de una manera única, como un número de serie.
Varios sitios web, como [Link]
.en y [Link] , le permiten identificar
el fabricante de un dispositivo Ethernet por su dirección de hardware. Esto puede
a veces resulta útil para rastrear hardware en el mundo real.
Cuando dos computadoras en el mismo segmento de red se comunican, lo hacen usando cada
direcciones de hardware de otros. Cuando hay enrutadores involucrados, el remitente envía el tráfico a los
dirección de hardware; luego, el enrutador vuelve a empaquetar los datos, utilizando la dirección de hardware del siguiente enrutador.
Configuración de opciones de red adicionales
223

Página 266
224
Capítulo 5 Configuración de redes
Sin embargo, para comunicarse por dirección de hardware, la dirección IP debe traducirse a
una dirección de hardware. Este es el trabajo de ARP. Una computadora puede enviar un mensaje de difusión (que
es decir, uno que es recibido por todas las computadoras locales) preguntando a la computadora con un
Dirección IP para responder. Cuando la computadora de destino responde, ARP lee su dirección de hardware,
la asocia con la dirección IP solicitada y agrega las dos a la caché ARP.
La utilidad arp le permite examinar y modificar la caché ARP. Escribiendo arp solo
muestra la caché ARP:
$ arp
Habla a
HWtype HWaddress
Máscara de banderas Iface
[Link] ether 00: a0: c5: 24: e1: 4e C
eth0
[Link] ether 00: 1c: c0: b0: 35: fc C
eth0
La tabla 5.2 resume las opciones para arp . Las dos primeras entradas de la tabla 5.2 representan las principales
operaciones para modificar la caché ARP; las entradas restantes se pueden utilizar para modificar la salida
o interpretación de otras opciones.
TABLA 5.2 Opciones comunes de arp
Nombre de opción largo Nombre de opción corto
Descripción
N/A
- d dirección
Elimina la dirección especificada del ARP
cache. Solo root puede realizar esta acción.
N/A
- s dirección hw_
habla a
Asocia la dirección IP o el nombre de host
dirección con la dirección de hardware hw_
dirección .
- - detallado
-v
Produce una salida adicional.
- - numérico
-n
Muestra las direcciones IP numéricamente en lugar de
que traducido a nombres de host.
- - hw - tipo tipo
- tipo t o - tipo H
Establece el tipo de hardware, como éter para
Ethernet (predeterminado), arcnet para ARCnet,
pronet para PROnet o netrom para NET / ROM.
N/A
- una
Utiliza salida corta (estilo BSD).
- - usar - dispositivo
-D
En lugar de interpretar hw_address como
dirección de hardware, interpretarla como un dispositivo.
- - dispositivo
interfaz
- yo interfaz
Restringe la producción o las operaciones al
interfaz especificada , como eth0 o eth1 .
- - archivo nombre de archivo
-f nombre de archivo
Obtiene información de la dirección del
archivo especificado.

Página 267
¿Por qué querría ver o modificar la caché ARP? A veces la información puede
Será necesario configurar servidores u otras herramientas. Por ejemplo, es posible que necesite computadoras
direcciones de hardware para configurar un servidor DHCP (descrito en el Capítulo 7). Otros tiempos,
es posible que desee borrar una dirección específica, o incluso todas las direcciones, debido a cambios en el
red. Por ejemplo, si reemplaza una tarjeta Ethernet en una computadora, su dirección de hardware
cambiará. En tal caso, es posible que desee borrar su entrada del ARP de otras computadoras
cachés para garantizar que el tráfico a la computadora alterada llegue a su destino.
Linux mantiene las entradas de caché ARP durante un período limitado, por lo que escenarios como
Los intercambios de tarjetas Ethernet interrumpirán la comunicación de red solo brevemente, incluso
si no borra explícitamente la caché ARP.

Uso de una herramienta de red todo en uno


Una alternativa a ifconfig , route y varios otros comandos para muchos propósitos es
ip . Esta es una especie de navaja suiza de comandos de red. Su sintaxis es engañosamente simple:
ip [ OPCIONES ] OBJETO { COMANDO | ayuda }
Para comprender ip , debe comenzar con OBJECT , que puede tomar cualquiera de los valores
que se muestra en la Tabla 5.3. Cada uno de estos valores tiene su propio conjunto único de opciones y comandos.
La cantidad de operaciones que se pueden realizar con ip es vertiginosa. Deberías consultar su
página man para más detalles.
TABLA 5.3 Valores posibles de ip OBJECT
Nombre del OBJETO
Descripción
enlace
Realiza acciones en el hardware de la red; similar a algunos ifconfig
funciones
addr
Asocia o disocia un dispositivo con una dirección; similar a algunos
funciones ifconfig
addrlabel
Muestra o ajusta direcciones en una red IPv6
ruta
Muestra o ajusta la tabla de enrutamiento; similar a algunas funciones de ruta
regla
Muestra o ajusta las reglas de la tabla de firewall; similar a algunas iptables
funciones, como se describe en el Capítulo 7
relinchar
Muestra o ajusta las entradas ARP
Configuración de opciones de red adicionales
225

Página 268
226
Capítulo 5 Configuración de redes
Como ejemplo de ip , considere su uso para mostrar la tabla de enrutamiento actual:
lista de rutas $ ip
[Link]/24 dev eth1 proto kernel alcance enlace src [Link]
[Link]/24 dev eth0 proto kernel alcance enlace src [Link]
[Link]/8 enlace de alcance dev lo
predeterminado a través de [Link] dev eth0
Este ejemplo revela que la utilidad ip no funciona exactamente como las utilidades independientes
que realizan tareas similares: esta salida es diferente de la salida de ruta que también puede
revelar (o cambiar) la tabla de enrutamiento. En la práctica, es posible que desee probar ip y el
muchas herramientas específicas para determinar cuál prefiere para tareas particulares.
Configurar una VPN
La mayoría de las redes dependen, en parte, de la seguridad física para mantenerlas a salvo. Con un local Ethernet
red de área (LAN), por ejemplo, el tráfico en la propia LAN no puede ser interceptado sin
ya sea un acceso físico a los cables de la red o un compromiso de una computadora en la red.
(El acceso inalámbrico es más susceptible a los ataques, como se describió anteriormente). Cuando una red debe
abarcar varias ubicaciones utilizando un operador intermediario que no es de confianza (como Internet),
la seguridad se convierte en un problema mayor. En estos casos, una red privada virtual (VPN)
a menudo se emplea la configuración. En una VPN, los dos segmentos de la red privada están vinculados
a través de un enrutador que cifra los datos que se envían a la ubicación remota.
Naturalmente, Linux ofrece varias opciones de VPN. La certificación LPIC - 2 cubre solo
uno: OpenVPN ( [Link] ). Este paquete se envía con la mayoría de las distribuciones de Linux,
por lo que probablemente pueda instalarlo usando su administrador de paquetes. Hecho eso, deberías asistir
a algunos problemas preliminares, generar claves, configurar la VPN y establecer la VPN
conexión.
Nombre del OBJETO
Descripción
túnel
Muestra o ajusta las funciones de tunelización, lo que permite que los datos se
transferidos entre redes encapsulando muchas redes
protocolos dentro de un solo protocolo
maddr
Muestra o ajusta las direcciones de multidifusión, que se utilizan para
comunicarse con varias computadoras simultáneamente
mroute
Muestra o ajusta rutas de multidifusión
monitor
Monitoriza la actividad de la red
TABLA 5.3 Posibles valores de OBJETO ip (continuación)

Página 269
Al igual que con otros protocolos de red, OpenVPN clasifica un enrutador como cliente
y otro como servidor. En algunos casos, lo que puede parecer obvio,
porque uno (el servidor) se conectará a muchos otros enrutadores OpenVPN (el
clientela). En otros casos, cuál es el que se puede decidir arbitrariamente.
Preparación para el uso de VPN
Las redes vinculadas por la VPN son intrínsecamente privadas: no deberían tener ninguna o estar limitadas
acceso a Internet en su conjunto. Con frecuencia, las VPN se utilizan para vincular redes que utilizan
direcciones privadas resumidas en la Tabla 5.4, que se definen en los estándares de Internet
documento RFC - 1918. Cualquiera puede utilizar estas direcciones, pero no deben
Enrutado a Internet excepto a través de enrutadores de traducción de direcciones de red (NAT) o similares
medio. Puede vincular tantas redes como desee para sus propios fines,
aunque.
TABLA 5.4 RFC - Bloques de direcciones privadas 1918
Clase
Rango
Prefijo
UNA
[Link] - [Link]
[Link]/8
si
[Link].0 - [Link]
[Link]/12
C
[Link] - [Link]
[Link]/16
Debe asegurarse de que las direcciones IP utilizadas en todas las redes vinculadas por su VPN sean
único. Si dos redes físicamente separadas duplican las direcciones IP de las demás, los problemas
resultará. Es mejor darle a cada subred su propio conjunto único de direcciones, por ejemplo,
[Link]/24 para una red y [Link]/24 para otra. Puedes ajustar los tamaños
de sus subredes según sea necesario, manteniéndose dentro de los límites descritos en la Tabla 5.4.
Administrar claves VPN
Como muchas tecnologías de cifrado, OpenVPN se basa en claves : grandes cantidades que pueden
utilizado para codificar o decodificar datos. OpenVPN utiliza criptografía de clave pública , que se basa en
claves privadas y claves públicas para cifrado. Como implican sus nombres, las claves privadas deben
mantenerse en privado (secreto), mientras que las claves públicas se pueden distribuir ampliamente. Datos encriptados
por una clave puede ser descifrado por la otra. Por lo tanto, para comunicarse de manera segura,
dos computadoras intercambian sus claves públicas. Cada computadora encripta datos usando la otra
clave pública de la computadora; solo el destinatario puede descifrar los datos utilizando el
llave privada.
A este sistema de criptografía de clave pública se suma una autoridad certificadora (CA), que
es una computadora que emite claves para que las utilicen otras computadoras. La CA incrusta identificando
Configuración de opciones de red adicionales
227

Página 270
228
Capítulo 5 Configuración de redes
información en las claves y las firma digitalmente, lo que permite que ambos lados de la VPN
conexión para verificar que el otro lado ha obtenido una clave de la misma CA y puede
por lo tanto, sea de confianza.
Para mayor seguridad, la CA puede ser una computadora que carece de red
conexiones. Esta configuración garantiza que no puede ser remotamente
comprometidos.
Este sistema es bastante complejo, lo que significa que debe tomar medidas adicionales para implementarlo. En
En particular, primero debe configurar un sistema como CA. OpenVPN se envía con un conjunto de scripts
para ayudar con esta tarea. Estos scripts generalmente se pueden encontrar en / usr / share / openvpn /
easy - rsa , / usr / share / doc / packages / openvpn , o un directorio similar. Para prevenir tu
las personalizaciones se sobrescriban con actualizaciones de paquetes, debe copiar los scripts
a otra ubicación, como / etc / openvpn .
Con los scripts copiados, edite el archivo / etc / openvpn / vars y edite KEY_COUNTRY , KEY_
Parámetros PROVINCE , KEY_CITY , KEY_ORG y KEY_EMAIL para reflejar su organización. Tú
luego debe escribir los siguientes tres comandos dentro de / etc / openvpn para configurar
su CA:
# ./vars
# ./limpiar-todos
# ./build-ca
Después de escribir el comando final, se le solicitarán varios datos
(algunos de los cuales están predeterminados a los valores establecidos en el archivo vars ). Con las claves de CA generadas,
puede generar claves para un servidor OpenVPN y uno o más clientes:
# ./build-key-server server
# ./build-key client1
# ./build-key client2
Después de cada uno de estos comandos, se le pedirá que ingrese o verifique información similar
a lo requerido al construir el CA. Los valores predeterminados para la mayoría de los valores funcionarán bien. Ser
asegúrese de ingresar valores únicos para cada sistema cuando se le solicite un Nombre común . Uno mas
El paso finalizará la generación de claves:
# ./build-dh
Este comando calcula un número primo grande que se utiliza en el proceso de cifrado.
Con este paso hecho, encontrará todas las claves de OpenVPN y los archivos relacionados en las claves
subdirectorio. La Tabla 5.5 resume los propósitos y características de estas claves. Debieras
copie los archivos en las computadoras especificadas en la columna Copiar a de la Tabla 5.5. Esta tarea
debe hacerse utilizando un método seguro, tal vez un medio extraíble entregado a mano, como
como una unidad flash USB, o una copia usando scp (comando de copia de archivos de SSH). Copie los archivos a
/ etc / openvpn o un subdirectorio de ese directorio, asegurándose de copiar solo los archivos que
debe copiarse en cada computadora.

Página 271
Configurando la VPN
Debe editar los archivos de configuración del cliente y del servidor. Puede encontrar muestras en http: //
[Link]/[Link]/open-source/documentation/[Link]#examples , o puede
búsquelos en un directorio como / usr / share / doc / packages / openvpn o / usr / share /
doc / openvpn en su computadora. Los archivos de configuración de cliente y servidor deben llamarse
[Link] y [Link] , respectivamente, y ambos deben copiarse en / etc / openvpn .
Luego debe editar estos archivos, prestando especial atención a las siguientes características:
Tanto para los clientes como para el servidor, edite los parámetros ca , cert y key para que apunten a la clave
archivos que ha copiado en el sistema que se está configurando. También debe configurar el parámetro dh
en el servidor.
Si las redes de clientes deben poder comunicarse entre sí, descomente
directiva cliente a cliente en la configuración del servidor .
Quite el comentario del usuario nadie y agrupe las directivas de nadie en el servidor para mejorar
seguridad.
En los clientes, edite el parámetro remoto para que apunte al servidor. Esta línea incluye tanto
un nombre de host y un número de puerto ( 1194 por defecto). Cambie el número de puerto solo si
cámbielo en el servidor usando su directiva de puerto o si el servidor está protegido por un NAT
enrutador que reenvía un puerto diferente a ese número en el servidor.
Los archivos de configuración de muestra están bien comentados, por lo que puede leerlos detenidamente para localizar
otras opciones que quizás desee ajustar para su configuración particular.
Establecer la conexión VPN
Con el servidor y los clientes configurados, ahora puede probar su VPN. Para lanzar el
VPN, escriba openvpn config - file , donde config - file es la ruta completa a su VPN




TABLA 5.5 Archivos clave de OpenVPN y propósitos
Nombre del archivo
Copiar a
Propósito
Secreto
[Link]
Servidor y todos los clientes
Certificado CA
No
[Link]
Solo máquina de firma de llaves
Clave CA
si
[Link]
Solo servidor
Parámetros de Diffie Hellman
No
[Link]
Solo servidor
Certificado de servidor
No
[Link]
Solo servidor
Clave del servidor
si
cliente n .crt
Cliente n solamente
Certificado de cliente n
No
cliente n .clave
Cliente n solamente
Cliente clave n
si
Configuración de opciones de red adicionales
229

Página 272
230
Capítulo 5 Configuración de redes
archivo de configuración. Esta ruta, por supuesto, apuntará a la configuración del servidor para el servidor
y la configuración del cliente para cada uno de sus clientes. Puede comprobar la salida proporcionada
por el programa para cualquier mensaje de error. La salida debe concluir con el mensaje
Secuencia de inicialización completada . Si todo parece estar en orden, puede probar la conectividad básica
del cliente al servidor:
$ ping [Link]
La dirección [Link] se le da al servidor en los archivos de configuración predeterminados; cámbialo si
usted mismo modificó este detalle. Si esto funciona, puede comenzar a expandir la configuración
para permitir que otras computadoras en el lado del cliente y / o del servidor se comuniquen usando la VPN.
Suponga que el servidor está en la red [Link]/24. En la configuración del servidor, agregue el
línea siguiente al archivo de configuración para permitir que los sistemas del lado del servidor utilicen la VPN:
presione "ruta [Link] [Link]"
Cambie las direcciones para que coincidan con su red, por supuesto. Esto permite vínculos entre
máquinas en la red local y la red remota (cliente). También debe ajustar el
el enrutador de la red del lado del servidor para incluir una ruta adecuada, para la subred VPN del servidor
([Link]/24 por defecto). Este cambio no es necesario si el enrutador VPN es también el de la red.
enrutador convencional. Tenga en cuenta que no es necesario enrutar el tráfico a la subred local del cliente;
en lo que respecta a otros sistemas en la red del servidor, un cliente VPN aislado
tener una dirección en la subred [Link]/24.
Si desea que un cliente funcione como un enrutador VPN, en lugar de solo como una sola computadora
que se conecta por sí mismo, debe realizar más cambios. En el servidor , debe crear
un directorio llamado / etc / openvpn / ccd y establezca las siguientes directivas en el servidor
archivo de configuración:
cliente-config-dir ccd
ruta [Link] [Link]
Ajuste la dirección IP y la máscara de red en la línea de ruta para la red de su cliente. En
el directorio / etc / openvpn / ccd , cree un archivo de configuración con el nombre común dado
al cliente OpenVPN. Este archivo debe duplicar la línea de ruta en la configuración principal
archivo pero usando la palabra clave iroute :
iroute [Link] [Link]
Si desea habilitar el servidor OpenVPN para dirigir el tráfico entre el cliente VPN
redes, agregue las siguientes líneas al archivo de configuración del servidor (nuevamente, cambiando el
direcciones apropiadas para su red):
cliente a cliente
presione "ruta [Link] [Link]"
Finalmente, debe realizar cambios en la configuración predeterminada del enrutador tanto para el servidor
y redes de clientes para dirigir el tráfico para las redes remotas a través de su respectiva VPN
sistemas.

Página 273
Con estos cambios en su lugar, reinicie el cliente y el servidor y pruebe sus conexiones usando
ping u otras herramientas. Si tiene problemas, consulte el sitio web de OpenVPN, que contiene
instrucciones ampliadas e información de solución de problemas.
Muchas distribuciones se envían con scripts de inicio que escanean el directorio / etc / openvpn en busca de
archivos de configuración del cliente y del servidor e inicie openvpn en el modo apropiado. Si tu
el sistema contiene dichos archivos, puede cerrar el programa y reiniciarlo con estas herramientas
y configurar la computadora para que inicie OpenVPN automáticamente cuando se inicie.
Supervisión del tráfico de la red
Existen varias herramientas de monitoreo de red que pueden ayudarlo a verificar la red adecuada
funcionamiento, compruebe qué programas están utilizando la red y supervise el tráfico de la red.
Usando nc
La utilidad nc (también conocida como netcat ) es una herramienta de red de propósito general muy poderosa.
Puede enviar datos arbitrarios, monitorear puertos de red y más. Su sintaxis básica es:
nc [ opciones ] [ nombre de host ] [ puertos ]
La Tabla 5.6 resume la más importante de las muchas opciones de nc . Consulte su página de manual para
más detalles. El programa nc realiza accesos de nivel bastante bajo y se puede programar, lo que
le permite crear scripts usando nc para buscar servidores disponibles en una red o realizar
otras pruebas especializadas.
Opción
Propósito
-d
No lee de la entrada estándar.
-h
Muestra información de ayuda.
- yo intervalo
Inserta un retraso entre el texto enviado y recibido.
-k
Sigue escuchando una nueva conexión después de la actual
termina. Debe usarse junto con - l .
-l
Escucha una conexión entrante en lugar de establecer una conexión saliente
uno.
-n
No realiza búsquedas de DNS.
- puerto p
Establece una conexión mediante el puerto de salida especificado. Puede no ser
usado con - l .
-r
Selecciona números de puerto al azar.
TABLA 5.6 Opciones nc comunes
Configuración de opciones de red adicionales
231

Página 274
232
Capítulo 5 Configuración de redes
Opción
Propósito
- s ip - dirección
Especifica la dirección IP de una conexión saliente. No se puede utilizar
con - l .
-U
Utiliza sockets de dominio Unix.
-u
Utiliza UDP en lugar de TCP.
-v
Produce una salida detallada.
- w tiempo de espera
Termina una conexión si ha estado inactiva durante segundos de tiempo de espera .
- versión X
Utiliza la versión de proxy especificada; los valores válidos son 4 (SOCKS v.4),
5 (SOCKS v.5; el valor predeterminado) y conéctese (proxy HTTPS). Utilizada en
en conjunción con - x .
- dirección x [: puerto ] Establece una conexión a través del servidor proxy especificado.
-z
Busca un servidor de escucha sin enviarle datos.
TABLA 5.6 Opciones nc comunes (continuación)
Usando netstat
Otra herramienta de diagnóstico útil es netstat . Esto es algo así como una navaja suiza
de herramientas de red porque se puede utilizar en lugar de varias otras, dependiendo de la
parámetros que ha pasado. También puede devolver información que no se obtiene fácilmente en otros
formas. Algunos ejemplos incluyen lo siguiente:
Información de interfaz Pase netstat la - - interfaz o - i parámetro para obtener
información sobre sus interfaces de red similar a la que devuelve ifconfig . (Algunos
versiones de netstat devuelven información en el mismo formato, pero otras muestran el
información de manera diferente.)
Información de enrutamiento Puede utilizar el parámetro - - route o - r para obtener una tabla de enrutamiento
listado similar a lo que muestra el comando route .
Información de la mascarada Pass netstat del - - disfrace o - M parámetro para obtener
información sobre las conexiones mediadas por las características NAT de Linux, que a menudo se denominan
nombre de IP enmascarado . NAT permite que un enrutador Linux "oculte" una red detrás de una sola
Dirección IP. Esta puede ser una buena forma de ampliar las direcciones IPv4 limitadas.
Uso del programa Algunas versiones de netstat admiten el parámetro - - program (o - p ), que
intenta proporcionar información sobre los programas que utilizan conexiones de red.
Este intento no siempre tiene éxito, pero a menudo lo es, por lo que puede ver qué programas son
hacer conexiones externas.

Página 275
Puertos abiertos Cuando se usa con varios otros parámetros o sin ningún parámetro en absoluto,
netstat devuelve información sobre los puertos abiertos y los sistemas a los que se conectan.
Todas las conexiones La opción - - todas o - una se utiliza junto con otras. Causa
netstat para mostrar información sobre los puertos que los programas del servidor abren para escuchar
conexiones de red, además de las conexiones ya abiertas.
Tenga en cuenta que netstat es una herramienta poderosa, y sus opciones y resultados no son del todo
coherente de una distribución a otra. Es posible que desee examinar su página de manual y
Experimente con él para aprender lo que puede hacer. Como ejemplo básico del uso de netstat , considere
el seguimiento:
# netstat -ap
Conexiones de Internet activas (servidores y establecidas)
Dirección local de Proto Recv-Q Send-Q
Dirección en el extranjero
Estado
PID / nombre del programa
tcp
0 0 *: ftp
*: *
ESCUCHA
690 / inetd
tcp
0 0 [Link]:ssh [Link] ESTABLECIDO
787 / sshd
He recortado la mayoría de las entradas de la salida de netstat anterior a
Hágalo manejable como ejemplo.
Las columnas Dirección local y Dirección extranjera especifican la dirección local y remota.
direcciones, incluido el nombre de host o la dirección IP y el número de puerto o asociado
nombre de / etc / services . La primera de las dos entradas que se muestran aquí no está conectada activamente,
por lo que la dirección local, la dirección extranjera y el número de puerto se enumeran como asteriscos
( * ). Sin embargo, esta entrada especifica el puerto local: ftp . Esta línea indica que un servidor
se está ejecutando en el puerto ftp (puerto TCP 21). La columna Estado especifica que el servidor es
escuchando una conexión. La última columna de esta salida, bajo el nombre del programa / PID
encabezado, indica que el proceso con un ID de proceso (PID) de 690 está utilizando este puerto. En esto
caso, es inetd .
La segunda línea de salida indica que se ha establecido una conexión entre teela
.[Link] y [Link] (el segundo nombre de host está truncado). El local
el sistema ( teela ) está usando el puerto ssh (puerto TCP 22) y el puerto 39361 se usa en el cliente
( nessus ). El proceso que maneja esta conexión en el sistema local es sshd , ejecutando
como PID 787.
Puede llevar algún tiempo examinar la salida de netstat , pero hacerlo te dejará con
una mejor comprensión de las conexiones de red de su sistema. Si detecta servidores
escuchando conexiones que no te diste cuenta que estaban activas, deberías investigar el
importa más. Algunos servidores pueden ser inocentes o incluso necesarios. Otros pueden ser inútiles
riesgos de seguridad.
Configuración de opciones de red adicionales
233

Página 276
234
Capítulo 5 Configuración de redes
Cuando usa la opción -p para obtener el nombre y el PID del proceso
utilizando un puerto, la salida de netstat es más ancha que 80 columnas. Es posible que desee
para abrir una ventana xterm extra ancha para manejar esta salida, o puede
desea redirigirlo a un archivo que puede estudiar en un editor de texto capaz de
mostrando más de 80 columnas. (Redirigir la salida a veces puede
producir un archivo con caracteres de formato adicionales que pueden resultar confusos,
aunque.)
Para detectar rápidamente los servidores que escuchan conexiones, canalice la salida a través de un grep LISTEN
comando para filtrar en el estado de escucha. El resultado mostrará todos los servidores que están escuchando
para las conexiones, omitiendo las conexiones del cliente y las instancias específicas del servidor que ya están
conectado a los clientes.
Utilizando tcpdump
La utilidad tcpdump es un rastreador de paquetes , que es un programa que puede interceptar redes
paquetes y registrarlos o mostrarlos en la pantalla. Los rastreadores de paquetes pueden ser útiles para el diagnóstico
herramientas porque le permiten verificar que una computadora esté recibiendo datos de
otras computadoras. También le permiten examinar los datos en su forma sin procesar, que puede ser
útil si comprende lo suficiente los detalles de implementación del protocolo para detectar problemas.
Aunque los rastreadores de paquetes son herramientas de diagnóstico útiles, también pueden
abusado. Por ejemplo, las personas sin escrúpulos pueden ejecutar rastreadores de paquetes para
capturar contraseñas que otros envían a través de la red. Depende de tu
configuración de red, este truco puede funcionar incluso si el rastreador de paquetes no está
ejecutándose en la computadora emisora o receptora. Por esta razón, muchos
Las organizaciones tienen políticas que prohíben el uso de rastreadores de paquetes, excepto
en circunstancias limitadas. Por tanto, antes de ejecutar un rastreador de paquetes,
debe obtener un permiso por escrito de un individuo para utilizar dicho programa
quién está autorizado a otorgar dicho permiso. No hacerlo puede llevarlo
en serios problemas, posiblemente hasta perder su trabajo o incluso ser demandado.
En su forma más básica, puede usar tcpdump escribiendo su nombre:
# tcpdump
tcpdump: salida detallada suprimida, use -v o -vv para decodificar el protocolo completo
escucha en eth0, tipo de enlace EN10MB (Ethernet), tamaño de captura 96 bytes
19: 31: 55.503759 altavoz [Link].631> [Link].631: UDP,
longitud: 139
19: 31: 55.505400 IP [Link].33513> [Link]:
46276+ PTR? [Link].[Link]. (44)
19: 31: 55.506086 IP [Link]> [Link].33513:
46276 NXDomain * 0/1/0 (110)

Página 277
Lo primero que debe tener en cuenta sobre este comando es que debe ejecutarlo como root ; ordinario
los usuarios no pueden monitorear el tráfico de la red de esta manera. Una vez que se ejecuta, tcpdump
resume lo que está haciendo y luego comienza a imprimir líneas, una para cada paquete que monitorea.
(Algunas de estas líneas pueden ser bastante largas y, por lo tanto, pueden ocupar más de una línea en la pantalla).
Estas líneas incluyen una marca de tiempo, un identificador de pila ( IP en todos estos ejemplos), el origen
nombre del sistema o dirección IP y puerto, el nombre del sistema de destino o dirección IP y puerto,
e información específica del paquete. Normalmente, tcpdump sigue mostrando paquetes indefinidamente,
por lo que debe terminarlo presionando Ctrl + C. Alternativamente, puede pasarle el - c num
opción para que muestre num paquetes y luego salga.
Incluso este resultado básico puede resultar muy útil. Por ejemplo, considere el ejemplo anterior
de tres paquetes, que se capturó en [Link] . Esta computadora con éxito
recibió un paquete de transmisión (dirigido a [Link]) de [Link] 's
Puerto UDP 631, envió un paquete a [Link] y recibió un paquete de ese
sistema dirigido a [Link] en lugar de enviado como transmisión. Esta secuencia verifica
que existe al menos una comunicación mínima entre estas dos computadoras. Si estuvieras teniendo
problemas para establecer una conexión, podría descartar una amplia gama de posibilidades en función de
esta evidencia, como cables defectuosos o un firewall que estaba bloqueando el tráfico.
Si necesita más información, tcpdump proporciona varias opciones que mejoran o modifican
su salida. Estos incluyen - A para mostrar el contenido del paquete en ASCII, - D para mostrar una lista de
interfaces a las que tcpdump puede escuchar, - n para mostrar todas las direcciones numéricamente, - v (y
adicionales - opciones v , hasta - vvv ) para mostrar información adicional del paquete, y - archivo w
para escribir los paquetes capturados en el archivo especificado . Consulte la página de manual de tcpdump para obtener más
detalles sobre estas opciones y para opciones adicionales.
Usando Wireshark
Wireshark ( [Link] ), anteriormente conocido como Ethereal, es otro paquete
oledor. Cuenta con un análisis profundo de los paquetes de red, lo que significa que el programa puede
ayudarlo a profundizar en los paquetes de red para descubrir los significados que llevan, lo que permite
para rastrear problemas de red, por ejemplo, es una falla en la autenticación debido a una
versión de protocolo no coincidente, contraseña mal escrita, paquetes que faltan o
algún otro problema?
Se puede abusar de Wireshark, al igual que tcpdump . Antes de usarlo, obtenga por escrito
permiso de sus superiores, para que no incumpla las políticas que prohíben
el uso no autorizado de rastreadores de paquetes.
El uso más básico de Wireshark es a través del comando tshark , que por defecto muestra
datos de paquetes sin procesar interceptados por el programa:
# tshark
Ejecutando como usuario "root" y grupo "root". Esto puede resultar peligroso.
Capturando en eth1
0.000000 08: 10: 74: 24: 1b: d4 -> Broadcast ARP ¿Quién tiene [Link]? Contar
[Link]
Configuración de opciones de red adicionales
235

Página 278
236
Capítulo 5 Configuración de redes
0.308644 [Link] -> [Link] Paquete de respuesta cifrado SSH len = 128
0.308721 [Link] -> [Link] Paquete de respuesta cifrado SSH len = 48
Este ejemplo (que está truncado; la salida real continuará indefinidamente o hasta que
presione Ctrl + C) muestra una transmisión del Protocolo de resolución de direcciones (ARP) seguida de dos SSH
paquetes. Si desea restringir la salida de Wireshark, puede hacerlo con una amplia gama de
Opciones de tshark . Consulte su página de manual para obtener más detalles.
Probablemente le resulte más fácil utilizar Wireshark con su GUI, que a menudo se instala a través de
un paquete separado del paquete principal de Wireshark. En Fedora, por ejemplo, debe
instalar wirehark - gnome . Luego puede escribir wirehark para iniciar la GUI principal de Wireshark
programa. Al seleccionar Capture Start, comienza una captura de todo el tráfico. (Puedes limitar
lo que se captura con la opción Capturar filtros de captura ...).
finaliza la operación de captura. El resultado se parece a la Figura 5.4. Esta ventana tiene tres
paneles. El panel superior presenta un resumen de cada paquete de red, el panel central presenta
protocolo: análisis específico del paquete seleccionado en el panel superior, y el panel inferior muestra
los datos sin procesar del paquete.
FIGURA 5.4 Wireshark proporciona una GUI que permite un estudio de apuntar y hacer clic de captura
tráfico de red.

Página 279
Usando Nmap
Los escáneres de red, como Nmap ( [Link] ), pueden escanear para
puertos en la computadora local o en otras computadoras. Esto difiere de un rastreador de paquetes,
como tcpdump o Wireshark, ya que un escáner de red no monitorea el tráfico; es simplemente
informa sobre puertos que parecen aceptar paquetes de red entrantes.
Los crackers utilizan escáneres de red para localizar posibles sistemas objetivo,
así como por administradores de red con fines legítimos. Muchos
Las organizaciones tienen políticas que prohíben el uso de escáneres de red excepto
bajo condiciones específicas. Por lo tanto, debe verificar estas políticas y
obtener permiso explícito, firmado y por escrito, para realizar una red
escanear. No hacerlo podría costarle su trabajo o incluso resultar en
cargos, incluso si sus intenciones son honorables.
Nmap puede realizar una verificación básica de puertos abiertos. Pase el parámetro - sT y el nombre
del sistema de destino, como se muestra aquí:
$ nmap -sT último
A partir de Nmap 5.21 ([Link] en 2010-10-15 10:39 EDT
Informe de escaneo de Nmap para el último ([Link])
El host está activo (latencia de 0,0054 s).
Registro rDNS para [Link]: [Link]
No mostrado: 997 puertos filtrados
SERVICIO DE ESTADO PORTUARIO
21 / tcp ftp abierto
23 / tcp telnet abierto
80 / tcp abre http
Al igual que con la salida de netstat que se muestra en "Uso de netstat ", lo anterior
la salida de Nmap se ha recortado por razones de brevedad.
Esta salida muestra tres puertos abiertos, 21, 23 y 80, utilizados por ftp , telnet y http ,
respectivamente. Si no sabía que estos puertos estaban activos, debe iniciar sesión en el
escaneó el sistema e investigue más a fondo, utilizando netstat o ps para localizar los programas utilizando
estos puertos y, si lo desea, ciérrelos. La opción - sT especifica un escaneo de puertos TCP.
Sin embargo, algunos servidores se ejecutan en puertos UDP, por lo que debe escanearlos escribiendo nmap - sU
nombre de host . (Este uso requiere privilegios de root , a diferencia de la exploración de puertos TCP).
Nmap es capaz de realizar análisis más sofisticados, incluidos análisis "sigilosos" que probablemente no son
para ser notado por la mayoría de los tipos de firewalls, escaneos de ping para detectar qué hosts están activos, y
más. La página de manual de Nmap proporciona detalles.
Configuración de opciones de red adicionales
237

Página 280
238
Capítulo 5 Configuración de redes

Solución de problemas de red


Gran parte de este capítulo ha descrito un mundo idealizado en el que nada sale mal:
Los comandos funcionan como deberían, los cables de red son perfectos, las computadoras nunca fallan y
cada niño está por encima del promedio. Desafortunadamente, el mundo real no es así. Gran parte del
La tarea de cualquier administrador de Linux es lidiar con los casos en los que las cosas no funcionan como
Ellos deberían. Por lo tanto, el resto de este capítulo está dedicado a las herramientas y habilidades necesarias para
ayudar a identificar y resolver problemas. Las áreas problemáticas específicas cubiertas incluyen problemas de nombre de host,
dificultades de conectividad, problemas de enrutamiento y problemas relacionados con la seguridad.
Nada puede competir con la experiencia del mundo real para aprender
resolución de problemas. Si es posible, debe configurar una red real, preferiblemente
utilizando equipos que ejecutan diferentes distribuciones de Linux y no Linux
Sistemas operativos; esto garantizará más o menos que se encontrará con problemas que
tengo que resolver. Si esto no es práctico, intente configurar una red virtual usando
software de virtualización como QEMU ( [Link] ), VirtualBox
( [Link] ) o VMware ( [Link] ). Dado
suficiente RAM y espacio en disco, puede ejecutar varias máquinas virtuales a la vez
y vincularlos en una red virtual, lo que le permite ejecutar una variedad de
SO y configuraciones.

Identificación de puntos problemáticos


La primera tarea en la resolución de problemas de red es diagnosticar el problema. Esta tarea puede ser una
difícil, porque diferentes problemas pueden tener síntomas similares. En las próximas páginas,
Describo varias herramientas, procedimientos y reglas generales que pueden ayudarlo a reducir el alcance
del problema a algo manejable.
Localizar el nivel de un problema
Se puede pensar que las redes están construidas en capas, a partir de hardware físico (cables,
tarjetas de red, etc.) en las capas más bajas hasta aplicaciones de alto nivel (navegadores web,
Servidores SSH, etc.) en las capas más altas. Entre las capas se incluyen los controladores de hardware,
características del kernel que implementan protocolos como TCP e IP, etc. Estas capas pueden ser
clasificado de varias formas, como el modelo de interconexión de sistemas abiertos (OSI) que se muestra en
Figura 5.5. Las redes TCP / IP se describen a menudo en un modelo similar de cuatro capas que consiste en
de las capas Enlace, Internet, Transporte y Aplicación. Cada capa es responsable de
empaquetar o desempaquetar datos hacia o desde la capa equivalente en la computadora con la que se
comunicarse, así como comunicarse con las capas adyacentes en su propio sistema. En
De esta manera, los datos viajan por la pila de red desde el remitente y suben por la pila de red en
el recipiente.

Página 281
Pensar en términos de una pila de red puede ayudarlo a aislar un problema. Ni siquiera necesitas
conocer los detalles de lo que hace cada capa, aunque es necesario comprender los roles de
ciertos subsistemas clave, como el hardware, los controladores, la interfaz de red, la resolución de nombres,
y aplicaciones. Una rotura en un cable de red, por ejemplo, interferirá con todos los
tráfico, mientras que una falla en la resolución de nombres afectará solo al tráfico al que se dirige
nombre de host en lugar de la dirección IP. Puede utilizar este conocimiento para realizar algunas pruebas clave
cuando descubre un problema:
Realice una prueba con una herramienta básica de acceso a la red, como ping . Si el sistema de destino
responde, usted sabe que muchas de las capas inferiores funcionan, ya que el ping no depende
en servidores para trabajar. Sin embargo, tenga en cuenta que los paquetes ICMP utilizados por ping son
a veces bloqueado por cortafuegos. Debería intentar hacer ping a varias computadoras.
Pruebe ambas computadoras locales (en la misma red física y usando la misma dirección
block como sistema fuente) y sistemas remotos. Si las computadoras locales responden pero el
las computadoras remotas no lo hacen, el problema es probablemente un problema de enrutamiento.
Intente acceder a las computadoras tanto por el nombre de host como por la dirección IP. Si el acceso al nombre de host falla pero
El acceso a la dirección IP se realiza correctamente, es probable que el problema esté en la resolución de nombres.
Si es posible, intente utilizar varios protocolos de alto nivel. A veces, una computadora servidor
configurado correctamente para un protocolo pero no para otro.
Utilice las herramientas descritas anteriormente, en "Supervisión del tráfico de red", para aislar
problema. Wireshark puede ser particularmente útil, ya que puede ayudarlo a analizar
paquetes de red individuales. Puede ver si un servidor está respondiendo a su
peticiones; Si es así, lo más probable es que el problema se encuentre en un entorno de alto nivel, como una





Solicitud
Presentación
Sesión
Transporte
Red
Enlace de datos
Físico
Solicitud
Presentación
Sesión
Transporte
Red
Enlace de datos
Físico
Solicitud
Respuesta
FIGURA 5.5 El modelo OSI describe una pila de red en términos de varias capas de
hardware y software.
Solución de problemas de red
239

Página 282
240
Capítulo 5 Configuración de redes
opción de archivo de configuración o contraseña. Si un servidor no responde en absoluto, el servidor puede
estar mal configurado, es posible que esté intentando acceder a él en el puerto incorrecto o un firewall
podría estar bloqueando el acceso.
Las secciones posteriores de este capítulo se desarrollan en varias de estas estrategias de prueba.
Trazando una ruta
El comando ping , descrito anteriormente en "Comprobación de la conectividad básica", es muy útil
herramienta para diagnosticar problemas de red. Un paso adelante de ping es el comando traceroute ,
que envía una serie de tres paquetes de prueba a cada computadora entre su sistema y un
sistema de destino especificado. El resultado se parece a esto:
$ traceroute -n [Link]
traceroute a [Link] ([Link]), 30 saltos máx., paquetes de 52 bytes
1 [Link] 1.021 ms 36.519 ms 0.971 ms
2 [Link] 17.250 ms 9.959 ms 9.637 ms
3 [Link] 8.799 ms 19.501 ms 10.884 ms
4 [Link] 21.059 ms 9.231 ms 103.068 ms
5 [Link] 8.554 ms 12.982 ms 10.029 ms
6 [Link] 10.273 ms 9.987 ms 11.215 ms
7 [Link] 16.360 ms * 8.102 ms
La opción - n de este comando le dice que muestre las direcciones IP de las computadoras de destino en lugar de
que sus nombres de host. Esto puede acelerar un poco el proceso, sobre todo si tiene
Problemas de DNS y, a veces, puede facilitar la lectura de la salida, pero es posible que desee
para conocer los nombres de host de los sistemas problemáticos porque eso puede ayudarlo a identificar quién está
responsable de un problema.
Esta salida de muestra muestra una gran variabilidad en los tiempos de respuesta. El primer salto
a [Link], es puramente local; este enrutador respondió en 1.021, 36.519 y 0.971
milisegundos (ms) a sus tres sondas. (Es de suponer que la segunda sonda capturó el sistema mientras
estaba ocupado con otra cosa). Las sondas de la mayoría de los sistemas posteriores están en el intervalo de 8 a 20 ms
rango, aunque uno está en 103.068 ms. El sistema final tiene solo dos tiempos; la mitad
la sonda nunca regresó, como indica el asterisco ( * ) en esta línea.
Con traceroute , puede localizar problemas en la conectividad de la red. Altamente
tiempos variables y tiempos faltantes pueden indicar un enrutador que está sobrecargado o que tiene un
enlace no confiable al sistema anterior en la lista. Si ve un salto dramático en los tiempos,
normalmente significa que la distancia física entre dos enrutadores es grande. Esto es común
en enlaces intercontinentales. Tales saltos no significan necesariamente un problema a menos que los dos
los sistemas están tan cerca que no se espera un gran salto.
¿Qué puede hacer con la salida de traceroute ? De forma más inmediata, traceroute es útil
para determinar si existe un problema en la conectividad de la red en una red para la cual
tu eres responsable. Por ejemplo, la variabilidad en el primer salto del ejemplo anterior

Página 283
podría indicar un problema en la red local, pero el paquete perdido asociado con el
lo más probable es que el destino no sea un problema local. Si el vínculo del problema está dentro de su jurisdicción,
puede verificar el estado del sistema problemático, los sistemas cercanos y el segmento de red
en general.
Algunos enrutadores están configurados de tal manera que traceroute no es útil
herramienta; Estos enrutadores bloquean todos los datos de traceroute , ya sea para ellos mismos o
para todos los paquetes que los atraviesan. Si su salida de traceroute contiene
una o dos líneas de todos los asteriscos, pero todo lo demás parece correcto, es probable
¿Se ha encontrado con un sistema de este tipo? Si no ve nada más que asteriscos después
un determinado enrutador, pero las herramientas de diagnóstico como ping todavía funcionan, un enrutador es
probablemente bloqueando todas las operaciones de traceroute .
Localización de procesos en ejecución
Muchos problemas se relacionan con el estado de los programas que se ejecutan localmente. La herramienta netstat ,
descrito anteriormente en "Uso de netstat ", puede ser útil para localizar programas que acceden
la red, incluida la identificación de los puertos que están utilizando. Si un servidor no responde a
solicitudes de conexión, puede utilizar netstat para verificar que de hecho está escuchando el
Puerto. Debido a que la salida de netstat tiende a ser muy larga, es posible que desee canalizarla a través de menos
o grep para permitir la navegación o buscar información específica. Por ejemplo, suponga que
desea comprobar la presencia de un servidor de Protocolo simple de transporte de correo (SMTP), que
debe estar activo en el puerto 25 (identificado como smtp ). Puede hacerlo de la siguiente manera:
# netstat -ap | grep smtp
Si se está ejecutando un servidor SMTP, el hecho debería ser evidente en el resultado. Si netstat es
ejecutar como root , la salida incluirá el número de identificación del proceso (PID) y el nombre del proceso del
servidor.
Puede utilizar el programa de vigilancia para ejecutar comandos como netstat .
Al hacerlo, vuelve a ejecutar el programa cada dos segundos y crea un
pantalla actualizada. Esto puede resultar útil si está buscando un intermitente
conexión.
Otra herramienta que es útil para localizar programas que utilizan redes es lsof . Este programa
el objetivo principal es enumerar los archivos abiertos; sin embargo, la definición del programa de "archivo" incluye
tomas de red. Por lo tanto, es útil para algunos de los mismos propósitos que netstat . Cuadro 5.7
resume lsof opciones que son útiles en este contexto. El programa ofrece muchos más
opciones que pueden ajustar su salida o que son relevantes principalmente para búsquedas de archivos locales.
Consulte su página de manual para obtener más detalles.
Solución de problemas de red
241

Página 284
242
Capítulo 5 Configuración de redes
Un uso básico de lsof es usarlo con su opción - i :
# lsof -i
Contraseña:
COMANDO PID USUARIO TIPO FD TAMAÑO DEL DISPOSITIVO / NOMBRE APAGADO NOMBRE
tazasd 7584 raíz 6u IPv4 10405 0t0 TCP localhost: ipp
(ESCUCHA)
tazasd 7584 raíz 8u IPv4 10408 0t0 UDP *: ipp
ntpd 7723 raíz 16u IPv4 10619 0t0 UDP *: ntp
ntpd 7723 raíz 17u IPv4 10623 0t0 UDP localhost: ntp
ntpd 7723 raíz 18u IPv4 10624 0t0 UDP
[Link]:ntp
Esta salida muestra dos procesos que utilizan la red: cupsd y ntpd . Ambos procesos son
se ejecuta como root y tiene varias conexiones o está escuchando conexiones entrantes.
Esta salida se ha truncado por brevedad. Tenga en cuenta que lsof mostrará
una lista limitada de procesos de red si se ejecuta como un usuario normal; debes correr
como root para obtener una lista completa de los procesos de red.
TABLA 5.7 Opciones comunes de lsof relacionadas con el diagnóstico de red
Opción
Propósito
- yo [ dirección ]
Selecciona procesos usando accesos de red, opcionalmente restringidos a aquellos que usan
la dirección especificada . La dirección toma la forma [46] [ protocolo ] [@ host
nombre | hostaddr ] [: servicio | puerto ] , donde 46 se refiere a la versión IP, protocolo
es el nombre del protocolo ( TCP o UDP ), hostname es un nombre de host, hostaddr es una IP
dirección, servicio es un nombre de servicio y puerto es un número de puerto.
-l
Evita la conversión de números de ID de usuario (UID) en nombres de usuario.
+|-M
Habilita ( + ) o deshabilita ( - ) el reporte de registros de mapeadores de puertos,
que son utilizados por Network File System (NFS) y algunos otros servidores.
El comportamiento predeterminado es una opción en tiempo de compilación.
-n
Evita la conversión de direcciones IP a nombres de host en la salida.
- PAGS
Evita la conversión de números de puerto en nombres de servicios.
-t
Muestra solo números de ID de proceso (PID); útil si desea canalizar el
salida para matar o algún otro programa que opere con números PID.
-X
Omite la visualización de información sobre archivos TCP, UDP y UDPLITE. Esencialmente,
esta opción restringe la salida a información que no pertenece a la red. Como tal, usándolo
con - i es un error.

Página 285
Examinar archivos de registro
Los archivos de registro pueden contener una gran cantidad de información sobre problemas de redes. En la práctica, usted
Es posible que deba examinar varios archivos de registro y tal vez usar herramientas como grep para ayudarlo a
a través de la abundante información almacenada en estos archivos.
El primer archivo de registro no es realmente un archivo; es el búfer de anillo del kernel , que es un área de almacenamiento
para mensajes generados por el kernel de Linux. Puede acceder al búfer de anillo del kernel escribiendo
dmesg . El resultado será una gran cantidad de mensajes, quizás incluyendo algunos como este:
[14.335985] r8169 0000: 02: 00.0: eth0: RTL8168c / 8111c en 0xffffc90011242000,
00: e0: 4d: a3: 24: a5, XID 1c2000c0 IRQ 40
[14.343594] udev: se cambió el nombre de la interfaz de red eth0 a eth1
Debido a que el búfer de anillo del kernel contiene mensajes del kernel, su información generalmente
se refiere a conductores y otras actividades de bajo nivel. Este ejemplo, por ejemplo, muestra un mensaje
mostrado por el controlador r8169 , que se ha cargado para administrar un dispositivo Ethernet para
un conjunto de chips Realtek (RTL) 8168c / 8111c. La primera línea indica que el conductor ha sido
asignado el identificador eth0 . Sin embargo, la segunda línea indica que el subsistema udev
ha cambiado el nombre de eth0 a eth1 . Tal detalle puede ser crítico; si espera encontrar el
red administrada por el dispositivo Realtek en eth0 , tendrá problemas. Ante tal
información, debe ajustar la configuración de su red para usar eth1 en lugar de
eth0 o ajuste su configuración de udev para no cambiar el nombre del dispositivo de red. (Capítulo 3,
"Gestión básica del sistema de archivos", describe udev .)
El búfer de anillo del kernel incluye información sobre mucho más que dispositivos de red, por lo que
es posible que deba canalizar la salida de dmesg a través de less o usar grep para localizar palabras clave.
Además, el búfer de anillo del núcleo tiene un tamaño limitado y, a medida que se acumulan los mensajes,
los primeros pueden perderse. Por esta razón, muchas distribuciones guardan una copia del anillo del kernel
búfer poco después de que el sistema arranque en / var / log / dmesg . Este archivo puede ser valioso porque
puede mostrarle lo que sucedió cuando se detectaron por primera vez sus dispositivos de hardware.
Varios otros archivos en / var / log pueden contener información de depuración valiosa. El / var /
Los archivos log / messages y / var / log / syslog son particularmente importantes. Estas
Los archivos a menudo contienen mensajes de programas de servidor que reflejan las operaciones normales del servidor.
así como fallos, como intentos fallidos de inicio de sesión. Algunos servidores crean sus propios archivos de registro o
a veces incluso varios archivos de registro en un subdirectorio. Samba y la impresión común de Unix
System (CUPS), por ejemplo, a menudo crea subdirectorios llamados / var / log / samba y / var /
log / tazas , respectivamente.
Puede usar el programa tail y su opción - f para monitorear cambios en
archivos de registro. Escribiendo tail - f / var / log / messages , por ejemplo, inmediatamente
muestra las últimas líneas de / var / log / messages . Como nuevos mensajes son
agregado, aparecerán en la pantalla. Esto es útil si desea verificar
mensajes nuevos mientras prueba una función de red.
Solución de problemas de red
243

Página 286
244
Capítulo 5 Configuración de redes
Resolución de problemas de nombre de host
Los problemas de nombre de host pueden tomar varias formas, que a su vez tienen varias soluciones posibles.
Anteriormente, en la sección "Configuración de nombres de host", se describió la configuración del nombre de host.
Recuerde que los nombres de host deben configurarse tanto en la computadora local como en un servidor DNS o
otros medios de resolución de nombres de host. La configuración del nombre de host local afecta al nombre de host que
que la computadora usa para sí misma, como en las indicaciones de bash o incrustadas en paquetes de red,
la computadora envía a otras computadoras. El nombre de host configurado en los servidores DNS de su red, en
por otro lado, afecta la forma en que otras computadoras se comunican con su sistema.
Si estos dos nombres de host no coinciden, pueden surgir problemas. Si su computadora afirma que
tiene un nombre de host particular, pero si ese nombre de host no está presente en las entradas de DNS para su
red o si ese nombre de host está asignado a otra computadora, entonces algunos protocolos de red
podría no funcionar correctamente. Por ejemplo, si un cliente de correo electrónico, mediante llamadas al sistema local, cree
su nombre de host es [Link] , puede incrustar esa dirección en los mensajes de correo electrónico enviados desde
tu computadora. Sin embargo, si esta dirección no existe en el servidor DNS, los destinatarios del correo electrónico
enviado desde su computadora no podrá responder. Si la dirección existe pero está asociada a
otra computadora, el correo electrónico destinado a usted puede estar mal dirigido a otra computadora.
Puede aprender el nombre de host de su propia computadora, como se conoce localmente, escribiendo nombre de host .
Esta llamada devuelve solo la parte del nombre de host; si desea conocer el FQDN, use la - f ,
- - fqdn , o - - opción larga , como en el nombre de host - - fqdn . Puede verificar que este nombre se resuelve en
su máquina mediante el comando host , que realiza búsquedas de DNS:
$ nombre de host -f
[Link]
$ host [Link]
[Link] tiene la dirección [Link]
Puede combinar los dos comandos anteriores como host `hostname -
f` . Este comando produce la misma salida que el segundo comando,
siempre que todo esté configurado correctamente. Tenga en cuenta que este comando incluye
dos marcas de retroceso ( ` ), que aparecen a la izquierda de la tecla 1 en la mayoría de las
teclados; estos no son caracteres ordinarios de comillas simples ( ' ), que
aparecen a la izquierda de la tecla Intro en la mayoría de los teclados estadounidenses.
Si ifconfig muestra que tiene la dirección IP devuelta por el host , su configuración
es consistente. Sin embargo, hay algunas situaciones en las que es normal una incoherencia.
Los ejemplos incluyen sistemas con múltiples interfaces de red, granjas de servidores que emplean carga
equilibrio (dirigir el tráfico para un nombre de host a varios servidores) y diferentes internos y
direcciones IP externas o nombres de host cuando una red utiliza NAT.
Si su servidor DNS local maneja las búsquedas de un pequeño dominio privado, es posible que desee
Verifique que la red DNS global pueda encontrar su nombre de host. Para hacer esto, pase la dirección IP
de un servidor DNS remoto después del nombre de host que desea buscar con host :
$ host [Link] [Link]

Página 287
Este ejemplo usa el servidor DNS en [Link] para realizar la resolución de nombres,
en lugar de cualquier servidor que sea el predeterminado configurado actualmente. Tendrás que obtener el
Dirección IP de un servidor de nombres adecuado, por supuesto.
Si sus nombres de host DNS y definidos localmente no coinciden, tiene varios
recursos:
Ajuste el DNS u otros sistemas de resolución de nombres de red si cree que sus entradas de DNS
están mal, puede intentar ajustarlos o hacer que se ajusten por usted. A menos que controle el
Servidor DNS, tendrá que ponerse en contacto con otra persona, el administrador del servidor DNS, para tener
esto hecho. (El Capítulo 6, “Configuración del servidor DNS”, trata sobre la administración del servidor DNS).
Ajustar / etc / hosts Si su computadora es parte de una pequeña red local, puede editar
Archivo / etc / hosts . Este archivo contiene asignaciones de direcciones IP a nombres de host, normalmente para
pequeña cantidad de computadoras locales. Tenga en cuenta que la edición de este archivo ajusta la resolución del nombre para el
computadora que contiene este archivo solamente . Por lo tanto, si necesita arreglar la resolución de nombres para una computadora
que es inalcanzable por su nombre correcto, debe ajustar los archivos / etc / hosts en todos los
computadoras que deberían poder alcanzar la computadora en cuestión.
Cambiar el nombre de host local Puede cambiar el nombre de host local de la computadora, normalmente
editar el archivo / etc / hostname o / etc / HOSTNAME .
Los problemas de DNS más profundos se pueden investigar utilizando la utilidad de excavación . Esta utilidad consulta DNS
servidores para obtener información sobre hosts individuales o dominios completos. En su forma más básica, puede
ser utilizado como host . Para consultar un servidor de nombres específico, agregue la dirección IP del servidor antes
el nombre de host, precedido por un signo de arroba ( @ ):
$ dig @ [Link] [Link]
La salida de dig es más detallada que la de host , y es más útil cuando
configurar o depurar configuraciones de servidor DNS que para otros fines. Por lo tanto,
El capítulo 6 describe la excavación con más detalle.
Si su computadora no parece estar resolviendo los nombres de host correctamente, puede verificar
el archivo / etc / hosts . Si este archivo contiene entradas que no debería tener, elimínelas; y si es
carece de las entradas que debería tener, agréguelas. También puede consultar el archivo /etc/[Link] . Como
descrito anteriormente en "Ajuste de archivos de configuración de red", este archivo debe contener
una línea de dominio que especifica un nombre de dominio predeterminado y hasta tres líneas de servidor de nombres que
especificar las direcciones IP de los servidores DNS:
dominio [Link]
servidor de nombres [Link]
servidor de nombres [Link]
servidor de nombres [Link]
Verifique que los servidores DNS estén funcionando consultando cada uno directamente con el host o
cavar . Si uno no funciona, espere un momento y vuelva a intentarlo, en caso de que el problema sea temporal. Si
un servidor DNS no parece responder en absoluto durante un período prolongado, tal vez su entrada sea
En error. Configurar el dominio correctamente es importante para resolver nombres de host que carecen del
Solución de problemas de red
245

Página 288
246
Capítulo 5 Configuración de redes
componente de dominio. Puede buscar dominios adicionales agregando una línea de búsqueda que enumere
dominios adicionales, separados por espacios o tabulaciones.
Si una computadora usa DHCP para la configuración de red, el cliente DHCP
reescriba /etc/[Link] cada vez que se lance o renueve su arrendamiento. Si
encuentra que la información incorrecta sigue apareciendo en este archivo,
puede que necesite ajustar la configuración en el servidor DHCP de su red o
comuníquese con la persona que mantiene este servidor sobre el problema. Capítulo 7
describe la configuración del servidor DHCP.

Resolución de problemas de conectividad


Los problemas básicos de conectividad, en los que una computadora no puede enviar ni recibir datos de red, son
generalmente causado por problemas de hardware (como un cable desconectado) o errores básicos
parámetros de configuración. Las secciones anteriores "Conexión a una red con DHCP"
y "Conexión a una red con una dirección IP estática" describen cómo configurar su
sistema utilizando estos métodos.
Si estos métodos no funcionan, primero debe verificar que está utilizando el método correcto.
método: asignación de dirección IP estática o DHCP. Si está intentando utilizar DHCP pero no
no funciona, puede intentar algunas cosas para solucionar o corregir el problema:
¿Pueden otras computadoras usar el servidor DHCP? Si no es así, quizás el servidor esté mal configurado.
Consulte el Capítulo 7 para obtener más información sobre la configuración del servidor DHCP.
¿Está configurado el servidor DHCP para ser selectivo con sus clientes? Si el servidor solo da
enviar direcciones IP a computadoras con direcciones de hardware conocidas u otras características,
es posible que deba ajustar la configuración del servidor para que conozca su
computadora, o puede que necesite modificar la configuración de su cliente, por ejemplo, pasando un
nombre particular al servidor DHCP.
¿Está en el mismo segmento de red que el servidor DHCP? Normalmente, un servidor DHCP
solo puede administrar clientes en su propio segmento de red física. Enrutadores intervinientes
por lo general, no pasa tráfico DHCP entre segmentos.
Pruebe con un cliente DHCP diferente. A veces, cambiar de cliente es más fácil que rastrear
una oscura incompatibilidad.
Verifique sus archivos de registro tanto en el cliente como en el servidor. Estos archivos pueden contener pistas
sobre el problema.
Ya sea que esté utilizando DHCP o una asignación de dirección IP estática, verifique la configuración adecuada en
/ etc / network , / etc / sysconfig / network - scripts / , u otra configuración de red o
archivos de script, como se describe anteriormente en este capítulo. Un error tipográfico en una dirección IP, máscara de red,
u otra configuración puede evitar que el sistema funcione.
No pase por alto la posibilidad de problemas de hardware. Un cable defectuoso, un interruptor defectuoso o incluso
una tarjeta de red defectuosa puede causar un dolor incalculable. Aunque la compatibilidad del controlador de Linux para Ethernet




Página 289
dispositivos es excelente, es posible que tenga una tarjeta con un soporte deficiente, por lo que actualizar el
controlador o reemplazar la tarjeta por una mejor compatible puede valer la pena. Desafortunadamente,
El soporte de Linux para dispositivos Wi-Fi es más irregular que su soporte para Ethernet. Si estas teniendo
problemas con un funcionamiento Wi-Fi no confiable, debe consultar con el fabricante del chipset
para ver si hay controladores actualizados disponibles. Examinar los foros de Internet también puede llevarlo a
controladores actualizados o soluciones alternativas para los problemas de Wi-Fi.
Resolución de problemas de enrutamiento
Los problemas de enrutamiento generalmente se pueden diagnosticar mediante traceroute , como se describió anteriormente en
“Trazando una ruta. "Si el problema se encuentra lejos de su computadora, es posible que no se pueda resolver
tú. Desafortunadamente, de vez en cuando surgen problemas de enrutamiento y es posible que no tenga
sino esperar a que el problema sea resuelto por quien esté a cargo del afectado.
enrutador. Sin embargo, puede intentar solucionar los problemas más cercanos a su hogar:
Si el problema es con un enrutador que cree que está bajo el control de su ISP, puede
comuníquese con su ISP al respecto.
Puede reiniciar su módem y cualquier enrutador de banda ancha bajo su control. Algunas veces
esto aclara los problemas de enrutamiento en el primer salto más o menos en una Internet de banda ancha
conexión.
Compruebe la configuración de su máscara de red (máscara de red). Si tiene una máscara de red incorrecta,
su computadora puede estar intentando enrutar paquetes que no debería enrutar o conectar
directamente a las computadoras para las que esto es imposible.
Compruebe que estén configuradas todas las rutas necesarias. Si su red tiene varios enrutadores, falla
establecer rutas explícitas para todos ellos puede degradar el rendimiento de la red.
Si ha configurado enrutadores usted mismo, asegúrese de que estén configurados correctamente. Cheque
sus tablas de enrutamiento, sus máscaras de red y su configuración en / proc / sys / net / ipv4 /
ip_forward .

Resolución de problemas de seguridad


Algunos problemas están relacionados con la configuración de seguridad. Un área que puede causar misteriosos
El problema es la configuración del firewall. El Capítulo 7 describe los cortafuegos con más detalle; pero por ahora tu
se verifica la configuracion de firewall mediante el uso de la - L opción de iptables :
# iptables -L
ENTRADA de cadena (política ACEPTAR)
fuente de opt opt de destino
destino
Cadena ADELANTE (política ACEPTA)
fuente de opt opt de destino
destino
Salida de cadena (política ACEPTAR)
fuente de opt opt de destino
destino





Solución de problemas de red
247

Página 290
248
Capítulo 5 Configuración de redes
Este ejemplo no muestra reglas de firewall definidas. Si ve las reglas especificadas en el
Cadenas de ENTRADA o SALIDA , la capacidad de su computadora para funcionar como cliente o servidor para
protocolos particulares se ve afectado. Asimismo, si alguna de las cadenas establece una política predeterminada de DROP
en lugar de ACEPTAR . Tal configuración no es necesariamente algo malo; todo el punto de un
firewall es para evitar el acceso no deseado ao desde la computadora. Las reglas de firewall deben ser
adaptado a su uso de la computadora, sin embargo. Por ejemplo, no querrá bloquear el
puerto SMTP entrante en un servidor de correo, excepto quizás de forma limitada, por ejemplo, para evitar
acceso externo a un servidor que existe solo para manejar el correo saliente de computadoras locales.
La cadena FORWARD afecta el reenvío de paquetes entre interfaces de red en
enrutadores, por lo que esta cadena solo afectará a las computadoras que estén configuradas como enrutadores.
Otro problema de seguridad que puede surgir es la configuración en /etc/[Link] y / etc /
archivos [Link] . Estos archivos son utilizados principalmente por el programa TCP Wrappers, que es
descrito en detalle en el Capítulo 10, “Seguridad. ”Al igual que con las reglas de firewall, las reglas de estos archivos
puede limitar el acceso a su computadora; sin embargo, estos archivos contienen reglas que afectan a los servidores
que están configurados para utilizar envoltorios TCP. Por lo tanto, si un servidor no responde a la conexión
solicitudes, especialmente si responde a algunas solicitudes de conexión pero no a otras, puede
revise estos archivos para ver si hay entradas. Si estos archivos están vacíos a excepción de los comentarios, no deberían
tener algún efecto. Si estos archivos parecen estar en uso, consulte el Capítulo 10 para obtener información sobre TCP.
Configuración de envoltorios, evalúe si esta configuración es apropiada y cámbiela si
necesario.
No cambie la configuración del cortafuegos o de los Wrappers TCP a menos que
entiéndelos. Esto es particularmente cierto si es nuevo en la administración de
sistema o si comparte la responsabilidad administrativa con otra persona.
Las reglas de cortafuegos y envoltorios TCP se implementan normalmente para muy bien
razones, por lo que cambiarlos o, especialmente, deshabilitarlos debe hacerse
sólo después de una cuidadosa consideración. Dicho esto, esas reglas a veces son
promulgada como parte de una opción de tiempo de instalación que puede haber pasado por alto o
establecido accidentalmente en un nivel demasiado estricto para sus necesidades.

Resumen
La configuración de la red es un tema extremadamente amplio, que va desde la configuración del hardware
parámetros para ajustar las opciones en docenas de servidores diferentes. Este capítulo cubre
algunos de los temas de configuración de red más básicos, comenzando con la activación de la red
interfaz. En los sistemas equipados con Wi-Fi, esta tarea comienza con la configuración de las opciones de Wi-Fi. En
todos los sistemas, incluye el uso de DHCP o herramientas de dirección IP estática para mostrar una
configuración. La configuración del nombre de host y la comprobación de la conectividad completan este tema.
Algunos sistemas requieren configuraciones de red más avanzadas. Uno de estos es el enrutador
configuración (un tema que se revisa en el Capítulo 7). Una variante de enrutador seguro, VPN, requiere

Página 291
aún más configuración. También debe estar familiarizado con una variedad de herramientas, como nmap ,
Wireshark, tcpdump , netstat y nc , para mostrar información sobre la configuración de su red, en
computadoras cercanas y en los datos que pasan a través de sus puertos de red.
Desafortunadamente, la configuración de la red no siempre se realiza sin problemas. Problemas
puede surgir en cualquier nivel, desde los cables que conectan las computadoras hasta los detalles esotéricos
de la configuración del servidor. Ser capaz de localizar un problema es una habilidad que se aprende mejor
experiencia, pero conocer las herramientas y algunas reglas básicas te ayudarán en esta tarea.

Examen esencial
Describa las herramientas específicas inalámbricas necesarias para conectarse a una red Wi-Fi. Antes de
configuración de red normal, debe conectar una computadora a una red Wi-Fi utilizando el
programa iwconfig , que toma una variedad de parámetros para especificar la frecuencia de radio,
contraseña de red y otras funciones de la red. El comando iwlist puede ser útil
para ayudar a identificar redes cercanas, en caso de que necesite detalles sobre ellas antes de conectarse.
Describe los comandos que se utilizan para activar una interfaz de red. El comando ifconfig hace
este trabajo. Normalmente, le pasa un nombre de interfaz, una dirección IP precedida por arriba y una máscara de red
precedido por netmask , como en ifconfig eth0 up [Link] netmask [Link] .
La mayoría de las distribuciones proporcionan un script llamado ifup que le permite abrir automáticamente un
interfaz de red, una vez configurada mediante archivos de configuración específicos de la distribución.
Explique cómo se manipulan las tablas de enrutamiento. El comando de ruta se usa para mostrar
o cambiar las tablas de enrutamiento. Puede pasar la opción agregar o del , seguida de adicionales
opciones para especificar la ruta que se agregará o eliminará. Por ejemplo, route add default gw
[Link] agrega una ruta predeterminada utilizando [Link] como computadora de puerta de enlace.
Resuma los tipos de direcciones de red. En el nivel más bajo, las direcciones de hardware identifican
dispositivos de red específicos, como puertos Ethernet. Las direcciones de hardware están vinculadas a Internet
Direcciones de protocolo (IP) a través del Protocolo de resolución de direcciones (ARP). Las direcciones IP son
asociado con nombres de host a través del Sistema de nombres de dominio (DNS) y archivos / etc / hosts .
Describa las herramientas utilizadas para probar las conexiones de red básicas. La utilidad ping envía una serie
de paquetes simples de una computadora a otra; el destinatario debe enviar una respuesta.
Este intercambio puede verificar que existe conectividad básica. Una variante más compleja de ping es
traceroute , que puede probar la velocidad de conexión y la confiabilidad entre todas las computadoras que
enrutar el tráfico entre dos sistemas.
Explica el propósito y las funciones básicas de una VPN. Una red privada virtual (VPN) es una
forma de conectar dos redes a través de una red que no es de confianza mientras se mantiene la seguridad
de datos transferidos en el proceso. Las VPN emplean una serie de claves criptográficas para cifrar
datos, y canalizan una amplia variedad de protocolos de red a través de un solo canal cifrado.
Cuando se configura correctamente, un enlace VPN se parece mucho a cualquier otro enlace enrutado al grupo
Examen esencial
249
Página 292
250
Capítulo 5 Configuración de redes
de los sistemas, pero los datos no pueden ser interpretados fácilmente por los enrutadores que intervienen, incluso si han
ha sido comprometido.
Resuma las herramientas que pueden analizar el tráfico de la red y las capacidades de los
ordenadores. La utilidad netstat puede revelar qué puertos están abiertos o en uso en un local.
computadora, mientras que Nmap puede escanear computadoras remotas en busca de puertos abiertos. Wireshark y tcpdump
son rastreadores de paquetes: monitorean el tráfico que pasa por los puertos de una computadora, lo que puede
ser útil para fines de diagnóstico. La utilidad nc (también conocida como netcat ) puede enviar redes arbitrarias
paquetes para probar las capacidades de un sistema remoto. Muchas de estas herramientas se pueden utilizar
legítimamente o abusados, así que tenga cuidado al implementarlos.
Describa cómo estudiar los problemas de resolución de nombres de host. Los comandos host y dig se pueden
utilizado para realizar búsquedas de nombres de host, descubriendo así problemas en una configuración de DNS. Tú
puede aprender su nombre de host local con el comando hostname . Si su nombre de host local no
coincide con el nombre de host DNS de la computadora, es posible que algunos protocolos no funcionen correctamente.
Resuma cómo utilizar los archivos de registro para diagnosticar problemas de red. El búfer de anillo del núcleo,
accesible a través de dmesg , contiene mensajes del kernel de bajo nivel relacionados con dispositivos de hardware.
Varios archivos de registro, los más notables entre ellos / var / log / messages y / var / log / syslog ,
contienen información de programas de servidor y utilidades de nivel superior. Cualquiera de estos registros
puede contener pistas sobre problemas, como no cargar un controlador, no obtener un
dirección de red a través de DHCP o un error de autenticación de red.
Explique cómo las medidas de seguridad configuradas incorrectamente pueden interferir con las redes. Cortafuegos,
Los envoltorios TCP y otras medidas de seguridad están destinadas a mantener un sistema seguro al negar
acceso ao desde puertos de red o computadoras particulares. Si se usan correctamente, estas medidas
mantén alejados a los malhechores; Sin embargo, si las medidas de seguridad están redactadas de forma demasiado amplia, niegan
acceso a usuarios legítimos.

Página 293
Preguntas de revisión
251

Preguntas de revisión
1. Intenta configurar una computadora en una red local a través de una configuración TCP / IP estática, pero
carece de una dirección de puerta de enlace. ¿Cual de los siguientes es verdadero?
R. Debido a que la dirección de la puerta de enlace es necesaria, no funcionará ninguna función de red TCP / IP.
B. La red TCP / IP funcionará, pero no podrá convertir nombres de host a
Direcciones IP, o viceversa.
C. Usted será capaz de comunicarse con las máquinas en su segmento de red local, pero no
con otros sistemas.
D. La computadora no podrá decir qué otras computadoras son locales y cuáles son
remoto.
2. ¿Cuál de los siguientes tipos de información se devuelve escribiendo ifconfig eth0 ?
(Elija todas las que correspondan).
A. Los nombres de los programas que utilizan eth0
B. La dirección IP asignada a eth0
C. La dirección de hardware de eth0
D. El nombre de host asociado con eth0
3. ¿En qué circunstancias podría utilizar la utilidad iwconfig?
R. Debe diagnosticar problemas en una red Token Ring.
B. Necesita activar o cerrar un enlace de red Ethernet.
C. Necesita conectar un sistema Linux a una nueva red inalámbrica.
D. Debe diagnosticar la falla de un cliente DHCP en una red PPP.
4. ¿Cuál de las siguientes utilidades puede generar una conexión de red? (Elija todas las que correspondan).
A. ifconfig
B. netstat
C. ifup
D. ping
5. ¿Cuál de los siguientes comandos debe usar para agregar al host [Link] un valor predeterminado?
puerta de enlace a [Link]?
A. ruta agregar predeterminado gw [Link] [Link]
B. ruta agregar predeterminado gw [Link]
C. ruta agregar [Link] predeterminado [Link]
D. ruta [Link] gw [Link]

Página 294
252
Capítulo 5 Configuración de redes
6. Usted escribe arp - n en un símbolo del sistema. ¿Qué tipo de salida verá?
A. Un resumen de errores de paquetes de red
B. Información de la tabla de enrutamiento
C. La (s) dirección (es) IP de su (s) servidor (es) de nombres
D. El mapeo de direcciones IP a direcciones MAC
7.
¿Cuál de los siguientes comandos puede abrir una interfaz en eth1? (Selecciona todo eso
aplicar.)
A. Escriba dhclient eth1 .
B. Escriba ifup eth1 .
C. Escriba ifconfig eth1 .
D. Escriba network eth1 .
8. ¿Cuál es el propósito de la opción - n para enrutar?
A. No provoca que se realice ninguna operación; ruta informa lo que haría si - n fueran
omitido.
B. Precede a la especificación de una máscara de red al establecer la ruta.
C. Hace que las máquinas se identifiquen por la dirección IP en lugar del nombre de host en la salida.
D. Fuerza la interpretación de una dirección proporcionada como una dirección de red en lugar de un host
habla a.
9. ¿Cuál de los siguientes programas puede monitorear el tráfico de red que ingresa a una computadora?
permitiéndole analizar el contenido de los paquetes?
A. OpenVPN
B. arp
C. netstat
D. Wireshark
10. ¿Qué logra el siguiente comando cuando se escribe como root?
# nmap -sU [Link]
A. Agrega una ruta predeterminada a través de [Link] a la computadora en la que
se escribe el comando.
B. Observa el tráfico de red UDP hacia o desde [Link], mostrando cada
paquete coincidente.
C. Mapea las características de Wi-Fi asociadas con el [Link] inalámbrico
red.
D. Escanea [Link] en busca de puertos UDP abiertos (escuchando) e informa los resultados de
este escaneo.

Página 295
Preguntas de revisión
253
11. Sabe que su computadora está ejecutando un servidor web en el puerto 80, pero no sabe
qué programa de servidor web está utilizando. ¿Cómo puedes descubrir esta información?
A. Escriba wget localhost como usuario normal.
B. Escriba lsof - i: 80 como raíz.
C. Escriba ifconfig - p 80 como root.
D. Escriba ifconfig - q - s 80 como usuario normal.
12. Desea vincular las redes privadas de cuatro sucursales a las de la oficina central de una empresa.
red privada usando OpenVPN. ¿Cuál de las siguientes condiciones debe asegurarse es
reunido para evitar problemas?
R. Cada una de las oficinas debe utilizar un rango de direcciones IP diferente.
B. Cada una de las oficinas debe utilizar una clave de una CA diferente.
C. Cada una de las oficinas debe tener aproximadamente la misma cantidad de computadoras.
D. Cada una de las oficinas debe utilizar DHCP en todas sus computadoras.
13. ¿Qué archivos se utilizan para configurar TCP Wrappers?
A. /etc/[Link] y /etc/[Link]
B. Archivos en el árbol de directorios / etc / tcpd
C. /etc/[Link] y / var / spool / tcpwrap
D. Archivos en el árbol de directorios /etc/tcpw.d
14. ¿Cómo puede saber qué programas están accediendo actualmente a la red en un sistema Linux?
A. Escriba ifconfig - p eth0 .
B. Examinar / proc / network / programas.
C. Examine /etc/[Link].
D. Escriba netstat - p .
15. La utilidad ping responde normalmente cuando la usa con una dirección IP, pero no cuando
utilícelo con un nombre de host que esté seguro que corresponde a esta dirección IP. Qué pudiera ser
causa este problema? (Seleccione todas las que correspondan.)
R. La computadora de destino puede estar configurada para ignorar los paquetes de ping.
B. Es posible que la configuración de DNS de su computadora esté rota.
C. La configuración de DNS en el sistema de destino puede estar rota.
D. La ruta entre su computadora y su servidor DNS puede ser incorrecta.
16. ¿Cuál es el propósito de / etc / hostname, si está presente en el sistema?
R. Contiene el nombre de host predeterminado de la computadora.
B. Contiene una lista de servidores que resuelven nombres de host.
C. Tiene una lista de direcciones IP y nombres de host asociados.
D. Contiene el nombre de host de la computadora de puerta de enlace local.

Página 296
254
Capítulo 5 Configuración de redes
17. ¿Cuál de los siguientes programas se puede utilizar para realizar una búsqueda de DNS?
A. anfitrión
B. dnslookup
C. bomba
D. ifconfig
18. Su computadora está en el dominio [Link], pero desea poder comunicarse con el neil
Servidores .[Link] y [Link] escribiendo neil o buzz
como los nombres de host, respectivamente. ¿Cómo puedes lograr este objetivo? (Elija todas las que correspondan).
A. Agregue las líneas host neil [Link] y host buzz buzz
.[Link] a su script de inicio de bash.
B. Agregue entradas para neil y buzz, vinculándolas a sus direcciones IP, a / etc / hosts.
C. Agregue la línea search [Link] a su archivo /etc/[Link].
D. Agregue el servidor de nombres de línea [Link] a su archivo /etc/[Link].
19. ¿Cuáles de las siguientes entradas se encuentran en el archivo / etc / hosts?
A. Una lista de hosts autorizados a acceder a este de forma remota
B. Asignaciones de direcciones IP a nombres de host
[Link] lista de usuarios autorizados a acceder de forma remota a este host
D. Contraseñas para la administración web remota
20. Su computadora tiene una dirección IP de [Link], con una máscara de red de
[Link]. Puede hacer ping a [Link] y [Link], pero no a [Link]
o [Link]. Si sabe que todas estas direcciones son válidas y las computadoras
encendido y conectado a la red, cuál de las siguientes es la causa más probable
de este problema?
A. La configuración del servidor de nombres está configurada incorrectamente en [Link].
B. La ruta predeterminada está configurada incorrectamente en [Link].
C. Los servidores DHCP deben estar activados en [Link] y [Link].
D. La máscara de red está configurada incorrectamente en [Link].

Página 297
Respuestas a las preguntas de repaso
1. C. La computadora de la puerta de enlace es un enrutador que transfiere datos entre dos o más redes
segmentos. Como tal, si una computadora no está configurada para usar una puerta de enlace, no podrá
comunicarse más allá de su segmento de red local. (Si su servidor DNS está en una
segmento de red, la resolución de nombres a través de DNS no funcionará, aunque otros tipos de nombres
resolución, como las entradas del archivo / etc / hosts, seguirá funcionando).
2. B, C. Cuando se usa para mostrar información en una interfaz, ifconfig muestra el hardware
y direcciones IP de la interfaz, los protocolos (como TCP / IP) vinculados a la interfaz, y
estadísticas sobre paquetes transmitidos y recibidos. Este comando no devuelve información
en programas que utilizan la interfaz o el nombre de host asociado con la interfaz.
3. C. La utilidad iwconfig configura una conexión inalámbrica (Wi-Fi) de Linux, por lo que la opción C es
correcto. Las opciones A, B y D se refieren todas al hardware de red cableada, para el cual iwconfig
es inútil.
4. A, C. El comando ifconfig es la herramienta básica de Linux para activar manualmente una red
conexión usando las opciones provistas en la línea de comando, mientras que ifup es una utilidad que trae
establecer una conexión de red basada en el contenido de los archivos de configuración de red. los
Los comandos netstat y ping son herramientas útiles de diagnóstico de red, pero no
abre las conexiones de red.
5. B. Para agregar una puerta de enlace predeterminada de [Link], el comando sería route add default
gw [Link] , como se indica en la opción [Link] la dirección IP del sistema host
no es necesario y de hecho confundirá el comando de ruta. Las opciones A, C y D son todas
distorsiones de la respuesta correcta y no funcionará correctamente.
6. D. La utilidad arp devuelve datos de la tabla del Protocolo de resolución de direcciones (ARP), que
contiene asignaciones de direcciones IP a direcciones de hardware (MAC). La opción - n muestra IP
direcciones como tales en lugar de convertirse en nombres de host. Información de error de paquete de red,
como se indica en la opción A, se puede obtener, junto con otra información, de ifconfig pero
no de arp. La información de la tabla de enrutamiento, como se indica en la opción B, generalmente se obtiene de
ruta o netstat - r. Las direcciones IP de su servidor de nombres, como en la opción C, son más fáciles de
obtenido mostrando el contenido de /etc/[Link].
7.
A, B. La utilidad dhclient, si está instalada, intenta configurar y activar la (s) red (es)
se le pasa como opciones (o todas las redes si no se le dan opciones) usando un servidor DHCP para
Guia. Por lo tanto, la opción A puede funcionar, aunque no funcionará si no hay un servidor DHCP disponible.
La opción B aplica cualquier opción de red configurada utilizando herramientas específicas de distribución
y trae la red. Por tanto, las opciones A y B pueden funcionar, aunque ninguna
garantizado para trabajar. La opción C muestra el estado de la red de eth1, pero no se activará
eth1 si aún no está activo. No existe una utilidad de red estándar en Linux. Por tanto, opciones
C y D no funcionarán.
Respuestas a las preguntas de repaso
255

Página 298
256
Capítulo 5 Configuración de redes
8. C. La opción - n se utiliza cuando desea utilizar la ruta para mostrar la tabla de enrutamiento actual,
y hace lo que especifica la opción C. No hay ningún parámetro de ruta que se comporte como la opción A
especifica. La opción B describe el propósito del parámetro netmask para enrutar. Opcion D
describe el propósito del parámetro - net para enrutar.
9. D. La opción D, Wireshark, es un rastreador de paquetes, lo que significa que se comporta como la pregunta
especifica. Incluye herramientas sofisticadas de comparación y análisis de paquetes para ayudar en esta tarea.
OpenVPN es una herramienta para conectar dos redes de forma segura incluso en una
red. La utilidad arp permite la inspección y alteración de la resolución de direcciones de una computadora
Caché de protocolo (ARP), que vincula las direcciones de hardware a las direcciones IP. La utilidad netstat es una
Utilidad de red de uso general que puede mostrar o cambiar una amplia variedad de datos de red.
10. D. La utilidad Nmap realiza escaneos de puertos de red y la opción - sU especifica un escaneo
de puertos UDP, por lo que la opción D es correcta. Es más probable que se cree una ruta predeterminada utilizando
la utilidad de ruta o editando archivos de configuración; Nmap no puede hacer este trabajo, por lo que la opción A es
incorrecto. La tarea descrita en la opción B se realiza mejor con un rastreador de paquetes, como tcpdump
o Wireshark; Nmap no puede hacer esto. El descubrimiento de las características de Wi-Fi lo realiza el
Utilidad iwlist, no por Nmap, por lo que la opción C es incorrecta.
11. B. El programa lsof devuelve información sobre archivos abiertos y los procesos que están utilizando
ellos, "archivos" se definen de una manera que incluye conexiones de red. Opción B
presenta la sintaxis correcta para obtener información sobre el proceso que está usando el puerto 80,
incluido el nombre del comando del proceso, por lo que la opción B es correcta. (Debe ejecutarlo como
root para obtener la información deseada). El comando wget de la opción A recuperará la página de inicio
del servidor web, pero no devolverá información sobre qué programa está haciendo el servicio, por lo que
esta opción es incorrecta. El comando ifconfig usado en las opciones C y D se usa para inspeccionar
o manipular una interfaz de red, pero no devuelve información sobre los procesos que utilizan
puertos específicos, por lo que ambas opciones son incorrectas. (Las opciones -p y -q de ifconfig son
también ambos ficticios. La opción - s altera el formato de su visualización).
12. A. Una vez conectados, los ordenadores de las oficinas podrán comunicarse con cada
otras (o al menos todas las sucursales podrán comunicarse con la oficina central) a través de
Dirección IP. Si los rangos de direcciones IP de dos oficinas se superpusieran, la confusión de enrutamiento
se produciría, por lo que la opción A es correcta. La opción B es incorrecta porque la forma más fácil de
configurar claves para OpenVPN es asignar todas las claves de las redes desde una única CA. los
El número de computadoras en cada red es irrelevante para la configuración de OpenVPN, por lo que la opción C
Es incorrecto. OpenVPN no requiere el uso de DHCP, por lo que la opción D es incorrecta.
13. A. Los archivos /etc/[Link] y /etc/[Link] son utilizados por TCP Wrappers para
controlar qué clientes pueden acceder a servidores que dependen de TCP Wrappers; por tanto, la opción A es correcta.
Las opciones B, C y D presentan todos nombres de archivos y directorios ficticios, por lo que son incorrectos.
14. D. El programa netstat produce varias estadísticas de red, incluido el proceso
ID (PID) y nombres de programas que acceden actualmente a la red cuando se pasan
- parámetro p. Por tanto, la opción D es correcta. El programa ifconfig no puede producir este
información, y la opción - p de este programa es ficticia, por lo que la opción A es incorrecta.
El archivo / proc / network / program de la opción B también es ficticio. /Etc/[Link] de la opción C
El archivo es real y puede proporcionar información sobre algunos servidores que están usando la red.
(como se describe en el Capítulo 10); pero este archivo no proporcionará información sobre todos los servidores, mucho
menos sobre los clientes que acceden a la red.

Página 299
15. B, D. Los problemas de DNS pueden manifestarse como la capacidad de conectarse a computadoras usando direcciones IP
pero sin usar nombres de host. Por lo tanto, las opciones B y D (y varios otros problemas relacionados con DNS)
podría crear los síntomas descritos. Si el sistema de destino estuviera configurado para ignorar el ping
paquetes, como se describe en la opción A, entonces no respondería cuando lo identifique por IP
habla a. La configuración de DNS del sistema de destino (opción C) no entra en la ecuación,
porque responde a la solicitud de ping solo a través de la dirección IP.
16. A. Aunque no todos los sistemas usan / etc / hostname, la opción A lo describe correctamente para
aquellos sistemas que lo utilizan. La opción B describe el propósito de /etc/[Link]. Opción
C describe el propósito de / etc / hosts. La opción D no describe ningún Linux estándar
archivo de configuración, aunque es probable que la dirección IP de la computadora de puerta de enlace aparezca en un
distribución - archivo de configuración específico.
17. A. El programa anfitrión es un programa de uso común para realizar una búsqueda de DNS. No hay
programa estándar dnslookup, aunque el programa nslookup es un programa obsoleto para
realizar búsquedas de DNS. pump es un cliente DHCP, y ifconfig se usa para la configuración
de parámetros y tarjetas de red.
18. B, C. El archivo / etc / hosts contiene asignaciones estáticas de nombres de host a direcciones IP, por lo que
añadir entradas como se especifica en la opción B funcionará (aunque estas entradas deberán ser
cambiado si las direcciones IP de estos servidores alguna vez cambian). La solución de Option C también funcionará,
y seguirá funcionando si las direcciones IP de los servidores cambian, siempre que su DNS
el servidor está actualizado adecuadamente. La opción A no funcionará porque el comando de host es un
Herramienta de búsqueda de DNS; no crea alias de nombre de host, como implica la opción A. Opcion D
confunde las funciones de búsqueda y servidor de nombres de /etc/[Link]. El servidor de nombres
La línea de este archivo especifica un servidor de nombres DNS por dirección IP, por lo que la opción D no funcionará.
19. B. El archivo / etc / hosts contiene asignaciones de direcciones IP a nombres de host, en una línea por
base cartográfica. No enumera los usuarios u otros hosts autorizados a acceder a este de forma remota,
tampoco afecta la administración remota a través de un navegador web.
20. B. Los dos sistemas accesibles están en el mismo bloque de red ([Link]/24), por lo que
su tráfico de red no pasaría a través de un enrutador. Los dos sistemas inalcanzables son
en diferentes bloques de red, lo que significa que su tráfico debe pasar a través de un enrutador. Esta
patrón sugiere que hay un problema de enrutamiento, como en la opción B. (Otra posibilidad es que
el enrutador en sí está averiado o mal configurado.) Dado que todas las computadoras en la pregunta
especificado por la dirección IP, la configuración del servidor de nombres, como en la opción A, no es un problema. Opción C
implica que los servidores DHCP deben responder a las solicitudes de ping, pero no es así; DHCP
los servidores entregan direcciones IP a los clientes DHCP. Aunque un cambio en la máscara de red
permitir que el primer sistema se ponga en contacto con [Link], si los dos sistemas están conectados
a los mismos cables físicos, el sistema [Link] es demasiado diferente en la dirección IP para
hacer una máscara de red mal configurada como una explicación plausible para este problema, como opción D
sugiere.
Respuestas a las preguntas de repaso
257
Página 300

Página 301

Servidor DNS
Configuración
EL SIGUIENTE PROFESIONAL DE LINUX
LOS OBJETIVOS DEL INSTITUTO ESTÁN CUBIERTOS EN
ESTE CAPÍTULO:
207.1 Configuración básica del servidor DNS (peso: 2)
207.2 Crear y mantener zonas DNS (peso: 2)
207.3 Asegurar un servidor DNS (peso: 2)

Capítulo

6
Página 302
Como se describe en el Capítulo 5, "Configuración de red", tres
Los niveles de direcciones de red son importantes: direcciones de hardware,
Direcciones de Protocolo de Internet (IP) y nombres de host. Mudado
entre estos tipos de direcciones es fundamental para el funcionamiento normal de una red. los
La conversión entre direcciones de hardware y direcciones IP se realiza mediante la dirección
Protocolo de resolución (ARP), y esta conversión no necesita una configuración explícita. (Los
La utilidad arp , sin embargo, proporciona la capacidad de monitorear y cambiar el ARP automático
actividades.) La conversión entre direcciones IP y nombres de host es manejada con mayor frecuencia por
el Sistema de nombres de dominio (DNS), que es una colección de servidores distribuida en todo el mundo. Si
su sitio es muy grande (y quizás incluso si no lo es), es posible que deba mantener un servidor DNS
tanto para el beneficio de sitios externos como para uso interno. Por tanto, este capítulo describe
cómo configurar y mantener su propio servidor DNS.
Este capítulo comienza con una breve descripción de lo que es DNS, que incluye tanto
organización del DNS global y un esquema de cómo la configuración de DNS se divide en un
Sistema Linux. Con estos conceptos básicos en mente, puede ver los aspectos prácticos de la configuración
un programa de servidor DNS de Linux para funcionar en un modo simple de almacenamiento en caché. Un mas avanzado
La configuración se basa en archivos de configuración que definen varias zonas , que son colecciones de
equipos relacionados administrados por DNS. Con los archivos de zona adecuados habilitados, un servidor DNS puede
administrar la resolución de nombres para su dominio. Finalmente, este capítulo examina la seguridad del DNS
cuestiones.

Comprensión del papel del DNS


Como se describe en el Capítulo 5, la resolución de nombres de computadora se puede realizar de varias maneras,
incluyendo (pero no limitado a) un archivo / etc / hosts y DNS. Un archivo / etc / hosts es conveniente
forma de administrar la resolución de nombres para una pequeña cantidad de computadoras, como una casa pequeña
red con sólo dos o tres máquinas. Porque / etc / hosts debe actualizarse en cada
computadora en una red cada vez que cambia el nombre o la dirección IP de cualquier máquina o cuando
una computadora se agrega o se quita de la red, la viabilidad de este enfoque disminuye
rápidamente a medida que aumenta el número de computadoras.
Además de / etc / hosts y DNS, varios otros sistemas de resolución de nombres
existen, incluido el Servicio de información de red (NIS), Windows Internet
Servicio de nombres (WINS) y más. Tales configuraciones son bastante exóticas y
no están cubiertos en el examen LPIC - 2.

Página 303
La base de datos DNS está organizada de manera jerárquica, como se ilustra en la Figura 6.1. los
la parte superior de la jerarquía se denomina raíz y se escribe con un solo punto ( . ). Bajo la
raíz vienen los dominios de nivel superior (TLD) , como .com , .edu , .mil , .us y .uk . Algunos
Los TLD son TLD de código de país, como .us (para Estados Unidos) y .uk (para Estados Unidos).
Reino). Como Estados Unidos originó Internet, algunos TLD están reservados para EE. UU.
instituciones, como .mil para el ejército estadounidense. Los populares TLD .com , .org y .net
son efectivamente de alcance internacional. Los TLD se subdividen aún más. A veces estos se refieren
a empresas, instituciones o incluso personas individuales, como en [Link] u [Link] . En
En otros casos, otra capa interviene antes de que los registrantes individuales puedan reclamar un nombre de dominio.
Por ejemplo, el TLD .us se divide en dominios de nivel estatal, como .[Link] para Rhode
Isla; y el TLD .uk se divide en académico ( .[Link] ), comercial ( .[Link] ) y otros
agrupaciones. Una vez que se registra un dominio, el propietario del dominio puede optar por subdividirlo
seguir o asignar nombres de computadoras directamente bajo el nombre de dominio. Un nombre popular es
www para un servidor web, por lo que [Link] es el servidor web principal de Oberlin College, por nombrar
solo un ejemplo.
com
Sybex
edu
Oberlin
nos
"."
mil
Rhode Island
Reino Unido
co
FIGURA 6.1 El DNS está organizado de manera jerárquica con cada computadora individual (la
puntos más bajos) que tiene un nombre en un dominio que en sí mismo tiene componentes adicionales, hasta el
raíz de toda la jerarquía de DNS.
Los servidores DNS están organizados de una manera que es conceptualmente similar a la disposición de
dominios. En particular, cada dominio y subdominio debe tener asociado su servidor
computadoras que tienen autoridad para el dominio, es decir, se puede confiar en estos servidores
sobre el resto de Internet para proporcionar información precisa sobre los nombres y la IP
direcciones de equipos dentro del dominio y conocer las direcciones IP de los servidores que
tienen autoridad para sus subdominios. Por ejemplo, el servidor de nombres asociado con el
El dominio .edu debe conocer la dirección IP del servidor de nombres responsable de [Link]
dominio, y este servidor de nombres debe conocer la dirección IP de la computadora [Link] .
En la parte superior de la jerarquía están los servidores de nombres raíz , que distribuyen las direcciones de los
Servidores de nombres de TLD. Dado que la raíz de la jerarquía de nombres de dominio es un punto ( . ), Dominio
Comprensión del papel del DNS
261

Página 304
262
Capítulo 6 ■
Configuración del servidor DNS
los nombres y los nombres de host deben terminar técnicamente en este carácter, como en [Link]. ;
Sin embargo, los procedimientos estándar de resolución de nombres agregan esta función automáticamente, por lo que es
generalmente se omite.
Por lo tanto, para buscar un nombre de host, el proceso comienza con una consulta al servidor de nombres raíz,
como en “¿cuál es la dirección IP de [Link] ? ”Es poco probable que el servidor de nombres raíz
conoce la respuesta y así responde con la dirección del servidor .edu . El programa que hace el
búsqueda luego repite la consulta con este servidor, que de nuevo lo más probable es que difiera a otro
sistema. Este proceso continúa hasta que un servidor conoce la dirección de la computadora de destino o
hasta que se produzca algún error, como si un servidor autorizado para el dominio no tiene la
responder.
Este proceso de búsqueda de DNS puede parecer complicado, pero dada la velocidad de las computadoras,
rara vez lleva mucho tiempo. Además, existen varios factores simplificadores. Primero, servidor
Es poco probable que los programas y programas de usuario como Apache y Firefox necesiten hacer lo
búsqueda completa; estos programas preguntan al sistema operativo, que luego pasa la consulta a uno de los
Los servidores DNS especificados en la configuración de red básica, como se describe en el Capítulo 5.
Es este servidor DNS, que probablemente reside en una computadora diferente, el que hace todo el
búsqueda de DNS recursiva. En segundo lugar, los servidores DNS pueden almacenar en caché sus resultados, lo que significa que
recuerdan los resultados de la búsqueda durante un período de tiempo, normalmente de horas a días. Así,
Si accede regularmente a un sitio web favorito, el servidor DNS de su red local podrá
devolver la dirección IP relevante sin realizar una búsqueda recursiva completa la mayor parte del tiempo;
sólo cuando expiren los datos en caché será necesaria una nueva búsqueda recursiva completa.
Dada esta disposición, hay dos razones para ejecutar un servidor DNS:
Para entregar datos autorizados para un dominio que administra
Para realizar búsquedas DNS recursivas completas para computadoras en su propia red
En algunos casos, un servidor puede realizar ambas tareas. En otros casos, solo necesita uno
función. De hecho, si solo necesita la segunda función, la configuración del servidor de nombres es
simplificado, porque no necesita ocuparse de los detalles de la gestión del dominio. Esta
almacenamiento en caché: solo la configuración constituye la configuración más básica del servidor DNS; agregando
la compatibilidad con zonas personalizadas permite que su servidor se vuelva autorizado para esas zonas.
Este capítulo, al igual que la certificación LPIC-2, enfatiza la configuración del Berkeley
Servidor Internet Name Daemon (BIND) ( [Link] ), que es un
servidor de nombres potente y popular en Linux. Sin embargo, existen varios otros servidores de nombres,
y en algunos casos puede ser preferible. El servidor dnsmasq ( [Link]
dnsmasq / ), por ejemplo, es una pequeña combinación de DNS y configuración dinámica de host
Servidor de protocolo (DHCP) que es particularmente útil en redes pequeñas. Los djbdns
server ( [Link] ) es una alternativa a BIND que se anuncia a sí misma como
particularmente conscientes de la seguridad. Aunque BIND es un buen servidor, es posible que desee considerar
tales alternativas antes de implementar una configuración de DNS real. De hecho, utilizando dos
En ocasiones, los programas de servidor en dos equipos diferentes pueden resultar ventajosos. Si una seguridad
vulnerabilidad u otro error derriba un servidor, es probable que el otro no se vea afectado,
minimizando así la interrupción de su sitio.

Página 305
Ejecución de almacenamiento en caché: solo servidor de
nombres
Suponga que está administrando una red que se conecta a Internet. Las posibilidades son tu
El proveedor de servicios de Internet (ISP) proporciona un servidor DNS que sus computadoras pueden usar; sin embargo,
esta configuración puede generar más tráfico de red del necesario cuando
Las computadoras de su red realizan la misma consulta para búsquedas de nombres de host que su
los usuarios suelen utilizar. Configurar su propio servidor DNS para administrar estas búsquedas,
incluido el almacenamiento en caché de los resultados, puede ahorrar ancho de banda de red. Además, puede acelerar
las búsquedas de DNS, ya que los resultados se pueden extraer de la caché de su computadora local en lugar de
que dirigido a través de su enlace de Internet al servidor DNS de su ISP. Si el servidor DNS
configure no tiene autoridad para ningún dominio, su configuración puede ser relativamente simple.
Esto se conoce como servidor de nombres solo para almacenamiento en caché .
Para configurar un servidor de nombres de almacenamiento en caché, primero debe editar el BIND principal
archivo de configuración. Aunque el servidor no administrará sus propias zonas, debe configurar
algunas opciones básicas en los archivos de configuración de zona del servidor. En algunos casos, puede
Obtener un dominio
Puede ejecutar un servidor DNS en una pequeña red local sin registrar un nombre de dominio.
Esta configuración normalmente usa un nombre de dominio inventado, idealmente usando un nivel superior
dominio (TLD, como .com o .edu ) que no está en uso (como .not ); o puedes configurar
el sistema como un servidor de reenvío único que no maneja ningún nombre de host local.
También puede ejecutar un servidor DNS utilizando un dominio registrado. La Corporación de Internet para
Nombres y números asignados (ICANN) mantiene una lista de registradores acreditados ( http: //
[Link]/en/registrars/[Link] ). Consulte esta lista para localizar un
registrador dentro del TLD que desea utilizar. Luego puede registrar un nombre de dominio, que
normalmente cuesta alrededor de $ 10 o $ 15 al año, y configurar un servidor DNS para administrar ese dominio.
Puede vincular su propio servidor DNS a la red DNS global ingresando la IP de su servidor
dirección en formularios web mantenidos por su registrador de dominio, o puede hacer que su registrador
mantener su presencia DNS pública (accesible a través de Internet) y configurar su propio servidor DNS
para uso exclusivo de su red privada. El mejor enfoque depende de sus necesidades y
recursos. Si ejecuta muchos servidores o desea proporcionar a sus usuarios acceso directo a su
los sistemas de la red desde fuera del sitio, ejecutar su propio servidor DNS de acceso público hace
sentido, aunque hacerlo aumenta los riesgos de seguridad. Ejecutando un servidor DNS privado
es sensato si su red está protegida detrás de un enrutador de traducción de direcciones de red (NAT)
o si no es necesario proporcionar acceso externo directo a la mayoría de las computadoras de su red.
(Tenga en cuenta que es posible que se pueda acceder a sus computadoras a través de la dirección IP incluso si no hay nombres
directamente a ellos, por lo que no proporcionar entradas de DNS es una medida de seguridad ineficaz).
Ejecución de un servidor de nombres solo para almacenamiento en caché
263

Página 306
264
Capítulo 6 ■
Configuración del servidor DNS
necesita actualizar los archivos de configuración de versiones anteriores. Finalmente, con los cambios implementados,
puede probar el funcionamiento del servidor.
Si necesita administrar su propio dominio, debe comenzar con un
almacenamiento en caché: solo configuración de DNS. Administrar su propio dominio se suma a
los requisitos de un servidor de nombres de almacenamiento en caché únicamente; no es significativamente
cambiar los fundamentos de la configuración de solo almacenamiento en caché.

Modificación del archivo de configuración principal de BIND


Antes de continuar, asegúrese de que BIND esté instalado en su computadora. Este programa suele
instalado en un paquete llamado bind . Utilice su administrador de paquetes para instalarlo, si es necesario; o
obténgalo de su sitio web ( [Link] ) y compílelo usted mismo.
Este capítulo describe la configuración de BIND 9, que es la última versión no
versión experimental en el momento de la publicación, así como la versión enfatizada en
los objetivos LPIC - 2. Se está desarrollando un BIND 10 experimental. Si se
se haya puesto al día cuando lea esto, es posible que deba investigar
sus detalles de configuración usted mismo o use el BIND 9 anterior.
El archivo de configuración principal de BIND es /etc/[Link] . Este archivo controla el servidor en general
operación, incluidas las opciones globales (en una sección que comienza con las opciones de palabras clave ) y
una o más secciones de zona que apuntan a archivos que describen los dominios que administra el servidor.
Puede configurar un servidor de almacenamiento en caché únicamente de una de estas tres formas:
Un reenvío: solo servidor Se dice que un servidor reenvía, solo si reenvía todos los
la resolución de nombres solicita que recibe a uno o más servidores. Esta configuración puede ser
uno efectivo si tiene un ISP que proporciona un servidor DNS convencional. Un reenvío -
solo la configuración puede mejorar los tiempos de búsqueda de DNS porque aprovecha el exterior
El caché del servidor DNS, y ese servidor presumiblemente está más cerca de otros servidores que el suyo.
(Sin embargo, este último punto no siempre es cierto, o podría ser cierto pero contrarrestado por otros factores,
como una carga más pesada en el servidor DNS de su ISP).
Un servidor que realiza búsquedas recursivas completas solo si su ISP no proporciona servicio de DNS
o si ese servicio no es confiable o lento, puede configurar BIND para realizar una búsqueda recursiva completa
para cada consulta que no se puede responder desde su caché. La mayoría de los servidores DNS que pertenecen a ISP
y los grandes departamentos de TI se configuran de esta manera. El rendimiento puede ser peor que el de un
servidor de reenvío únicamente, pero no será rehén de la disponibilidad del servidor DNS de su ISP.
Un servidor que realiza tanto reenvío como búsquedas recursivas completas que puede configurar
BIND para intentar una búsqueda de reenvío, pero recurrir a una búsqueda recursiva completa si esa inicial
intento falla. Este enfoque es un compromiso que puede funcionar bien si su ISP proporciona un
Servidor DNS pero ese servidor no es confiable.
Página 307
La sección de opciones de [Link] , como se muestra en el Listado 6.1, define cuál de estos tres
métodos que utiliza BIND. La mayoría de las líneas de este archivo terminan en punto y coma ( ; ). (Omitiendo el punto y coma
es un error común en este archivo). Esta puntuación denota el final de una opción de configuración.
Los comentarios se indican mediante dos barras inclinadas ( // ). Algunas líneas del Listado 6.1 tienen sangría para
legibilidad, pero BIND ignora este detalle, por lo que puede sangrar las líneas de la forma que desee.
Listado 6.1: Ejemplo de configuración de BIND /etc/[Link]
opciones {
directorio "/ var / named";
transportistas {
[Link];
[Link];
};
escucha {
[Link];
[Link];
};
allow-transfer {"none";};
adelante primero;
};
Inicio sesión {
channel default_debug {
archivo "data / [Link]";
dinámica de severidad;
};
};
// Especifique los archivos de la zona raíz
zona "." EN {
sugerencia de tipo;
archivo "[Link]";
};
incluir "/etc/[Link]";
Las partes clave de esta definición son las líneas de reenvío y la primera línea de reenvío en
la sección de opciones . La definición de reenviadores especifica los servidores DNS a los que BIND
debe reenviar las solicitudes de búsqueda que recibe. Este ejemplo especifica dos sistemas externos;
BIND probará cada uno de ellos por turno, deteniéndose cuando reciba una respuesta. El delantero primero
La línea le dice a BIND que debería funcionar como un servidor de reenvío si es posible, pero que debería
realice búsquedas recursivas completas si eso falla. Si cambia esta línea para solo reenviar , entonces
BIND solo intentará obtener una respuesta de los sistemas especificados en los reenviadores
zona. Si omite la primera línea de reenvío solamente o reenvío y también omite los reenviadores
sección, el servidor realizará búsquedas recursivas completas todo el tiempo.
El Listado 6.1 tiene una sección de escucha , que le dice a BIND en qué direcciones IP debe
escucha. Esta opción es más útil en equipos servidor que tienen múltiples interfaces de red;
Ejecución de un servidor de nombres solo para almacenamiento en caché
265

Página 308
266
Capítulo 6 ■
Configuración del servidor DNS
puede hacer que BIND responda a las consultas de algunas interfaces pero no de otras. Usted puede incluso
configurar BIND como un servidor de reenvío único para una sola computadora haciendo que solo escuche
en la dirección [Link] (la dirección de bucle de retorno de la computadora). A continuación, configuraría
la computadora para usar esta dirección para la resolución de DNS, como se describe en el Capítulo 5.
La sección de permitir transferencias es una opción de seguridad BIND. Se describe en detalle en
“Asegurar transferencias de zona. "
Las secciones de registro y zona del Listado 6.1 establecen las opciones de registro y definen una zona. Si
simplemente desea configurar un servidor de almacenamiento en caché, probablemente pueda dejar estas opciones
solo. (Las próximas secciones "Modificación de archivos de zona" y "Creación y mantenimiento
Zonas DNS ”describen la sección de la zona con más detalle).
BIND es un programa poderoso y complejo, y admite muchas otras opciones en
su archivo de configuración /etc/[Link] . Es probable que su paquete BIND venga con
un archivo de muestra /etc/[Link] que usa algunas de estas opciones. En algunos casos, estos
las configuraciones están diseñadas para proporcionar seguridad adicional en caso de que el paquete esté instalado
accidentalmente. Por ejemplo, es posible que vea líneas como estas:
puerto de escucha 53 {[Link]; };
puerto 53 de listen-on-v6 {:: 1; };
allow-query {localhost; };
Estas líneas tienen el efecto de limitar BIND de modo que solo sea útil para la computadora en
que se ejecuta. Si desea ejecutar un servidor para una red, estas líneas deben eliminarse.
Modificación de archivos de zona
Una zona DNS es una colección de equipos relacionados cuyas asignaciones de nombre / dirección IP son
gestionado por un servidor autorizado. En algunos casos, las zonas son más o menos sinónimos
con dominios. En otros casos, sin embargo, no lo son, como se describe más adelante en "Creación y
Mantenimiento de zonas DNS. "
Para un servidor de nombres de almacenamiento en caché, es probable que no cree ningún archivo de zona
modificaciones. Un servidor de solo reenvío no requiere mantenimiento de archivos de zona. Si tu
el sistema realiza búsquedas recursivas completas, sin embargo, debe incluir una zona ”. " Sección para
la zona raíz de DNS, como se muestra en el Listado 6.1. Es probable que se proporcione la configuración predeterminada
por su distribución funcionará. Sin embargo, es posible que deba ajustarlo en algunas situaciones.
La línea de archivo en la sección de zona se refiere a un archivo en el directorio especificado por el directorio
línea en la sección de opciones - normalmente / var / named . Este archivo de zona define las computadoras en
una zona, como se describe en la próxima sección “Creación y mantenimiento de zonas DNS. " Tú
sin embargo, no cree ni mantenga la zona raíz; eso lo hacen otros. No obstante, tu
El servidor debe conocer las direcciones IP de los servidores raíz para realizar un recursivo completo.
buscar. Por lo tanto, el archivo de la zona raíz debe mantenerse actualizado. Afortunadamente, las direcciones IP de
los servidores de la zona raíz cambian raramente, por lo que no necesitará actualizar este archivo con frecuencia.
Si los servidores raíz alguna vez cambian, es posible que su configuración existente no funcione. Usted puede
recuperar el archivo de la zona raíz actual de varias formas. Uno es escribir el siguiente comando:
$ dig @ [Link]. ns> [Link]

Página 309
Alternativamente, puede descargar [Link] desde [Link] . (Nota
que este es un sitio FTP, no un sitio Web). Una vez que haya recuperado el último archivo de zona, puede
reemplace el anterior ( [Link] en el ejemplo anterior; el nombre de archivo que recupera puede no
coincidir con lo que se utiliza en su sistema) con el nuevo archivo.
Actualización desde versiones anteriores de BIND
Las versiones 8 y 9 de BIND usan más o menos el mismo formato de archivo de configuración, por lo que debe
tiene algunos problemas si encuentra un sistema que ejecuta BIND 8 pero necesita actualizarlo para
VINCULAR 9.
Sin embargo, si encuentra un archivo de configuración para el BIND 4 aún más antiguo,
tendrás algunos desafíos. (La numeración BIND pasó de BIND 4 a BIND 8.) BIND
4 usó el archivo de configuración /etc/[Link] , que usó una sintaxis diferente a la de
BIND 8 y 9 's /etc/[Link] . En particular, en BIND 4 puede especificar el reenvío
sistemas que utilizan una sola puntuación: línea libre y opciones de reenvío en otra línea:
autocargadores [Link] [Link]
opciones solo hacia adelante
Omitir la línea de opciones pero mantener la línea de reenviadores implementa una configuración
similar a una configuración de BIND 9 forward first . Omitir ambas líneas crea un
configuración de búsqueda recursiva.
Comprobación de cambios
Puede utilizar las utilidades estándar SysV o Upstart para iniciar, reiniciar o recargar su BIND
configuración. Normalmente, la recarga de la palabra clave SysV será suficiente si ha realizado cambios
a un servidor que ya se está ejecutando:
# /etc/init.d/named reload
Esta opción hace que BIND vuelva a leer su configuración y archivos de zona e implemente cualquier
cambios que encuentra sin descartar su caché o interrumpir el servicio. La opción de reinicio
es más agresivo; hace que el servidor se apague y se inicie de nuevo con el nuevo
configuración.
También puede pasar al servidor BIND (que normalmente se llama named ) una señal SIGHUP a
obligarlo a recargar sus archivos de configuración:
# killall -s SIGHUP nombrado
Por supuesto, puede localizar el número PID del servidor y usar kill en su lugar:
# ps ax | grep llamado
2313?
Ssl 0:00 / usr / sbin / named -u named
2490 pts / 0 R + 0:00 grep nombrado
# kill -s SIGHUP 2313
Ejecución de un servidor de nombres solo para almacenamiento en caché
267

Página 310
268
Capítulo 6 ■
Configuración del servidor DNS
Una vez que se esté ejecutando, puede controlar el servidor nombrado usando la utilidad rndc . Pasas el
utilidad cualquiera de varios comandos en la línea de comandos. Por ejemplo, escribiendo rndc reload
recarga los archivos de configuración, rndc stop finaliza el servidor, rndc flush vacía el
cachés del servidor y el estado de rndc muestran la información de estado del servidor. Typing rndc
solo presenta una lista completa de los comandos que acepta.
Una vez que haya implementado sus cambios, puede usar herramientas como host y excavar para
averigüe si su servidor está funcionando. Ambos programas se describen brevemente en el capítulo
5, y dig se describe con más detalle más adelante en este capítulo en “Prueba de su configuración. "
La funcionalidad básica se puede probar realizando búsquedas de host , especificando la IP de su servidor
address como el servidor a utilizar:
$ host [Link] [Link]
Usando el servidor de dominio:
Nombre: [Link]
Dirección: [Link] # 53
Alias:
[Link] es un alias de [Link].
[Link] es un alias de [Link].
[Link] tiene la dirección [Link]
[Link] tiene la dirección [Link]
Este ejemplo ilustra una búsqueda exitosa usando el servidor en [Link]. Si tu
encuentra mensajes de error, es posible que la configuración de su servidor sea incorrecta. Usted puede
inténtelo de nuevo, omitiendo la dirección IP del servidor o sustituyendo la dirección IP de otro servidor, para
compare los resultados. Si es necesario, revise su configuración. También puede comprobar / var / log /
mensajes después de recargar o reiniciar el servidor; este archivo puede proporcionar pistas sobre lo que no es
trabajando en su configuración.

Creación y mantenimiento de zonas DNS


Si su servidor DNS necesita tener autoridad para alguna zona, debe configurar su zona
archivos. Esta tarea implica agregar nuevas definiciones de zona a /etc/[Link] y crear
un archivo que define cada nueva zona. También debe probar su configuración.
Puede ejecutar un servidor autorizado en Internet en general o en un
red privada. En este último caso, solo se contactará con su servidor DNS
por computadoras locales para manejar la resolución de nombres en su propia red.

Página 311
Agregar nuevas zonas
Un archivo /etc/[Link] predeterminado generalmente incluye una o más referencias de archivo de zona, como
el de la zona raíz presentado anteriormente. Estas referencias comienzan con la zona de palabras clave ,
incluir el nombre del dominio que se va a administrar y vincular a un archivo de zona en otro directorio
(normalmente / var / named ).
Para que su sistema entregue direcciones IP para computadoras locales, debe crear ambas
archivos de zona de avance y retroceso (como se describe brevemente) y apunte su archivo principal [Link]
a sus nuevas definiciones. Modificar [Link] es bastante sencillo; tus cambios serán
parece algo como esto:
zona "[Link]" {
maestro de tipo;
archivo "[Link]";
};
zona "[Link]" {
maestro de tipo;
archivo "named.192.168.1";
};
Las primeras cuatro líneas apuntan a BIND al archivo de la zona de reenvío , que habilita al servidor
para devolver direcciones IP cuando se alimentan con nombres de host. Las últimas cuatro líneas apuntan a BIND al
archivo de zona inversa , que permite al servidor devolver nombres de host cuando se alimentan direcciones IP.
Ambas definiciones deben incluir la opción de tipo maestro y especificar un archivo (normalmente en
/ var / named ) en el que se creará la definición. (También puede especificar otros tipos,
como en el tipo esclavo . Las configuraciones de DNS esclavo se describen más adelante en "Ejecución de un esclavo
Servidor. ”) La zona de reenvío lleva el nombre del nombre de dominio que define: [Link]
en este ejemplo. La zona inversa lleva el nombre del bloque de direcciones IP al que sirve, pero con
un par de giros. Primero, la cadena .in - [Link] se agrega al final de la dirección IP
rango. En segundo lugar, los números del rango de direcciones IP se invierten. Por ejemplo, si estás
definir un archivo de zona inversa para [Link]/24, tomaría la porción de red de la
dirección (192.168.1), invierta sus números (1.168.192) y agregue .in - [Link] , lo que da como resultado
[Link] - [Link] .
Es posible que un servidor DNS tenga autoridad para el reenvío de una red.
búsquedas, pero no para sus búsquedas inversas, o viceversa. Por ejemplo, su DNS
el servidor puede manejar su propio dominio, pero ese dominio puede ser un pequeño
red en un bloque de direcciones IP alquilado a un ISP de banda ancha. En semejante
En este caso, el ISP de banda ancha podría proporcionar la búsqueda de DNS inversa. Si esto
es el caso, no tendrá que configurar la zona inversa, pero tendrá
para coordinar con su ISP para proporcionar búsquedas DNS inversas válidas desde su
Servidor DNS.
Creación y mantenimiento de zonas DNS
269

Página 312
270
Capítulo 6 ■
Configuración del servidor DNS
Configuración de archivos de zona
Los archivos de zona se encuentran normalmente en el directorio / var / named , pero esta ubicación se establece en el
/etc/[Link] mediante la configuración del directorio en la sección de opciones (ver Listado 6.1).
Los nombres de los archivos de zona se establecen a través de la opción de archivo en la sección de zona relevante , como simplemente
descrito. Por lo general, es mejor comenzar un nuevo archivo de zona utilizando uno existente como plantilla.
Las siguientes páginas presentan ejemplos de archivos de zona de avance y retroceso, para que pueda
utilícelos como plantillas si es necesario.
Configuración de zonas de reenvío
Un archivo de zona de reenvío crea la asignación de nombres de host a direcciones IP. El Listado 6.2 muestra una
ejemplo. Este archivo podría ser el archivo [Link] al que se hizo referencia anteriormente.
Listado 6.2: Ejemplo de archivo de configuración de zona de avance
$ TTL 1D
[Link]. EN SOA [Link]. [Link]. (
2011022003; de serie
3600; actualizar
600
; rever
604800; expirar
86400; default_ttl
)
[Link].
EN [Link]
[Link]. EN UN [Link]
peteinosaurus
EN [Link]
EN [Link]
[Link].
EN UN [Link]
[Link]. EN [Link]
www
EN CNAME [Link].
ftp
EN CNAME plateosaurus
@
EN MX 10 peteinosaurus
@
EN MX 20 [Link].
@
EN NS [Link].
Wegener
EN NS [Link].
La mayoría de las líneas de un archivo de configuración de zona tienen la siguiente forma:
nombre IN tipo de registro contenido-registro
El nombre es el nombre de la computadora (o un nombre derivado de la dirección de la computadora,
en el caso de archivos de configuración de zona inversa, como se describe brevemente). Deberías pagar con cuidado
atención al punto final ( . ) en los nombres de dominio completos (FQDN) en el Listado
6.2 - los nombres que incluyen tanto el nombre de la máquina como las partes del nombre de dominio. Técnicamente,

Página 313
todos los nombres de host DNS terminan en puntos, aunque normalmente se pueden omitir cuando se utiliza
Navegadores web, clientes de correo electrónico y la mayoría de las otras herramientas. Sin embargo, en el caso de un archivo de
zona,
los puntos son obligatorios cuando especifica un nombre de host completo. Cuando un nombre no termina en
un punto, BIND agrega el nombre de la zona actual: [Link]. en el caso del Listado 6.2. Así,
puede especificar nombres de host completamente (como en [Link]. ) o por host
porción solamente (como en peteinosaurus ). Si omite un nombre por completo (como en [Link] en
Listado 6.2), el nombre de host anterior ( peteinosaurus en el Listado 6.2) está vinculado a ambos
direcciones ([Link] y [Link] en el Listado 6.2). El servidor DNS entrega todos los
Direcciones IP que están vinculadas por turnos. Esto se puede utilizar como forma cruda.
de equilibrio de carga, lo que permite que dos servidores compartan una carga que ninguno de los dos podría
encargarse de. El signo arroba ( @ ) es un sustituto del dominio en sí; se usa comúnmente con NS y
Registros MX, como se muestra en el Listado 6.2.
Después del nombre de host viene la cadena IN , que significa Internet . El siguiente es un código
para el tipo de registro de recursos (RR). Varios tipos de RR son comunes e importantes:
Un registro de dirección (A) vincula un nombre de host a una dirección IPv4. Puede especificar el nombre de host
como un FQDN o como un nombre de host sin su parte de dominio, como se describió anteriormente. También puede
asigne una dirección IP solo al nombre de dominio (como en [Link]. en el Listado 6.2).
AAAA Estos registros son el equivalente IPv6 de los registros A.
CNAME Un registro de nombre canónico (CNAME) vincula un nombre de host a otro nombre de host.
Puede especificar el contenido del registro como un nombre de máquina "simple" o como un FQDN.
En el último caso, el sistema de destino no necesita estar en el mismo dominio que el especificado por
el registro SOA. Por ejemplo, en el Listado 6.2, www se vincula a un sistema externo. Puedes crear
varios registros para el mismo CNAME, cada uno vinculado a otra computadora, como una forma cruda
de equilibrio de carga.
NS Un registro de servidor de nombres (NS) proporciona el nombre de host de un servidor DNS para el dominio.
Este registro lo utilizan principalmente otros servidores DNS que otros sistemas dirigen al suyo.
cuando su servidor DNS funciona en Internet en general. Registros NS, como CNAME
registros, pueden apuntar fuera de su propio dominio. Un registro NS puede hacer referencia a un servidor para
dominio principal o para un subdominio si proporciona el nombre del subdominio, como en el caso del
[Link]. subdominio en el Listado 6.2. Esta configuración delega el control
del subdominio a otro servidor - [Link]. en este ejemplo. Uno
La arruga de esta configuración es que el nombre de la computadora del servidor DNS del dominio delegado
debe ser conocido. Para cumplir con este requisito, este servidor tiene un registro A en el padre
dominio, como en el Listado 6.2.
MX Un registro de intercambiador de correo (MX) apunta a un servidor de correo para el dominio. Correo remoto
Los servidores acceden a este registro para aprender a entregar correo dirigido a su dominio. los
registro: el contenido de estos registros incluye un código de prioridad ( 10 o 20 en el Listado 6.2) y
un nombre de computadora. Al igual que con los registros CNAME y NS, los registros MX pueden apuntar a sistemas en
otros dominios. Sin embargo, el servidor de correo debe estar configurado para aceptar correo para el dominio.
Los registros de puntero PTR (PTR) son lo opuesto a los registros A; vinculan direcciones IP a
nombres de host. Como tales, no existen en el Listado 6.2. La próxima sección "Configuración
Reverse Zones ”cubre este tipo de registro con más detalle.
Creación y mantenimiento de zonas DNS
271

Página 314
272
Capítulo 6 ■
Configuración del servidor DNS
SOA El registro de inicio de autoridad (SOA) es el primero del Listado 6.2. Este tipo de registro
es lo suficientemente complejo como para describirlo con más detalle en breve.
TXT Este tipo de registro le permite establecer un texto explicativo asociado con el dominio.
La mayoría de los paquetes BIND para Linux incluyen uno o más archivos de zona de reenvío, como uno
para el nombre del host local y tal vez un archivo rudimentario (llamado [Link] o algo
similar) que puede utilizar como modelo para su propio dominio. También puede utilizar el Listado 6.2 como
un modelo.
El historial de SOA es particularmente complejo. Proporciona varios detalles administrativos para
la zona. El nombre es el nombre de dominio para el registro, y este nombre se utiliza como predeterminado.
siempre que aparezca un nombre de máquina sin un punto final ( . ) en los registros posteriores. Un
at - sign ( @ ) puede funcionar como un sustituto del nombre de dominio; en ese caso, el nombre de la zona
especificado en el archivo /etc/[Link] en su lugar.
El campo de contenido del registro de un registro SOA es en sí mismo bastante complejo. Incluye el
servidor de nombres primario (que también debe tener su propio registro NS), la dirección de correo electrónico de
el administrador del dominio pero con un punto ( . ) en lugar de una arroba ( @ ; admin @ pangea
.edu sería el correo electrónico del Listado 6.2) y un conjunto de números entre paréntesis.
Estos números son:
Número de serie Este número es particularmente importante en redes que emplean tanto
servidores DNS maestro y esclavo. Los servidores esclavos examinan este valor en los archivos de zona para determinar
si actualizar sus versiones locales del archivo de zona. Si el número de serie no cambia,
el servidor esclavo no actualizará su archivo local. Este hecho puede causar confusión porque si
Olvídese de actualizar su número de serie, es posible que los cambios en su archivo de zona no se propaguen correctamente.
Puede utilizar cualquier sistema que desee para crear números de serie. El Listado 6.2 usa una fecha con
un número de revisión adjunto - 2011022003 se refiere al tercer cambio ( 03 ) en febrero
20, 2011. Un simple número creciente también funcionará ( 1 , luego 2 , luego 3 , y así sucesivamente). Ser
asegúrese de que sus números se incrementen de una manera estrictamente lineal; si usa la fecha, asegúrese de usar
Formato AAAAMMDD .
Tiempo de actualización Este valor le dice a los servidores esclavos con qué frecuencia deben consultar con el servidor maestro.
para actualizar sus registros. La próxima sección "Ejecución de un servidor esclavo" describe el esclavo
configuración del servidor.
Tiempo de reintento Este valor le dice a los servidores esclavos con qué frecuencia reintentar una conexión con el maestro.
servidor en caso de falla.
Tiempo de expiración Este valor les dice a los esclavos cuánto tiempo deben seguir entregando datos si el esclavo no puede
conectarse al servidor maestro.
TTL mínimo Si un cliente DNS solicita información sobre un subdominio que no existe,
el servidor responde con un código particular (denominado NXDOMAIN). Este valor dice
clientes cuánto tiempo almacenar en caché esta respuesta.
Los tiempos se especifican en segundos, aunque puede agregar M , H , D o W para especificar los tiempos en
minutos, horas, días o semanas, respectivamente. Los tiempos de caché para los dominios en funcionamiento suelen ser
establecido en el rango de horas a días; sin embargo, al probar una configuración, es posible que desee

Página 315
establezca tiempos de caché de solo uno o dos minutos. Es posible que también desee reducir los tiempos de caché en un
dominio en funcionamiento unos días antes de realizar cambios importantes en su dominio para que los clientes
no entregará información desactualizada después de realizar los cambios.
La línea $ TTL 1D en el Listado 6.2 establece el valor del tiempo de vida para la mayoría de las respuestas. Esto es
similar al valor mínimo de TTL en el registro SOA, pero se aplica a la mayoría de los datos entregados
por el servidor. Esta opción apareció en BIND 8.2 y se volvió obligatoria con BIND 9.
Configurar zonas inversas
La utilidad de las búsquedas de DNS hacia adelante es obvia, pero a veces es necesario hacer lo
opuesto: para encontrar un nombre de host cuando se le da una dirección IP. Esta búsqueda inversa permite a los servidores
para registrar nombres de host, en lugar de direcciones IP, en archivos de registro. También lo utilizan herramientas como
traceroute para mostrar los nombres de host de los enrutadores. En algunos casos, una búsqueda inversa puede servir como
prueba de identidad simple: si se realiza una búsqueda inversa en la dirección IP seguida de una búsqueda
el nombre de host resultante no produce la dirección IP del cliente, entonces existe alguna sospecha
sobre la identidad del cliente. (Tales problemas pueden deberse a una mala configuración, aunque no
solo con intenciones nefastas). De manera similar, algunos protocolos, como Simple Mail Transfer
El protocolo (SMTP) incorpora nombres de host en las transferencias; si esos no coinciden con la búsqueda inversa
en la dirección IP del cliente, entonces hay motivos para sospechar. Por todas estas razones, DNS
admite búsquedas inversas.
Los archivos de zona inversa son conceptualmente similares a los archivos de zona de avance; sin embargo, usan PTR
registros en lugar de registros A, y asignan direcciones IP a nombres de host utilizando nombres de host
en el dominio in - [Link] (o [Link] en el caso de direcciones IPv6) a los nombres de host.
Los archivos de zona inversa también a menudo carecen de algunas características comunes de los archivos de zona de avance, como
MX
listados. El listado 6.3 presenta un ejemplo de un archivo de zona DNS inverso. Este listado podría ser
utilizado junto con el Listado 10.3.
Listado 6.3: Ejemplo de archivo de configuración de zona inversa
$ TTL 1D
[Link]. EN SOA [Link]. [Link]. (
2010022003; de serie
3600; actualizar
600
; rever
604800; expirar
86400; default_ttl
)
[Link].[Link]. EN PTR [Link].
2
EN PTR [Link].
3
EN PTR [Link].
4
EN PTR [Link].
5
EN PTR [Link].
@
EN NS [Link].
Creación y mantenimiento de zonas DNS
273

Página 316
274
Capítulo 6 ■
Configuración del servidor DNS
Los nombres de host de los archivos de zona inversa (en los campos de nombre de las entradas de los archivos) se basan
en las direcciones IP de las computadoras, como se describió anteriormente en “Agregar nuevas zonas. ”Listado 6.3
proporciona listados para el dominio [Link]/24, por lo que su campo SOA especifica [Link] -
[Link]. como nombre de dominio. Al igual que con las entradas hacia adelante, el campo de nombre puede presentar
un nombre de host completo, incluido un punto final ( . ), o solo la parte del nombre de host que
viene a la izquierda de la parte de dominio del nombre. Este último es normalmente el último
a tres números en la dirección IP pero en orden inverso. El nombre de dominio en los registros PTR
termina en in - [Link] (para direcciones IPv4) o [Link] (para direcciones IPv6).
La porción de contenido de registro de las entradas de un archivo de zona inversa consiste en nombres de host DNS,
complete con la porción de dominio y el punto final ( . ), como se ilustra en el Listado 6.3. Si tu
omitir el nombre de host DNS, el registro se malinterpretará como parte del dominio
definida por el archivo de zona inversa - [Link] - [Link] , en el caso del Listado 6.3.
Prueba de su configuración
Con el archivo /etc/[Link] y todos los archivos de zona configurados, puede iniciar su
Servidor DNS o dígale que vuelva a leer sus archivos de configuración. Normalmente lo hace a través de su SysV o
Secuencia de comandos de inicio Upstart, como se describe en el Capítulo 1, “Inicio del sistema y sistema avanzado
Administración. ”Esto lanzará el servidor BIND, que normalmente se llama named . Puedes
desea comprobar los archivos de registro de su sistema en este momento; no es raro que haya una mala configuración
para hacer que el servidor DNS no se inicie o se comporte mal de alguna otra manera. Tales problemas
a menudo dejan rastros en los archivos de registro. Si el servidor parece estar funcionando, puede verificar su funcionamiento
usando host o dig , como se describe en el Capítulo 5 y con más detalle en breve. El nslookup
La utilidad también se puede utilizar para este propósito. Asegúrese de probar el sistema usando el servidor
computadora en sí, otra computadora en la red local que está configurada para usar su DNS
servidor directamente y (si corresponde) un sistema remoto. Sin embargo, es posible que las computadoras remotas no
use inmediatamente su servidor DNS, ya que puede llevar minutos, horas o, a veces, incluso días
para que los cambios de DNS se propaguen por toda la red DNS.
Usando host
El uso básico de host , como se describe en el Capítulo 5, puede revelar los registros A, CNAME y PTR
en un servidor, como en estos ejemplos:
$ host [Link] [Link]
Usando el servidor de dominio:
Nombre: [Link]
Dirección: [Link] # 53
Alias:
[Link] tiene la dirección [Link]
$ host [Link] [Link]
Usando el servidor de dominio:
Nombre: [Link]
Dirección: [Link] # 53
Alias:

Página 317
[Link] es un alias de [Link].
[Link] es un alias de [Link].
[Link] tiene la dirección [Link]
El correo de [Link] lo gestiona 0 [Link].
$ host [Link] [Link]
Usando el servidor de dominio:
Nombre: [Link]
Dirección: [Link] # 53
Alias:
[Link].[Link] puntero de nombre de dominio [Link].
Las dos primeras búsquedas hacia adelante toman exactamente la misma forma y, por supuesto, sin
conocimiento previo de la configuración de la zona, no puede saber si obtendrá un registro A
respuesta (como en [Link] ) o una respuesta de registro CNAME (como en [Link] ).
Estos resultados de ejemplo revelan una configuración de dominio que funciona correctamente, tanto para
búsquedas directas e inversas, al menos para los nombres de host y direcciones probados; cada consulta
devuelve los resultados esperados, como se define en los listados 6.2 y 6.3. (La dirección IP definitiva
asociado con [Link] no se especifica en el Listado 6.2, sin embargo, ya que
el servidor está en un dominio diferente al definido por ese archivo de zona).
La Tabla 6.1 resume las opciones de host adicionales. Debe proporcionar un nombre de host o
Dirección IP, pero el nombre de host o la dirección IP del servidor es opcional. (La utilidad usa el
servidor de nombres predeterminado de la computadora si omite la dirección del servidor.) Muchas de estas opciones pueden
ser utilizado para determinar si su servidor de nombres está funcionando correctamente; por ejemplo, tu
puede usar - t para verificar tipos de registros específicos, y puede usar - l para verificar que un servidor puede
entregar un archivo de zona a sus esclavos. La tabla 6.1 no está completa; algunas opciones más se relacionan con
configuraciones especializadas u opciones de IPv6. Consulte la página de manual del programa para obtener más detalles.
Opción
Descripción
-C
Muestra el registro SOA de un dominio.
-do-v
Produce una salida detallada con información adicional.
-l
Realiza una transferencia de zona para una zona; Útil sólo si el sistema que está
el uso está autorizado para dicha transferencia.
- N num_dots
Establece el número de puntos en el nombre necesarios para que se considere
implícitamente absoluto (con un punto final); si un nombre tiene menos puntos, es
buscado en los dominios enumerados en las directivas de búsqueda o de dominio en / etc /
[Link] .
- R num_reintentos
Establece el número de reintentos que se intentarán.
TABLA 6.1 Opciones de host comunes
Creación y mantenimiento de zonas DNS
275

Página 318
276
Capítulo 6 ■
Configuración del servidor DNS
Opción
Descripción
-r
Realiza una consulta no recursiva; el servidor responderá como lo haría a
otro servidor de nombres.
-T
Realiza una consulta utilizando TCP en lugar de UDP.
- tipo t
Solicita datos sobre el tipo de registro específico , como SOA , CNAME , PTR ,
y así.
- W segundos
Espera el tiempo especificado para una respuesta antes de que se agote el tiempo.
-w
Espera por siempre; las consultas nunca se agotan.
-s
Causas de acogida a no consulta otro servidor de nombres si el primero
responde con un mensaje SERVFAIL .
- una
Equivalente a utilizar - v y - t TODOS .
-4
Realiza búsquedas de IPv4 únicamente.
-6
Realiza búsquedas de IPv6 únicamente.
TABLA 6.1 Opciones de host comunes (continuación)
Usando nslookup
La utilidad nslookup ha quedado obsoleta, lo que significa que ya no se admite oficialmente
y puede eliminarse de las distribuciones en cualquier momento. Es conceptualmente similar al host , pero
su sintaxis es diferente e incluye un modo interactivo. En su uso más básico, nslookup
puede funcionar como un host :
$ nslookup [Link] [Link]
Servidor: [Link]
Dirección: [Link] # 53
Nombre: [Link]
Dirección: [Link]
Las opciones, que se resumen en la Tabla 6.2, pueden ir precedidas de un guión ( - ) en la
línea de comando o ingresado usando la palabra clave establecida en modo interactivo, como en set debug to
activar el modo de depuración. Muchos de estos nombres de opciones pueden ir precedidos de no para revertir
su significado, como en nodebug para desactivar el modo de depuración. (Opciones que toman argumentos
son excepciones a esta regla.) A menos que se indique lo contrario, las opciones especificadas en la Tabla 6.2 son
los incumplimientos; debe preceder estos nombres por no para cambiar el comportamiento del programa.

Página 319
TABLA 6.2 Opciones comunes de nslookup
Opción
Descripción
depurar
Muestra tiempos de espera e información de depuración adicional. Depuración
El modo está desactivado de forma predeterminada.
d2
Muestra una capa adicional de información de depuración, arriba y
más allá de lo que muestra la depuración . Esta opción está deshabilitada por defecto.
defname
Agrega el nombre de dominio predeterminado si un nombre no termina en un punto ( . ).
buscar
Busca cada uno de los dominios especificados por el parámetro de búsqueda en
/etc/[Link] si un nombre no termina en un punto ( . ).
recurrente
Pide al servidor que realice una búsqueda recursiva, similar a la forma en que la mayoría
los clientes trabajan. El uso de norecurse hace que nslookup actúe más como un DNS
servidor haciendo su propia búsqueda recursiva.
vc
Realiza consultas mediante TCP. El comportamiento predeterminado es utilizar UDP.
ignorar
Hace que named ignore los paquetes truncados en lugar de reintentar el
operación mediante TCP.
puerto = num
Cambia el número de puerto en el que named consulta al servidor.
querytype = tipo
Establece el tipo de consulta (A, CNAME, etc.).
timeout = seconds Establece el período de tiempo de espera; si el servidor no ha respondido en el especificado
time, nslookup reenvía la consulta y duplica el tiempo de espera.
reintentar = num
Especifica el número de intentos antes de que nslookup abandone la consulta.
root = root - server Establece el servidor raíz usado para búsquedas recursivas.
dominio = dominio
Establece el dominio utilizado en las búsquedas cuando defname está establecido.
srchlist = domains Establece uno o más dominios utilizados en las búsquedas cuando se establece la búsqueda .
Usando excavar
La utilidad de excavación , también descrita brevemente en el Capítulo 5, proporciona mayor flexibilidad que host ,
por lo que dig se puede utilizar para probar más a fondo la configuración de un servidor de nombres. Es básico
la sintaxis es:
dig [@ servidor ] [ opciones ] [ nombre ] [ tipo ] [ queryopt ...]
Creación y mantenimiento de zonas DNS
277

Página 320
278
Capítulo 6 ■
Configuración del servidor DNS
La Tabla 6.3 resume las opciones de excavación más comunes . Algunas de estas opciones están diseñadas para
habilitar excavación para leer las solicitudes de búsqueda de un archivo, lo que puede permitirle realizar una serie
de pruebas con un solo comando. El tipo es el tipo de consulta ( A , MX , PTR , etc.) y
queryopt es una de las numerosas opciones que ajustan la forma en que el programa realiza su
trabajo. Consulte la página de manual de dig para obtener detalles sobre queryopt .
TABLA 6.3 Opciones de excavación comunes
Opción
Descripción
- b dirección
Establece la dirección utilizada para realizar una consulta. Útil principalmente en hosts con
múltiples direcciones IP.
-f nombre de archivo
Realiza consultas por lotes, leyendo solicitudes de búsqueda desde el nombre de archivo . Cada
La línea de este archivo debe contener una consulta.
- puerto p
Accede al puerto especificado en el servidor en lugar del predeterminado (53).
- tipo t
Establece el tipo de consulta. Tenga en cuenta que la cadena -t a menudo se puede omitir;
sin embargo, es necesario evitar la ambigüedad en caso de búsquedas de ciertos
TLD, que se pueden malinterpretar como nombres de opciones de excavación .
- q nombre
Establece el nombre de dominio o host que se buscará. Normalmente, la porción - q
puede omitirse, pero a veces es necesario distinguir el nombre
de otras opciones.
- x addr
Realiza una búsqueda inversa en la dirección IP especificada.
-4
Realiza solo búsquedas de IPv4.
-6
Realiza solo búsquedas de IPv6.
La salida de excavación básica en una consulta simple de una sola computadora tiende a ser bastante detallada,
como se ilustra en esta salida (con explicaciones intercaladas):
$ dig @ [Link] [Link]
; <<>> DiG 9.4.3-P3 <<>> @ [Link] [Link]
; (1 servidor encontrado)
;; opciones globales: printcmd
Estas líneas muestran la versión del programa de excavación , repiten el comando y
resumir opciones globales ( printcmd en este ejemplo; esta opción está configurada de forma predeterminada).

Página 321
;; Tengo respuesta:
;; ->> HEADER <<- código de operación: QUERY, estado: NOERROR, id: 4865
;; banderas: qr rd ra; CONSULTA: 1, RESPUESTA: 1, AUTORIDAD: 0, ADICIONAL: 0
Estas líneas proporcionan detalles técnicos sobre la salida. Puede deshabilitarlo incluyendo
la opción + nocomentarios ; sin embargo, esto también deshabilita varios otros encabezados de comentarios.
;; SECCIÓN DE PREGUNTAS:
; [Link].
EN UN
Esta sección resume la consulta; en este caso, le indica que buscó una
Un registro correspondiente a [Link] . Puede deshabilitar esta salida usando
la opción + noquestion .
;; RESPUESTA SECCIÓN:
[Link]. 15 EN UN [Link]
La respuesta a su consulta aparece aquí. La salida se asemeja a la línea que define
la computadora en cuestión en el archivo de zona DNS. Puede deshabilitar esta salida utilizando el
+ opción noanswer , aunque esto anula el propósito habitual de ejecutar dig .
;; SECCIÓN DE AUTORIDAD:
[Link].
27 EN NS [Link].
Además de la información principal solicitada (un registro A, por defecto), dig devuelve
información sobre los servidores de nombres autorizados para el dominio. Podrías usar esto
información para consultar estos servidores directamente. Puede deshabilitar esta salida incluyendo el
+ opción sin autorización .
;; SECCIÓN ADICIONAL:
[Link].
27 EN UN [Link]
Esta sección incluye las direcciones IP de los servidores de nombres enumerados en la sección de autoridad.
Puede desactivar esta sección incluyendo la opción + noadditional .
;; Tiempo de consulta: 114 ms
;; SERVIDOR: [Link] # 53 ([Link])
;; CUÁNDO: Vie 17 de diciembre 12:38:39 2010
;; TAMAÑO DEL MENSAJE rcvd: 154
Finalmente, dig devuelve algunas estadísticas sobre la consulta en sí, incluido el tiempo que tomó, el
el nombre del servidor, la fecha y el tamaño del paquete de datos devuelto. Puedes deshabilitar esto
información incluyendo la opción + nostats .
Si una consulta no devuelve una sección que le interesa, es posible que pueda acceder a
aparecer al incluir la opción utilizada para deshabilitarlo, pero menos la parte no , por ejemplo
+ adicional para que aparezca la sección adicional. Como se señaló anteriormente, puede especificar el
tipo de consulta para obtener tipos de registros especiales: MX para los registros MX de un dominio, por ejemplo.
Creación y mantenimiento de zonas DNS
279

Página 322
280
Capítulo 6 ■
Configuración del servidor DNS

Ejecutando un servidor esclavo


Muchos sitios ejecutan varios servidores DNS. Esta práctica ayuda a distribuir la carga y proporciona
Redundancia: si un servidor deja de funcionar, el otro aún puede manejar la tarea crítica de administrar
resolución de nombres. Si los dos servidores están conectados a Internet a través de diferentes rutas, el
La resolución de nombres de dominio puede seguir funcionando incluso si una ruta falla por completo.
El problema de ejecutar varios servidores DNS es mantenerlos sincronizados: es
una molestia, en el mejor de los casos, tener que volver a configurar archivos de zona en varios servidores. Por lo tanto, la
Los protocolos DNS proporcionan una forma de manejar esta tarea automáticamente. Un servidor, conocido como
master , contiene los archivos de zona que edita cada vez que necesita realizar cambios. Uno o mas
servidores adicionales, conocidos como esclavos , verifican periódicamente con el maestro y transfieren el
los archivos de zona del maestro, si fuera necesario. Para implementar esta configuración, debe
configurar el servidor esclavo. Es posible que también deba modificar la configuración para mejorar la
seguridad de sus servidores DNS.
Configuración de un servidor esclavo
Para configurar un servidor esclavo, configure su archivo /etc/[Link] como un servidor maestro;
sin embargo, cambia la sección de zona para identificarla como esclava:
zona "[Link]" {
tipo esclavo;
archivo "[Link]";
maestros {[Link]; }
};
Esta configuración le dice a BIND que debe funcionar como servidor esclavo para [Link]
zone y que debe recuperar el archivo de zona de [Link]. Puede especificar varios servidores,
separados por punto y coma ( ; ), con el que se sincronizará el esclavo; de hecho, un esclavo puede
sincronizar con otro (la palabra clave masters todavía se usa en este caso). El archivo de zona
ser recuperado y colocado en el directorio especificado por la directiva de directorio (ver Listado 6.1).
Si el servidor va a funcionar como esclavo para varias zonas, debe incluir una zona separada
definiciones para cada zona. Cada zona puede sincronizarse con un maestro diferente.
Si administra sus propias zonas DNS inversas, recuerde incluirlas en su esclavo
configuración. Sin embargo, no debe establecer una configuración esclava para las zonas raíz de DNS o
para búsquedas inversas de localhost (que generalmente se incluyen en las configuraciones BIND predeterminadas).
Un servidor BIND puede funcionar como maestro para algunas zonas y esclavo para
otros. Este tipo de configuración a veces se emplea en sitios pequeños
que acuerdan servir como esclavos de los dominios de los demás. Tales arreglos
puede satisfacer la necesidad de tener dos o más servidores DNS para un dominio, con
el beneficio adicional de colocar los servidores DNS en diferentes redes para
confiabilidad mejorada.

Página 323
Asegurar transferencias de zona
La seguridad es un problema para las transferencias de zona DNS. Suponga que un servidor maestro acepta la transferencia de zona
solicitudes desde cualquier computadora. Un posible atacante podría solicitar dicha transferencia y
obtener los nombres de host y las direcciones IP de todos los equipos de la zona. Esta informacion
podría facilitar el trabajo del atacante, o podría utilizarse en otros esfuerzos nefastos, como
como ataques de ingeniería social: el delincuente podría llamar a alguien de su organización y
afirman necesitar información en la red. El conocimiento de los nombres de las computadoras podría ayudar
engañar a la víctima para que crea al atacante.
Por esta razón, BIND proporciona la directiva allow - transfers , que se utilizó en
Listado 6.1 para denegar todas las transferencias de zona:
allow-transfer {"none";};
Si desea que su servidor DNS transfiera datos a esclavos, puede cambiar esta opción a
algo menos restrictivo al especificar las direcciones IP a las que el servidor entregará sus
archivos de zona:
permitir-transferencia {[Link]; [Link];);
Esta configuración permite que las computadoras especificadas recuperen archivos de zona. Puedes incluir
esta directiva en una sección de zona , en cuyo caso se aplica solo a esa zona y anula la
configuración global.
Restringir las transferencias de zona de esta manera es una buena política; sin embargo, para una mayor seguridad,
puede emplear Extensiones de seguridad DNS (DNSSEC). Esta tecnología defiende contra DNS
envenenamiento de caché , en el que se pueden insertar datos falsos en el caché de un servidor DNS de otros
direcciones IP de los dominios. Mediante el envenenamiento de caché, un delincuente puede redirigir el tráfico destinado a
un dominio a otro, lo que permite al atacante hacerse pasar por un comerciante web, un banco o
otro sitio en el que los usuarios confían datos sensibles.
Para crear una configuración de zona usando DNSSEC, primero debe cambiar al directorio
en el que existen los archivos de zona originales (normalmente / var / named ). Luego puede generar una clave
y firme sus archivos de zona con esa clave. La generación de claves se logra con dnssec -
comando keygen , como en:
$ dnssec-keygen -a RSASHA1 -b 768 -n ZONE [Link].
Este comando genera dos archivos, [Link]. + 005 + nnnnn .key y Kpangaea
.edu. + 005 + nnnnn .private , donde nnnnn es un valor numérico. El primer archivo es una clave pública
que puede (y debe) distribuirse a otros servidores, mientras que el segundo archivo es privado
archivo de clave que se utiliza para firmar sus archivos de zona utilizando el programa dnssec - signzone :
$ dnssec-signzone -o [Link] [Link]
[Link]. + 005 + nnnnn .privado
La salida es un solo archivo, llamado [Link] , basado en el original
archivo de zona [Link] . Debe usar este archivo como archivo de zona para el dominio, en lugar de
que el archivo de zona original.
Ejecutando un servidor esclavo
281

Página 324
282
Capítulo 6 ■
Configuración del servidor DNS

Hacer seguridad adicional


Mejoras
Un par de características de seguridad diversas merecen atención. Estos están ejecutando BIND en
una cárcel chroot , que puede ayudar a evitar que un servidor con errores o comprometido dañe al resto
de su sistema, y utilizando una configuración de DNS dividida , en la que la resolución de DNS puede variar
dependiendo de la ubicación del cliente en la red.
Ejecutando BIND en una cárcel
Una característica de seguridad que se emplea a menudo con BIND es ejecutarlo en una cárcel chroot . El chroot
El nombre del comando significa change root , y la idea es ejecutar el programa para que
cree que el directorio raíz de la computadora ( / ) es algo diferente al directorio raíz
realmente es. El resultado es que el servidor solo puede acceder a archivos en este árbol de directorio alternativo,
Reducir el riesgo de que un servidor comprometido pueda usarse para modificar archivos que no están relacionados.
al servidor mismo.
Algunas distribuciones se envían con scripts de inicio BIND que automáticamente o
Opcionalmente, ejecute el servidor en una cárcel chroot . Si utiliza una distribución de este tipo,
debe consultar su documentación; lo más probable es que puedas ejecutar el servidor
en una cárcel de chroot con menos esfuerzo del que se describe aquí.
Para comenzar con esta configuración, primero debe asegurarse de que exista una cuenta adecuada
en su sistema. Verifique su archivo / etc / passwd en busca de una entrada para named . Si uno no existe,
crearlo. Debería verse algo como esto:
named: x: 200: 200: Nameserver: / chroot / named: / bin / false
El punto clave de esta cuenta es que es específico del servidor nombrado y que es un
cuenta del sistema. No se deben utilizar cuentas de usuario; ni tampoco la cuenta nadie , que
ejecuta muchos otros programas diversos. Asegúrese de que el ID de usuario (UID) y el ID de grupo
Los valores (GID) son únicos. El directorio de usuarios ( / chroot / named en este ejemplo) debe existir; eso
se convertirá en el entorno de la cárcel de chroot . Finalmente, el shell predeterminado debe ser algo que
no proporciona acceso al sistema - / bin / false se usa en este ejemplo.
Para preparar el directorio chroot (como / chroot / named ), debe crear varios
subdirectorios y archivos que reflejan parte de la estructura del sistema de archivos estándar de Linux,
pero dentro del directorio de la cárcel. Para comenzar, debe crear el entorno chroot , incluido
los subdirectorios etc / namedb / slave y var / run dentro de él:
# mkdir -p / chroot / named
# cd / chroot / named
# mkdir -p dev etc / namedb / slave var / run

Página 325
Tenga en cuenta que no incluye barras inclinadas ( / ) en el directorio del comando final
especificaciones, ya que desea crear estos directorios dentro del entorno chroot .
A continuación, debe copiar algunos archivos de configuración en el nuevo entorno y ajustar su
propiedad de la nueva cuenta que ha creado:
# cp -p /etc/[Link] / chroot / named / etc /
# cp -a / var / named / * / chroot / named / etc / namedb /
# cp / etc / localtime / chroot / named / etc /
# chown -R named: named / chroot / named / etc / namedb / slave
# chown named: named / chroot / named / var / run
Finalmente, BIND usa los nodos de dispositivo / dev / null y / dev / random , por lo que debe crear
duplicados de estos nodos en el entorno chroot y otorgarles los permisos adecuados:
# mknod / chroot / named / dev / null c 1 3
# mknod / chroot / named / dev / random c 1 8
# chmod 666 / chroot / named / dev / {null, random}
Ahora debe modificar el archivo de configuración para iniciar named con - t / chroot / named
opción; esto hará que se encierre en su cárcel tan pronto como se lance. Usted debería ser
capaz de modificar sus scripts de inicio SysV o Upstart para realizar esta tarea.
Configuración de DNS dividido
A menudo se utiliza una configuración de DNS dividido (también conocido como horizonte dividido o DNS de horizonte dual )
en redes con secciones separadas fuertemente protegidas y públicas. En algunos casos, ambas partes
de la red utilizan el mismo espacio de direcciones IP global, y el objetivo es evitar que la información
los nombres internos y las direcciones IP se hagan ampliamente conocidos. En otros casos, el interno
La red puede ser parte de un espacio de direcciones privado y puede que no tenga conexión directa.
a Internet o estar vinculado a través de una configuración de traducción de direcciones de red (NAT).
En cualquier caso, una configuración de DNS dividida implica la configuración de dos servidores DNS. Uno
servidor, en la red externa, está configurado como un servidor autorizado normal para el
dominio. Sin embargo, a pesar de ser un servidor autorizado, este sistema tiene información sobre
solo las computadoras de acceso público; sus archivos de zona omiten los nombres y direcciones IP del
computadoras en la red privada.
Entrega de direcciones IP desde los espacios de direcciones privados reservados en
Internet en general puede tener consecuencias negativas y confusas. Si
un cliente remoto pasa a estar detrás de un firewall NAT en otro privado
red que utiliza el mismo espacio de direcciones que su propia red, su
Los nombres de host se resolverán en direcciones IP que, para el cliente remoto, están en
la red local. Esto será confuso en el mejor de los casos.
La configuración del servidor interno normalmente apuntará al servidor externo como un
reenviador, como se describió anteriormente en "Ejecución de un servidor de nombres en caché - Sólo"; sin embargo, el
Realización de mejoras de seguridad adicionales
283

Página 326
284
Capítulo 6 ■
Configuración del servidor DNS
El servidor interno también afirmará tener autoridad para el dominio, o al menos para lo que sea
subdominios que utiliza internamente. Por tanto, los clientes internos que utilicen el servidor interno
capaces de resolver nombres de host de Internet regulares, y podrán resolver los nombres de
aquellos sistemas internos que no se pueden resolver desde el exterior.

Resumen
DNS es uno de los protocolos más fundamentales en los que se basa Internet, y Linux
es una excelente plataforma para ejecutar servidores DNS. Uno de los más populares e influyentes
de estos es BIND. Este servidor se puede configurar como un servidor de almacenamiento en caché, en el que el
El servidor no tiene autoridad para sus propios dominios, sino que solo almacena en caché los accesos DNS desde su
red local para mejorar el rendimiento. Además de esta función, BIND puede convertirse
autoritativo para una o más zonas, lo que significa que otros servidores (así como clientes) se refieren a
su servidor como árbitro final de la información sobre las zonas para las que tiene autoridad.
Si BIND (o cualquier otro servidor DNS) funciona como un servidor autorizado para un dominio,
debe mantener los archivos de zona apropiados. Estos archivos vienen en dos variedades: adelante
y reversa. Los archivos de zona de reenvío permiten que el servidor entregue direcciones IP cuando un cliente solicita
sobre nombres, mientras que los archivos de zona inversa proporcionan datos sobre la relación opuesta.
Como cualquier servidor, BIND plantea desafíos de seguridad y se pueden utilizar configuraciones especiales
para reducir los riesgos de BIND. Uno de los desafíos se relaciona con la configuración del esclavo; puedes restringir
BIND para entregar datos de zona completa solo a computadoras esclavas autorizadas. Un segundo desafío
es el del envenenamiento de la caché de DNS, que se puede contrarrestar implementando DNSSEC
cifrado y autenticación. Finalmente, puede minimizar los riesgos planteados por un comprometido
servidor ejecutándolo en una cárcel chroot .

Examen esencial
Resuma los archivos de configuración principales de BIND. El archivo /etc/[Link] controla la
configuración general de BIND. Normalmente, los archivos en / var / named contienen archivos de zona; sin embargo, esto
la ubicación se puede alterar cambiando la opción de directorio en /etc/[Link] .
Describe los métodos para recargar archivos de zona alterados. La mayoría de los scripts de inicio de SysV permiten
recargar archivos de zona pasando la opción de recarga . La opción de reinicio también funcionará pero
es más perturbador. La utilidad rndc también se puede utilizar para esta función; escribiendo rndc reload
hace el trabajo. Pasar la señal SIGHUP a través de kill o killall también puede recargar archivos de zona.
Explica las opciones de reenvío de DNS. El reenvío de DNS se refiere a la capacidad de BIND para consultar
otro servidor DNS como si BIND fuera un programa cliente ordinario, en lugar de realizar una
búsqueda recursiva completa propia. BIND puede realizar búsquedas recursivas completas (sin reenvío),
puede intentar reenviar una consulta y luego realizar una búsqueda recursiva completa si eso falla
( reenviar primero ), o puede funcionar solo como un servidor de reenvío ( solo reenviar ).

Página 327
Explique la diferencia entre las zonas de avance y retroceso. Las zonas de avance habilitan un
servidor para devolver direcciones IP cuando se alimentan nombres de host; las zonas inversas permiten que un servidor regrese
nombres de host cuando se alimentan con direcciones IP. Ambos tipos de zona son fundamentales para el funcionamiento normal del
Internet, aunque cualquier servidor dado puede no manejar las zonas de avance y retroceso para un
dado conjunto de computadoras.
Resuma los tipos de registros de recursos de archivos de zona comunes. Los registros proporcionan el nombre de host a IPv4
búsquedas de direcciones, los registros AAAA proporcionan búsquedas de nombre de host a direcciones IPv6, registros MX
devolver la información del servidor de correo para un dominio, los registros PTR proporcionan la dirección IP al nombre de host
búsquedas, registros CNAME definen "alias" de nombres de host: nombres duplicados para una computadora, NS
los registros apuntan a los servidores de nombres de un dominio, los registros TXT proporcionan información diversa,
y los registros SOA definen la zona como un todo.
Describe tres herramientas para realizar consultas de DNS. Las utilidades host , nslookup y dig
todos pueden realizar consultas de DNS. La utilidad de host se usa comúnmente para realizar
búsquedas, pero tiene algunas funciones avanzadas. La utilidad nslookup está obsoleta, pero ha
algunas características únicas que lo mantienen en servicio, como un modo interactivo. La utilidad de excavación
puede realizar búsquedas de DNS más avanzadas.
Explica la función de una cárcel chroot . Una cárcel chroot puede aislar a un servidor de la mayoría de
sistema de archivos de la computadora, minimizando el riesgo de que un servidor con errores o comprometido pueda
dañar cualquier cosa que no sea su propia configuración. BIND se puede ejecutar en una cárcel chroot .
Describe el propósito de DNSSEC. Las extensiones de seguridad de DNS (DNSSEC) proporcionan
protocolos diseñados para mejorar la seguridad de la red DNS mundial en su conjunto.
Emplean claves criptográficas para reducir el riesgo de que los malhechores inyecten datos falsificados en
cachés de DNS de los servidores, una práctica que puede permitir a los malhechores hacerse pasar por sitios que
no controle.
Examen esencial
285

Página 328
286
Capítulo 6 ■
Configuración del servidor DNS

Preguntas de revisión
1. Un administrador del sistema Linux escribe rndc flush en un símbolo del sistema raíz en un
computadora que está ejecutando un servidor DNS. ¿Cuál será el efecto?
A. El programa del servidor DNS se reiniciará.
B. Se vaciarán todos los archivos de zona del servidor DNS.
C. Se borrarán las cachés del servidor DNS.
D. La computadora del servidor DNS se reiniciará.
2. ¿ En qué directorio se almacenan normalmente los archivos de zona DNS en un sistema que ejecuta el popular
Servidor DNS de Linux, llamado?
A. / etc / dns
B. / var / dns
C. / etc / named
D. / var / named
3. ¿Cuál de las siguientes es una ventaja de un reenvío: solo la configuración del servidor DNS vs.
una configuración de búsqueda recursiva completa?
A. Una configuración de solo reenvío funcionará incluso si el servidor DNS de su ISP se convierte en
insensible.
B. Una configuración de solo reenvío puede almacenar en caché los datos DNS para el acceso local.
C. Una configuración de solo reenvío elimina la necesidad de un ISP.
D. Una configuración de solo reenvío suele ser más rápida que una configuración recursiva completa.
4. ¿Cuál es el efecto de la siguiente línea, que se encuentra dentro de la sección de opciones de / etc /
archivo [Link]?
directorio “/ home / sam / bind”;
A. Le dice a BIND que busque en el directorio / home / sam / bind sus archivos de zona.
B. Garantiza que el usuario sam podrá editar la configuración de BIND.
C. Configura BIND para que se ejecute como el usuario sam, mejorando así la seguridad del servidor.
D. Bloquea BIND en una cárcel de chroot ubicada en / home / sam / bind.
5. ¿Cómo puede utilizar el comando kill para hacer que BIND vuelva a cargar sus archivos de configuración?
Suponga que el PID del servidor es 2798.
A. matar 2798
B. matar - 9 2798
C. matar - s SIGHUP 2798
D. matar - s SIGTERM 2798

Página 329
Preguntas de revisión
287
6. ¿Cuál es el efecto de las siguientes líneas /etc/[Link]?
puerto de escucha 53 {[Link]; };
puerto 53 de listen-on-v6 {:: 1; };
R. Solo se puede acceder al servidor desde la computadora en la que se está ejecutando.
B. El servidor se ejecutará usando un firewall en el puerto 53.
C. El servidor estará disponible para computadoras remotas a través de IPv4 e IPv6.
D. El servidor estará disponible para computadoras remotas a través de IPv6 únicamente.
7.
¿Cuál de los siguientes es un problema que solo un servidor DNS puede ayudar a resolver?
R. El servidor DNS de su ISP es confiable pero lento.
B. Necesita administrar los nombres de host de 150 computadoras.
C. Necesita proporcionar un segundo servidor DNS para su dominio.
D. Su conexión de red completa se cae con frecuencia.
8. ¿Cuál es el propósito de las siguientes líneas en /etc/[Link]?
zona "[Link]" {
maestro de tipo;
archivo "named.192.168.1";
};
A. Le dice al servidor DNS que use el archivo llamado 192.168.1 para buscar direcciones IP para
nombres en el dominio in - [Link].
B. Le dice al servidor DNS que use el archivo llamado 192.168.1 para buscar nombres de host cuando
direcciones IP dadas.
C. Le dice al servidor DNS que ignore ("zona fuera") las solicitudes en 192.168.1. x dirección IP
bloquear.
D. Le dice al servidor DNS que recupere el archivo llamado 192.168.1 del servidor maestro para
el dominio en cuestión.
9. ¿Cuál de las siguientes herramientas proporciona un modo interactivo para realizar búsquedas de DNS?
A. nombrado
B. nslookup
C. excavar
D. anfitrión
10. ¿Cuáles de los siguientes son tipos de registros legales en un archivo de zona DNS? (Elija todas las que correspondan).
A. MX
B. DNS
C. ZF
D. CNAME

Página 330
288
Capítulo 6 ■
Configuración del servidor DNS
11. ¿Cuál de las siguientes opciones es verdadera para la siguiente entrada de archivo de zona DNS?
[Link]. EN SOA [Link]. [Link]. (
7
; de serie
3600; actualizar
600
; rever
604800; expirar
86400; default_ttl
)
A. El número de serie (7) no es válido; este número debe ser un código basado en la fecha, como
2011071101.
B. La entrada del servidor DNS primario ([Link]) no es válida; este servidor debe existir
dentro del dominio principal ([Link]).
C. Debe enviar un correo electrónico a fred@[Link] sobre cualquier problema relacionado con el DNS
con el dominio [Link].
D. Este dominio tiene precisamente dos servidores DNS: [Link] y [Link].
12. Quiere permitir que los usuarios accedan a la computadora con la dirección IP [Link]
como [Link]. ¿Qué línea colocaría en el archivo de zona para [Link]?
realizar esta tarea?
A. linus EN A [Link]
B. linus EN MX [Link]
C. 198 EN TXT [Link].
D. 198 EN PTR [Link].
13. ¿Cuál es el efecto de las siguientes dos entradas de archivo de zona DNS?
[Link]. EN UN [Link]
www
EN CNAME tycho
R. Se puede acceder a la misma computadora ([Link]) como [Link] o
[Link].
B. Se puede acceder a la misma computadora ([Link]) como [Link] o
[Link].
C. El correo electrónico enviado al dominio [Link] se envía a [Link].
D. El servidor no podrá iniciarse, ya que aparece un punto perdido (.) Al final del nombre de host
[Link].

Página 331
Preguntas de revisión
289
14. El archivo de zona para el dominio [Link] incluye la siguiente línea:
imbrium EN NS [Link].
¿Qué otra información también debe aparecer en este archivo de zona para que esta línea sea legal?
A. Un registro CNAME para [Link].
B. Un registro MX para [Link].
C. Un registro de PTR para [Link].
D. Un registro A para [Link].
15. ¿Cuál es la cuenta más segura para ejecutar BIND?
A. La cuenta de nadie
B. Una cuenta de usuario de inicio de sesión normal
C. Una cuenta de sistema específica del servidor
D. La cuenta raíz
16. ¿Cuál de los siguientes problemas de seguridad aborda DNSSEC más directamente?
A. Intrusos en el servidor
B. Transferencias de zona no autorizadas
C. Envenenamiento de caché
D. Ingeniería social
17. ¿Cuál es una característica de una configuración de DNS dividida?
R. La resolución de nombres puede ser diferente para las computadoras dependiendo de sus ubicaciones.
B. Las búsquedas recursivas completas ocurren solo si falla una búsqueda de reenvío.
[Link] búsquedas de nombre de host a dirección IP y dirección IP a nombre de host ocurren en diferentes
servidores.
D. Los nombres de host pueden resolverse en direcciones IP, pero no al revés.
18. ¿Cuál de las siguientes es una ventaja de ejecutar BIND en una cárcel chroot?
A. BIND cifra la transferencia de datos hacia y desde todos sus clientes.
B. Si BIND funciona mal o se ve comprometido, es menos probable que dañe otras partes del
computadora.
C. BIND puede autenticarse en otros servidores, reduciendo las posibilidades de envenenamiento de la caché.
D. El servidor se niega a transferir archivos de zona completos excepto a esclavos en una lista corta.

Página 332
290
Capítulo 6 ■
Configuración del servidor DNS
19. ¿Qué programa debe ejecutar para crear una clave para propósitos de DNSSEC?
A. keygen - dnssec
B. genkey - dnssec
C. dnssec - keygen
D. dnssec - genkey
20. Suponiendo que está configurado correctamente, ¿qué puede decir acerca de un servidor BIND que tiene la
siguiente línea en su archivo /etc/[Link]?
permitir-transferencia {[Link]; [Link];);
R. Es un esclavo que transfiere datos desde otras dos computadoras.
B. Es un maestro o esclavo que permite transferencias de zona a otras dos computadoras.
C. Es un esclavo que transfiere datos a otras dos computadoras.
D. Es un maestro que transfiere datos en dos interfaces Ethernet.

Página 333
Respuestas a las preguntas de repaso
1. C. El programa rndc proporciona una interfaz de control para el programa del servidor DNS, denominado.
La opción flush de rndc borra (vacía) la caché de búsquedas recientes de DNS, por lo que la opción C es
correcto. Ninguna de las opciones restantes describe nada que rndc pueda hacer, aunque el
La opción de recarga hará que named recargue sus archivos de zona, que es parte de la opción A.
2. D. El directorio / var / named contiene archivos de zona DNS en un servidor DNS típico de Linux que
corre con nombre. Las opciones A, B y C son todas ficticias; estas ubicaciones normalmente no existen.
3. D. Al enviar las actividades de búsqueda recursiva completa a su ISP (generalmente mejor conectado)
Servidor DNS, la velocidad general generalmente se mejora mediante el uso de una configuración de solo reenvío,
entonces la opción D es correcta. La opción A lo tiene al revés; confiando en el servidor DNS de su ISP, un
reenvío: solo la configuración garantiza que las búsquedas de DNS fallarán si el servidor DNS de su ISP
deja de responder. Tanto las configuraciones recursivas completas como las de reenvío pueden almacenar en caché
Datos DNS, por lo que la opción B es incorrecta. Ningún tipo de configuración elimina la necesidad de un
Proveedor de servicios de Internet (ISP), por lo que la opción C es incorrecta.
4. A. La opción de directorio le dice a BIND dónde buscar sus archivos de zona, por lo que la opción A es correcta.
(Esta es, por supuesto, una ubicación muy inusual para los archivos de zona de BIND y probablemente sea una mala
opción para esta ubicación.) La opción B es incorrecta porque el directorio / home / sam / bind, y
los archivos que contiene, pueden o no ser propiedad y, por lo tanto, ser editables por sam. A pesar de que
ejecutar BIND como un usuario no root es una opción de seguridad útil, normalmente una cuenta de usuario normal
no se utiliza para este propósito, y la línea especificada no le dice a BIND que se ejecute como sam, haciendo
opción C incorrecta. Esta línea no bloquea BIND en una cárcel chroot, por lo que la opción D es incorrecta.
5. C. Pasar una señal SIGHUP a BIND hace que vuelva a leer sus archivos de configuración, lo que
opción C correcta. Ninguna de las otras opciones pasa una señal SIGHUP al servidor, por lo que
están todos mal.
6. A. Estas dos líneas le dicen al servidor que escuche las conexiones solo a través de IPv4 e IPv6
direcciones de host local, limitando eficazmente el acceso a la computadora local solamente, como opción A
describe. Estas opciones no crean un firewall en ningún puerto, por lo que la opción B es incorrecta.
Las opciones C y D son incorrectas porque las líneas aseguran que las computadoras remotas no
poder acceder al servidor, ya sea por IPv4 o IPv6.
7.
A . Almacenamiento en caché: solo el servidor DNS puede ayudar a acelerar las búsquedas de DNS al almacenar las búsquedas anteriores
solicitudes durante un período y, opcionalmente, eludir el servidor DNS de un ISP para realizar su propia
búsquedas recursivas. Ambas funciones pueden ayudar a superar el problema descrito en la opción A.
La opción B describe un problema que puede ser resuelto por un servidor DNS autorizado para una
o más dominios, no un servidor sólo de almacenamiento en caché. La opción C requiere un segundo servidor autorizado,
posiblemente configurado como esclavo, no como servidor de almacenamiento en caché. Aunque un almacenamiento en caché, solo el servidor
trabajar alrededor de un ISP lento o poco confiable: el servidor DNS proporcionado, no ayudará mucho si el
toda la red se cae, ya que los accesos reales a Internet dependen de protocolos no almacenados en caché por un
Servidor DNS, por lo que la opción D es incorrecta.
Respuestas a las preguntas de repaso
291

Página 334
292
Capítulo 6 ■
Configuración del servidor DNS
8. B. Las definiciones de archivo de zona en /etc/[Link] le dicen al servidor DNS dónde buscar para encontrar
mapeos de direcciones IP a nombres de host, o viceversa. El pseudodominio in - [Link] es
reservado para búsquedas de DNS inversas: el servidor devuelve nombres de host cuando se le dan direcciones IP.
La directiva de archivo apunta al servidor al archivo que contiene las asignaciones. Por tanto, la opción B
es correcto. La opción A es incorrecta porque las búsquedas DNS inversas devuelven nombres de host, no IP
direcciones. Una directiva de zona no es una instrucción para ignorar un dominio o bloque de direcciones,
contrario a la opción C. La línea maestra de tipo en el ejemplo le dice al servidor que es el
servidor DNS maestro para esta zona, no para recuperar un archivo de otro servidor maestro, por lo que la opción
D es incorrecta.
9. B. La herramienta nslookup, aunque obsoleta, proporciona un modo interactivo flexible. El enlace
el ejecutable del servidor se llama named; este es un servidor DNS, no un usuario DNS
cliente. La utilidad de excavación puede realizar tareas complejas de búsqueda de DNS, pero carece de una
modo. La utilidad de host generalmente se considera la sucesora de nslookup, pero carece de
modo interactivo.
10. A, D. Los registros de intercambio de correo (MX) y de nombre canónico (CNAME) son comunes en
archivos de zona de reenvío. No existen los registros DNS y ZF. Otro registro común
los tipos incluyen Dirección (A), Servidor de nombres (NS), Puntero (PTR) e Inicio de autoridad (SOA)
registros. (Los registros PTR se utilizan en archivos de zona inversa).
11. C. La opción C es correcta; una dirección de correo electrónico de contacto administrativo está incrustada en el
Registro SOA, pero con el signo arroba (@) reemplazado por un punto (.). La opción A es incorrecta porque
el número de serie no necesita estar basado en la fecha, aunque los números de serie basados en la fecha son comunes.
La opción B es incorrecta porque el servidor DNS primario para un dominio no necesita ser parte del
dominio al que sirve. La opción D es incorrecta porque el registro SOA identifica solo un DNS
servidor; otros pueden especificarse mediante registros NS separados.
12. A. La pregunta es solicitar una entrada de registro de dirección (A) para el archivo de zona de reenvío, y
la opción A presenta tal entrada. La opción B presenta un registro de intercambiador de correo (MX) válido, pero
eso no es lo que pedía la pregunta. La opción C presenta un registro de texto (TXT) que podría
aparecen en un archivo de zona inversa, pero es algo extraño. La opción D presenta una
registro de puntero (PTR) para el archivo de zona inversa, pero eso no es lo que pedía la pregunta.
13. B. Un registro de nombre canónico (CNAME) crea una especie de alias, lo que permite acceder a un segundo nombre
una computadora que ya tiene un nombre de host. La opción B describe correctamente el efecto del CNAME
registro en este ejemplo, dado el registro de dirección (A) que también aparece en este ejemplo. los
La entrada CNAME que se muestra no crea un nombre de [Link], al contrario de la opción
R. La entrega de correo electrónico a un dominio se puede ajustar mediante un registro MX, pero el ejemplo no incluye
tal registro; e incluso si el segundo registro fuera un registro MX en lugar de un registro CNAME,
la opción C no describiría su efecto. El punto al final de [Link] en la primera entrada
identifica un nombre de host completo; o es obligatorio o la parte del nombre de dominio del nombre
debe omitirse (como en www en la segunda línea), al contrario de la opción D.

Página 335
14. D. La configuración específica es parte de una delegación de dominio; [Link]
.edu maneja las búsquedas de DNS para el subdominio imbrium de [Link]. Para que esta línea sea
significativo, sin embargo, el servidor DNS [Link] debe tener la dirección IP para [Link]
.[Link], y esto requiere un registro A para que ese FQDN aparezca en el archivo de zona [Link],
como especifica la opción D. Un registro CNAME para este nombre de host sería inútil, un registro MX
para el subdominio no es necesario y un registro PTR para el subdominio no tiene sentido.
15. C. BIND se ejecuta mejor con una cuenta del sistema que sea utilizada únicamente por BIND; por lo tanto, la opción C es
correcto. Aunque la cuenta de nadie tiene pocos privilegios, muchos otros programas la usan,
haciendo posibles las brechas de seguridad al usarlo. Los usuarios normales de inicio de sesión no deben ejecutar BIND,
por razones similares. Ejecutar BIND como root es extremadamente peligroso, dado el poder de root.
16. C. DNSSEC proporciona una forma para que los servidores se autentiquen, reduciendo así la
riesgo de envenenamiento de caché, en el que un atacante inserta datos falsos en el caché de DNS de
servidores no autorizados. Por tanto, la opción C es correcta. DNSSEC no previene directamente
intrusos para que no entren en la computadora, por lo que la opción A es incorrecta. Las transferencias de zona son
generalmente restringido por medio de restricciones de dirección IP sobre quién puede transferir datos de zona, no
por DNSSEC; por tanto, la opción B es incorrecta. La ingeniería social es una técnica en la que un
El atacante asume una identidad falsa o engaña a un ser humano para que ceda
información. DNSSEC hace poco o nada para abordar los ataques de ingeniería social.
17. A. La opción A resume correctamente el significado de una configuración de DNS dividida. Opción B
describe el efecto de una política de reenvío primero en un servidor de nombres configurado para usar reenvío, pero
esto no se llama DNS dividido . La opción C describe una forma común de organizar el DNS,
pero este sistema no se conoce como DNS dividido . La opción D describe lo que sucede si solo reenvía
las zonas están definidas pero no existe una zona inversa coincidente, pero esto no se denomina DNS dividido .
18. B. La opción B resume correctamente una de las ventajas de ejecutar BIND (o cualquier
servidor) en una cárcel de chroot. La opción B es esencialmente ficticia. La opción C describe la acción
de DNSSEC. La opción D describe el efecto de restringir las transferencias de archivos de zona utilizando
permitir - opción de transferencia.
19. B. La opción B es el programa correcto; las otras opciones son codificaciones del programa
nombre.
20. B. La opción permitir - transferencia le dice a BIND qué otras computadoras pueden acceder a su zona
archivos. Aunque los maestros normalmente transfieren datos a los esclavos, los esclavos pueden intercambiar datos entre
ellos mismos, por lo que esta línea podría aparecer en una computadora maestra o esclava. Por lo tanto, opción
B es correcto. La opción A es incorrecta porque los esclavos usan la opción de maestros, no permiten -
transferir, para especificar los equipos de los que recuperan los datos. Aunque la computadora
podría ser un esclavo, esto no es seguro, por lo que la opción C es correcta. La opción D es incorrecta porque la
escuchar la opción, no la opción permitir transferencia, especifica los puertos Ethernet en los que
BIND escucha.
Respuestas a las preguntas de repaso
293

Página 336

Página 337

El LPI 202
Examen
(60 pesos)
PARTE

II
Página 338

Página 339

Red avanzada
Configuración
EL SIGUIENTE PROFESIONAL DE LINUX
LOS OBJETIVOS DEL INSTITUTO ESTÁN CUBIERTOS
EN ESTE CAPÍTULO:
210.1 Configuración DHCP (peso: 2)
210.3 Uso del cliente LDAP (peso: 2)
212.1 Configuración de un enrutador (peso: 3)
212.3 Carcasa segura (peso: 4)

Capítulo

7
Página 340
Los capítulos anteriores han abordado el papel de Linux como
plataforma de servidor de red; de hecho, el Capítulo 6, "Servidor DNS
Configuration ", está dedicado a una red importante
paquete de servidor que Linux puede ejecutar. Este capítulo comienza un examen de otros
tareas de red avanzadas que Linux puede realizar. Uno de estos, ejecutando Dynamic
El software de servidor del Protocolo de configuración de host (DHCP), a menudo se empareja con el
Función de servicio de nombres (DNS) descrita en el Capítulo 6. El acceso ligero al directorio
Protocolo (LDAP) es una herramienta habilitada en red para administrar datos, y Linux puede acceder a un
Servidor LDAP para administrar sus usuarios, por lo que ese tema es el siguiente. Como se mencionó en el Capítulo 5,
"Configuración de red", Linux puede funcionar como un enrutador, y este capítulo se expande
sobre este tema examinando la configuración del enrutador Linux con más detalle. Finalmente, este capítulo
examina el servidor Secure Shell (SSH), que es un protocolo de inicio de sesión en modo texto que incluye
capacidades de cifrado y la capacidad de tunelizar otros protocolos.

Configurar un servidor DHCP


El Capítulo 5 describe el uso de DHCP para configurar las opciones de red de un sistema Linux.
Si desea utilizar DHCP de esta manera, consulte ese capítulo. Esta sección está dedicada a
otra cara de la moneda: configurar Linux para entregar direcciones IP a otras computadoras.
Antes de embarcarse en la configuración de un servidor DHCP, debe saber cuándo está y cuándo no
apropiado para usar uno. Si ha decidido utilizar el servidor, debe saber dónde encontrar
y cómo instalarlo. A continuación, puede establecer opciones generales para toda la red. También debes decir
el servidor qué direcciones IP puede entregar. La configuración más sencilla es entregar dinámica
Direcciones IP, lo que significa que a los clientes no se les garantiza la misma dirección IP una y otra vez. Si
necesario, también puede configurar su servidor DHCP para entregar direcciones IP fijas , lo que significa
que cualquier cliente determinado recibe la misma dirección IP siempre que la solicita. (Esto contrasta
con asignación estática , que se realiza sin DHCP. Si una computadora puede funcionar con
ya sea una dirección verdaderamente estática o una dirección fija asignada a través de DHCP, utilizo el término fijo .
Tenga en cuenta que estos términos no están completamente estandarizados.) Si su red abarca varios
segmentos de red, es posible que deba tomar medidas adicionales para asegurarse de que DHCP funcione en todos los
esos segmentos.

Página 341
Las redes domésticas y de oficinas pequeñas suelen utilizar enrutadores de banda ancha. Estas
Los dispositivos son pequeñas cajas que incluyen traducción simple de direcciones de red
(NAT) enrutadores, conmutadores y, a menudo, funcionalidad adicional en
paquetes fáciles de configurar. Estos dispositivos generalmente pueden funcionar como
Servidores DHCP. Usarlos para este propósito puede resultar en DHCP más fácil
administración que es posible con un servidor DHCP de Linux. En el otro
Por otro lado, un servidor DHCP de Linux es mucho más flexible que los servidores DHCP que
vienen con pequeños enrutadores de banda ancha.

Cuándo usar DHCP


La descripción del Capítulo 5 de DHCP aconseja usar ese protocolo para configurar computadoras '
configuración de red si su red utiliza DHCP, es decir, si hay un servidor DHCP disponible. En
A su vez, la pregunta de si ejecutar un servidor DHCP se responde si desea
para usar DHCP para configurar la mayoría de las funciones de red de sus computadoras. Esta lógica es
algo circular, sin embargo, y la forma de romper con el ciclo es considerar la red
como un todo. Cuál es mejor, configurar la dirección IP de cada computadora y la información relacionada
individualmente o configurando un servidor adicional para manejar el trabajo?
Una de las consideraciones para determinar el valor de DHCP es la cantidad de esfuerzo invertido
en la administración de sistemas. En igualdad de condiciones, el punto de equilibrio para establecer
En un servidor DHCP hay entre media docena y una docena de computadoras. Menos que
ese número, generalmente es más sencillo usar direcciones IP estáticas. Más que ese número, el
El esfuerzo invertido en la configuración de DHCP es menor que el esfuerzo adicional de mantener
Direcciones IP. Por supuesto, pueden intervenir otras cuestiones. Factores que tienden a favorecer al DHCP
incluyen usuarios comunes que mantienen la configuración de red de sus computadoras, alta rotación
tarifas en las computadoras o los sistemas operativos instalados en ellas (como redes con muchas computadoras portátiles
o reinstalaciones de SO), la presencia de sistemas de arranque múltiple, una red con extraños o complicados
configuraciones y una red dominada por clientes que no necesitan direcciones IP fijas.
La asignación de direcciones IP estáticas es más útil cuando su red incluye muchos servidores
que funcionan mejor en direcciones IP fijas. Algunos factores pueden variar en ambos sentidos. Por ejemplo,
considere una red con una población diversa de sistemas operativos. Mantener tal sistema con
Las direcciones IP estáticas pueden ser complicadas porque debe saber cómo asignar direcciones IP estáticas.
a cada sistema operativo, incluidas las peculiaridades que cada sistema operativo tiene a este respecto. DHCP puede ayudar a
simplificar esto
configuración, aunque quizás no dramáticamente, todavía debe saber cómo decirle a cada
OS para usar DHCP, después de todo. En el lado negativo, los clientes y servidores DHCP específicos pueden tener
peculiaridades interactivas, por lo que es posible que tenga problemas para configurar algunos de los sistemas operativos más exóticos
utilizando DHCP. (Sin embargo, en mi experiencia, el servidor DHCP estándar de Linux funciona sin
problemas con cada sistema operativo cliente que he usado).
Configurar un servidor DHCP
299

Página 342
300
Capítulo 7 ■
Configuración de red avanzada
Si su red incluye algunos sistemas que deben operar con IP fija
direcciones y algunas que no necesitan direcciones fijas, tienes tres
opciones. Puede asignar todas las direcciones IP de forma estática, puede asignar algunas
direcciones a través de DHCP y asignar otras estáticamente, o puede usar DHCP para
todas las computadoras y configure el servidor DHCP para proporcionar direcciones fijas
para al menos algunos clientes. Combinar direcciones IP estáticas y DHCP no es una tarea
problema; simplemente debe usar un rango de direcciones para direcciones IP estáticas
que DHCP no intentará asignar. De hecho, es probable que el servidor DHCP en sí
asignada una dirección IP estática.

Instalación básica de DHCP


El paquete principal del servidor DHCP para Linux está escrito por Internet Software Consortium
(ISC; [Link] ). Este servidor generalmente se envía en un paquete llamado
dhcp , dhcp - servidor o dhcp3 - servidor . (En el momento de la publicación, la última versión del servidor DHCP es
4.2.0; sin embargo, la mayoría de las distribuciones de Linux todavía se envían con versiones 3. x del servidor). ISC también
pone a disposición un cliente DHCP, dhcpcd , que se envía con muchas distribuciones de Linux. los
cliente, sin embargo, no tiene la posición dominante en el mundo de Linux que el ISC dhcpd
el servidor retiene. Otros clientes DHCP, sobre todo dhclient , se ejecutan en muchos sistemas. El ISC
El servidor dhcpd funciona con estos clientes DHCP que no son ISC, así como con clientes DHCP en
otros sistemas operativos.
El servidor DHCP de ISC no es el único disponible. Una alternativa notable es
Dnsmasq ( [Link] ), que combina
Funcionalidad DHCP y DNS en un solo paquete. Dnsmasq no es tan completo
como el servidor DHCP ISC o el servidor DNS BIND descrito en
Capítulo 6; sin embargo, es más fácil de configurar y es una buena opción para
pequeña red con necesidades simples.
Además de manejar clientes DHCP, el servidor DHCP de ISC maneja el Bootstrap más antiguo
Protocolo (BOOTP). No se requiere ninguna configuración adicional para manejar BOOTP, aunque
algunas opciones son relevantes solo para DHCP.
Normalmente, un servidor DHCP tiene una dirección IP estática. Cuando llega el momento de declarar un
rango de direcciones IP que el servidor debe entregar, debe tener cuidado de excluir los
propia dirección IP de este rango.
Si compila su propio kernel, como se describe en el Capítulo 2, “Linux Kernel
Configuration ”, debe tener en cuenta una característica del kernel requerida por el servidor DHCP:
la opción Packet Socket, a la que se puede acceder desde el submenú Opciones de red cuando
configurar el kernel. Se accede a este submenú desde el menú Networking Support, como
que se muestra en la Figura 7.1 para un kernel [Link].

Página 343
El archivo de configuración del servidor DHCP es [Link] , que probablemente esté en / etc o
/ etc / dhcp3 . Este archivo puede contener comentarios, indicados por una almohadilla inicial ( # ). Líneas
que no son comentarios son parámetros , que describen características generales de configuración,
o declaraciones , que describen las computadoras de la red y las direcciones IP del servidor
puede entregar a esas computadoras. La próxima sección "Configuración de la red: opciones amplias"
describe los parámetros con más detalle. Las siguientes dos secciones, "Configuración de la entrega de
Direcciones dinámicas ”y“ Configuración de la entrega de direcciones fijas ”describen declaraciones
con más detalle. Algunas declaraciones son bastante complejas e incluyen parámetros dentro de ellas.
Estas declaraciones indican su naturaleza multilínea mediante el uso de llaves ( {} ) para rodear la
material multilínea.
Algunos clientes DHCP (especialmente algunos sistemas Windows) requieren respuestas de
el servidor DHCP se dirigirá a [Link]. Desafortunadamente, Linux a veces
cambia dichas respuestas para tener una dirección de retorno correspondiente a la transmisión de su red
dirección, como [Link] para la red [Link]/16. Si algunos de sus clientes
parece que no capta configuraciones de red cuando usa DHCP, puede cambiar el
Comportamiento del servidor Linux agregando una ruta apropiada para la dirección [Link]:
# route add -host [Link] dev eth0
Por supuesto, debe ajustar este comando si el dispositivo no es eth0 . Este problema es
especialmente probable que ocurra si su servidor DHCP tiene múltiples interfaces de red. Algunos
Las configuraciones DHCP agregan esta ruta de forma predeterminada. Si el suyo no lo hace, puede modificar el DHCP
FIGURA 7.1 Debe habilitar ciertas opciones del kernel para ejecutar un servidor DHCP reciente
Configurar un servidor DHCP
301

Página 344
302
Capítulo 7 ■
Configuración de red avanzada
script de inicio o agregue el comando a un script de inicio local. Puede verificar si esto
route está presente escribiendo route - n . Si la ruta está presente, debería aparecer en la parte superior de la
salida, como sigue:
Puerta de enlace de destino
Genmask
Banderas Ref Métrico Uso Iface
[Link] [Link]
[Link] UH 0 0
0 eth0
Configuración de opciones de red: amplia
La mayoría de los archivos de configuración de DHCP comienzan con una serie de parámetros que establecen opciones globales.
El Listado 7.1 muestra un archivo [Link] pequeño típico , que incluye muchas de las opciones globales
puede usar. Muchas, pero no todas, estas opciones globales comienzan con la opción de palabra clave .
Ya sea que un parámetro comience con esta palabra clave o no, la mayoría va seguida de un valor. Esta
El valor puede ser una dirección IP, un nombre de host, un número, una palabra clave booleana ( verdadero o falso ) o
algunos otros datos.
Listado 7.1: Archivo [Link] de muestra
tiempo de arrendamiento predeterminado 86400;
tiempo máximo de arrendamiento 172800;
opción máscara de subred [Link];
enrutadores opcionales [Link];
opción servidores de nombres de dominio [Link],[Link];
opción nombre de dominio "[Link]";
opción netbios-name-servers [Link];
opción netbios-node-type 8;
get-lease-hostnames true;
subred [Link] máscara de red [Link] {
rango [Link] [Link];
}
La Tabla 7.1 resume algunas de las opciones globales más comunes que puede desear
conjunto. Muchas de estas opciones se muestran en el Listado 7.1. Todas las líneas de parámetros terminan con
punto y coma ( ; ). Algunos parámetros toman más de un valor. Por ejemplo, la opción
La línea de servidores de nombre de dominio en el Listado 7.1 proporciona dos direcciones IP, separadas por una coma.
En la mayoría de los casos, puede sustituir direcciones IP por nombres de host. Hacerlo pone su servidor en
la misericordia del servidor DNS, sin embargo; si falla o se ve comprometido, su servidor DHCP
es posible que no pueda proporcionar la información o que proporcione información incorrecta.

Página 345
TABLA 7.1 Parámetros comunes del servidor DHCP global
Parámetro
Valor
Descripción
predeterminado - arrendamiento - tiempo
Entero
Establece el tiempo de concesión predeterminado en segundos.
Los clientes pueden solicitar un tiempo de arrendamiento específico que
puede anular este valor. Tiempos de arrendamiento típicos
son entre un par de horas y varias
días: decenas o cientos de miles de
segundos. Los tiempos de arrendamiento más cortos están en orden si
está planeando cambios importantes en la red en
en el futuro cercano o si la red ve muchos
cambios, por ejemplo, si las computadoras portátiles
estar conectado durante una hora o dos y luego
desconectado.
max - arrendamiento - tiempo
Entero
Establece el tiempo máximo de concesión, en segundos,
el servidor concederá. Si un cliente solicita un tiempo de arrendamiento
más largo que este valor, el servidor concede una concesión
de este valor. Este valor se ignora si el servidor
está respondiendo a una solicitud BOOTP.
min - arrendamiento - tiempo
Entero
Establece el tiempo mínimo de arrendamiento, en segundos,
el servidor concederá. Si un cliente solicita un tiempo de arrendamiento
más corto que este valor, el servidor concede una concesión
de este valor.
obtener - arrendamiento - nombres de host
Booleano
Si es verdadero , el servidor busca el nombre de host
asociado con una dirección IP y devuelve que
nombre de host al cliente, que puede utilizar este
valor al establecer su propio nombre de host. Por defecto o
si este parámetro es falso , el servidor no lo hace
esta búsqueda.
use - host - decl - nombres
Booleano
Si es verdadero , el servidor devuelve el nombre de host
proporcionado por el cliente como asignado por el cliente
nombre de host.
ping - comprobar
Booleano
Si es verdadero , el servidor hace ping a una dirección antes
asignar un arrendamiento en esa dirección a un cliente.
Si el servidor recibe una respuesta, el servidor
no asigna esa dirección. Esto podría ser
utilizado para asegurar que el servidor no asigne
direcciones que ya están en uso (digamos, por
sistemas mal configurados con direcciones IP estáticas
no deberían estar usando). Si el sistema de ping
también está configurado para ignorar pings, esta comprobación
no funcionará según lo previsto.
Configurar un servidor DHCP
303

Página 346
304
Capítulo 7 ■
Configuración de red avanzada
La tabla 7.1 está lejos de ser completa, pero describe las opciones más comunes.
Para obtener información sobre más opciones, consulte dhcp - options y dhcp - eval
páginas man . Algunas de las opciones, como las opciones NetBIOS de la Tabla 7.1,
establecer valores que muchos clientes DHCP ignoran.
Notablemente ausente de la Tabla 7.1 es cualquier método para configurar la dirección IP que los clientes deben
recibir. Sin embargo, esta opción aparece en el Listado 7.1 como parte de la declaración de subred .
Las siguientes dos secciones cubren las opciones para asignar direcciones IP con más detalle.
Parámetro
Valor
Descripción
opción subred - máscara
Máscara de subred
(cuadrante punteado
formato)
Establece la máscara de subred que se asignará a los clientes.
enrutadores de opciones
Direcciones IP
La dirección o direcciones IP de la subred
enrutador o enrutadores.
opción
dominio - nombre - servidores
Direcciones IP
La dirección o direcciones IP de los servidores DNS
los clientes pueden utilizar.
opción dominio - nombre
Nombre de dominio El nombre del dominio en el que los clientes
residir.
opción
netbios - nombre - servidores
Direcciones IP
La dirección o direcciones IP del nombre NetBIOS
Servidores de servicio (NBNS), también conocidos como Windows Internet
Servidores de servicio de nombres (WINS). Estos servidores
puede ser una parte importante del mensaje del servidor
Bloque / Sistema de archivos de Internet común (SMB / CIFS)
intercambio de archivos en redes dominadas por Windows.
opción
netbios - nodo - tipo
Código binario
Un código de cómo los clientes NetBIOS deben
intento de resolución de nombres. Los valores son 1 para usar
transmisiones, 2 para usar un servidor WINS, 4 para probar
difunde primero seguido de un servidor WINS,
y 8 para probar primero un servidor WINS seguido de un
transmitir. La mejor opción es 8 si proporciona un
Servidor WINS con la opción netbios - nombre -
parámetros de servidores y, por supuesto, configurar
el sistema especificado como servidor WINS.
TABLA 7.1 Parámetros comunes del servidor DHCP global (continuación)

Página 347
Configuración de la entrega de direcciones dinámicas
El Listado 7.1 es adecuado para asignar direcciones IP dinámicas a no más de 205 computadoras.
Las líneas que logran esta tarea son las últimas tres líneas de la lista:
subred [Link] máscara de red [Link] {
rango [Link] [Link];
}
Estas líneas forman una declaración. En este caso, la declaración se aplica al
[Link]/24 , como se define en la primera línea de la declaración. Los parametros
que aparecen entre llaves se aplican solo a las máquinas en ese bloque de direcciones.
Puede crear varias declaraciones de subred si lo desea y, en algunos casos, es posible que necesite
para hacer esto. Por ejemplo, el servidor puede tener varias interfaces de red y necesita
Asignar diferentes direcciones IP a máquinas en diferentes subredes físicas. Para una red con
una sola subred física, una declaración similar a la del Listado 7.1 debería funcionar simplemente
multa. La segunda línea de esta declaración, que consta de un parámetro de rango , define la dirección IP
rango que entrega el servidor: [Link] a [Link]. Cuando arranca un DHCP
computadora cliente, puede recibir cualquier dirección en este rango, dependiendo de qué direcciones
servidor ya ha asignado. Si tiene más computadoras de las que permite este rango, entonces
debería expandirlo (si es posible) o crear otra declaración de subred que proporcione
direcciones. Si necesita significativamente más de 205 direcciones, ampliar la declaración
probablemente requiera cambiar la máscara de red. Por ejemplo, usando una máscara de red de [Link]
le permite asignar direcciones que van desde [Link] hasta [Link] . (Usted
especificar una subred de [Link] en lugar de [Link] en este caso.) Por supuesto, debe
tiene derecho a utilizar las direcciones que elija.
Si es posible, defina un rango que sea sustancialmente mayor que el número de
computadoras en su red. Hacerlo le dará a su red espacio para
crecer, y proporcionará un búfer contra las direcciones que se reclaman y
no liberado, consumiendo así un arrendamiento innecesariamente.
Dado el bloque de red [Link]/24, la reserva del Listado 7.1 de solo 205 direcciones IP
significa que las primeras 49 direcciones están disponibles para asignación estática. Normalmente, al menos uno de
estas direcciones se asignarán al enrutador de la red ([Link] en el Listado 7.1), y una
irá al propio servidor DHCP. Otros pueden ir a un servidor de nombres, servidor de correo u otros servidores.
que funcionan mejor con direcciones IP estáticas. Alternativamente, puede ejecutar algunos de estos servidores usando
DHCP y asígneles direcciones fijas, como se describe en la siguiente sección.
Una dirección con una porción de máquina, en binario, de todos los 0 o todos los 1 tiene especial
es decir, en el direccionamiento TCP / IP. Todas: las direcciones 0 se refieren a la propia red,
y todas las direcciones - 1 se utilizan para transmisiones. Nunca debes intentar
Asignar dicha dirección mediante DHCP, ni intentar asignarla.
estáticamente para el caso.
Configurar un servidor DHCP
305

Página 348
306
Capítulo 7 ■
Configuración de red avanzada

Configuración de la entrega de direcciones fijas


Si desea ejecutar servidores pero configurarlos para adquirir sus direcciones IP y otros
información a través de DHCP, puede hacerlo. Esta práctica normalmente requiere que haga uno de
dos cosas, sin embargo:
Vincule los servidores DHCP y DNS de su red para que el servidor DNS entregue la
dirección IP correcta para un nombre de host determinado. Esta práctica puede ser razonablemente confiable en
una red local, pero puede que no sea confiable si sus sistemas deben ser accesibles desde
el mundo exterior, porque las entradas de su servidor DNS serán almacenadas en caché por el DNS de los clientes
servidores. Por lo tanto, los clientes pueden terminar usando una entrada DNS desactualizada. Incluso si tú
configurar el servidor DNS con una vida útil corta para estas entradas, algunos servidores DNS pueden
ignore esta información, lo que posiblemente resulte en nombres de host y direcciones IP que no coincidan.
Esta configuración también requiere realizar cambios intrincados tanto en DHCP como en DNS
configuraciones de servidores. Por estas razones, no describo este enfoque en este libro.
Configure su servidor DHCP para asignar una dirección IP invariable al servidor
ordenadores. Este objetivo se puede lograr de varias formas. El método que describo en este
sección implica el uso de la dirección de control de acceso a medios (MAC) , también conocida como hardware
dirección , de la computadora cliente DHCP para identificar ese sistema y habilitar el DHCP
servidor para asignar una dirección IP fija a ese sistema cada vez que arranca. Esto también es
a veces llamado dirección reservada .
Localización de la dirección MAC
El primer paso para proporcionar una dirección fija, al menos cuando se utiliza el enfoque de dirección MAC
que se describe aquí, es ubicar la dirección MAC del cliente DHCP. Para dispositivos Ethernet, este
La dirección es un número de 6 bytes que generalmente se expresa en hexadecimal (base 16), generalmente
con dos puntos, guiones o algún otro signo de puntuación que separe los bytes. Puedes localizar el MAC
abordar de varias formas:
Adhesivos de hardware Algunas tarjetas de interfaz de red (NIC) tienen adhesivos adheridos
con direcciones MAC. Pueden existir pegatinas similares en la carcasa externa de las computadoras que
Se envía con interfaces Ethernet integradas. Ubicar la dirección MAC de esta manera es
sencillo si aún no ha instalado la NIC, pero puede que no sea conveniente si es
ya enterrado dentro de una computadora. Muchas NIC también carecen de esta etiqueta.
Clientes DHCP de Linux En un cliente de Linux, puede escribir ifconfig eth0 (cambiando eth0
a otro nombre de interfaz, si corresponde). Este comando produce información sobre el
interfaz de red, incluida la dirección de hardware (etiquetada HWaddr ) en la primera línea del
salida. Este comando requiere que la interfaz esté activada, aunque no es necesario
asignada una dirección IP.
Clientes DHCP de Windows Windows proporciona una herramienta similar a ifconfig de Linux para
mostrando información sobre la interfaz de red. Escriba IPCONFIG / ALL en un comando
Ventana de solicitud para conocer sus interfaces. Una línea etiquetada como Dirección física debe
revelar la dirección MAC.

Página 349
Clientes DHCP de Mac OS Mac OS X proporciona un comando ifconfig similar a
El comando de Linux de este nombre, aunque no es idéntico. No obstante, puede abrir un
Aplicación de terminal OS X y escriba ifconfig . Probablemente aparecerá la dirección de hardware
en la sección para en0 y se etiquetará como éter ; sin embargo, este no siempre es el caso,
especialmente para hardware WiFi.
Uso de herramientas GUI La mayoría de los sistemas operativos modernos proporcionan una forma de encontrar la dirección de
hardware a través de
sus herramientas de configuración GUI. El método exacto varía según el sistema operativo. Como ejemplo, en
Windows 7, vaya al Panel de control Red e Internet Centro de redes y recursos compartidos,
y luego haga clic en el nombre de su conexión cerca del lado derecho de la ventana. El resultado
es un cuadro de diálogo que muestra el estado de una conexión de red. Haga clic en el botón Detalles para
obtenga un cuadro de diálogo Detalles de conexión de red, similar al de la Figura 7.2. los
La dirección MAC aparece como la línea Dirección física en este cuadro de diálogo.
FIGURA 7.2 La mayoría de los sistemas operativos proporcionan herramientas de GUI que pueden mostrar los
dirección de hardware
Ubicación de la dirección desde el servidor DHCP Independientemente del sistema operativo que utilice el cliente, puede
localice la dirección MAC del servidor DHCP de varias formas. Un método es configurar
el cliente DHCP para usar DHCP y luego activar su interfaz de red. Asumiendo el servidor
está configurado para entregar direcciones como se describe en la sección anterior "Configuración de entrega
de direcciones dinámicas ”, el cliente DHCP debe seleccionar una dirección. A continuación, puede examinar
los registros del servidor DHCP como evidencia de un contrato de arrendamiento otorgado para esa dirección. El archivo de
arrendamientos DHCP
(normalmente /var/lib/dhcp/[Link] ) debe incluir una entrada de varias líneas que identifique la IP
Configurar un servidor DHCP
307

Página 350
308
Capítulo 7 ■
Configuración de red avanzada
dirección y dirección MAC. Escribiendo grep dhcpd / var / log / messages | cola - n 1 o grep dhcpd
/var/log/[Link] | tail - n 1 como root también debería revelar una entrada con la dirección IP
y la dirección MAC en cuestión. (Si se produce alguna otra actividad DHCP entre el objetivo
Sin embargo, si se otorga la concesión del sistema y si escribe este comando, esa actividad mostrará
en su lugar. Aumente el número de 1 a 2 o más para revelar las entradas anteriores.) Finalmente,
puede escribir ping - c 1 [Link] ; / sbin / arp [Link] , donde [Link] es la dirección IP, para aprender
la dirección MAC de la computadora. Este último enfoque también funcionará si temporalmente
Configure el futuro cliente DHCP con una dirección IP estática.
Opciones de dirección fija del servidor DHCP
Una vez que tenga la dirección MAC de un cliente DHCP, puede agregar una entrada al DHCP
el archivo [Link] del servidor para ese cliente. Esta entrada puede ir dentro de la declaración de subred , como
que se muestra en el Listado 7.1, o la entrada puede ir después de la declaración de subred . De cualquier manera, la entrada
Se ve como esto:
host [Link] {
Ethernet de hardware 00: 80: C6: F9: 3B: BA;
dirección fija [Link];
}
La declaración de host le dice al servidor que está definiendo parámetros para un
computadora. Coloque el nombre de host de la computadora después de la palabra clave host y finalice la línea con un
Abrazadera rizada. Líneas entre éste y la llave de cierre que define el final de
la declaración se aplica solo a este host.
El parámetro de hardware proporciona un medio para que el servidor identifique el host. Esta
seguido de una palabra clave para el tipo de hardware ( ethernet en este ejemplo,
pero contador - anillo es también válida) y la dirección MAC, el uso de dos puntos ( : ) a bytes separados de
la dirección. La línea de dirección fija , por supuesto, define la dirección IP que se le dará
a este anfitrión. Asegúrese de que la dirección no se especifique también en la línea de rango de ninguna subred.
¡declaración!
Los clientes inalámbricos suelen estar conectados a una red mediante un punto de acceso inalámbrico
(WAP) o enrutador y parecen ser dispositivos Ethernet del servidor DHCP
punto de vista. Los enrutadores de banda ancha incluyen invariablemente su propio DHCP
servidores, por lo que tiene la opción de utilizar el servidor de su enrutador de banda ancha o
deshabilitarlo y configurar un servidor DHCP de Linux.
Después de agregar esta entrada y reiniciar el servidor, debería comenzar a entregar la IP fija
dirección que especifique con el parámetro de dirección fija para ese cliente. Por supuesto, esto
sólo funcionan mientras la dirección de hardware no se modifique. Si reemplaza una computadora
NIC, debe actualizar la línea de hardware para reflejar el cambio.

Página 351
Configuración de un agente de retransmisión DHCP
Si su red abarca varios segmentos de red con enrutadores entre los segmentos,
debe realizar los ajustes adecuados en su configuración de DHCP. Las posibilidades incluyen:
Ejecutar varios servidores DHCP Puede ejecutar un servidor DHCP diferente en cada subred. De
Por supuesto, este enfoque aumenta su esfuerzo de configuración; sin embargo, podría ser aceptable
si puede confiar en un servidor DHCP fácil de configurar, como uno integrado en una banda ancha
enrutador, para uno de los segmentos de la red.
Ejecute el servidor DHCP en el enrutador Un servidor DHCP se ejecuta en un enrutador o algún otro
computadora con interfaces en múltiples redes, puede servir a todas las redes a las que
la computadora está conectada. Esta solución puede ser bastante sencilla; sin embargo, tu
Es posible que no desee ejecutar un servidor DHCP en un enrutador por razones de seguridad.
Configurar el enrutador para enrutar transmisiones DHCP Algunos enrutadores ofrecen opciones para
retransmitir solicitudes DHCP de una subred a otra. IP de Cisco - opción de dirección auxiliar ,
por ejemplo, hace esto. Consulte la documentación de su enrutador para obtener información sobre este
Acercarse.
Ejecute un agente de retransmisión DHCP El software del servidor DHCP de ISC incluye un programa, dhcrelay
o dhcrelay3 , que puede retransmitir difusiones DHCP de una subred a otra. Esta
El programa debe instalarse en una computadora en cada subred que no tenga su propia
Computadora servidor DHCP. Tenga en cuenta que el programa dhcrelay no necesita ejecutarse en un enrutador
u otra computadora conectada a ambas redes.
El programa dhcrelay puede estar incluido en el paquete DHCP principal o en otro,
como dhcp3 - relé . El uso más básico de dhcrelay lo lanza usando solo el nombre o IP
dirección del servidor DHCP en una red remota:
# dhcrelay [Link]
El agente de retransmisión retransmitirá todas las solicitudes DHCP que reciba al
nombre o dirección IP. Puede ajustar el comportamiento del software utilizando varias opciones,
como -i interfaz para especificar una o más interfaces en las que escuchar. (Debes
incluir tanto la interfaz en la que existen los clientes DHCP como la interfaz con el DHCP
servidor o el enrutador al servidor DHCP si el sistema tiene múltiples interfaces).
dhcrelay 's hombre de la página para obtener más información sobre sus opciones, la mayoría de los cuales son altamente
técnico.
En la práctica, probablemente querrá que dhcrelay se inicie automáticamente. Para hacer eso,
debe ingresar el nombre del servidor DHCP o la dirección IP, junto con cualquier otra opción,
en un archivo de configuración específico de la distribución. En Debian y Ubuntu, por ejemplo, el archivo
es / etc / default / dhcp3 - relay , y edita la opción SERVERS para especificar el DHCP
dirección del servidor; en un sistema Fedora, el archivo es / etc / sysconfig / dhcrelay , y
edite la opción DHCPSERVERS . Alternativamente, puede crear una línea adecuada en un local
secuencia de comandos de inicio.
Configurar un servidor DHCP
309

Página 352
310
Capítulo 7 ■
Configuración de red avanzada

Administrar cuentas LDAP


Ya debería estar familiarizado con los conceptos de cuentas y cuentas de Linux.
gestión mediante herramientas como useradd , usermod y passwd , junto con archivos como
/ etc / passwd y / etc / shadow . Estos conceptos, herramientas y archivos forman parte del LPIC - 1
Certificación. Estas configuraciones son adecuadas para equipos Linux con pocas cuentas o
con cuentas que no se comparten con otras computadoras en una red. En muchas redes
entornos, sin embargo, es deseable dar una gran cantidad de cuentas de usuarios en una gran
número de equipos Linux (o incluso no Linux). La gestión de estos entornos puede
convertirse rápidamente en un desafío; cualquier cambio requiere replicación en todas las computadoras, que
puede ser una pesadilla logística. La solución a este problema es implementar un inicio de sesión de red
protocolo. Existen varios de estos protocolos, LDAP es uno de ellos. El seguimiento
Las páginas describen algunos principios LDAP fundamentales y una cuenta LDAP común.
herramientas administrativas.
La configuración completa de LDAP no está cubierta en los objetivos de LPIC - 2 y
está más allá del alcance de este libro. Para configurar LDAP por completo, debe
configurar un servidor LDAP y ajustar la configuración de cada cliente
que debe utilizar el servidor LDAP. Una breve descripción (capítulo - longitud) de
cómo hacer esto aparece en mi Linux en un mundo de Windows (O 'Reilly, 2005).
Puede encontrar una cobertura más completa de LDAP en libros específicos de LDAP,
como Mastering OpenLDAP de Matt Butcher : Configuración, protección y
Integración de servicios de directorio (Packt, 2007).

¿Qué hace LDAP?


En un esquema de autenticación de red, una computadora tiene una base de datos con información de cuenta
y otras computadoras están configuradas como clientes de ese servidor de autenticación. (Copias de seguridad de
el servidor de autenticación también puede existir en caso de que el servidor principal deje de funcionar.) Cuando un usuario
intenta iniciar sesión en un cliente, esa computadora envía el nombre de usuario y la contraseña (posiblemente
cifrado) al servidor, que luego le dice al cliente si el usuario está autorizado. los
El servidor también puede proporcionar información adicional, como la ubicación de la casa del usuario.
directorio.
Existen varios protocolos de autenticación de red. Estos incluyen LDAP (descrito aquí),
Kerberos, dominios de Windows NT y servicio de información de red (NIS). Las ventanas
El sistema de Active Directory (AD) combina características de LDAP y Kerberos.
LDAP es un sistema de directorio que requiere elaboración. En términos de LDAP, un directorio es
no es lo mismo que un directorio del sistema de archivos, aunque los dos conceptos son similares. Un LDAP

Página 353
directorio es esencialmente una base de datos, pero es una base de datos que está organizada en una jerarquía
fashion y que está diseñado para ser leído con más frecuencia de lo que está escrito. Como sistema de archivos
directorios, los directorios LDAP tienen una raíz (denominada base en el lenguaje LDAP), y
la información se almacena en relación con esa base. En las siguientes páginas, el significado de la palabra
El directorio debe ser claro por contexto si se refiere a un directorio del sistema de archivos o un LDAP
directorio.
Al usar LDAP, las cuentas de usuario deben administrarse de una manera diferente a la de un
computadora con una base de datos de cuenta local. Varias utilidades, que se incluyen con el
popular servidor OpenLDAP ( [Link] ), proporciona sustitutos para Linux
herramientas de mantenimiento de cuentas como useradd , userdel y passwd .
Preparación de un sistema para utilizar herramientas LDAP
Puede utilizar las herramientas de mantenimiento de la cuenta LDAP en cualquier computadora que esté correctamente
configurado como cliente LDAP. Para hacer esto, debe instalar el software OpenLDAP, o en
al menos sus clientes, y edite el archivo /etc/openldap/[Link] . Este archivo especifica la base de
el directorio LDAP, la ubicación del servidor LDAP y una clave de cifrado si su LDAP
el servidor usa uno:
BASE
dc = pangea, dc = edu
URI
ldaps: //[Link]
TLS_CACERT /etc/openldap/ssl/certs/[Link]
La línea BASE especifica la base del directorio LDAP. Normalmente se deriva de su
Nombre de dominio de Internet ( [Link] en este ejemplo), pero puede ser otra cosa. El URI
línea especifica el nombre de host del servidor LDAP, generalmente precedido por ldap: // o ldaps: // , el
este último denota un servidor que emplea cifrado. Si el servidor LDAP admite el cifrado,
debe especificar un archivo de certificado con la línea TLS_CACERT . (Alternativamente, el TLS_
La línea CACERTDIR especifica un directorio en el que se puede encontrar un certificado.) Debe copiar el
archivo de certificado del servidor LDAP.
Trabajar con archivos LDIF
LDAP utiliza el formato de intercambio de datos LDAP (LDIF) como una forma de transferir datos, y
Se necesita un conocimiento básico de LDIF para el mantenimiento de la cuenta LDAP. Un LDIF
El archivo consta de una serie de valores y nombres de atributos, separados por dos puntos. Para cuenta
mantenimiento, estos archivos deben contener datos equivalentes a las entradas en / etc / passwd y
/ etc / shadow . Para mantener los datos del grupo de Linux, archivos LDIF con el equivalente de / etc / group
debe estar disponible. Los listados 7.2 y 7.3 muestran ejemplos de contraseña y archivos LDIF de grupo,
que contienen datos sobre un solo usuario y un solo grupo, respectivamente.
Administrar cuentas LDAP
311
Página 354
312
Capítulo 7 ■
Configuración de red avanzada
Listado 7.2: Archivo LDIF de muestra que contiene datos de usuario
dn: uid = maryann, ou = People, dc = pangea, dc = edu
uid: Maryann
cn: maryann
objectClass: cuenta
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {SSHA} dUR1zOPZslHC6AGhGxAhcIYHpa7lqRGn
shadowLastChange: 14262
shadowMax: 99999
shadowWarning: 7
loginShell: / bin / bash
gecos: Maryann
uidNumber: 1010
gidNumber: 100
homeDirectory: / home / maryann
El valor uid en el Listado 7.2 corresponde a un nombre de usuario de Linux; el Linux
El valor de UID aparece en la línea uidNumber .
Listado 7.3: Archivo LDIF de muestra que contiene datos de grupo
dn: cn = usuarios, ou = Grupo, dc = pangea, dc = edu
objectClass: posixGroup
objectClass: top
cn: usuarios
userPassword: {crypt} x
gidNumber: 100
memberUid: maryann
Para agregar o modificar cuentas o grupos, debe tener archivos LDIF adecuados. (Alternativamente,
puede escribir la información directamente, pero normalmente es más fácil tener los datos en un archivo).
El archivo puede contener varias entradas, por lo que puede agregar varios usuarios a la vez creando un solo archivo
que define a varios usuarios. Asegúrese de que una línea en blanco separe las entradas de diferentes cuentas.
Se requiere especial atención para la entrada userPassword en el archivo de datos del usuario. Esta
Por lo general, la entrada se cifra mediante cualquiera de varios esquemas de cifrado. En el Listado 7.2, SSHA
se utilizó cifrado. Puede crear una contraseña cifrada escribiendo slappasswd , que
le solicita una contraseña (debe ingresarla dos veces) y muestra una cadena que puede

Página 355
luego corte y pegue en el archivo LDIF. Las opciones adicionales de slappasswd se describen brevemente,
en “Modificación de cuentas. "
Si el directorio de cuentas es nuevo, debe inicializarlo utilizando dos entradas especiales:
dn: dc = pangea, dc = edu
objectClass: dominio
dc: pangea
dn: ou = Gente, dc = pangea, dc = edu
objectClass: organizationUnit
ou: Gente
Puede colocar estas dos entradas al comienzo del primer archivo LDIF que utiliza para crear
cuentas, o puede ingresarlas en su propio archivo separado. Por supuesto, debes modificar
para reflejar su propia configuración cambiando las referencias a pangea y edu a su
equivalentes del propio sitio. Se requiere una entrada similar para inicializar el directorio de grupos:
dn: ou = Grupo, dc = pangea, dc = edu
objectClass: organizationUnit
ou: Grupo
Migración de una base de datos de usuarios a LDAP
Si tiene una computadora con una base de datos de usuarios existente y desea migrarla a LDAP,
un conjunto de scripts para convertir los archivos estándar de Linux al formato LDIF puede ayudar. Tales guiones
existen en [Link] . La mayor parte de esa página web
describe los significados de varias variables utilizadas por los scripts. Los enlaces de descarga aparecen en
el final de la página; desplácese hacia abajo y haga clic para descargar un tarball que contiene los scripts.
Una vez que haya descargado y extraído los scripts, debe editar el archivo migrate_common.ph
archivo para su sitio. Cambie las variables $ DEFAULT_MAIL_DOMAIN y $ DEFAULT_BASE a
consulte su nombre de dominio de correo DNS y base LDAP, respectivamente.
Con la personalización adecuada en su lugar, puede escribir los siguientes comandos, desde dentro
el directorio de scripts, para crear archivos LDIF para cuentas y grupos:
# ./migrate_passwd.pl / etc / passwd [Link]
# ./migrate_group.pl / etc / group [Link]
Los archivos [Link] y [Link] resultantes contienen equivalentes LDIF de su / etc /
archivos passwd y / etc / group . Debe editar estos archivos para eliminar el sistema que no es de inicio de sesión
cuentas y grupos, así como cualquier usuario que no desee autenticar a través de LDAP. Con
sus archivos editados finales en mano, puede agregarlos al directorio LDAP, como se describe a continuación.
Administrar cuentas LDAP
313

Página 356
314
Capítulo 7 ■
Configuración de red avanzada
Agregar cuentas
Con la configuración básica fuera del camino, puede comenzar las tareas de mantenimiento de la cuenta. Si el
El directorio LDAP está vacío, un buen lugar para comenzar es agregar usuarios. Prepare uno o
más archivos LDIF para usuarios y grupos, y luego agregue cada uno usando ldapadd :
$ ldapadd -D cn = gerente, dc = pangea, dc = edu -W -f [Link]
Los usuarios comunes pueden ejecutar ldapadd y otras herramientas administrativas LDAP;
LDAP se basa en su propia autenticación, en lugar de la seguridad de inicio de sesión local,
para proporcionar la seguridad adecuada.
Este ejemplo agrega las cuentas especificadas en [Link] al servidor LDAP especificado
en el archivo /etc/openldap/[Link] . La opción - D es un nombre distinguido (DN) que
se refiere a una cuenta administrativa en el servidor LDAP; debes conocer este DN y su
contraseña asociada para poder agregar cuentas. Varias otras opciones pasadas a ldapadd
son importantes, como se resume en la Tabla 7.2. Consulte ldapadd 's hombre página para adicional
opciones.
TABLA 7.2 Opciones importantes de ldapadd
Opción
Descripción
-C
Continúa procesando el archivo de entrada incluso si se detectan errores.
- archivo S
Los registros de problemas se escriben en el archivo , con mensajes de error agregados como
comentarios.
-n
No modifica el directorio pero muestra lo que se haría.
-v
Crea una salida detallada.
- nivel d
Establece un nivel de depuración numérico. Requiere un binario compilado con
LDAP_DEBUG establecido.
- archivo f
Lee registros LDIF del archivo especificado .
-X
Utiliza un método de autenticación más simple en lugar del predeterminado de Simple
Capa de autenticación y seguridad (SASL).
- D binddn
Se enlaza con el directorio utilizando el nombre distinguido (DN) especificado.
-W
Solicita autenticación.

Página 357
Modificar cuentas
Para modificar una cuenta, usa el comando ldapmodify , que funciona de manera muy similar a ldapadd .
(De hecho, un comando es un enlace simbólico al otro en muchos sistemas). Por lo tanto, las opciones
a la Tabla 7.2 se aplican también a ldapmodify . Sin embargo, normalmente se usa ldapmodify para
modificar una cuenta existente. Puede editar un archivo LDIF existente y luego devolverlo a través de
ldapmodify para cambiar la cuenta.
Una configuración importante de la cuenta que probablemente deba cambiar de vez en cuando es la
contraseña. Si desea almacenar contraseñas en formato hash (cifrado unidireccional),
necesita cifrarlos de alguna manera cuando modifica el archivo LDIF. Como se señaló anteriormente, el
La utilidad slappasswd puede hacer este trabajo. Escriba su nombre y se le pedirá que ingrese un
contraseña dos veces (no hace eco), después de lo cual la utilidad imprime la contraseña hash:
$ slappasswd
Nueva contraseña:
Re-ingrese nueva contraseña:
{SSHA} 2UtAPbD + / juSg5k2vK3mY3ECtqsDRkkT
Corte y pegue el valor de la contraseña que se muestra en el archivo LDIF y luego ejecútelo
ldapmodify para cambiar la contraseña.
Varias opciones para slappasswd modificar su funcionamiento, como se resume en la Tabla 7.3. Unos pocos
también existen opciones más oscuras; consulte la página de manual del programa para obtener más detalles.
Opción
Descripción
- w contraseña
Utiliza la contraseña especificada para autenticarse. (Entregando un
contraseña de esta manera es arriesgada, ya que se puede recuperar de su
historia de shell.)
- y contraseña_
expediente
Lee la contraseña de password_file .
- H ldapuri
Accede al servidor LDAP en el identificador uniforme de recursos especificado
(URI). Las versiones antiguas utilizan - h en lugar de - H .
- versión P
Utiliza la versión LDAP especificada ( 2 o 3 ).
- Z [Z]
Intenta utilizar la autenticación StartTLS (seguridad de la capa de transporte).
El uso de - ZZ requiere que esta operación se realice correctamente.
Administrar cuentas LDAP
315

Página 358
316
Capítulo 7 ■
Configuración de red avanzada
Aunque puede cambiar la contraseña de un usuario con slappasswd y ldapmodify ,
enfoque simplificado es utilizar ldappasswd , que combina eficazmente ambos comandos en
uno, obviando la necesidad de tratar con un archivo LDIF intermediario:
$ ldappasswd -D cn = administrador, dc = pangea, dc = edu -W -S
uid = maryann, ou = Gente, dc = pangea, dc = edu
Nueva contraseña:
Re-ingrese nueva contraseña:
Ingrese la contraseña LDAP:
Resultado: Éxito (0)
Este ejemplo cambia la contraseña de maryann . Una peculiaridad es que el usuario debe ingresar
la contraseña del administrador después de ingresar la nueva contraseña del usuario. Muchas variantes de este
el comando es posible; por ejemplo, sustituyendo el DN del usuario por el DN del administrador,
los usuarios pueden cambiar sus propias contraseñas.
Con la excepción de - C , - S , - f y - P , las opciones de la Tabla 7.2 se aplican a ldappasswd .
Además, la Tabla 7.4 resume las opciones exclusivas de ldappasswd . Consultar el programa
man page para aún más opciones.
TABLA 7.3 Opciones importantes de slappasswd
Opción
Descripción
-v
Muestra una salida detallada.
- s contraseña
Crea un hash de la contraseña especificada .
- archivo T
Crea un hash a partir del contenido del archivo .
- esquema h
Utiliza el esquema especificado para codificar la contraseña. Opciones válidas para
esquema son {CRIPTA} , {MD5} , {SMD5} , {SSHA} y {} SHA , con {} SSHA bienestar
el valor por defecto.
TABLA 7.4 Opciones importantes de ldappasswd (consulte también la Tabla 7.2)
Opción
Descripción
- UNA
Solicita la contraseña anterior.
- una contraseña
Utiliza la contraseña especificada como la contraseña anterior.
- archivo t
Lee la contraseña anterior del archivo .

Página 359
En la mayoría de los casos, los usuarios pueden cambiar sus propias contraseñas usando passwd en un cliente LDAP
sistema, como si la base de datos de la cuenta fuera local. Esta capacidad depende de la configuración
del sistema de Módulos de autenticación conectables (PAM) en el cliente. Dado que
simplicidad de passwd en comparación con ldappasswd , el uso de passwd es preferible para la mayoría de los usuarios.
Eliminar cuentas
Por supuesto, es posible que de vez en cuando deba eliminar cuentas. Puedes hacerlo con el
comando ldapdelete , que se puede usar para eliminar una sola cuenta como esta:
$ ldapdelete -D cn = gerente, dc = pangea, dc = edu -W cn = nemo, dc = pangea, dc = edu
Este comando eliminará el usuario de nemo (o, más precisamente, la cuenta con el
nombre canónico que coincide con cn = nemo, dc = pangea, dc = edu ) del directorio, proporcionando
¡Por supuesto que el usuario que escribe este comando tiene la contraseña correcta!
El comando ldapdelete funciona con las mismas opciones descritas en la Tabla 7.2
Excepto por - S y - C . El significado de - f también es ligeramente diferente; el archivo especificado
by - f contiene una lista de DN que se eliminarán. Consultar el hombre página para ldapdelete
para obtener información sobre opciones adicionales.
Consultar a un servidor sobre cuentas
Varias herramientas pueden proporcionar información sobre las cuentas LDAP. Una herramienta muy conveniente es
getent . Pasas la cadena passwd o group a getent para ver una lista de cuentas o grupos,
respectivamente. También puede agregar el nombre de la cuenta o del grupo para obtener información sobre un
cuenta o grupo particular:
$ getent passwd maryann
maryann: x: 1010: 100: Maryann: / home / maryann: / bin / bash
Esta salida verifica que existe la cuenta maryann y muestra información diversa
sobre la cuenta en el mismo formato que utiliza el archivo / etc / passwd . La utilidad getent
Opción
Descripción
-n
No establece la contraseña (se usa junto con - v o - d ).
-S
Solicita la nueva contraseña. (Tenga en cuenta que - S tiene un
es decir con la mayoría de las utilidades relacionadas).
- s nueva_contraseña
Establece la nueva contraseña en new_password .
- archivo T
Lee la nueva contraseña del archivo .
Administrar cuentas LDAP
317
Página 360
318
Capítulo 7 ■
Configuración de red avanzada
devuelve información de diversas fuentes, incluidas las bases de datos de cuentas locales; y eso
funciona solo si el cliente está configurado correctamente para utilizar LDAP para la gestión de cuentas. Utilizando
la opción -s ldap restringe la búsqueda a fuentes LDAP.
Una herramienta específica de LDAP es ldapsearch . Con esta utilidad, puede buscar datos usando
cualquier campo de la base de datos. Por lo general, no necesita mucha autenticación para usar
tampoco. Por ejemplo, puede buscar datos sobre el usuario maryann escribiendo esto:
$ ldapsearch uid = maryann
El programa mostrará las entradas de directorio coincidentes una tras otra. Por supuesto,
en este caso, probablemente solo habrá una entrada coincidente; sin embargo, puedes buscar
para los miembros de un grupo en particular, los usuarios que usan un shell en particular u otros no únicos
características para obtener información sobre todos estos usuarios.
La utilidad ldapsearch busca en criterios o filtros definidos en la Solicitud de
Comentarios (RFC) 4515 documento ( http: //[Link] - [Link]/rfc/[Link] , entre
otras ubicaciones). Los filtros RFC 4515 pueden ser bastante complejos. Son conceptualmente similares
a expresiones regulares, que son utilizadas por varias otras herramientas de Linux; pero la sintaxis de RFC
4515 filtros es bastante diferente. Por ejemplo, considere el siguiente filtro:
(& (uid = maryann) (! (ou = Contabilidad)))
El filtro encontrará usuarios con un nombre de cuenta de maryann que no son miembros de
el departamento de Contabilidad (el signo de exclamación cumple una función de negación). Tal
La búsqueda puede ser útil si su servidor LDAP aloja bases de datos de cuentas separadas para diferentes
departamentos u otros grupos. En tal configuración, el mismo nombre de usuario podría ser utilizado por
dos personas, al igual que dos archivos pueden tener el mismo nombre en dos directorios del sistema de archivos y
sin embargo, sé distinto. Sin embargo, en la mayoría de los casos será suficiente un filtro de búsqueda mucho más simple. Si necesitas
para utilizar filtros de búsqueda más complejos, debe consultar RFC 4515.
Al igual que con otras herramientas de mantenimiento LDAP, hay varias opciones disponibles en ldapsearch .
Todas las opciones enumeradas en la Tabla 7.2 son compatibles; Además, la Tabla 7.5 resume algunos
opciones adicionales. La opción -f especifica un archivo en el que aparecen una serie de criterios de búsqueda.
Aún hay más opciones disponibles; consulte la página de manual del programa para obtener más detalles.
TABLA 7.5 Opciones importantes de ldapsearch (consulte también la Tabla 7.2)
Opción
Descripción
- UNA
Recupera el atributo pero no su valor
-L
Muestra los resultados como registros LDIF
- Atributo S
Ordena los resultados según el atributo especificado
- base b
Busca en el directorio desde la base especificada en lugar de desde el predeterminado
- número z
Recupera como máximo las entradas de números , con 0 que significa sin límite

Página 361
Configurar un enrutador
El Capítulo 5 describe la configuración básica de la red, incluido el uso del comando route
y las opciones de configuración más básicas del router. Este capítulo amplía este tema,
centrándose en la traducción de direcciones de red (NAT), configuraciones de firewall y
mantenimiento de enrutamiento. Estas herramientas pueden ayudar a mantener su red a salvo de ataques no deseados:
y lo que es más importante, pueden evitar que su propia red se convierta en una fuente de
ataques no deseados a otros!
Comprensión de los tipos de enrutamiento
Las redes de computadoras pequeñas permiten que las computadoras se comuniquen más o menos directamente con
unos y otros. En tales redes, las computadoras pueden direccionar el hardware de los demás utilizando medios
direcciones de control de acceso (MAC), también conocidas como direcciones de hardware, como se describe en el Capítulo 5. Esta
El enfoque funciona bien para una red de oficinas pequeñas; sin embargo, tal configuración no escala
bien para los tamaños necesarios para las grandes organizaciones, y mucho menos para Internet en todo el mundo.
A tales escalas, es necesario vincular múltiples redes pequeñas, cada una de las cuales se conoce como
segmento de red, utilizando computadoras especiales: enrutadores.
En esencia, un enrutador es simplemente una computadora que puede transferir paquetes de datos de red entre
dos o más segmentos de red. Sin embargo, dependiendo de la configuración del enrutador,
realizar tareas adicionales, algunas de las cuales se describen en otros capítulos de este libro:
VPN Un enrutador de red privada virtual (VPN) encapsula los paquetes para su transmisión
un enlace de red cifrado a través de una red que no es de confianza. La configuración de VPN se describe en
Capítulo 5.
Cortafuegos Un cortafuegos es una configuración de computadora o software que rechaza selectivamente
tipos de tráfico de red. Los firewalls pueden bloquear el tráfico según una variedad de criterios, que incluyen
dirección IP de origen, dirección IP de destino, número de puerto de origen y puerto de destino
número. Sin embargo, no todos los firewalls son enrutadores; los cortafuegos pueden proteger equipos aislados.
Asimismo, no todos los enrutadores ejecutan firewalls. Sin embargo, muchos enrutadores ejecutan software de firewall.
Dichos enrutadores suelen emplear configuraciones de firewall de filtro de paquetes , lo que significa que
El firewall utiliza reglas basadas en paquetes de bajo nivel para determinar qué datos pasar, a diferencia de
reglas basadas en protocolos de nivel superior. La próxima sección "Configuración de reglas de firewall"
describe la configuración del cortafuegos de filtrado de paquetes de Linux.
NAT Direcciones de Red (NAT) , también conocido como el enmascaramiento de IP , permite a un router
"Ocultar" una red de otra y, al mismo tiempo, permitir que la red oculta acceda al
otro. Esta es una herramienta de seguridad muy útil para pequeñas redes privadas que pueden funcionar con
servidores nuevos o sin acceso externo; la red protegida puede ejecutar servidores internos con
poco riesgo de que una persona ajena pueda acceder a esos servidores. NAT también puede estirar el suministro limitado
de direcciones IPv4; una organización puede dar acceso a una docena, cien o más computadoras
a Internet mientras consume solo una dirección IP. La próxima sección "Configuración
NAT ”describe las capacidades NAT de Linux.
Configurar un enrutador
319

Página 362
320
Capítulo 7 ■
Configuración de red avanzada
Es importante darse cuenta de que no todas las computadoras que conectan dos redes son enrutadores.
Algunas computadoras tienen dos interfaces de red e incluso pueden ejecutar el mismo servidor en ambas
redes, pero por sí misma, dicha configuración no transfiere datos entre las redes,
excepto quizás de forma limitada, dependiendo de la configuración del servidor. Algunas configuraciones pueden
Emplear un servidor proxy , que es una forma de que el sistema transmita datos para un número limitado.
de protocolos, pero un servidor proxy no es un enrutador porque un enrutador retransmite paquetes para una amplia
variedad de protocolos.
Activando el enrutamiento
Para usar una computadora como enrutador, primero debe configurarla para usar dos o más
interfaces, como se describe en el Capítulo 5. A continuación, debe vincular esas interfaces colocando el
valor 1 en el pseudoarchivo / proc / sys / net / ipv4 / ip_forward :
# echo "1"> / proc / sys / net / ipv4 / ip_forward
El pseudo directorio / proc / sys / net / ipv4 contiene una gran cantidad de
pseudo - archivos que controlan muchas funciones de bajo nivel de su red IPv4
conexiones. La mayoría de estos pseudoarchivos no deben ajustarse a menos que
comprender completamente su propósito y función. En raras ocasiones, ajustando
uno puede ser útil para mejorar el rendimiento o habilitar una función. Colocando un 1
valor en el pseudoarchivo ip_forward en un enrutador es una de esas ocasiones.
Con este cambio en su lugar, la computadora está configurada como un enrutador. Por supuesto, computadoras
en ambas redes debe conocer el estado de su enrutador, es decir, el enrutador Linux debe estar
aparece como puerta de enlace en las tablas de enrutamiento de al menos una computadora en cada interfaz de red.
Configuración de reglas de firewall
Las reglas de firewall de filtrado de paquetes de Linux se implementan utilizando una herramienta conocida como iptables . Esta
El programa le permite describir criterios que pueden coincidir con paquetes basados en direcciones, puertos
números y así sucesivamente. Los paquetes que coinciden con los criterios que especifica se pasan y otros
son rechazados, o viceversa, dependiendo de sus valores predeterminados. En las siguientes páginas, describo
Principios básicos de iptables , resumir cómo comprobar la configuración existente, explicar el
sintaxis de la utilidad iptables y presentar una configuración de muestra.
Versiones del kernel de Linux 2.4. xy 2.6. x use iptables . El anterior 2.0. X
y 2.2. x utiliza herramientas conocidas como ipfwadm e ipchains ,
respectivamente. Si su sistema usa IPv6, debe usar la herramienta ip6tables .
Estos programas son similares en principio a iptables , pero difieren en
muchos detalles. Las herramientas ipfwadm e ipchains , en particular, son menos
poderoso que iptables .

Página 363
Conceptos básicos de iptables
El kernel de Linux usa una serie de reglas para determinar qué hacer con cualquier paquete
recibe o es generado por procesos locales. Estas reglas están dispuestas en cadenas , que
proporcionar una serie de patrones y acciones que se deben tomar si un paquete coincide con el patrón.
La primera regla que coincide con un patrón determina lo que hace el sistema con el paquete: aceptar
rechazarlo o pasarlo a otra cadena. Las cadenas se organizan a su vez en tablas ,
con las relaciones entre ellos. La tabla más importante es la tabla de filtros , que
se ilustra en la Figura 7.3. En esta tabla, la cadena INPUT procesa los paquetes destinados a
programas locales, la cadena FORWARD procesa los paquetes que el sistema debe reenviar (como en un
router), y la cadena de SALIDA procesa paquetes que se originan localmente y están destinados a
sistemas exteriores. Cualquier paquete determinado pasa por una de estas cadenas. Otro estándar
Las tablas incluyen la tabla nat , que maneja la traducción de direcciones de red (NAT), y la
mangle table, que modifica los paquetes de forma especializada.
FIGURA 7.3 Linux usa una serie de reglas, que se definen en cadenas que se llaman en
varios puntos durante el procesamiento, para determinar el destino de los paquetes de red
Datos salientes
Datos entrantes
Enrutamiento
Decisión
ENTRADA
Cadena
ADELANTE
Cadena
SALIDA
Cadena
Procesos locales
Para crear un firewall de filtro de paquetes, debe diseñar una serie de reglas para tablas específicas
y cadenas. Por ejemplo, puede decirle a la cadena INPUT que descarte cualquier paquete dirigido
en el puerto 80 (el puerto del servidor web) que no se originan en la red local. Otro set
de las reglas podría decirle a la cadena de SALIDA que bloquee todos los paquetes salientes de los procesos locales
destinados al puerto 25 (el servidor de correo SMTP) excepto los dirigidos a la red
Configurar un enrutador
321

Página 364
322
Capítulo 7 ■
Configuración de red avanzada
computadora servidor de correo. Es probable que un enrutador incluya una serie de reglas especiales para
FORWARD , también, para controlar las características de enrutamiento independientemente de las
accesos de programas.
Linux proporciona la utilidad iptables para manipular las reglas del firewall. Este programa se basa
sobre la presencia de una variedad de opciones en el kernel de Linux. Lo más importante es que debe habilitar
Soporte de red Opciones de red Marco de filtrado de paquetes de red
Opción (Netfilter). Una vez hecho esto, puede activar varias opciones en la IP:
El submenú Netfilter Configuration, más notablemente la opción de soporte de tablas IP, como se muestra en
Figura 7.4. Le recomiendo que cree casi todo lo demás, al menos como módulos.
La mayoría de las distribuciones de Linux se envían con la mayoría de estas opciones compiladas como módulos.
FIGURA 7.4 Las opciones del kernel de Linux deben estar habilitadas antes de un firewall de filtro de paquetes
se puede construir
La herramienta iptables acepta una serie de opciones de tabla y comando, la más importante
de los cuales se resumen en la Tabla 7.6. (Las opciones relacionadas con las reglas se describen más adelante en
“Usando iptables . ”) Las opciones adicionales se describen en la página de manual de iptables .

Página 365
TABLA 7.6 Opciones comunes de comando y tabla de iptables
Nombre de opción largo
Nombre corto de la opción Descripción
- - mesa mesa
- tabla t
Especifica la mesa sobre la que se va a operar. por
cortafuegos, lo más habitual es filtrar ,
que es el predeterminado. Para configuraciones NAT,
el nombre de la tabla es nat .
- - lista [ cadena ]
- L [ cadena ]
Muestra la configuración actual para el
cadena especificada o para todas las cadenas si la cadena es
omitido.
- - lista - reglas
[ cadena ]
- S [ cadena ]
Muestra las reglas en la cadena actual o para
todas las cadenas si se omite la cadena . Produce más
salida concisa de - L .
- - al ras [ cadena ]
- F [ cadena ]
Elimina todas las reglas de la cadena especificada o
para todas las cadenas si se omite la cadena .
- - cadena de políticas
objetivo
- Objetivo de cadena P
Establece la política predeterminada (descrita en detalle en
"Configuración de la política predeterminada") para el
cadena.
- - añadir regla de cadena - Una regla de cadena
Agrega una nueva regla a la cadena especificada.
- - Eliminar regla de cadena - Regla de cadena D
Elimina una regla existente de una cadena. La regla
puede especificarse como un número o como un
descripción.
- - insertar cadena
[ número ] regla
- yo encadeno
[ número ] regla
Inserta una nueva regla en una cadena en el especificado
posición ( número ). Si se omite el número , el
La regla se inserta en la cabeza de la cadena.
- - reemplazar cadena
regla numérica
- Número de cadena R
regla
Reemplaza una regla existente (especificada por
número ) con uno nuevo.
Comprobación de la configuración
El iptables responde al programa - L parámetro mediante la visualización de una lista de las reglas que
componen una tabla determinada. Opcionalmente, puede pasar un nombre de tabla mediante el parámetro - t .
Por ejemplo, el Listado 7.4 muestra cómo ver la tabla de filtros actual .
Configurar un enrutador
323

Página 366
324
Capítulo 7 ■
Configuración de red avanzada
Listado 7.4: Ejemplo de uso de iptables para ver la configuración del firewall
# iptables -L -t filtro
ENTRADA de cadena (política ACEPTAR)
fuente de opt opt de destino
destino
DROP all - [Link]/16
en cualquier sitio
Cadena ADELANTE (política DROP)
fuente de opt opt de destino
destino
Salida de cadena (política ACEPTAR)
fuente de opt opt de destino
destino
La tabla predeterminada es filter , por lo que omitir - t filter de este comando produce el
misma salida. La tabla resumida por este resultado está casi vacía; el AVANCE y SALIDA
Las cadenas no tienen reglas, y la cadena INPUT tiene solo una regla: elimina todas las entradas del
[Link]/16 red. Aunque el formato de información presentado por iptables - L
no es exactamente equivalente a lo que usa cuando crea una regla, las similitudes son fuertes
lo suficiente como para poder interpretar la salida una vez que sepa cómo crear reglas.
Configuración de la política predeterminada
Una consideración de suma importancia al diseñar un firewall es la política predeterminada , que es
lo que hace el cortafuegos con los paquetes que no coinciden con ninguna regla en una cadena. De hecho, en el estándar
tabla de filtros , hay tres políticas predeterminadas, una para cada una de ENTRADA , ADELANTE y SALIDA
cadenas La política predeterminada corresponde a una acción que puede realizar el sistema. Tres opciones son
común, como se describe en la Tabla 7.7, aunque solo dos pueden usarse como regla predeterminada.
TABLA 7.7 Políticas comunes de firewall
Política
Descripción
ACEPTAR
Una acción ACEPTAR hace que el sistema acepte el paquete y lo pase a
la siguiente cadena o sistema. Por ejemplo, si la política predeterminada de la cadena INPUT
es ACEPTAR , cualquier paquete que no coincida con una regla se pasa al objetivo
programa (asumiendo que uno está usando el puerto especificado).
SOLTAR
Esta acción hace que el sistema ignore el paquete - para "dejarlo en el
piso ”, por así decirlo. Al sistema que envía el paquete (que podría ser un
computadora remota o un programa local, dependiendo de la cadena involucrada),
parece que el paquete se perdió debido a un error de enrutamiento o similar.
RECHAZAR
Esta acción es muy parecida a DROP , excepto que el kernel devuelve un código al
computadora o programa que llama indicando que el paquete ha sido rechazado.
Este comportamiento es similar a lo que sucedería si ningún programa estuviera usando
el puerto de destino. Esta acción requiere que compile soporte explícito para ella
en el kernel, ya sea en el archivo principal del kernel o como un módulo. Desafortunadamente,
REJECT no funciona como una política predeterminada, pero puede usarla como objetivo para
reglas más específicas.

Página 367
Escribir iptables - L revela la política predeterminada, como se muestra en el Listado 7.4 - en ese ejemplo,
las cadenas INPUT y OUTPUT tienen una política predeterminada de ACEPTAR , mientras que la cadena FORWARD tiene
una política predeterminada de DROP . Para cambiar la política predeterminada, primero debe vaciar la cadena de todas sus
reglas pasando el parámetro -F y el nombre de la cadena a iptables . A continuación, puede pasar la - P
parámetro a iptables , junto con el nombre de la política. En ambos casos, opcionalmente puede incluir
- ty el nombre de la tabla:
# iptables -t filter -F ADELANTE
# iptables -F ENTRADA
# iptables -P DROP ADELANTE
# iptables -t filter -P INPUT DROP
Como regla general, la política predeterminada más segura es una cerrada, es decir, usar DROP . Cuando
Si utiliza una política predeterminada de este tipo, debe abrir puertos explícitamente con reglas de firewall. Esta
significa que si un servidor se está ejecutando en su computadora sin su conocimiento, no significa
un riesgo de seguridad porque los paquetes no pueden alcanzarlo y no puede enviar paquetes. Del mismo modo, si
cerrar los puertos de salida, el software malintencionado o es posible que las personas no puedan lanzar ataques
en otros, a menos que utilicen los protocolos que usted aprobó. Usando DROP como predeterminado
La política para la cadena FORWARD en un enrutador significa que su red estará muy bien protegida
y tampoco podrá servir como base para ataques salientes. Por otro lado, un
La política cerrada predeterminada significa que debe diseñar sus reglas de firewall con mucho cuidado; un descuido
puede hacer que un cliente o servidor importante deje de funcionar.
Aunque no puede establecer la política predeterminada en RECHAZAR , puede lograr
el mismo fin por otros medios. Específicamente, puede insertar una regla
al final de la cadena que usa REJECT en todos los paquetes que no coinciden con
reglas anteriores. Si hace esto, la política predeterminada establecida a través de la opción - P
a iptables se vuelve irrelevante. La siguiente sección, "Uso de iptables ",
describe cómo crear reglas individuales.
Si desea una póliza cerrada predeterminada, debe decidir entre usar DROP (directamente) y
RECHAZAR (a través de una solución como se describe en el consejo anterior). Hay buenos argumentos para
hacerse a favor de ambas reglas. DROP es la opción "sigilosa". Si usara DROP en
cada puerto y protocolo, muchos escáneres de red no detectarían su computadora en absoluto;
parecería no existir. Por supuesto, una política tan extrema haría que la red
inútil; en la práctica, debe dejar pasar algo de tráfico, y esto con frecuencia proporciona información
a las galletas. Por ejemplo, si un sistema descarta todo menos el puerto: 80 accesos, el cracker
sabe que está ejecutando un servidor web (o algo más) en el puerto 80. Porque las computadoras
aunque normalmente no suelta paquetes, el cracker también sabe que está ejecutando un firewall
con una política DROP predeterminada . Por el contrario, REJECT hace un peor trabajo al ocultar los
presencia de escaneos casuales, pero una vez que un cracker ha encontrado su sistema, es menos obvio que
está ejecutando un firewall.
En ocasiones, estas diferentes políticas pueden afectar a los protocolos. Específicamente, muchos
Los protocolos están diseñados para seguir intentando establecer conexiones si se pierden paquetes. Este comportamiento
Configurar un enrutador
325

Página 368
326
Capítulo 7 ■
Configuración de red avanzada
a veces puede provocar retrasos en la conexión de los protocolos relacionados si usa un DROP predeterminado
política. Por ejemplo, un servidor puede intentar ponerse en contacto con el puerto 113 de su computadora, que es
utilizado por el servidor de identificación (también conocido como auth ). Este servidor proporciona información sobre quién en su
El sistema realiza solicitudes de conexión a los servidores, con el objetivo de proporcionar un rastro en los archivos de registro.
para ayudar a rastrear el abuso hasta su origen. (Los contenedores TCP también pueden utilizar un servidor de identificación como
herramienta de autorización) .Si su sistema utiliza una regla DROP de la cadena INPUT en el puerto 113, el resultado
Puede haber retrasos en la conexión si un servidor remoto intenta utilizar su servidor de identificación . Por supuesto,
puede superar estos problemas caso por caso agregando reglas ordinarias al
cadena infractora, anulando la regla DROP predeterminada con una regla REJECT , o tal vez incluso
anulando una regla ACEPTAR .
Si su computadora tiene dos interfaces de red pero no debería funcionar
como enrutador, use una política predeterminada DROP en la cadena FORWARD . Haciéndolo
evitará que la computadora funcione como un enrutador, incluso si
configurarlo inadvertidamente para reenviar paquetes de otra manera.
Usando iptables
Para agregar una regla a una cadena, llame a iptables con un comando como este:
# iptables -Una CADENA de criterios de selección -j OBJETIVO
La CADENA en este comando es el nombre de la cadena - ENTRADA , SALIDA o ADELANTE para el
tabla de filtros . El OBJETIVO es el objetivo del cortafuegos que procesará el paquete, como ACEPTAR ,
RECHAZAR o BAJAR . También puede especificar un destino LOG , que registra información sobre el paquete
y luego intenta igualar la siguiente regla. También están disponibles varios otros objetivos; consultar el
documentación de iptables para más detalles.
La parte complicada de este comando está en el componente de criterios de selección . Usted puede
especificar muchos criterios diferentes para que coincida con las diferentes características de un paquete. Si especifica más
de un criterio, todos deben coincidir para que se aplique una regla. Algunas de las posibles
Los criterios se resumen en la Tabla 7.8. Hay muchas reglas de coincidencia adicionales disponibles; consultar
la página de manual de iptables para obtener más información.
TABLA 7.8 Criterios comunes de coincidencia de iptables
Nombre de opción largo Nombre de opción corto Descripción
- - nombre de coincidencia
- m nombre
Agrega reglas de coincidencia extendidas proporcionadas por
módulo nombrado.
- - protocolo
protocolo
- protocolo p
Establece el protocolo en una regla ( tcp , udp , udplite ,
icmp , esp , ah , sctp o todos , con todas las coincidencias
cualquier tipo de protocolo).

Página 369
Todas las computadoras Linux usan una interfaz loopback o localhost , identificada como lo ,
para cierta actividad de la red local. Puede crear un filtro mediante el - i o - o
opción y este nombre de interfaz para permitir que su sistema hable consigo mismo, lo que
es necesario para que funcionen determinadas herramientas, como los servidores X y las colas de impresión.
Nombre de opción largo Nombre de opción corto Descripción
- - Puerto de origen
puerto [: puerto ]
- - deporte
puerto [: puerto ]
Especifica el puerto de origen en una regla. Puedes
especificar un solo puerto o un rango separando
los números de puerto con dos puntos, como en - - sport
1024: 65535 para que coincida con cualquier puerto entre 1024
y 65.535, inclusive.
- - destino -
puerto puerto [: puerto ]
- - dport
puerto [: puerto ]
Especifica el puerto de destino en una regla. Esta
opción funciona igual que el - - fuente - puerto opción
pero para los puertos de destino.
- - fuente
dirección [/ máscara ]
-s dirección [/ máscara ] Especifica la dirección de origen en una regla. Usted puede
proporcionar una sola dirección IP o una red
bloque incluyendo el valor / máscara .
- - destino
dirección [/ máscara ]
-d dirección [/ máscara ] Especifica la dirección de destino en una regla. Esta
La opción funciona igual que la opción - - source pero
para la dirección de destino.
- - en - interfaz
nombre
- yo nombre
Especifica la interfaz de entrada en una regla. Esta
La opción no tiene sentido para la cadena OUTPUT .
- - salida - interfaz
nombre
- o nombre
Especifica la interfaz de salida en una regla. Esta
La opción no tiene sentido con la cadena INPUT .
- - estado estado
N/A
Especifica el estado de conexión en una regla, que
es decir, si el paquete está estableciendo un nuevo
conexión, continuando una conexión existente,
o lo que tienes. Los valores legales del estado son
NO VÁLIDO , NUEVO , ESTABLECIDO o RELACIONADO . Tú
Es posible que deba preceder esta opción con -m state .
- - objetivo de salto
- j objetivo
Le dice a iptables qué hacer si un paquete coincide
una regla.
- - ir a la cadena
- cadena g
Le dice a iptables que continúe procesando en un
nueva cadena.
Configurar un enrutador
327

Página 370
328
Capítulo 7 ■
Configuración de red avanzada
Muchas de estas opciones se utilizan en pares que coinciden con los paquetes que viajan en direcciones opuestas.
direcciones. Debe recordar que la mayoría de las conexiones de red involucran
Comunicaciones Un lado envía un paquete o un flujo de paquetes al otro lado, y
el segundo lado responde. Por lo tanto, con una política DENY predeterminada , no es suficiente simplemente
desbloquear, digamos, paquetes dirigidos a su servidor web (con el puerto - - destino - y
posiblemente otras opciones) en su cadena INPUT . También debe desbloquear los paquetes provenientes de
el servidor Web (con el - - source - port y posiblemente otras opciones) en la cadena OUTPUT . Si
inviertes las cadenas con las que están asociadas estas reglas, afecta la capacidad de los clientes
comunicar.
Una configuración de muestra
Las opciones descritas en la sección anterior pueden parecer complejas y, de hecho,
le permite crear un conjunto sofisticado de reglas de firewall. Para comprender mejor estas reglas,
considere el Listado 7.5, que muestra un conjunto de reglas de firewall simple como un script bash . Este script es un
mínimo uno que pueda ejecutarse en una estación de trabajo o servidor. Aparte de enjuagar y secar
la política predeterminada, este script no toca la cadena FORWARD . Para configurar un enrutador como
firewall, tendría que crear reglas para la cadena FORWARD que reflejen los tipos de tráfico que
quiere pasar entre redes.
Listado 7.5: Un ejemplo de script de firewall de iptables
#! / bin / bash
iptables -F ENTRADA
iptables -F ADELANTE
iptables -F SALIDA
iptables -P INPUT DROP
iptables -P DROP ADELANTE
iptables -P CAIDA DE SALIDA
# Deje pasar el tráfico en la interfaz loopback
iptables -A SALIDA -d [Link] -o lo -j ACEPTAR
iptables -A ENTRADA -s [Link] -i lo -j ACEPTAR
# Deje pasar el tráfico de DNS
iptables -A SALIDA -p udp --dport 53 -j ACEPTAR
iptables -A ENTRADA -p udp --sport 53 -j ACEPTAR
# Deje pasar el tráfico TCP de los clientes
iptables -A SALIDA -p tcp --sport 1024: 65535 -m estado \
--estado NUEVO, ESTABLECIDO, RELACIONADO -j ACEPTO

Página 371
iptables -A INPUT -p tcp --dport 1024: 65535 -m estado \
--estado ESTABLECIDO, RELACIONADO -j ACEPTAR
# Deje pasar las conexiones locales al servidor SSH local
iptables -A SALIDA -p tcp --sport 22 -d [Link]/24 -m estado \
--estado ESTABLECIDO, RELACIONADO -j ACEPTAR
iptables -A INPUT -p tcp --dport 22 -s [Link]/24 -m estado \
--estado NUEVO, ESTABLECIDO, RELACIONADO -j ACEPTO
El Listado 7.5 comienza con una serie de seis llamadas a iptables que limpian la cadena de reglas de firewall
y establezca la política predeterminada. Estas líneas aseguran que cuando ejecute este script, no agregará
a un conjunto de reglas existente, lo que podría inflar las cadenas, degradando así el rendimiento y
causando efectos inesperados. Las líneas restantes se dividen en cuatro partes, cada una de las cuales
tiene dos llamadas iptables . Estas partes establecen reglas relacionadas con tipos específicos de tráfico:
Tráfico de interfaz de bucle invertido Las dos líneas que hacen referencia a [Link] permiten que la computadora
comunicarse consigo mismo a través de la interfaz loopback ( lo ). Las referencias a [Link] y
los parámetros -d y -s asociados son posiblemente un poco paranoicos; cualquier cosa que venga sobre el
lo interfaz debe provenir de esta dirección.
Consultas DNS La mayoría de los sistemas dependen de un servidor DNS para traducir los nombres de host a direcciones IP.
Para mantener este sistema funcionando, debe habilitar el acceso ay desde servidores DNS remotos,
que se ejecutan en el puerto 53 de UDP. Las reglas de DNS del Listado 7.5 son en realidad bastante permisivas,
porque permiten que pase el tráfico hacia o desde cualquier servidor DNS. En teoría, un malhechor podría
ejecute algo que no sea un servidor DNS en el puerto UDP 53 para usar esta regla para omitir su
seguridad. En la práctica, sin embargo, es poco probable que tal abuso funcione, porque
requieren algo que no sea DNS en el sistema local para utilizar la configuración externa
cliente o servidor. Si lo desea, puede agregar restricciones de dirección IP a estas líneas para mejorar
la seguridad.
Tráfico de clientes Las siguientes dos llamadas a iptables crean un amplio conjunto de condiciones de aceptación.
Los clientes de red generalmente usan puertos TCP altos, aquellos numerados entre 1024 y 65535.
Estas reglas, por lo tanto, abren esos puertos para acceder en ambas direcciones pero con un giro: Estos
reglas utilizan inspección de paquetes para asegurar que NUEVOS paquetes sólo se permiten en saliente
conexiones. La omisión del estado NUEVO de la cadena INPUT significa que un servidor se ejecuta
en un puerto alto (como lo intentaría un usuario normal en un intento de sortear los
seguridad) no podrá aceptar conexiones. Ambas reglas también omiten el estado INVÁLIDO ,
que puede reducir la posibilidad de que un malhechor intercepte y "secuestra" un
conexión.
Tráfico del servidor SSH local Las dos últimas llamadas a iptables abren un agujero en el firewall
para permitir que las computadoras locales hagan conexiones al servidor SSH. Este servidor se ejecuta en
puerto 22, por lo que el tráfico hacia y desde ese puerto y con origen o destino en el local
( [Link]/24 ) se acepta la red. Al igual que con las reglas de tráfico del cliente, estas reglas emplean
inspección de estado como precaución adicional. Los paquetes INVALID se rechazan en ambas direcciones,
y los paquetes NUEVOS se aceptan solo en los paquetes de entrada.
Configurar un enrutador
329

Página 372
330
Capítulo 7 ■
Configuración de red avanzada
Muchos scripts de firewall definen variables que contienen la dirección IP de la máquina host y la
dirección para la red local, y luego se refieren a estas variables, en lugar de usarlas
directamente, como lo hace el Listado 7.5. Esta práctica simplifica enormemente el cambio de secuencia de comandos si su IP
cambios de dirección o si la secuencia de comandos se ejecutará en varios equipos.
Configurar NAT
Como se describió anteriormente, NAT es una herramienta útil para proteger una red y para extender una
presupuesto limitado de direcciones IP. Una vez que haya decidido utilizar NAT, puede habilitar NAT
características usando iptables . Hecho esto, es posible que desee investigar las opciones de redirección de puertos,
que le permiten superar algunas de las limitaciones de NAT.
Habilitación de funciones NAT
La configuración de NAT es sorprendentemente simple. Un solo comando iptables habilita NAT
caracteristicas:
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Esta línea le dice al kernel que enrute el tráfico de manera que los datos pasados a través de eth0 sean
enmascarado. Es decir, eth0 normalmente debería estar conectado a Internet, mientras que eth1
(u otras interfaces) deben estar conectadas a la red privada que desea proteger.
Por supuesto, puede cambiar la especificación de red en este comando, si es necesario.
Para ser útil, NAT también requiere una configuración normal del enrutador, es decir, debe almacenar
el valor 1 en / proc / sys / net / ipv4 / ip_forward , como se describe anteriormente en "Activando
Enrutamiento. "
Redirigir puertos
Normalmente, una de las grandes ventajas de NAT es que las computadoras en Internet no pueden
iniciar contacto con computadoras protegidas por el enrutador NAT. A veces, sin embargo, esto
La ventaja puede ser un problema. Suponga, por ejemplo, que necesita acceder a solo una
computadora en su red. El enrutador NAT se convierte ahora en un obstáculo a superar.
Una solución a este problema es utilizar el enrutador NAT como sistema intermediario. por
Por ejemplo, puede usar SSH para iniciar sesión en el enrutador NAT y luego acceder a la computadora de destino
desde el enrutador NAT. Este enfoque puede ser aceptable en algunas situaciones, pero puede ser
torpe o francamente inaceptable en los demás. En tales casos, una solución conocida como puerto
el reenvío está disponible. Esta técnica permite reenviar el tráfico dirigido a un puerto.
a otro puerto, a otra computadora oa otro puerto de otra computadora. Reenvío de puertos
se logra con la regla - - jump ( - j ) iptables , usando el objetivo DNAT , como en este
ejemplo:
# iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 22 -j DNAT
--hacia el destino [Link]:22

Página 373
Para entender este comando, intente dividirlo pieza por pieza:
La directiva - t nat le dice al programa que trabaje en la tabla nat . Aunque puerto
El reenvío se puede realizar en computadoras que no funcionan como enrutadores NAT, utiliza el
tabla nat .
Aunque la mayoría de las operaciones de NAT ocurren después del enrutamiento en el kernel, el reenvío de puertos
ocurre antes del enrutamiento, que es el motivo de la opción - A PREROUTING .
Este ejemplo en particular reenvía un puerto TCP ( -p tcp ); sin embargo, el reenvío de puertos puede
realizarse en otros tipos de puertos.
Los paquetes dirigidos a eth0 ( - i eth0 ) deben reenviarse. Si esta computadora fuera la misma
uno configurado en "Habilitación de funciones NAT", esta regla redirigiría el tráfico dirigido a
la interfaz externa del enrutador NAT.
Los puertos dirigidos al puerto 22 ( - - dport 22 ), el puerto SSH, serán redirigidos.
La opción -j DNAT le dice al kernel que realice NAT en el destino ( DNAT ) en lugar de
que la dirección de origen ( SNAT ). Las operaciones de NAT se restringen de acuerdo con
las otras reglas.
La opción - - a - destino especifica dónde se envían los paquetes que cumplen con los otros criterios.
para ser redirigido, en este caso, al puerto 22 en [Link].
El efecto neto de este ejemplo es que cualquier intento de llegar al enrutador NAT por SSH desde
su dirección externa alcanzará en cambio el puerto SSH de [Link]. Puedes escribir varios
tales reglas, habilitando efectivamente tantas computadoras internas como desee para funcionar como
servidores en Internet en general. Sin embargo, una limitación importante es que todavía puede tener
solo un servidor en cada puerto externo. (Las herramientas avanzadas de equilibrio de carga pueden proporcionar
alivio de esta limitación, pero están más allá del alcance de este libro.) Si necesita acceder, digamos,
servidores SSH de dos computadoras diferentes, debe reenviar los datos para uno desde un servidor no estándar
número de puerto externo.
Configuración de enrutamiento automático
Las descripciones anteriores se basan en comandos de una sola vez o, en el caso del Listado 7.5, un
script único para implementar firewall y otras características del enrutador. Esto no siempre es conveniente,
aunque. En particular, generalmente es deseable tener una computadora configurando sus reglas de firewall
automáticamente cada vez que arranca. Esto se puede hacer implementando sus reglas de firewall como
un script de inicio, y muchas distribuciones tienen facilidades para hacer esto por defecto. También puede
desea investigar una herramienta llamada enrutada , que ayuda a automatizar el mantenimiento del enrutamiento
tablas en un enrutador de Internet completo.
Restauración automática de reglas de enrutamiento
La utilidad iptables es una herramienta flexible para crear paquetes: filtros de firewall, NAT
configuraciones y reenvío de puertos; sin embargo, los comandos individuales de iptables
haga solo una pequeña fracción de todo el trabajo que desea realizar. Por lo tanto, generalmente es mejor
cree una secuencia de comandos para configurar la configuración deseada. (Incluso puede crear dos o tres







Configurar un enrutador
331

Página 374
332
Capítulo 7 ■
Configuración de red avanzada
scripts, cada uno manejando parte del trabajo, como separar el reenvío de puertos del firewall
configuraciones.) El Listado 7.5 es un ejemplo de dicho script, aunque simple.
La forma más sencilla de ejecutar automáticamente los scripts de su firewall es llamar
ellos desde los scripts de inicio del sistema. Los nombres comunes para estos scripts de inicio locales incluyen
/etc/[Link] (utilizado por Debian, Ubuntu y distribuciones relacionadas), /etc/rc.d/[Link]
(usado por Red Hat, Fedora y distribuciones relacionadas), /etc/init.d/[Link] (usado
por OpenSUSE) y /etc/conf.d/[Link] (usado por Gentoo). Haz una llamada a tu
secuencia de comandos de firewall en la secuencia de comandos de inicio local para su distribución, y se ejecutará automáticamente
siempre que inicie la computadora.
Otro método para iniciar su script de firewall es crear un SysV o Upstart personalizado
guión para ello. Estos scripts se describen en el Capítulo 1; sin embargo, crear un nuevo script es
más difícil que modificar uno existente. La principal ventaja de hacerlo de esta manera
en lugar de llamar a su script de firewall en un script de inicio local, gana flexibilidad;
puede agregar soporte para iniciar , detener , reiniciar u otras opciones (cada una de las cuales puede
requiere su propio script de firewall de soporte), y puede hacer que el firewall se inicie solo en algunos
niveles de ejecución. También puede hacer que el firewall se inicie inmediatamente después de la red, por lo que
reducir la estrecha ventana de vulnerabilidad entre el momento en que la red se convierte
activo y el firewall comienza a proteger la computadora.
Muchas distribuciones proporcionan sus propios scripts de firewall y, por lo general, herramientas de configuración.
para ir con ellos. Por ejemplo, al escribir system - config - firewall en un sistema Fedora se inicia
su utilidad de configuración de firewall GUI. Habilitar el firewall lo activa cuando reinicia.
Herramientas como ésta pueden ser atajos convenientes ya menudo son adecuadas; sin embargo, escribiendo
sus propias reglas con iptables es casi seguro que serán más flexibles y pueden ser necesarias
si necesita utilizar funciones exóticas o crear una configuración inusual.
Las herramientas de firewall de las distribuciones y sus propios scripts de iptables personalizados pueden
conflicto entre sí. Si escribe su propio script de iptables y
descubre que una configuración de firewall completamente diferente está activa cuando
reiniciar, es probable que la herramienta de firewall de la distribución haya reemplazado su
configuración de la secuencia de comandos personalizada. Intente localizar la herramienta de su distribución y
deshabilítelo o utilícelo para crear la configuración deseada. Si tu
hacer lo último, asegúrese de deshabilitar su script original para evitar confusiones en
el futuro.
Usando enrutado
La mayor parte de la información de enrutadores de este capítulo se refiere a firewalls, NAT, puertos
reenvío y temas relacionados; sin embargo, hay otro tema de enrutamiento que debe mencionarse:
determinación de la ruta de enrutamiento. Considere la Figura 7.5, que muestra una red en un tamaño medio.
empresa. Esta red contiene cinco departamentos, cada uno con su propia subred y un enrutador
que se conecta a otras dos redes en forma de anillo. Suponga que un usuario en el
La red de I + D necesita acceder a un ordenador de la red de personal. Asumiendo igualmente

Página 375
buenas conexiones entre los enrutadores, la ruta óptima atraviesa el enrutador de marketing;
Sin embargo, si ese enrutador deja de funcionar, la conexión aún se puede realizar a través de la fábrica.
y enrutadores de soporte al cliente. Sin embargo, el problema es que es probable que el enrutador de I + D
especifique solo una ruta al personal, probablemente a través de marketing. Por tanto, cuando el marketing
el enrutador falla, también lo hará la conexión con el personal, aunque otra ruta
existe.
Atención al cliente
[Link]/16
Fabricación
[Link]/16
I+D
[Link]/16
Márketing
[Link]/16
Personal
[Link]/16
FIGURA 7.5 En una red de tamaño mediano, múltiples rutas entre dos subredes son
a menudo posible
La solución a este problema radica en un protocolo de enrutamiento, que permite a los enrutadores
comunicarse entre ellos para descubrir la ruta óptima y ajustar las tablas de enrutamiento
adecuadamente. Existen varios protocolos de enrutamiento, pero el que se describe aquí es el enrutamiento
Protocolo de información (RIP) , que detecta el número de enrutadores entre una fuente y una
destino y ajusta la tabla de enrutamiento para minimizar este número para cualquier destino dado.
RIP es un protocolo de enrutamiento bastante simple que se usa con mayor frecuencia en pequeños y medianos
Configurar un enrutador
333

Página 376
334
Capítulo 7 ■
Configuración de red avanzada
redes, como las de corporaciones y universidades; sus limitaciones técnicas lo hacen
inadecuado para su uso en Internet en su conjunto.
En Linux, RIP se implementa a través del demonio enrutado , que se puede instalar mediante un
paquete del mismo nombre. Este programa normalmente no requiere configuración; puede ser
lanzado por un script de inicio del sistema, y luego ajusta las tablas de enrutamiento de red en todos
interfaces automáticamente. Lo hace mediante el uso de transmisiones RIP y el ajuste de la computadora
tabla de enrutamiento de acuerdo con las respuestas que recibe.
Tenga en cuenta que enrutado se basa en la presencia de otros servidores RIP en los enrutadores para
que conecta. En la Figura 7.5, los cinco enrutadores representados deben estar funcionando enrutados (o
algún otro servidor RIP) para obtener el máximo beneficio de este protocolo.

Configurar SSH
En el pasado, Telnet ha sido el protocolo de inicio de sesión en modo de texto remoto preferido en Linux y
Sistemas Unix. Desafortunadamente, Telnet carece de características de seguridad. Así, en los últimos
años SSH ha ganado popularidad y, de hecho, es la herramienta de inicio de sesión remota preferida. SSH
también puede manejar tareas de transferencia de archivos similares a las del Protocolo de transferencia de archivos (FTP). por
Por estos motivos, saber cómo configurar SSH puede resultar útil. Esta tarea requiere saber
un poco sobre SSH en general y sobre el archivo de configuración SSH en Linux. Yo concluyo el
mire SSH con información sobre las implicaciones de seguridad de ejecutar el servidor.
SSH es lo suficientemente complejo que no puedo cubrir más que sus conceptos básicos en este
capítulo. Consulte la documentación de OpenSSH o un libro sobre el tema, como
como SSH, The Secure Shell: The Definitive Guide, Second Edition , por
Daniel J. Barrett, Richard Silverman y Robert G. Byrnes (O 'Reilly, 2005),
o Implementación de SSH: estrategias para optimizar el Secure Shell ,
por Himanshu Dwivedi (Wiley, 2003), para más detalles.

Conceptos básicos de SSH


Linux admite el acceso de inicio de sesión remoto a través de varios servidores diferentes, incluido Telnet,
Computación en red virtual (VNC) e incluso X. Desafortunadamente, la mayoría de estos métodos
sufren un inconveniente importante: transfieren la mayoría o todos los datos a través de la red en
forma no cifrada. Este hecho significa que cualquiera que pueda monitorear el tráfico de la red puede
arrebatar fácilmente datos confidenciales, que a menudo incluyen contraseñas. (VNC y algunos otros protocolos
cifrar las contraseñas pero no otros datos). Esta limitación afecta seriamente la utilidad
de estas herramientas de inicio de sesión remoto; después de todo, si usar un protocolo de acceso remoto significa que será
regalar datos confidenciales o comprometer todo su equipo, no es muy
protocolo útil.

Página 377
Las herramientas de acceso remoto sin cifrado son particularmente riesgosas para realizar
trabajar como root , ya sea iniciando sesión directamente como root o iniciando sesión como
un usuario normal y luego usar su , sudo u otras herramientas para adquirir root
privilegios.
SSH fue diseñado para cerrar este agujero de seguridad potencialmente importante mediante el empleo de
técnicas de cifrado para todas las partes de la conexión de red. SSH cifra la contraseña
intercambio y todas las transferencias de datos posteriores, lo que lo convierte en un protocolo mucho más seguro para
acceso.
Además del cifrado, SSH proporciona funciones de transferencia de archivos y la capacidad de tunelizar
otros protocolos de red, es decir, para permitir que los protocolos no cifrados realicen
datos a través de una conexión SSH, lo que ofrece las ventajas de cifrado SSH a otros
Protocolos. Esta función se emplea con frecuencia junto con X, lo que permite cifrar
acceso GUI remoto, pero también se puede usar con otros protocolos.
Por supuesto, las ventajas de SSH tienen un precio. El principal inconveniente de SSH
es que el cifrado y el descifrado consumen tiempo de CPU. Este hecho ralentiza SSH
conexiones en comparación con las conexiones directas y pueden degradar el sistema en general
actuación. Sin embargo, este efecto es modesto, especialmente para las conexiones en modo texto sin formato.
Si aplica un túnel a un protocolo que transfiere muchos más datos, como X, es posible que vea una mayor
caída del rendimiento al usar SSH. Incluso en este caso, la seguridad mejorada es generalmente
vale la pena el ligero costo de velocidad.
Hay varios servidores SSH disponibles para Linux, pero el más popular es el
Servidor OpenSSH ( [Link] ). Este programa fue uno de los primeros abiertos
implementaciones de origen del protocolo SSH, que fue desarrollado por el comercial
SSH Communications Security, ahora conocido como Tectia ( [Link] ), cuyo
El servidor se vende con el nombre SSH Tectia. OpenSSH, SSH Tectia y otros productos SSH
pueden interoperar entre sí, suponiendo que estén todos configurados para admitir al menos
un nivel común del protocolo SSH. OpenSSH 5.6, la última versión mientras escribo,
admite los niveles SSH 1.3, 1.5 y 2.0, siendo 2.0 el nivel preferido debido a
vulnerabilidades en las versiones anteriores.
OpenSSH se puede iniciar a través de un super servidor ( inetd o xinetd ) o un sistema
script de inicio (SysV o Upstart). Se prefiere el último método, porque el servidor puede
necesita realizar tareas de uso intensivo de la CPU al iniciar, por lo que si se inicia desde un super servidor,
OpenSSH puede ser lento para responder a las solicitudes de conexión, particularmente en sistemas con
CPU más débiles. La mayoría de las distribuciones entregan scripts de inicio de SysV con sus paquetes SSH. Si
realiza cambios en su configuración SSH, es posible que deba pasar la recarga o reiniciar
opción al script de inicio, como en /etc/init.d/sshd reload . (El Capítulo 1 cubre los scripts de inicio
con más detalle.) Independientemente de cómo se lance, el nombre binario del servidor OpenSSH es sshd ,
como nombre binario de SSH Tectia.
Configurar SSH
335

Página 378
336
Capítulo 7 ■
Configuración de red avanzada

Configuración de opciones SSH para su sistema


En su mayor parte, SSH funciona razonablemente bien cuando se instala por primera vez, por lo que es posible que no necesite
para realizar cambios en su configuración. Sin embargo, si necesita hacer cambios, estos
se manejan principalmente a través del archivo de configuración SSH principal, / etc / ssh / sshd_config . Tú
También puede editar algunos archivos adicionales para limitar el acceso al servidor SSH o para cambiar cómo SSH
gestiona el proceso de inicio de sesión.
Configuración de funciones básicas de SSH
El archivo / etc / ssh / sshd_config consta principalmente de líneas de opciones que toman lo siguiente
formar:
Valor de la opción
No confunda el archivo sshd_config con el archivo ssh_config . El primero
controla el servidor OpenSSH, mientras que este último controla el cliente SSH
programa, ssh .
Además de las líneas de configuración, el archivo sshd_config contiene comentarios, que son
denotado por marcas de almohadilla ( # ) o punto y coma ( ; ). La mayoría de los archivos de configuración de muestra incluyen un
gran
número de opciones SSH que están comentadas; estas líneas especifican los valores predeterminados, por lo que
descomentar las líneas eliminando el carácter de comentario sin cambiar de otra manera
ellos no tendrán ningún efecto. Si desea cambiar una opción, descomente la línea y cambie
eso. Los valores predeterminados de la mayoría de las opciones son adecuados para la mayoría de los sistemas. La tabla 7.9 incluye
algunos que
es posible que desee comprobar y, quizás, cambiar.
TABLA 7.9 Opciones importantes de sshd_config
Opción
Descripción
Protocolo
Esta opción especifica los niveles de protocolo OpenSSH
entiende. Los valores posibles son 1 y 2 . Puedes configurar
OpenSSH para admitir ambos protocolos separándolos por
una coma, como en 1,2 o 2,1 , que son equivalentes. Dado que
El nivel 1 del protocolo OpenSSH se ha visto comprometido, el más seguro
La configuración es establecer el Protocolo 2 . Esto limita el servidor
capacidad para comunicarse con clientes mayores.
Autenticación de contraseña
Esta opción especifica si la autenticación mediante contraseñas
esta apoyado. El valor predeterminado es sí .

Página 379
Para obtener información sobre opciones adicionales, consulte la página del manual de sshd_config . Si
realiza cambios en la configuración de SSH, recuerde reiniciarla usando el SysV del servidor
secuencia de comandos de inicio.
Opción
Descripción
PubkeyAuthentication
Esta opción, que solo es significativa para SSH nivel 2,
especifica si se admite la autenticación de clave pública.
Este tipo de autenticación es importante al configurar el
sistema para permitir inicios de sesión sin contraseña, como se describe en
“Configuración de inicios de sesión sin contraseñas. "El valor predeterminado
es si .
UsePAM
Si se establece en sí (el valor predeterminado es no ), esta opción habilita sshd
para autenticar usuarios a través del estándar Linux Pluggable
Sistema de módulos de autenticación (PAM), que puede
deseable si ha habilitado herramientas de autenticación inusuales como
como LDAP.
AllowUsers
Puede especificar un conjunto de usuarios, cuyos nombres están separados
por espacios, que pueden iniciar sesión a través de SSH con esta opción.
De forma predeterminada, cualquier usuario con una cuenta y autenticación válidas
El método puede iniciar sesión.
DenyUsers
Esta opción funciona de forma muy similar a AllowUsers pero a la inversa; usuarios
enumerados con esta opción se les niega la capacidad de iniciar sesión.
PermitRootIniciar sesión
De forma predeterminada, esta opción está establecida en sí , lo que habilita OpenSSH
para aceptar inicios de sesión directos por root . Esto es más seguro que un similar
configuración bajo Telnet, pero para un poco de seguridad adicional,
establezca este valor en no . El resultado será que cualquiera que quiera
para realizar trabajo remoto como root , primero deberá iniciar sesión como
un usuario normal, lo que significa que un intruso que ha
adquirido de alguna manera la contraseña de root también necesitará un
nombre de usuario regular y su contraseña.
Reenvío X11
Esta opción especifica si el túnel X de OpenSSH
las funciones deben estar activas. Si desea habilitar el control remoto
usuarios para ejecutar programas X a través de SSH, debe configurar esta opción para
si . Hacerlo puede degradar la seguridad de la pantalla X del cliente,
aunque, dependiendo de algunas otras opciones; Esa es la razón
para el valor predeterminado conservador de no .
AllowTcpForwarding
Cuando se establece en sí (el valor predeterminado), el servidor aceptará
protocolos, como se describe en “Tunelización de protocolos arbitrarios. "
Configurar SSH
337

Página 380
338
Capítulo 7 ■
Configuración de red avanzada
Generando claves SSH
Parte de la seguridad de SSH implica claves de cifrado . Cada sistema de servidor y cada usuario tiene un
número único, o clave, para fines de identificación. De hecho, SSH usa un sistema de seguridad
que involucra dos claves: una clave pública y una clave privada . Estas dos claves son matemáticamente
vinculados de tal manera que los datos cifrados con una clave pública particular puedan ser descifrados
solo con la clave privada correspondiente. Al establecer una conexión, cada lado envía su
clave pública a la otra. A partir de entonces, cada lado cifra los datos con la clave pública del otro lado,
asegurando que los datos puedan ser descifrados solo por el destinatario previsto. En la práctica, esto es
sólo el primer paso del proceso, pero es fundamental. Además, los clientes SSH suelen conservar
las claves públicas de los servidores con los que se han puesto en contacto. Esto les permite detectar cambios para el público.
llave. Tales cambios pueden ser signos de alteración.
La mayoría de los scripts de inicio del servidor OpenSSH incluyen código que busca archivos públicos y
claves privadas y, si no están presentes, las genera. En total, se necesitan de cuatro a seis claves:
claves públicas y privadas para dos o tres herramientas de cifrado que admite SSH. Estas claves son
normalmente se almacenan en / etc / ssh y se denominan ssh_host_rsa_key y ssh_host_dsa_key
para claves privadas, con extensiones de nombre de archivo .pub agregadas para claves públicas. Algunos sistemas agregan
ssh_host_rsa1_key y su clave pública asociada para admitir SSH nivel 1. x . Si su sistema
no tiene estas claves y no puede hacer que el servidor SSH se inicie, puede generar el
claves con el comando ssh - keygen :
# ssh-keygen -q -t rsa1 -f / etc / ssh / ssh_host_rsa1_key -C '' -N ''
# ssh-keygen -q -t rsa -f / etc / ssh / ssh_host_rsa_key -C '' -N ''
# ssh-keygen -q -t dsa -f / etc / ssh / ssh_host_dsa_key -C '' -N ''
Cada uno de estos comandos genera una clave privada (nombrada en el parámetro -f ) y una
clave pública (con el mismo nombre pero con .pub añadido).
No ejecute estos comandos ssh-keygen si los archivos de claves SSH ya existen. Sustitución del
Los archivos de trabajo harán que los clientes que ya se han conectado al servidor SSH se quejen
sobre las claves cambiadas y posiblemente se niegue a establecer una conexión.
Asegúrese de que las claves privadas estén adecuadamente protegidas; si un intruso obtiene uno
de estas claves, el intruso puede hacerse pasar por su sistema. Normalmente, estos
Los archivos deben tener permisos 0600 ( - rw - - - - - - - ) y ser propiedad de root .
Los archivos de clave pública (con extensiones de nombre de archivo .pub ) deben ser legibles por
todos los usuarios, sin embargo, normalmente, propiedad de root y permisos de 0644
( - rw - r - - r - - ) son apropiados.
Cuando configura un sistema cliente, es posible que desee considerar la creación de una caché global de
claves de host. Como ya se señaló, el programa ssh registra las claves de host para cada usuario individual. (Eso
almacena estos en el archivo ~ / .ssh / known_hosts .) Cuando configura el cliente, puede completar
el archivo global ssh_known_hosts , que normalmente se almacena en / etc o / etc / ssh . Haciéndolo
asegura que la lista de claves públicas sea tan precisa como las fuentes que utiliza para completar el

Página 381
expediente. También elimina los mensajes de confirmación cuando los usuarios se conectan a los hosts cuyas claves
que ha seleccionado para incluir en el archivo global.
¿Cómo se crea este archivo? Una forma sencilla es copiar el archivo de una cuenta de usuario
que se ha utilizado para conectarse a los servidores que desea incluir. Por ejemplo, puede escribir
cp /home/ecernan/.ssh/known_hosts / etc / ssh / ssh_known_hosts para usar el archivo de ecernan . Puedes
desea revisar manualmente este archivo antes de copiarlo. Consiste en una línea por host. Cada
La línea comienza con un nombre de host, una dirección IP o ambos, y continúa con el tipo de clave y la
llave. Puede ignorar la mayor parte de esta información, pero preste atención a los nombres de host y la IP
direcciones. Asegúrese de que la lista incluya todos los servidores SSH que su cliente probablemente quiera
uso y que no incluya servidores inadecuados o innecesarios. Puedes eliminar líneas
en su editor de texto, si es necesario. Para agregar entradas, use la cuenta cuyo archivo está copiando
para conectarse al sistema que desea agregar. Lo más probable es que ssh muestre una advertencia sobre
conectarse a un sistema desconocido. Confirma que quieres hacerlo. Una vez que hagas esto y
recargue el archivo, debería ver una entrada para el servidor.
OpenSSH 4.0 y versiones posteriores admiten el hash de nombres de host en los
archivo hosts; esto se hace configurando HashKnownHosts yes en / etc / ssh /
archivo ssh_config . Cuando esta función está habilitada, el nombre de host está encriptado
utilizando un algoritmo de cifrado unidireccional y almacenado de esta forma. La idea es
que aún podrá autenticar los servidores SSH a los que se conecte,
porque un hash del nombre de host escrito coincidirá con un hash del almacenado
nombre de host, pero si un intruso roba su archivo de hosts conocido, el intruso
no podrá determinar las identidades de las computadoras a las que ha
estado conectando. Un inconveniente de esta característica es que complica
edición manual legítima del archivo known_hosts .
Copia de archivos mediante SSH
La mayoría de los usuarios emplean el programa cliente ssh , que proporciona acceso de inicio de sesión remoto: escriba ssh
otro sistema para iniciar sesión en otro sistema usando el mismo nombre de usuario que está usando en el cliente
sistema; o agregue un nombre de usuario, como en ssh user @ othersystem , para iniciar sesión con otro nombre de usuario.
SSH también incluye un comando de copia de archivos: scp . Este comando funciona de manera muy similar a
comando cp para copiar archivos localmente; sin embargo, debe especificar el equipo de destino,
y, opcionalmente, el nombre de usuario, justo antes del nombre del archivo de destino. Por ejemplo, para copiar el archivo
masterpiece.c a la cuenta de lisa en [Link] , debe escribir
$ scp masterpiece.c lisa@[Link]:
Los dos puntos ( : ) que termina este comando es extremadamente importante; si lo omite, lo
encuentra que scp funciona como cp , y terminará con un archivo llamado lisa@[Link]
en la computadora cliente. Si desea cambiar el nombre del archivo, puede hacerlo incluyendo el nuevo
nombre siguiendo los dos puntos.
Configurar SSH
339

Página 382
340
Capítulo 7 ■
Configuración de red avanzada
Iniciar sesión sin contraseña
Si usa mucho SSH o si lo usa en herramientas automatizadas, sin duda se molestará
por la necesidad de escribir una contraseña con cada conexión. Hay una forma de evitar esto
Requisito: puede configurar el cliente SSH con claves y dar la clave pública al servidor
computadora. Con esta configuración, la computadora cliente SSH puede identificarse, posiblemente
obviando la necesidad de que escriba una contraseña.
Es conveniente configurar SSH para que funcione sin el uso de contraseñas,
pero aumenta los riesgos de seguridad. Si alguien en quien no confías alguna vez gana
acceso a su cuenta en el sistema cliente SSH, esa persona será
capaz de iniciar sesión en el sistema del servidor SSH como usted sin el beneficio de su
contraseña. Por lo tanto, debe crear una contraseña, menos el inicio de sesión solo desde un
cliente que está muy bien protegido, si es que lo está. Configurando el acceso a la raíz
cuenta de esta manera es particularmente arriesgado.
Para configurar SSH para que no requiera una contraseña, debe generar su propia clave SSH
en el sistema cliente usando ssh - keygen , copie ese archivo de clave en el servidor y agréguelo al
~ / .ssh / allowed_keys o ~ / .ssh / allowed_keys2 archivo. A partir de entonces, inicios de sesión desde
el cliente del servidor no requerirá contraseña. El ejercicio 7.1 lo guía a través de este
procedimiento con más detalle.
EJERCICIO 7.1
Configuración de inicios de sesión sin contraseñas
Este ejercicio lo guía a través del proceso de habilitar inicios de sesión SSH sin contraseñas.
Necesitará acceso a dos computadoras, un cliente SSH y un servidor SSH. (En un apuro, usted
puede usar una computadora en ambos roles, pero esto ocultará qué archivos se originan o terminan
en qué computadora). El servidor SSH ya debe estar configurado para aceptar inicios de sesión.
1. Inicie sesión en el sistema cliente SSH como el usuario que realizará el acceso remoto.
2. Escriba el siguiente comando para generar una clave SSH versión 2:
$ ssh-keygen -q -t rsa -f ~ / .ssh / id_rsa -C '' -N ''
3. El paso 2 genera dos archivos: id_rsa e id_rsa.pub . Transfiera el segundo de estos archivos a
la computadora del servidor SSH de cualquier manera que sea conveniente, a través de una unidad flash USB, utilizando
scp , o por cualquier otro medio. Copie el archivo con un nombre temporal, como [Link] ,
para asegurarse de no sobrescribir accidentalmente un archivo con el mismo nombre en el servidor.
4. Inicie sesión en el sistema del servidor SSH. Si usa SSH, deberá ingresar su contraseña.

Página 383
5. Agregue el contenido del archivo que acaba de transferir al final de ~ / .ssh /
archivo autorizado_keys . (Este archivo a veces se llama ~ / .ssh / allowed_keys2 , por lo que
debe verificar para ver cuál está presente. Si ninguno está presente, es posible que deba
experimento.) Escribir cat ~ / [Link]>> ~ / .ssh / allowed_keys debería hacer este trabajo, si
almacenaste el archivo original como ~ / [Link] .
Si omite el parámetro - N '' en el paso 2, ssh - keygen le solicitará una frase de contraseña. Vas a
luego debe ingresar esta contraseña para iniciar sesión en el sistema remoto; esto efectivamente negocia un
frase de contraseña basada en el cliente e intercambio de claves SSH por una contraseña basada en servidor.
Si ahora cierra sesión en el sistema del servidor SSH e intenta iniciar sesión nuevamente a través de SSH desde el cliente,
no se le debe pedir una contraseña; las dos computadoras manejan la autenticación
automáticamente. Si esto no funciona, es probable que el archivo ~ / .ssh / allowed_keys necesite
otro nombre, como se describió anteriormente. También puede comprobar que el archivo incluye una línea
coincidir con el contenido del archivo de clave pública original en el cliente. Algunos clientes mayores pueden
solicitarle que especifique que usa la versión 2 del protocolo SSH incluyendo la opción - 2 :
$ ssh -2 servidor
Usando ssh - agente
Otra opción de autenticación SSH es utilizar el programa ssh-agent . Este programa
requiere una contraseña para iniciar las conexiones, por lo que es más seguro que configurar inicios de sesión
sin contraseñas; sin embargo, ssh - agent recuerda su contraseña, por lo que debe escribirla
solo una vez por sesión local. Para usar ssh - agent , siga estos pasos:
1. Siga el procedimiento para habilitar inicios de sesión sin contraseña que se describen en el Ejercicio 7.1 pero
con un cambio: omita la opción - N '' del comando ssh - keygen en el paso 2.
Se le pedirá una frase de contraseña en este paso. Esta frase de contraseña será su clave para todos
Inicios de sesión SSH gestionados a través de ssh - agent .
2. En el sistema cliente SSH, escriba ssh - agent / bin / bash . Esto lanza ssh - agent , que en
turn lanza bash . Utilizará esta sesión de bash para inicios de sesión SSH posteriores.
3. En su nuevo shell, escriba ssh - add ~ / .ssh / id_rsa . Esto agrega su clave RSA al conjunto que está
administrado por ssh - agent . En este momento, se le pedirá que escriba su frase de contraseña SSH.
A partir de este momento, siempre que utilice SSH para conectarse a un sistema remoto al que
ha proporcionado su clave pública, no necesitará escribir una contraseña. Usted tendrá , sin embargo, tienen
repetir los pasos 2 y 3 cada vez que inicie sesión en su computadora, y los beneficios se acumularán
solo para el shell lanzado en el paso 2 o cualquier shell que lance desde ese.
Si hace un uso intensivo de esta función, puede insertar ssh - agent en su inicio de sesión normal
procedimiento. Por ejemplo, puede editar / etc / passwd para que ssh - agent / bin / bash sea su
shell de inicio de sesión. Para un inicio de sesión de GUI, puede cambiar el nombre de su script de inicio de sesión de GUI normal
(por ejemplo,
cambie ~ / .xsession a ~ / .xsession - nossh ) y cree un nuevo script de inicio de sesión GUI que llame
ssh: agente con el script renombrado como parámetro. Cualquiera de las dos acciones inserta ssh - agent en el
raíz de su árbol de procesos de usuario para que cualquier llamada a SSH use ssh - agent .
Configurar SSH
341

Página 384
342
Capítulo 7 ■
Configuración de red avanzada
Uso de scripts de inicio de sesión SSH
Por lo general, una sesión de inicio de sesión en modo texto SSH ejecuta el shell configurado del usuario, que ejecuta el
scripts de inicio de sesión definidos por shell. El servidor OpenSSH también admite su propio script de inicio de sesión, sshrc
(normalmente almacenado en / etc o / etc / ssh ). El servidor OpenSSH ejecuta este script usando / bin / sh ,
que normalmente es un enlace simbólico a bash , por lo que puede tratarlo como un script bash normal .
Configuración de túneles de puertos SSH
SSH tiene la capacidad de extender sus capacidades de cifrado a otros protocolos, pero al hacerlo
requiere configuración adicional. La forma en que se hace esto se conoce como tunelización . Puedes tunelizar
casi cualquier protocolo, pero el túnel X es particularmente común.
Los túneles de puerto SSH son conceptualmente similares a las configuraciones de VPN, ya que
descrito en el Capítulo 5. Las VPN cifran todo el tráfico entre dos computadoras
o redes, mientras que SSH se usa generalmente para cifrar solo un protocolo o
quizás un pequeño número de ellos. Las funciones de tunelización de SSH se pueden ampliar
para crear una verdadera VPN, si está tan motivado. Muchos sitios, incluidos
[Link] , describe formas de hacer esto.
Tunelización de protocolos arbitrarios
La figura 7.6 ilustra la idea básica detrás de un túnel SSH. La computadora del servidor ejecuta dos
programas de servidor: un servidor para el protocolo tunelizado (la Figura 7.6 usa Internet Mail
Protocolo de acceso [IMAP] como ejemplo) y un servidor SSH. La computadora cliente también se ejecuta
dos clientes: uno para el protocolo tunelizado y otro para SSH. El cliente SSH también escucha
conexiones para el protocolo tunelizado; es efectivamente tanto un cliente como un servidor. Cuando el
El cliente SSH recibe una conexión del cliente del protocolo tunelizado, el resultado es que
la conexión del protocolo tunelizado está encriptada usando SSH, tunelizada al servidor SSH,
y luego dirigido al servidor de destino. Por lo tanto, los datos pasan a través de la red encriptados.
formulario, incluso si el protocolo de destino no admite el cifrado.
Cliente IMAP
Cliente SSH
Servidor IMAP
Servidor SSH
Cliente IMAP para
Cliente SSH
(Servidor proxy IMAP)
Conexión SSH
(túnel IMAP)
Servidor SSH
(Cliente proxy IMAP)
al servidor IMAP
FIGURA 7.6 Un túnel SSH extiende los beneficios del cifrado SSH a otros protocolos

Página 385
Por supuesto, todo esto requiere una configuración especial. La configuración predeterminada en el
el servidor habilita la tunelización; pero para estar seguro, verifique el archivo / etc / ssh / sshd_config en el servidor
para la siguiente opción:
AllowTcpForwarding no
Si esta línea está presente, cambie no por sí . Si no está presente o si ya está configurado en sí ,
No debería ser necesario cambiar la configuración de su servidor SSH.
En el lado del cliente, debe establecer una conexión SSH especial a la computadora servidor.
Lo hace con el programa cliente ssh normal , pero debe pasarle varios parámetros.
Un ejemplo ayudará a ilustrar este uso de ssh :
# ssh -N -f -L 142: [Link]: 143 benf@[Link]
Las opciones - N y - f le dicen a ssh que no ejecute un comando remoto y que lo ejecute en el
background después de pedir una contraseña, respectivamente. Estas opciones son necesarias para crear
un túnel. El - L opción especifica el puerto local en el cual escuchar, el equipo remoto para
cuál conectar, y el puerto en la computadora remota al cual conectarse. Este ejemplo
escucha en el puerto local 142 y se conecta al puerto 143 en [Link] . (Es probable que
use el mismo número de puerto en ambos extremos; Cambié el número de puerto local en este ejemplo a
distinguir más claramente entre los números de puerto local y remoto.) El parámetro final
( benf@[Link] en este ejemplo) es el nombre de usuario remoto y la computadora a la que
el túnel va. Tenga en cuenta que esta computadora no necesita ser la misma que el sistema de destino
especificación de la vía - L .
Si desea que SSH en el sistema cliente escuche un puerto privilegiado (es decir,
uno numerado por debajo de 1024), debe ejecutar el programa ssh como root ,
como se muestra en el ejemplo anterior. Si escucha un puerto no privilegiado
aceptable, puede ejecutar el cliente ssh como un usuario normal.
Con el túnel establecido, puede usar el programa cliente para conectarse al puerto local
especificado por el primer número en el - L parámetro (puerto 142 en el ejemplo anterior).
Por ejemplo, este ejemplo está destinado a reenviar el tráfico IMAP, por lo que debe configurar un correo
lector en el cliente para recuperar el correo electrónico IMAP del puerto 142 en localhost . Cuando el
lector de correo electrónico hace esto, SSH activa y reenvía el tráfico al servidor SSH, que luego
pasa los datos al puerto local 143, que presumiblemente está ejecutando el IMAP real
servidor. Todo esto está oculto al programa de lectura de correo electrónico; en lo que a ella respecta, es
recuperar correo electrónico de un servidor IMAP local.
Túnel X
Debido a que un servidor X se ejecuta en la computadora en la que se encuentra el usuario en lugar de en un
computadora, la tunelización X funciona de manera diferente a la tunelización de otros protocolos. Al túnel X, el
El servidor SSH tiene que pretender ser un servidor X para el beneficio de sus programas basados en X.
El servidor SSH puede reenviar los datos X que recibe al cliente SSH, que es
Configurar SSH
343

Página 386
344
Capítulo 7 ■
Configuración de red avanzada
presumiblemente ejecutándose en la misma computadora que el servidor X del usuario. (De hecho, sin embargo, es
posible retransmitir X a través de un número arbitrario de conexiones SSH).
Esta configuración es mucho más sencilla de administrar que la tunelización de la mayoría de los otros protocolos.
En términos de configuración, debe asegurarse de que el servidor 's / etc ssh / sshd_config / archivo
incluye la siguiente línea:
X11Forwarding sí
Si esta línea dice no en lugar de sí , cámbiela por sí .
En el lado del cliente, el archivo / etc / ssh / ssh_config debe tener el siguiente conjunto de opciones:
AdelanteX11 sí
Sin embargo, esta característica es menos crítica; puede ser anulado caso por caso por
usando las opciones - X o - x para ssh para habilitar o deshabilitar, respectivamente, el túnel X. Establecer el
predeterminado en el archivo de configuración del cliente global es simplemente una conveniencia.
Con estas opciones configuradas o con el reenvío habilitado en el servidor y - X usado en el
cliente, los usuarios podrán ejecutar programas basados en X alojados en la computadora servidor SSH
desde la computadora cliente SSH, al igual que lo harían con los programas locales.
SSH puede comprimir datos, lo que puede mejorar el rendimiento de tunelizados
sesiones. En el lado del cliente, la compresión se habilita agregando una opción - C
al comando ssh . Agregar compresión a la mezcla puede mejorar enormemente
rendimiento al tunelizar X u otros protocolos de datos pesados. He encontrado
mejoras de velocidad del orden de 7x cuando se usa - C con gráficos -
pesadas aplicaciones X canalizadas a través de SSH a través de Internet. El exacto
La cantidad de beneficio varía con la velocidad de la conexión de red, la
naturaleza de los datos que se transfieren, las velocidades de CPU de ambos sistemas, y
la carga de la CPU en ambos sistemas.

Consideraciones de seguridad SSH


SSH está destinado a resolver problemas de seguridad en lugar de crearlos. De hecho, en general
el uso de SSH es superior al uso de Telnet para inicios de sesión remotos, y SSH también puede hacerse cargo
Funciones similares a FTP y túnel de otros protocolos. Por lo tanto, SSH es una gran ventaja de seguridad en comparación
al uso de herramientas menos seguras.
Sin embargo, como todos los servidores, SSH puede ser un problema de seguridad si se ejecuta innecesariamente
o de forma inapropiada. Idealmente, debe configurar SSH para aceptar solo el nivel de protocolo 2
conexiones y rechazar los inicios de sesión directos de root . Si el reenvío X es innecesario, debe
desactivar esta función. Si es posible, utilice TCP Wrappers o un firewall para limitar las máquinas que
puede contactar a un servidor SSH. Como ocurre con todos los servidores, debe mantener SSH actualizado; hay
siempre existe la posibilidad de que un error cause problemas.

Página 387
Debe considerar si realmente necesita un servidor de inicio de sesión remoto en modo texto. Tal
servidor puede ser una gran comodidad, a menudo lo suficiente como para justificar el modesto riesgo que implica. por
Sin embargo, sistemas de seguridad extremadamente altos, utilizando la computadora exclusivamente desde la consola.
puede ser un enfoque apropiado para la seguridad.
Un problema de seguridad inusual con SSH son sus claves. Como se señaló anteriormente, los archivos de clave privada
son extremadamente sensibles y deben protegerse de miradas indiscretas. Recuerde proteger el
copias de seguridad de estos archivos, no deje una cinta de copia de seguridad del sistema tirada donde pueda
ser robado fácilmente.

Resumen
Una de las mayores fortalezas de Linux está en sus excelentes herramientas para redes. Este capítulo
introdujo varias de estas herramientas, comenzando con el servidor DHCP de ISC, que
se utiliza para configurar los ajustes de red básicos de otras computadoras. Aunque configurar este servidor
requiere un poco de esfuerzo, hacerlo puede ahorrar mucho más esfuerzo en la configuración de una amplia gama de Linux
y computadoras que no son Linux en su red.
Linux también puede funcionar como un servidor de inicio de sesión de red utilizando LDAP u otros
herramientas. Aunque una descripción completa de la configuración LDAP está más allá del alcance de este
capítulo, se describieron varias herramientas de mantenimiento de cuenta LDAP, que le proporcionan
el conocimiento para agregar, eliminar y modificar cuentas de usuario en un servidor LDAP. Tales herramientas
puede complementar, hasta el punto de reemplazar en su mayoría, la cuenta estándar de Linux
herramientas de mantenimiento.
El enrutamiento es otra área en la que Linux sobresale; puede configurar Linux como un enrutador para
una red pequeña o grande. Cuando haga esto, es posible que desee configurar las reglas del firewall
para proteger tanto la computadora del enrutador como las computadoras en uno o ambos lados del
conexión. Estas reglas se implementan con la utilidad iptables , que ajusta
cómo Linux enruta los paquetes. Otra configuración de enrutamiento es la de un enrutador NAT, que
se emplea comúnmente para conectar una pequeña red a Internet en su conjunto, manteniendo
esa red oculta a miradas indiscretas en Internet como medida de seguridad. Finalmente, el
El protocolo de enrutamiento RIP, implementado en Linux por el demonio enrutado, le ayuda a mantener su
tablas de enrutamiento actualizadas, en caso de que su sistema sea parte de una colección moderadamente compleja de
redes.
El último tema de red diverso que se cubrió en este capítulo fue el servidor SSH,
que es el protocolo de inicio de sesión remoto preferido para la mayoría de los propósitos actuales. SSH es básicamente
un protocolo en modo texto que admite un cifrado fuerte. Varias configuraciones variantes,
como las opciones para admitir inicios de sesión sin utilizar una contraseña, pueden mejorar su utilidad. SSH
también se puede utilizar para tunelizar otros protocolos, proporcionando los beneficios de seguridad de SSH a cualquier
los protocolos lo necesitan.
Resumen
345
Página 388
346
Capítulo 7 ■
Configuración de red avanzada

Examen esencial
Proporcione una descripción general del funcionamiento de DHCP. Cuando un cliente DHCP arranca o inicia su
red, envía una transmisión a su segmento de red local buscando un servidor DHCP. Si
un servidor está presente, responde al cliente, utilizando la dirección de hardware del cliente. Los dos
Las computadoras pueden comunicarse para negociar una concesión de DHCP, que es un derecho de tiempo limitado.
para utilizar una dirección IP. Antes de que expire el contrato de arrendamiento, el cliente se comunica con el servidor para extender
el
arrendamiento. Además de la información de la dirección IP del cliente, los servidores DHCP informan a los clientes sobre
la máscara de red, puertas de enlace, servidores DNS y otras características de red comunes.
Distinga entre concesiones DHCP dinámicas y estáticas. Arrendamientos DHCP dinámicos
se asignan por orden de llegada a partir de un conjunto de direcciones IP. Clientes DHCP
asignada una dirección IP dinámica puede recibir una dirección IP diferente cada vez que inician. Estático
Los arrendamientos de DHCP, por el contrario, están reservados para computadoras particulares (identificadas mediante
una dirección de hardware o un nombre reclamado); los destinatarios de tales direcciones rara vez o
nunca verán cambiar sus direcciones IP. Estos arrendamientos a menudo se reservan para que los servidores
simplificar la resolución de nombres.
Describa dónde se implementa mejor LDAP para la administración de cuentas. Redes en las que muchos
Los usuarios que necesitan cuentas en muchas computadoras son buenos candidatos para la administración de cuentas LDAP.
LDAP puede centralizar la gestión de cuentas, lo que permite a un administrador realizar un cambio en
agregar, eliminar o modificar una cuenta en todas las computadoras de la red. Tales cambios pueden convertirse en un
pesadilla sin LDAP cuando la cantidad de computadoras crece demasiado, o incluso cuando la
la cantidad de cambios de cuenta aumenta con solo unas pocas computadoras.
Resuma los comandos importantes de administración de cuentas LDAP. El ldapadd
comando agrega una cuenta, ldapdelete elimina una cuenta, ldapsearch busca
información de la cuenta, ldapmodify modifica una cuenta existente y ldappasswd cambia
una contraseña. Los comandos ldapadd y ldapmodify operan en archivos LDIF, que
resumir la información de la cuenta en un formato estandarizado.
Explique la importancia de NAT. La traducción de direcciones de red (NAT) es una técnica que
permite que un enrutador pretenda ser la fuente de origen del tráfico de red saliente para
una red completa, "escondiendo" efectivamente esa red del mundo exterior. NAT es un
herramienta de seguridad útil, ya que hace que sea muy difícil de detectar para un extraño, y mucho menos
ataque, servidores en la red protegida. NAT también puede estirar un número limitado de
Direcciones IP, ya que la red protegida puede existir en un espacio de direcciones IP privado que es
oficialmente no forma parte de Internet.
Describe el marco conceptual detrás de iptables . Linux usa una serie de cadenas para
determinar cómo dirigir el tráfico de la red. La cadena INPUT maneja el tráfico entrante, el
La cadena de SALIDA maneja el tráfico saliente, y la cadena ADELANTE maneja el tráfico reenviado
(en un enrutador). Puede usar iptables para asociar reglas con estas cadenas que alteran la forma
Los paquetes con criterios específicos (como un número de puerto de origen o una dirección IP de destino) son
manejado; pueden bloquearse o modificarse de diversas formas.

Página 389
Resuma cómo se implementa un firewall en Linux. Los firewalls de Linux son generados por
scripts que hacen llamadas repetidas a iptables . La mayoría de estas llamadas configuran una nueva regla para
coincidir con un tipo de paquete y modificar la forma en que el sistema lo maneja. (Algunas llamadas pueden borrar una cadena
de todas las reglas, establezca una política predeterminada o actúe sobre más de una regla).
se ejecuta el script, implementa una nueva configuración de firewall, que es retenida por el
kernel y se utiliza hasta que se modifique de nuevo o se reinicie el sistema.
Explique el propósito de SSH. Secure Shell (SSH) es fundamentalmente un control remoto en modo texto
Protocolo de inicio de sesión que proporciona cifrado de todos los datos transferidos. El cifrado SSH lo convierte en
el protocolo de inicio de sesión remoto preferido en Linux. SSH también ofrece tunelización de otros protocolos,
lo que puede convertir un protocolo no cifrado inseguro en uno cifrado mucho más seguro.
Describe los archivos de configuración de SSH. El archivo de configuración del servidor SSH principal es / etc / ssh /
sshd_config . Este archivo no debe confundirse con el archivo de configuración del cliente SSH, / etc /
ssh / ssh_config . Ambos archivos constan de líneas con pares de opción / valor que configuran las opciones SSH.
Explique las claves de cifrado de SSH. Un servidor SSH utiliza una serie de claves de cifrado, que
vienen en parejas públicas y privadas. Las claves privadas son secretas y deben almacenarse con
acceso en el servidor en / etc / ssh . Las claves públicas tienen el mismo nombre de archivo que su coincidencia
claves privadas, pero con la extensión de nombre de archivo .pub . Estas claves deben ser legibles para cualquier SSH
usuario, y se distribuyen a los sistemas cliente SSH. Se pueden generar pares de claves similares mediante
los usuarios pueden habilitar inicios de sesión sin contraseñas o inicios de sesión basados en sesión utilizando ssh - agent .
Resuma los niveles del protocolo SSH. Niveles SSH 1.3 y 1.5 (conocidos colectivamente como SSH 1. x
o SSH 1) tienen problemas de seguridad conocidos y deben evitarse siempre que sea posible. los
la versión actual, SSH 2.0 o SSH 2, es mucho más segura. Si su servidor SSH se comunica
solo con clientes razonablemente modernos, puede configurar la opción Protocolo 2 en / etc / ssh / sshd_
config para restringir el soporte a clientes SSH nivel 2, asegurando que el inseguro SSH 1 no sea
utilizado en su sistema.
Examen esencial
347

Página 390
348
Capítulo 7 ■
Configuración de red avanzada

Preguntas de revisión
1. ¿Cuál es el problema con la siguiente declaración de subred en el servidor DHCP de ISC?
/etc/[Link] archivo?
subred [Link] {
rango [Link] [Link];
}
A. Carece de datos de nombres de dominio.
B. Carece de datos de máscara de red.
C. Carece de una dirección IP de servidor DNS.
D. Carece de una dirección IP de puerta de enlace.
2. ¿Dónde almacena el servidor DHCP de ISC los datos de los arrendamientos que ha emitido?
A. [Link], normalmente en / var / dhcp
B. [Link], normalmente en / var / log / dhcp
C. [Link], normalmente en / var / dhcp / leases
D. [Link], normalmente en / var / lib / dhcp
3. Establece una opción global de tiempo máximo de arrendamiento 3600 en el archivo de configuración DHCP. Cuál es el
efecto de esta configuración?
R. Los clientes de DHCP recibirán arrendamientos de como máximo 1 hora (3600 segundos), incluso si solicitan
arrendamientos más largos.
B. Los clientes de DHCP recibirán contratos de arrendamiento de 1 hora (3600 segundos) a menos que soliciten más tiempo o
arrendamientos más cortos.
[Link] clientes DHCP recibirán contratos de arrendamiento de al menos 1 hora (3600 segundos), incluso si solicitan
arrendamientos más cortos.
D. Los clientes DHCP recibirán concesiones como máximo 1 hora (3600 segundos) a menos que estén configurados.
ured para direcciones IP fijas.
4. ¿ En cuál de las siguientes computadoras podría ejecutar de manera más plausible el programa dhcrelay?
(Seleccione dos.)
A. Una computadora que ejecuta dhcpd en una subred que se conecta a Internet a través de un enrutador NAT
B. Una computadora en una red completamente aislada que no tiene enrutador ni servidor DHCP
de su propia
[Link] enrutador entre dos subredes, una de las cuales tiene un servidor DHCP y la otra
no
D. Una computadora en una subred sin servidor DHCP propio, con una configuración de servidor DHCP
ured para servir la primera subred en una subred cercana

Página 391
5. ¿Cuál es el problema con la siguiente entrada en un archivo LDIF diseñado para usarse en la administración de Linux?
cuentas?
uid: tsparker
R. Esta entrada debe usar el nombre del atributo de nombre de usuario, no uid.
B. El nombre del atributo uid requiere un nombre distinguido completo.
C. El atributo uid requiere un valor numérico de ID de usuario (UID) de Linux.
D. No hay nada de malo en esta entrada.
6. Ha preparado un archivo LDIF ([Link]) con varias definiciones de usuario nuevas y
desea agregar estos nuevos usuarios a su directorio de cuenta basado en LDAP para [Link], utilizando
la cuenta administrativa llamada gerente. ¿Cómo puede hacerlo, asumiendo que su sistema está
configurado correctamente para permitir tales modificaciones?
A. ldapadd - D manager@[Link] [Link]
B. ldapadd cn = administrador, dc = ejemplo, dc = com [Link]
C. ldapadd - D manager@[Link] - W - f [Link]
D. ldapadd - D cn = gerente, dc = ejemplo, dc = com - W - f [Link]
7.
Desea eliminar el shell Z (zsh) de una computadora cuyos usuarios están todos definidos a través de un
Servidor LDAP. Sin embargo, antes de hacerlo, debe verificar que ninguno de estos usuarios confíe en
zsh como shell predeterminado. ¿Cómo puede comprobar si algún usuario lo hace?
A. ldapmodify - - buscar loginShell = / bin / zsh
B. ldappasswd - - buscar loginShell = / bin / zsh
C. ldap - - buscar loginShell = / bin / zsh
D. ldapsearch loginShell = / bin / zsh
8. ¿Cuál es el método predeterminado para cifrar contraseñas en LDAP?
A. Texto sin cifrar
B. MD5
C. SSHA
D. CRIPTA
9. ¿Cuál de las siguientes es una desventaja de usar NAT para conectar las redes de una pequeña empresa?
red a Internet?
A. La empresa puede adquirir un bloque más pequeño de direcciones IP accesibles por Internet que las
ser necesario sin NAT.
B. Un servidor web defectuoso que se deja accidentalmente ejecutándose en la red interna será
protegido de los malhechores en Internet.
C. Será difícil ejecutar servidores para compartir archivos e impresoras en la red interna
uso por los clientes en la red interna.
D. Se requerirá una configuración adicional si los servidores de la red interna deben
accesible a Internet.
Preguntas de revisión
349

Página 392
350
Capítulo 7 ■
Configuración de red avanzada
10. Desea configurar un enrutador para una red pequeña de modo que los sitios externos no puedan conectarse
el puerto SSH en las computadoras internas, pero no desea tal restricción para el enrutador en sí.
¿Cuál es la mejor cadena para modificar para lograr este objetivo?
A. ENTRADA
B. SALIDA
C. ADELANTE
D. ACEPTAR
11. ¿Cuál de las siguientes afirmaciones se aplica a la política DROP para iptables?
R. Responde como si la computadora estuviera disponible pero no ejecutara ningún software en el puerto de destino.
B. Ignora los paquetes, proporcionando la ilusión de un error de red entre el remitente y
recipiente.
C. Se puede usar solo en puertos abiertos por servidores, no por clientes.
D. Puede aplicarse como política predeterminada, pero no puerto por puerto.
12. Un script de firewall incluye las siguientes dos líneas. Cual es su proposito?
iptables -A SALIDA -d [Link] -o lo -j ACEPTAR
iptables -A ENTRADA -s [Link] -i lo -j ACEPTAR
A. Para establecer la política predeterminada para todas las cadenas en ACEPTAR; las reglas posteriores utilizarán DROP o
RECHAZAR
B. Para habilitar el enrutamiento del tráfico localhost en una computadora configurada como enrutador
C. Para habilitar las comunicaciones a través de la interfaz localhost para programas locales
D. Para establecer la política predeterminada para las cadenas de SALIDA y ENTRADA en ACEPTAR, dejando el
Cadena ADELANTE no afectada
13. En términos generales, ¿en qué se diferenciará el uso de iptables en un enrutador con funciones de firewall de
su uso en una estación de trabajo?
A. Las reglas de iptables de un enrutador enfatizarán la cadena FORWARD; el testamento de una estación de trabajo
enfatizar las cadenas INPUT y OUTPUT.
B. Las reglas de iptables de un enrutador probablemente usarán una política DROP predeterminada, mientras que una
La estación probablemente utilizará una política ACCEPT predeterminada.
[Link] reglas de iptables de un enrutador serán activadas por un script, mientras que las de una estación de trabajo serán
configurado usando una herramienta GUI.
D. Las reglas de iptables de un enrutador enfatizarán los números de puerto privilegiados, mientras que una estación de trabajo
Las opciones enfatizarán los números de puerto sin privilegios.

Página 393
14. ¿Qué programa puede utilizar para generar una clave que permitirá iniciar sesión en servidores SSH remotos?
sin usar una contraseña?
A. llaves_autorizadas
B. ssh - keygen
C. sshpasswd
D. id_rsa
15. ¿ A quién debe distribuir la clave privada SSH principal de su servidor?
A. Solo a los servidores con los que desea comunicarse
B. Solo para servidores que ya han proporcionado sus propias claves públicas
C. A cualquier persona que pueda proporcionar una clave pública SSH coincidente
D. Ninguno de los anteriores
16. ¿Cuál de los siguientes comandos crea un inicio de sesión cifrado en una computadora remota?
(neptuno), permitiendo definitivamente el uso de programas basados en X que se ejecutan en la computadora remota y
utilizando el servidor X de la computadora local? (Suponga que Neptune está configurado para habilitar X
reenvío.)
A. ssh - XC neptuno
B. ssh neptuno
C. ssh - - ForwardX11 neptune
D. ssh - x neptuno
17. ¿Cuáles de los siguientes servidores podría considerar retirar después de activar un SSH?
¿servidor? (Seleccione dos.)
A. SMTP
B. Telnet
C. FTP
D. NFS
18. Encuentra que el archivo ssh_host_dsa_key en / etc / ssh tiene permisos 0666 (- rw - rw - rw -).
Su servidor SSH ha estado en funcionamiento durante varios meses. ¿Debería preocuparse?
A. si
B. No
C.Sólo si el archivo ssh_host_dsa_key.pub también es legible por todo el mundo
D. Solo si está iniciando SSH desde un super servidor
Preguntas de revisión
351

Página 394
352
Capítulo 7 ■
Configuración de red avanzada
19. Para obtener la mejor seguridad del servidor SSH, ¿cómo debe configurar la opción Protocolo en / etc / ssh / sshd_?
config?
A. Protocolo 1
B. Protocolo 2
C. Protocolo 1,2
D. Protocolo 2,1
20. ¿Por qué no es aconsejable permitir que root inicie sesión directamente mediante SSH?
A. Alguien con la contraseña de root pero ninguna otra contraseña puede entrar en el
computadora.
B. La contraseña de root nunca debe enviarse a través de una conexión de red; permitiendo la raíz
Los inicios de sesión de esta manera están invitando al desastre.
C. SSH almacena toda la información de inicio de sesión, incluidas las contraseñas, en un archivo de lectura pública.
D. Cuando se inicia sesión con SSH, los comandos de root se pueden interceptar y duplicar fácilmente
por elementos indeseables.

Página 395
Respuestas a las preguntas de repaso
1. B. Una declaración de subred comienza con esa palabra clave seguida de un número de subred, el
palabra clave netmask y un valor de máscara de red. Por tanto, la opción B es correcta; la máscara de red
los datos deben estar presentes. Las opciones A, C y D son todas observaciones correctas pero incorrectas
respuestas porque todas estas piezas de información pueden declararse en otro lugar y, de hecho, no
estrictamente necesario.
2. D. La información de arrendamiento de DHCP se almacena en un archivo llamado [Link]. Este archivo es a menudo, pero
no siempre, almacenado en / var / lib / dhcp, haciendo que la opción D sea correcta. Aunque las ubicaciones
especificadas en las opciones A, B y D son teóricamente plausibles, todas especifican incorrectamente
nombres de archivo y por lo tanto son incorrectos.
3. A. La opción A describe correctamente el significado de esta opción. (Tenga en cuenta, sin embargo, que este
La opción se ignora para los clientes que utilizan BOOTP en lugar de DHCP.) La opción B describe
el efecto de la opción de tiempo de arrendamiento predeterminado, y la opción C describe el efecto de la
opción de tiempo mínimo de arrendamiento. La opción D es incorrecta porque una configuración de dirección IP fija
no anula automáticamente las opciones de tiempo de arrendamiento. (Un bloque de dirección IP fija podría
Sin embargo, incluye su propia opción de tiempo máximo de arrendamiento para anular la opción global).
4. Respuestas: C, D. El programa dhcrelay actúa como servidor proxy para un servidor DHCP ubicado
en otra parte; dhcrelay responde a los clientes DHCP, pero transmite las solicitudes del cliente a otro
servidor DHCP de la subred y luego entrega las respuestas del servidor al cliente. los
El programa dhcrelay no necesita estar en la misma subred que el servidor DHCP, pero si
es (como, por ejemplo, en el caso de un enrutador), funcionará bien. Por tanto, las opciones C y D son
Ambas ubicaciones válidas para una computadora que ejecute dhcrelay. La opción A es incorrecta porque la
la computadora especificada ejecuta un servidor DHCP completo (dhcpd), por lo que es probable que dhcrelay no haga nada
bueno; incluso si se usara como respaldo o para manejar algunas computadoras en un exótico
configuración, las únicas computadoras a las que podría retransmitir el tráfico están aisladas del objetivo
red mediante un enrutador NAT. Por lo tanto, esta configuración sería extraña en el mejor de los casos y peligrosa.
lo peor. La opción B es incorrecta porque dhcrelay no tendría forma de comunicarse con un DHCP
servidor. Si la red de la opción B funciona, presumiblemente está configurada mediante IP estática
direcciones en lugar de DHCP, lo que hace que dhcrelay sea inútil.
5. D. El nombre del atributo uid LDIF identifica un nombre de usuario de Linux, por lo que puede tomar el valor de
cualquier nombre de usuario legal de Linux. Como tsparker es un nombre de usuario legal de Linux, no hay nada de malo
con esta entrada, haciendo que la opción D sea correcta. No hay un nombre de atributo de nombre de usuario en Linux
archivo LDIF de gestión de cuentas, por lo que la opción A es incorrecta. Porque el atributo uid es un
Nombre de usuario de Linux, no un nombre distinguido (DN), la opción B es incorrecta. Confusamente, el
El nombre del atributo uid se refiere a un nombre de usuario de Linux; Los valores de UID de Linux se especifican con el
uidNumber nombre del atributo, lo que hace que la opción C sea incorrecta.
6. D. La opción D presenta la sintaxis correcta para realizar la tarea especificada en
la pregunta. Las opciones A y C expresan incorrectamente el nombre distinguido (DN)
para la cuenta utilizada para realizar tareas administrativas, y las opciones A y B omiten
las opciones - W (solicitud de autenticación) y - f (para pasar un nombre de archivo).
Respuestas a las preguntas de repaso
353

Página 396
354
Capítulo 7 ■
Configuración de red avanzada
7.
D. La utilidad ldapsearch busca en un directorio LDAP registros que coincidan con el especificado
campo. La opción D presenta la sintaxis correcta para realizar una búsqueda de cuentas usando
/ bin / zsh como shell predeterminado. Los comandos ldapmodify y ldappasswd se utilizan para
enviar un archivo LDIF modificado y cambiar una contraseña, respectivamente; ninguno se usa para buscar
registros. No existe una utilidad estándar llamada ldap.
8. C. De forma predeterminada, LDAP utiliza SSHA para el cifrado de contraseñas. Texto sin cifrar, MD5 y CRYPT
son todas alternativas válidas, pero ninguna de ellas es la predeterminada. (El texto en claro también es muy desaconsejable,
ya que esto se refiere a ningún cifrado).
9. D. Por su naturaleza, NAT bloquea el acceso a los servidores de la red protegida. Esta característica puede
ser superado por la redirección de puertos, pero hacerlo requiere un esfuerzo de configuración adicional; así,
la opción D es correcta. Las opciones A y B describen características de NAT, pero estas características son
ventajas, no desventajas, de NAT. La opción C es incorrecta porque NAT no afecta
la capacidad de ejecutar servidores en una red interna para que los utilicen los clientes de esa misma red;
sólo se ve afectado el acceso externo a esos servidores.
10. C. La cadena FORWARD controla los paquetes que un enrutador reenvía entre redes, que es
el tipo de acción que describe la pregunta; por tanto, la opción C es correcta. La ENTRADA y SALIDA
Las cadenas afectan a los paquetes aceptados o enviados por la computadora, respectivamente, modificando
esas cadenas afectarían al enrutador mismo. (Puede agregar reglas basadas en direcciones IP o
otros criterios para lograr los objetivos establecidos utilizando estas cadenas, pero eso agrega complejidad,
haciendo que estas cadenas sean opciones menos deseables en el mejor de los casos). No hay una cadena ACCEPT estándar,
aunque esta es una acción común, lo que significa que se debe pasar un paquete.
11. B. La política DROP hace que la computadora responda como se describe en la opción B. Opción A
describe la política REJECT, no la política DROP. A diferencia de la opción C, se puede utilizar DROP
en cualquier puerto, ya sea que lo utilicen clientes o servidores. Al contrario de la opción D, DROP puede ser
se utiliza como política predeterminada o puerto por puerto.
12. C. Linux usa la dirección IP localhost ([Link]) para las comunicaciones locales; red -
Los programas habilitados utilizan esta dirección para las comunicaciones incluso en un sistema. Si su defecto
La política de iptables es DROP o REJECT, esta interfaz estará bloqueada, por lo que es necesario
Desbloquéelo usando líneas como las que se muestran en la pregunta, haciendo que la opción C sea correcta. los
la política predeterminada, a la que se hace referencia en las opciones A y D, se establece mediante la opción - P, como en iptables - t
filter - P FORWARD DROP, por lo que estas opciones son incorrectas. Enrutamiento del tráfico localhost
no tiene sentido lógico: el tráfico localhost es, por definición, local y, por lo tanto, no
enrutado, por lo que la opción B es incorrecta.
13. A. La cadena FORWARD se utiliza para reenviar tráfico, como en un enrutador, por lo que el firewall de un enrutador
incluirá reglas que afectan la forma en que el enrutador reenvía el tráfico de red. Una estación de trabajo
normalmente no remite el tráfico, por lo que habrá pocas o ninguna regla que afecte al FORWARD
cadena en una estación de trabajo, haciendo que la opción A sea correcta. A diferencia de la opción B, ambas estaciones de trabajo
y los enrutadores pueden usar la política DROP o la política ACCEPT (o la política REJECT) como
por defecto, aunque ACCEPT es la política menos preferida. Aunque tanto los scripts como la GUI
Se pueden utilizar herramientas para crear un cortafuegos, no hay un vínculo necesario entre estas herramientas y el
tipo de computadora, como sugiere la opción C, por lo que esa opción es incorrecta. La opción D es incorrecta
porque, aunque la distinción entre números de puerto privilegiados y no privilegiados es
uno importante, solo los números de puerto del servidor (que son, en general, privilegiados) son
fijo, por lo que incluso las reglas de iptables de una estación de trabajo enfatizarán estos números de puerto.

Página 397
14. B. La utilidad ssh_keygen genera claves SSH, incluidas claves privadas para personas,
que se pueden utilizar en lugar de contraseñas para inicios de sesión remotos en servidores SSH. (Estas claves deben
ser transferido y agregado a los archivos apropiados en el servidor; usar ssh - keygen solo no es
lo suficiente para lograr el objetivo.) Las claves_autorizadas de la opción A es un archivo en el que las claves se
almacenado en un servidor; no es un programa para generarlos. El sshpasswd de la opción C es ficticio.
Id_rsa de la opción D es el archivo en el que se almacenan las claves privadas en el cliente; no es un
programa para generarlos.
15. D. Las claves privadas SSH son extremadamente sensibles y normalmente no deben distribuirse a
cualquiera, ya que la posesión de la clave privada de otro sistema hará que sea más fácil para un delincuente
fingir ser tú. Por tanto, la opción D es correcta. Es seguro distribuir claves públicas ampliamente, ya que
en cualquiera de las otras opciones, y de hecho SSH lo hace automáticamente; pero las claves privadas deberían
sigue siendo solo eso: privado .
16. A. La opción -X para ssh habilita el reenvío X en el lado del cliente SSH y -C habilita
compresión. Por tanto, la opción A hace lo que pide la pregunta. (No se especificó la compresión
como se requiere en la pregunta, pero tampoco estaba prohibido.) La opción B podría funcionar, pero solo si
el sistema está configurado para reenviar X conexiones de forma predeterminada; ya que la pregunta especifica
que definitivamente se requiere el reenvío X, la opción B no es correcta. La opción C es incorrecta
porque no hay opción - - ForwardX11 para ssh; sin embargo, ForwardX11 es una opción válida en
el archivo de configuración de ssh, / etc / ssh_config. Una minúscula - x, como en la opción D, desactiva X
reenvío, por lo que esta opción es incorrecta.
17. Respuestas: B, C. SSH es más directamente un reemplazo de Telnet, pero SSH también incluye
Funciones de transferencia de archivos que le permiten reemplazar FTP en muchas situaciones. SSH no es un directo
reemplazo para SMTP o NFS.
18. A. El archivo ssh_host_dsa_key contiene una de las tres claves privadas críticas para SSH. El hecho de que
esta clave es legible (¡y escribible!) para el mundo entero es inquietante. En principio, un malhechor
quien ha adquirido este archivo podría redirigir el tráfico y hacerse pasar por su sistema,
engañar a los usuarios para que entreguen contraseñas y otros datos confidenciales.
19. B. El nivel 2 del protocolo SSH es más seguro que el nivel 1 del protocolo; así, la opción B (especificando
aceptación del nivel 2 solamente) es el enfoque más seguro. La opción A es el enfoque menos seguro
porque impide el uso del nivel más seguro 2. Las opciones C y D son exactamente equivalentes en
práctica; ambos admiten ambos niveles de protocolo.
20. A. Permitir que solo los usuarios normales inicien sesión a través de SSH requiere efectivamente dos contraseñas para
cualquier mantenimiento raíz remoto, mejorando la seguridad. SSH cifra todas las conexiones, por lo que es
Es poco probable que se intercepten la contraseña o los comandos emitidos durante una sesión SSH.
(No obstante, algunos administradores prefieren no correr ni siquiera este pequeño riesgo). SSH no
almacenar contraseñas en un archivo.
Respuestas a las preguntas de repaso
355

Página 398

Página 399

Configurar archivo
Servidores
EL SIGUIENTE PROFESIONAL DE LINUX
LOS OBJETIVOS DEL INSTITUTO ESTÁN CUBIERTOS
EN ESTE CAPÍTULO:
209.1 Configuración del servidor SAMBA (peso: 4)
209.2 Configuración del servidor NFS (peso: 4)
212.2 Protección de servidores FTP (peso: 2)

Capítulo

8
Página 400
En muchas oficinas, una de las funciones principales de Linux es como servidor de archivos :
una computadora que contiene archivos que se leen, modifican y escriben
por equipos cliente. Un servidor de archivos puede ayudar a centralizar los datos
almacenamiento con fines administrativos y de respaldo, y puede facilitar la colaboración al
permitiendo a los usuarios compartir o intercambiar documentos.
Linux se adapta bien al papel de un servidor de archivos porque tiene excelentes programas de servidor
para los protocolos más comunes: Samba Suite ( [Link] ) es un poderoso
y paquete altamente configurable que administra el bloque de mensajes del servidor / Internet común
Protocolo de sistema de archivos (SMB / CIFS) utilizado en muchas redes dominadas por Windows; el
El protocolo Network File System (NFS), que es el protocolo de intercambio de archivos dominante de Unix, es
manejado por un servidor del mismo nombre; y existen varios programas de servidor Linux para manejar
el Protocolo de transferencia de archivos (FTP), que es un medio popular para compartir archivos entre plataformas,
particularmente en Internet.

Comprender la función de un servidor de archivos


En cierto sentido, muchos servidores son servidores de archivos; por ejemplo, mensajes de correo electrónico y páginas web
pueden considerarse archivos y, de hecho, se almacenan como tales en discos. Un servidor de archivos como suele
definido, sin embargo, da a los usuarios acceso a archivos como tales. Algunos protocolos de servidor de archivos, incluidos
SMB / CIFS y NFS están diseñados para proporcionar características comunes del sistema de archivos a los clientes. Esta
permite a los clientes tratar el servidor de archivos como si fuera un disco duro, montarlo y ofrecer a los usuarios
acceder a los archivos del servidor como si fueran archivos locales. (En SMB / CIFS, los directorios compartidos
de esta manera se denominan acciones ; en NFS, se conocen como exportaciones .) Este modelo para
un servidor de archivos es extremadamente poderoso, ya que simplifica la experiencia del usuario; los usuarios pueden duplicar -
haga clic en los iconos de red compartida en sus escritorios y luego haga doble clic en los iconos de archivo para iniciar
aplicaciones asociadas con los tipos de archivos, como un procesador de texto o un editor de gráficos.
SMB / CIFS se diseñó teniendo en cuenta DOS, Windows y OS / 2, por lo que admite
las características del sistema de archivos que son comunes a estos sistemas operativos. Este hecho presenta ciertos desafíos
para Samba, ya que Samba debe mapear las características del sistema de archivos al estilo de Microsoft en las
Equivalentes de Linux. Gran parte de la complejidad de Samba se deriva de la necesidad de hacer estos
mapeos. En la mayoría de los casos, esto funciona bien y los usuarios pueden ignorar felizmente que su
los archivos se almacenan en una computadora Linux. Samba también admite extensiones, implementadas en
la parte CIFS de los protocolos SMB / CIFS, que le permiten almacenar el sistema de archivos estilo Unix
metadatos para que Samba pueda actuar como servidor para clientes Unix y Linux mientras conserva su

Página 401
metadatos nativos del sistema de archivos. Dado que se originó en el mundo Unix, NFS se adapta aún mejor
actuar como servidor para clientes Unix y Linux; NFS mapea más directamente el sistema de archivos de estilo Unix
metadatos en el sistema de archivos subyacente.
SMB / CIFS se implementó originalmente sobre una pila de protocolos conocida como
Interfaz de usuario ampliada NetBIOS (NetBEUI). El kernel estándar de Linux
sin embargo, no es compatible con NetBEUI, y SMB / CIFS hoy en día generalmente se atropella
la misma pila de Protocolo de control de transmisión / Protocolo de Internet (TCP / IP)
que maneja la mayoría de los otros protocolos de red. Algunos restos de NetBEUI
permanecen en SMB / CIFS, sin embargo; por ejemplo, las computadoras que usan SMB / CIFS pueden
Opcionalmente, use un nombre NetBIOS en lugar de un nombre de host TCP / IP.
Por lo general, FTP se usa de una manera diferente; este protocolo no es compatible con todo el sistema de archivos
características que normalmente se necesitan para montar un sistema de archivos. En cambio, los servidores FTP suelen
se accede a través de programas cliente FTP, como ftp en modo texto o ncftp o la GUI gFTP.
Linux proporciona clientes FTP, como parte de los sistemas de archivos en el espacio de usuario (FUSE; http: // fuse
.[Link] ), que permite montar sitios FTP como sistemas de archivos, pero para el
En su mayor parte, FTP implica clientes dedicados en modo de usuario en lugar de los montajes del sistema de archivos que
son comunes con SMB / CIFS y NFS.
Alternativas a SMB / CIFS, NFS y FTP
En algunos casos, es posible que deba utilizar un protocolo de servidor de archivos que no sea SMB / CIFS, NFS,
y FTP. Una alternativa es el Protocolo de transferencia de hipertexto (HTTP), que es el protocolo
utilizado para la World Wide Web (WWW o Web para abreviar). Capítulo 9, “Configuración de Web y
Servidores de correo electrónico ”describe la configuración del popular servidor web Apache. A pesar de que
HTTP es un protocolo útil, está diseñado principalmente para acceso unidireccional: los usuarios recuperan Web
páginas, pero la capacidad de cargar documentos en sitios web es más limitada. HTTP también
requiere que la mayoría de las transferencias sean autónomas, incluida cualquier autenticación requerida,
mientras que SMB / CIFS, NFS y FTP establecen una conexión que luego se puede utilizar más
simplemente durante un período prolongado.
Otra alternativa a los principales protocolos descritos en este capítulo es AppleShare (también
conocido como AppleShare File Protocol, o AFP), que es parte del protocolo AppleTalk
suite. AppleShare fue una vez un protocolo muy común en redes dominadas por Apple
computadoras y Mac OS X todavía lo admite. En Linux, el paquete Netatalk ( http: //
[Link] ) es compatible con AppleShare IP, que es una variante de AppleShare
que funciona sobre TCP / IP en lugar de la pila de protocolos AppleTalk, en gran parte obsoleta. Porque
OS X es compatible con SMB / CIFS y NFS, por lo general no es necesario implementar Netatalk en
una computadora Linux; Sin embargo, si tiene clientes Mac muy antiguos, es posible que el uso de Netatalk
beneficioso.
Comprender la función de un servidor de archivos
359

Página 402
360
Capítulo 8 ■
Configurar servidores de archivos

Configuración de un servidor Samba


La suite de servidores Samba, que generalmente se instala a través de un paquete llamado samba o
samba - server , maneja el protocolo SMB / CIFS que es común en las redes de Windows.
Para configurar Samba, primero debe establecer algunas opciones globales críticas. Es posible que también necesite
ajustar la asignación de nombres de usuario y contraseñas de Windows a Linux. A continuación, puede definir
recursos compartidos de archivos e impresoras, que permiten compartir archivos e impresoras. También puede configurar
Linux como cliente SMB / CIFS, usando Samba, Windows o incluso SMB / CIFS más exótico
servidores.
Configuración de opciones globales de Samba
El archivo de configuración principal de Samba se llama [Link] y está almacenado en / etc / samba
directorio en todas las principales distribuciones de Linux. Algunas distribuciones antiguas u oscuras pueden almacenar
este archivo en otro directorio, como /etc/samba.d o / etc / smb . El archivo [Link] es
dividido en secciones, cada una de las cuales está encabezada por un nombre entre corchetes, como
[global] o [hogar] . Las líneas siguientes, hasta el nombre de la siguiente sección, pertenecen a
la sección especificada.
Comprensión de las secciones del archivo de configuración de Samba
Existen tres tipos de secciones:
La sección global La primera sección en la mayoría de los archivos [Link] es la sección [global] . Esta
La sección define los valores predeterminados globales y establece las opciones que afectan el rendimiento general de
el servidor, como su nombre NetBIOS.
Archivos compartidos Los archivos compartidos permiten a Samba entregar archivos a los clientes y aceptar archivos de los clientes.
Recursos compartidos de impresora Los recursos compartidos de impresora son muy similares a los recursos compartidos de
archivos en muchos aspectos, pero Samba
envía los archivos que acepta una impresora compartida a la cola de impresión local de Linux, por lo que terminan
siendo impreso.
Un protocolo que compite con SMB / CIFS es NetWare de Novell (o NetWare Core
Protocolo, o NCP), que normalmente se ejecuta en su intercambio de paquetes de Internet / secuenciado
Pila de protocolos de intercambio de paquetes (IPX / SPX). El kernel de Linux incluye compatibilidad con IPX / SPX,
y NCP se implementa en Mars_nwe ( [Link] ). Novell
también ha lanzado soporte oficial para Linux NCP, actualmente disponible como Open Enterprise
Servidor (OES). Es probable que SMB / CIFS sea una mejor opción a menos que tenga una red
que depende en gran medida de los protocolos heredados de NetWare. Un servidor Linux podría funcionar como
plataforma de transición, que permite que los mismos archivos se sirvan a través de NCP y SMB / CIFS
mientras elimina los clientes NetWare.

Página 403
Dentro de cada sección, las opciones se asignan utilizando líneas de la siguiente forma:
opción = valor
Las opciones y la mayoría de los valores no distinguen entre mayúsculas y minúsculas. (Algunos valores son nombres de ruta de
Linux o
otras cadenas inherentemente sensibles a mayúsculas y minúsculas.) Los valores booleanos de 1 , Verdadero y Sí son
equivalente, al igual que 0 , falso , y no . Las marcas de almohadilla ( # ) y el punto y coma ( ; ) son comentarios
caracteres; las líneas que comienzan con estos caracteres se ignoran.
Configuración de opciones globales básicas
La sección [global] es particularmente importante para el funcionamiento de Samba. De hecho, tu
El servidor Samba probablemente no sea utilizable por sus clientes de Windows hasta que haya creado uno.
o dos cambios en esta sección. La tabla 8.1 resume algunas de las características que puede desear
para cambiar en esta sección. Al igual que con tablas similares a lo largo de este capítulo, la Tabla 8.1 está lejos
desde completo. Puede que necesite consultar la documentación de Samba o un libro sobre el
servidor para conocer opciones adicionales si tiene problemas. La página de manual de [Link]
es inusualmente completo, pero por esta misma razón, puede llevar un tiempo leerlo o incluso
búsquelo para obtener información relevante.
TABLA 8.1 Opciones globales comunes de Samba
Opción
Tipo de valor
Sentido
grupo de trabajo
Cuerda
Grupo de trabajo NetBIOS o nombre de dominio NetBIOS. A menudo, pero
no siempre, relacionado con el nombre de dominio TCP / IP de la red.
netbios
nombre
Cuerda
Nombre NetBIOS de la computadora. A menudo, pero no siempre, el
igual que el nombre de host TCP / IP de la computadora sin el
porción de dominio. Este también es el valor predeterminado.
impresión
Cuerda
Nombre del sistema de impresión, como LPRng o CUPS .
Samba ajusta su comando de impresión para adaptarse a la impresión
sistema.
printcap
nombre
Nombre del archivo
Nombre del archivo / etc / printcap o un sustituto del mismo (como
como tazas ). Esta opción es necesaria para las [impresoras]
compartir para funcionar correctamente.
carga
impresoras
Booleano
Ya sea para hacer todas sus impresoras definidas localmente
disponible cuando hay un recurso compartido de [impresoras] . El valor por defecto
el valor es Sí .
los anfitriones permiten
y anfitriones
negar
Nombres de host o
Direcciones IP
Controles de acceso basados en host, similares a los proporcionados por
Envoltorios TCP o xinetd .
Configuración de un servidor Samba
361

Página 404
362
Capítulo 8 ■
Configurar servidores de archivos
Los dominios NetBIOS y los dominios TCP / IP son conceptualmente similares, pero
no son idénticos. Para simplificar, es posible que desee configurar sus redes
de tal manera que utilice un solo nombre para ambos tipos de dominio; pero si
está utilizando una red preexistente, puede encontrar que una computadora está en un
Dominio NetBIOS con un nombre y dominio TCP / IP con otro nombre.
Configuración de opciones de contraseña
Dos de las opciones de la Tabla 8.1 son muy importantes para la mayoría de los sistemas. El primero de estos
opciones es cifrar contraseñas . Todas las versiones de Windows desde Windows 95 OEM Service
La versión 2 (OSR2) y el Service Pack 3 de Windows NT 4.0 utilizan contraseñas cifradas de forma predeterminada.
Si encriptar contraseñas se establece en No , Samba usa la base de datos de nombre de usuario y contraseña de Linux.
Opción
Tipo de valor
Sentido
seguridad
Compartir , Usuario ,
servidor ,
Dominio o ADS
Especifica cómo Samba autentica a los usuarios locales, por
imitando el método utilizado por Windows 9 x / Me ( Compartir )
de forma compartida, mediante el uso de nombres de usuario y
contraseñas ( Usuario ), enviando una solicitud de autenticación
a otra computadora ( servidor ), difiriendo a una NT
controlador de dominio ( dominio ), o difiriendo a un activo
Controlador de dominio de directorio (AD) ( ADS ).
cifrar
contraseñas
Booleano
Especifica si se requieren contraseñas cifradas.
smb passwd
expediente
Nombre del archivo
Archivo de contraseña cifrado.
contraseña
servidor
Nombre de host o IP
habla a
Identifica el controlador de dominio de la red, como se describe
dentro de poco.
nombre de usuario
mapa
Nombre del archivo
Archivo que contiene asignaciones de Windows (estilo y Linux)
nombres de usuario de estilo.
nombre
resolver
orden
Uno o más de
lmhosts , anfitrión ,
gana , o bcast
Le dice a Samba cómo resolver nombres: lmhosts usa un archivo
llamado / etc / samba / lmhosts (similar a / etc / hosts
expediente); host significa utilizar la resolución de nombres DNS normal;
gana significa utilizar un servicio de nombres de Internet de Windows
(WINS) servidor especificado a través de la opción de servidor WINS ; y
bcast significa utilizar difusiones de nombres NetBIOS. Múltiple
los valores pueden estar separados por espacios.
TABLA 8.1 Opciones globales comunes de Samba (continuación)

Página 405
En este caso, los clientes recientes de Windows no se conectarán a Samba a menos que Samba o Windows
se cambia la configuración del cliente. Cuando encriptar contraseñas se establece en Sí , Samba requiere su
propia base de datos de contraseñas, que es independiente de la base de datos de contraseñas estándar de Linux. En
En este caso, los clientes recientes de Windows se conectarán al servidor Samba. En la práctica, suele ser
Las contraseñas encriptadas son las más fáciles y seguras. Para hacerlo, siga estos pasos:
1. Si es necesario, establezca cifrar contraseñas en Sí .
2. Como root , escriba smbpasswd: un nombre de usuario en un símbolo del sistema, donde el nombre de usuario es un
nombre de usuario para un usuario que debería tener acceso al servidor Samba. El programa
le pedirá una nueva contraseña y luego le pedirá que la escriba nuevamente. La primera vez
si emite este comando, se quejará de que la base de datos passdb no existe. Tú
puede ignorar esta queja.
3. Repita el paso 2 para todos los usuarios que deberían tener acceso a Samba.
Si tiene muchos usuarios, el proceso de agregarlos a todos a la contraseña cifrada de Samba
La base de datos puede ser tediosa, pero es necesaria. Muchas distribuciones incluyen un script llamado
mksmbpasswd o [Link] que pueden crear un archivo de contraseña de Samba desde un
Archivo / etc / passwd . Desafortunadamente, Linux y Samba usan diferentes métodos de cifrado
contraseñas, por lo que no es posible convertir contraseñas reales. La contraseña de Samba resultante
El archivo incluye nombres de usuario pero no contraseñas. Como resultado, mksmbpasswd ahorra poco o nada
esfuerzo. Sin embargo, si puede ejecutar con contraseñas no cifradas durante un tiempo, puede usar este
script y use la opción de actualización cifrada Sí . Samba luego agregará contraseñas a
su base de datos cifrada a medida que los usuarios inician sesión con contraseñas no cifradas. (Debes correr con
cifrar contraseñas No para que este proceso funcione.) Esta práctica puede ser útil si
estaban migrando una red de contraseñas no cifradas a cifradas, pero para la mayoría
instalaciones, no es una opción.
Como se acaba de describir, las contraseñas locales de Samba se basan en una configuración de la opción de seguridad para
Usuario . Esta opción hace que Samba mantenga su propia lista de usuarios y contraseñas o confíe
en la base de datos de cuentas normal de Linux, como se acaba de describir. Otro enfoque, descrito
en breve, emplea un controlador de dominio para el mantenimiento de la cuenta. Un tercer enfoque,
ejemplificado por Security Share , intenta imitar la forma en que el antiguo Windows 9 x / Me
Usuarios autenticados en servidores: No se utiliza ningún nombre de usuario, sino que se utiliza una contraseña única.
con cada acción. Cuando se configura para usar este método, Samba se ejecuta a través de una serie de cuentas
para la autenticación, incluido cualquier nombre de usuario que el cliente pueda enviar aunque no sea
requerido para hacerlo, el nombre del recurso compartido, el nombre NetBIOS del cliente y cualquier nombre de usuario
proporcionado explícitamente por el parámetro de nombre de usuario (si está presente) en el recurso compartido. Esto es incómodo
sistema de comprobaciones, por lo que en la mayoría de los casos, seguridad a nivel de usuario o una de las opciones que se basa en
un
se utiliza el controlador de dominio.
La utilidad smbpasswd es el equivalente de Samba al passwd estándar de Linux
utilidad. Cuando Samba está configurado para usar cuentas locales (es decir,
usuario de seguridad ), los usuarios pueden escribir smbpasswd para cambiar su
contraseñas. Cuando se une a un dominio, como se describe más adelante, los usuarios pueden usar
la opción -r para especificar un controlador de dominio remoto, como en smbpasswd-r
central para cambiar la contraseña en la computadora llamada central .
Configuración de un servidor Samba
363

Página 406
364
Capítulo 8 ■
Configurar servidores de archivos
Configuración de opciones de dominio o grupo de trabajo
La segunda opción que probablemente tendrá que ajustar de la Tabla 8.1 es grupo de trabajo . SMB /
Las redes CIFS se construyen sobre dominios o grupos de trabajo NetBIOS. Si su servidor Samba
el nombre del grupo de trabajo no está configurado correctamente, sus clientes de Windows no podrán encontrarlo - en
al menos, no fácilmente. Si no sabe cuál es el nombre de su grupo de trabajo, intente escribir lo siguiente
comando (tenga en cuenta el guión final en el comando):
$ nmblookup -MS -
consultando __MSBROWSE__ en [Link]
[Link] __MSBROWSE__ <01>
Buscando el estado de [Link]
ALTAVOZ
<00> -
M <ACTIVO>
ALTAVOZ
<03> -
M <ACTIVO>
ALTAVOZ
<20> -
M <ACTIVO>
..__ MSBROWSE__. <01> - <GRUPO> M <ACTIVO>
RINGWORLD <00> - <GRUPO> M <ACTIVO>
RINGWORLD <1b> -
M <ACTIVO>
RINGWORLD <1c> - <GRUPO> M <ACTIVO>
RINGWORLD <1d> -
M <ACTIVO>
RINGWORLD <1e> - <GRUPO> M <ACTIVO>
La salida incluye información tanto en la computadora del navegador principal (que administra
listas de computadoras para navegar con el servidor GUI (herramientas de localización) y en el grupo de trabajo. En
En este caso, SPEAKER es el navegador maestro para el grupo de trabajo de RINGWORLD .
Hoy en día, muchas redes de Windows utilizan una configuración de dominio en lugar de un grupo de trabajo
configuración. Los dominios pueden ser dominios NT o dominios de Active Directory (AD). UNA
El dominio es básicamente un grupo de trabajo con algunas características adicionales, la mayoría de las cuales se relacionan con
autenticacion de usuario. Usted especifica el nombre de dominio usando la misma opción de grupo de trabajo utilizada
para especificar el grupo de trabajo; sin embargo, para utilizar un controlador de dominio para la autenticación, debe
también establece tres opciones adicionales:
Debe establecer el nombre del controlador de dominio con la opción de servidor de contraseña .
Debe establecer cifrar contraseñas en Sí .
Debe configurar la opción de seguridad en Servidor , Dominio o ADS .
Usar Security Server es el método más simple de usar, pero en esta configuración, el
El servidor Samba no es un miembro completo del dominio. Configurar el dominio de seguridad causa Samba
unirse completamente a un dominio usando los protocolos NT más antiguos y usando seguridad ADS causa
Samba para unirse completamente al dominio utilizando los protocolos AD más nuevos.
Si usa seguridad de nivel de dominio o de AD, debe unirse explícitamente al dominio usando
el siguiente comando:
$ net join member -U adminuser


Página 407
En este comando, adminuser es el usuario administrativo del dominio, como se define en el
controlador de dominio. Es posible que sea necesario configurar el controlador de dominio para permitir el Samba
servidor para unirse al dominio. Si todo va bien, se le pedirá una contraseña y
Samba almacenará la información necesaria localmente para que no tenga que unirse al
dominio de nuevo; este comando debe escribirse solo una vez. En la práctica, usando dominio - o
La seguridad a nivel de AD puede ser complicada; una serie de detalles delicados pueden hacer que la unión neta
comando para fallar. Los desarrolladores de Samba fomentan el uso de la membresía de dominio completo en
seguridad a nivel de servidor.
Cualquiera de estos enfoques de seguridad (servidor, dominio o ADS) tiene la ventaja de que
no es necesario mantener una base de datos completa de cuentas de Samba en la computadora servidor. Debes,
sin embargo, mantenga una base de datos convencional de cuentas de Linux para los usuarios de la computadora. En un
red con pocos usuarios, probablemente pueda hacerlo manualmente. Sin embargo, en una red más grande
es posible que desee utilizar herramientas para ayudar a automatizar esta tarea. Algunas posibilidades incluyen:
Use un script local La opción de agregar script de usuario en Samba puede ejecutar un script cuando un usuario está
autenticado. Si escribe un script simple para agregar una cuenta local, puede asegurarse de que
tener cuentas locales para todos sus usuarios. Sin embargo, este enfoque no
eliminar cuentas cuando se eliminan del controlador de dominio.
Utilice LDAP Un servidor de Protocolo ligero de acceso a directorios (LDAP), como se describe brevemente
en el Capítulo 7, “Configuración de red avanzada”, puede administrar cuentas. Si está utilizando un
Servidor AD para Windows, puede ampliarlo para cumplir este rol.
Use Winbind Samba incluye un paquete auxiliar llamado Winbind, que habilita Linux
utilizar un controlador de dominio de la misma forma que se puede utilizar un servidor LDAP. Usar Winbind puede ser
conveniente en una red dominada por Windows, pero requiere generar y almacenar algunos
Linux: información específica a nivel local, ya que un servidor de Windows no sabe nada sobre funciones
como números de ID de usuario (UID) de Linux y directorios de inicio.
Las descripciones completas de estas opciones están más allá del alcance de este libro; Los menciono aquí
sólo para que pueda explorarlos usted mismo si surge la necesidad.
Asignación de nombres de usuario de Linux y Windows
Los nombres de usuario de Linux son generalmente palabras simples cortas, como tgilliam o samlowry . Ventanas
Las redes a menudo favorecen el uso de nombres de casos mixtos más completos con espacios, como T Gilliam o Sam
Lowry . Puede utilizar cualquier tipo de nombre en cualquiera de los sistemas operativos (aunque algunas utilidades de Linux, como
como useradd , imponer reglas más estrictas); sin embargo, a veces es necesario crear un
forma de "traducir" nombres de usuario entre los dos sistemas. Esto se hace a través del archivo especificado
a través de la opción de mapa de nombre de usuario en [Link] (el nombre de archivo [Link] se usa a menudo para
este propósito, pero puede usar cualquier nombre de archivo que desee). Cada línea de este archivo comienza con un
único nombre de usuario de Linux y continúa con un signo igual ( = ) y una lista delimitada por espacios de
nombres de usuario que serán aceptados en su lugar. El Listado 8.1 proporciona un ejemplo.
Configuración de un servidor Samba
365

Página 408
366
Capítulo 8 ■
Configurar servidores de archivos
Listado 8.1: Un ejemplo de archivo [Link]
! tgilliam = "T Gilliam" Terry
! samlowry = lento "Sam Lowry" Sam
! jlayton = Jill
! tuttle = @calentamiento
nadie = *
El Listado 8.1 ilustra varias características del archivo de mapa de nombre de usuario:
Como los espacios se utilizan para separar los nombres de usuario en el lado derecho de cada entrada, las comillas
( “ ) Debe usarse para especificar un nombre de usuario que incluya un espacio.
Los nombres de usuario en el lado derecho pueden ser inusuales para los estándares típicos de Linux, como en Sam
Lowry ; o pueden ser normales para los estándares de Linux, como en lentitud .
Un ampersand ( @ ) delante de un nombre del lado derecho significa decodificar el nombre en todos los
miembros de ese grupo local o del Sistema de información de red (NIS). Por lo tanto, el Listado 8.1
convierte a todos los miembros del grupo de calefacción en el nombre de usuario local tuttle .
Un asterisco ( * ) es un comodín que coincide con cualquier nombre, que puede usarse para mapear
nombres desconocidos para un usuario local conocido.
Por lo general, el procesamiento continúa después de que se ha realizado una coincidencia. Un signo de exclamación
( ! ) al comienzo de una entrada significa detener el procesamiento en ese punto si coincide con un nombre.
Esto es particularmente importante en las líneas antes de usar comodines, no sea que todos los nombres de usuario sean
convertido al nombre predeterminado ( nadie en el Listado 8.1). Proteger grupos especificados mediante
un ampersand también puede ser importante.
Cuando se usa seguridad a nivel de usuario o de recurso compartido, el mapa de nombre de usuario se aplica antes
autenticación, por lo que los nombres de usuario de estilo Windows se asignan a nombres de usuario de estilo Linux
antes de que se autentique la contraseña. Al utilizar seguridad de nivel de servidor, dominio o ADS,
sin embargo, el archivo de mapa de nombre de usuario se aplica después de la autenticación. Esto habilita el dominio
controlador para almacenar el nombre de usuario estilo Windows, mientras que el servidor Samba puede confiar en su
nombre de usuario local de Linux internamente.
Configurar archivos compartidos
Los recursos compartidos de archivos comienzan con el nombre del recurso compartido entre corchetes y continúan hasta el siguiente
recurso compartido
definición o hasta el final del archivo. Normalmente, las líneas después de la línea del nombre del recurso compartido tienen sangría,
aunque esto no es obligatorio. Un recurso compartido de archivos bastante básico se ve así:
[prueba]
comentario = Cuota de prueba en% L
ruta = / exportaciones / compartido
escribible = Sí




Página 409
Este recurso compartido entrega el contenido de / export / shared bajo la prueba del nombre del recurso compartido . Más
de estas opciones no son realmente necesarias; proporcionan información adicional a los clientes (el
opción de comentario ) o establecer características del recurso compartido (la opción de escritura ). Incluso la opción de ruta
se puede omitir: el valor predeterminado es / tmp , excepto en un caso especial, que se describe brevemente.
La Tabla 8.2 resume algunas de las opciones para compartir archivos más comunes.
TABLA 8.2 Opciones comunes de Samba para compartir archivos
Opción
Tipo de valor
Sentido
comentario
Cuerda
Una descripción de una línea del recurso compartido, que aparece en
algunas vistas de la acción del cliente.
camino o
directorio
Nombre del directorio
El directorio que se va a compartir.
navegable o
navegable
Booleano
Si el recurso compartido aparece en los navegadores. El valor por defecto
el valor es Sí .
se puede escribir ,
escribible , o
escribe bien
Booleano
Si los usuarios pueden escribir en el recurso compartido, dada la
permisos apropiados. El valor por defecto es no .
crear máscara
Permiso octal
cuerda
Los permisos de Linux asignados a los nuevos archivos creados por
clientela. (Los bits de permiso de ejecución pueden modificarse
aunque por otras opciones.)
directorio
máscara
Permiso octal
cuerda
Los permisos de Linux asignados a nuevos directorios
creado por los clientes. (Los bits de permiso de ejecución pueden
modificado por otras opciones.)
nt acl
apoyo
Booleano
Ya sea para asignar la propiedad y los permisos de los archivos de Linux
en ACL estilo Windows NT. El valor predeterminado
es sí .
forzar usuario
Nombre de usuario
Una anulación del nombre de usuario asignado a los archivos nuevos
creado por los usuarios. También afecta a los archivos que el usuario puede
leer o escribir.
disponible
Booleano
Si la acción está activa; configurando esta opción para
No desactiva efectivamente el recurso compartido. (Tenga en cuenta que válido
es similar, pero más extremo. Desarrolladores de Samba
Fomentar el uso de No disponible en lugar de válido
No para deshabilitar un recurso compartido.)
usuarios válidos
Lista de nombres de usuario
Especifica los usuarios que están autorizados a acceder al
compartir.
Configuración de un servidor Samba
367
Página 410
368
Capítulo 8 ■
Configurar servidores de archivos
Muchas opciones de Samba están disponibles con ortografías o sinónimos alternativos.
Por ejemplo, escritura , escritura y escritura correcta son sinónimos. Un
el antónimo de todos estos es de solo lectura ; solo lectura Verdadero es lo mismo que
escribible Falso .
Muchas opciones para compartir archivos de Samba afectan la forma en que Samba maneja la traducción entre Linux
propiedad, permisos, nombres de archivos y otros detalles y características del sistema de archivos que DOS
y Windows esperan en sus sistemas de archivos. DOS y Windows 9 x / Me no son compatibles con Linux
propiedad y permisos, por lo que Samba usa crear máscara y máscara de directorio para establecer la
permisos. Samba usa el nombre de usuario de la persona que montó el recurso compartido para configurar el
propietario de archivos nuevos, a menos que el usuario forzado anule esa configuración. Versiones modernas de Windows
admite listas de control de acceso y propiedad (ACL). Cuando tal cliente se conecta a Samba,
el servidor asigna la propiedad y los permisos de Linux a ACL limitadas. Si usa un
Sistema de archivos habilitado para ACL con un paquete Samba reciente, obtiene un mejor soporte de ACL para
sus clientes.
Un recurso compartido de archivos Samba especial viene predefinido en los archivos [Link] de muchas distribuciones :
[hogares] . Este recurso compartido es inusual porque se asigna al directorio de inicio del usuario. Por ejemplo, si
el usuario jill tiene un directorio de inicio de / home / jill y si este usuario abre un navegador en el
servidor desde una máquina con Windows, aparecerá un recurso compartido de [hogares] bajo el nombre jill . Si esto
El usuario abre este recurso compartido, encontrará archivos de su directorio de inicio disponibles en el recurso compartido.
Para mostrar un recurso compartido de [casas] con el nombre de usuario del usuario, el usuario debe tener
iniciado sesión en el servidor. Algunos navegadores SMB / CIFS que no son de Windows no
solicitar una contraseña y, por lo tanto, no están completamente conectados, hasta después de que el usuario
selecciona el recurso compartido para abrir. En estos navegadores, aparece el recurso compartido de [hogares]
por ese nombre, pero cuando el usuario accede al recurso compartido, se abre en el
directorio de inicio.
La participación de [viviendas] es inusual en un par de detalles de configuración. Primero, normalmente
incluye una opción No navegable , que normalmente haría desaparecer el recurso compartido
de las listas de navegación. En el caso de [viviendas] , esta opción hace que el nombre compartido de viviendas
desaparecen de las listas de exploración, pero un recurso compartido con el nombre del usuario permanece en la lista de exploración.
En segundo lugar, las acciones de [viviendas] generalmente carecen de una opción de ruta . Samba sabe mapear esta parte a la
directorios de inicio de los usuarios en lugar de una ubicación fija.
Configuración de recursos compartidos de impresora
Los recursos compartidos de impresoras Samba son similares a los recursos compartidos de archivos. La principal característica
distintiva es
la opción imprimible Sí , que le dice a Samba que trate el recurso compartido como un recurso compartido de impresora. Si esto
está configurada, Samba intenta enviar archivos destinados a la impresora a una cola de impresión local del
mismo nombre que el recurso compartido de la impresora Samba. (Si desea utilizar otro nombre de cola de impresión,
puede configurarlo con la opción de impresora ).

Página 411
En lugar de definir las impresoras una por una, muchas configuraciones de Samba se basan en un
nombre del recurso compartido de impresora que es similar al recurso compartido de [hogares] para recursos compartidos de archivos:
[impresoras] . Esta parte
podría verse algo como esto:
[impresoras]
comentario = Todas las impresoras
navegable = no
ruta = / tmp
imprimible = sí
modo de creación = 0700
Si este recurso compartido está presente y si la sección [global] no incluye una carga de impresoras No
opción, Samba escanea sus impresoras disponibles y crea una impresora compartida para cada cola de impresión
en el sistema. Esta función puede ser una forma conveniente de compartir todas sus impresoras
En seguida.
Samba entrega el trabajo de impresión a través del sistema de impresión local: BSD LPD, LPRng, CUPS,
o algo más exótico si eso es lo que usas. La opción de impresión global define cómo
Samba envía trabajos de impresión, así que asegúrese de que esta opción esté configurada correctamente. En todos los casos, el
formato
del trabajo que envía Samba debe ser algo que la cola de impresión pueda manejar. Porque
Samba simplemente pasa un archivo que recibe del cliente al sistema de impresión del servidor, esto
significa que el cliente debe tener un controlador de impresión que genere una salida que la cola de impresión de Linux pueda
proceso. En la mayoría de los casos, las colas de impresión de Linux están diseñadas para manejar la entrada PostScript, por lo que
un controlador PostScript genérico en el cliente está en orden. Como regla general, los controladores para Apple
Los modelos LaserWriter funcionan bien para impresoras monocromas y QMS magicolor PostScript
los controladores funcionan bien para impresoras en color. Si su impresora es un modelo PostScript, puede probar
utilizando el controlador proporcionado por el fabricante. Sin embargo, en ocasiones, estos controladores crean
salida que incluye el modo: códigos de cambio que confunden las colas de impresión de Linux, por lo que puede
necesita utilizar otro controlador. Alternativamente, puede incluir la opción Sí de posdata ;
esto le dice a Samba que agregue un identificador PostScript al inicio del archivo, lo que hace que Linux
cola de impresión para identificar correctamente la salida como PostScript.
Si su impresora es un modelo que no es PostScript, puede intentar usar su controlador nativo. Esta
La práctica funcionará solo si la cola de impresión de Linux reconoce el formato y pasa los trabajos de impresión.
Sin embargo, sin modificar para la impresora. Si es necesario, puede crear una cola de impresión "sin procesar" para pasar
datos sin cambios.
Muchas, pero no todas, las impresoras que no se pueden hacer funcionar desde Linux aún pueden
ser servido a clientes Linux usando Samba y una cola de impresión sin formato. Unos pocos
Estas impresoras dependen de la comunicación bidireccional entre la impresora y
Controlador de impresora de Windows. Estas impresoras no funcionarán a través de Samba a menos que estén
compatible con Linux.
En la práctica, es difícil decir cuál es mejor: utilizar controladores PostScript de Windows con un
Cola de impresión de Linux que interpreta PostScript mediante Ghostscript o los controladores nativos de la impresora
Configuración de un servidor Samba
369

Página 412
370
Capítulo 8 ■
Configurar servidores de archivos
en Windows y una cola sin procesar. Es probable que el enfoque PostScript reduzca el tráfico de red
al imprimir texto, pero impone una mayor carga de CPU en el servidor de impresión. El conductor nativo
Es probable que este enfoque aumente el tráfico de la red al imprimir texto y cambie la carga de la CPU
a los clientes. El enfoque PostScript puede ser conveniente si usa aplicaciones que funcionan
mejor con impresoras PostScript, como algunas herramientas de autoedición y gráficos. Nativo
los controladores a menudo brindan un acceso más conveniente a las funciones de la impresora, como los ajustes de resolución.
Cualquiera de los dos enfoques podría producir resultados superiores; el mejor enfoque depende de los conductores en
pregunta y el tipo de impresión. Te recomiendo que pruebes ambos enfoques. Es posible que desee
cree dos colas, una para cada método. (Si su cola de Linux es lo suficientemente inteligente como para reconocer
el tipo de archivo, solo necesitará un recurso compartido de impresora Samba; puedes crear varias colas
en los clientes que imprimen en el mismo recurso compartido de Samba).
Comprobación de su configuración y ejecución de Samba
Una vez que haya realizado cambios en su archivo [Link] , puede reiniciar o volver a cargar el servidor Samba
utilizando su script de inicio SysV o Upstart. Sin embargo, antes de hacer esto, es posible que desee
use la utilidad testparm , que escanea su archivo [Link] y marca cualquier error que encuentre:
# testparm
Cargue los archivos de configuración de smb desde /etc/samba/[Link]
ADVERTENCIA: La opción "administrador de la impresora" está obsoleta.
Sección de procesamiento "[hogares]"
Sección de procesamiento "[netlogon]"
Sección de procesamiento "[perfiles]"
Sección de procesamiento "[smbpdf]"
Sección de procesamiento "[impresoras]"
Sección de procesamiento "[print $]"
Archivo de servicios cargado OK.
Advertencia: Service smbpdf define un comando de impresión, pero se ignora el parámetro
cuando se utilizan bibliotecas CUPS.
Rol del servidor: ROLE_DOMAIN_PDC
Presione enter para ver un volcado de sus definiciones de servicio
La mayoría de estas líneas de salida de ejemplo son simplemente informativas, como Processing
líneas y la línea de rol de servidor . Sin embargo, este ejemplo produjo dos advertencias. El primero
identificó una opción obsoleta ( administrador de la impresora ), que aún se cumple pero está marcada para
eliminación en el futuro. El segundo identifica un problema con un parámetro que se ignora
en el recurso compartido smbpdf . (Este capítulo no presenta el archivo [Link] que produjo este
testparm , por lo que no describo la corrección de estos errores específicos. Deberías investigar
cualquier advertencia o error que surja en su propio sistema, ya que es probable que sean muy
idiosincrásico a su configuración.)
Una vez que Samba se está ejecutando, consta de dos programas de servidor principales: smbd y nmbd . los
El daemon smbd maneja la mayor parte de las tareas de intercambio de archivos; responde a los intentos de conexión

Página 413
relacionados con el intercambio de archivos e impresoras. El demonio nmbd maneja el detrás de escena
Funciones de "pegamento" NetBIOS, como la resolución de nombres. (NetBIOS sobre TCP / IP implementa su
propio sistema de resolución de nombres independiente de los nombres de host TCP / IP, e implementa características
como la exploración de archivos. Estos deberes son manejados por nmbd .)
Puede utilizar la utilidad nmblookup para consultar a los servidores sobre sus nombres y NetBIOS relacionados.
caracteristicas. La sección anterior "Configuración de opciones de dominio o grupo de trabajo" mostró un ejemplo
de usar esta utilidad para ubicar su grupo de trabajo local o nombre de dominio. Se usa mucho más a menudo
como la utilidad de host, como medio de localizar la dirección IP asociada con un nombre NetBIOS:
$ nmblookup nessus
consultar nessus en [Link]
[Link] nessus <00>
Este resultado revela que la dirección IP de la computadora nessus es [Link]. Tú
puede pasar opciones adicionales a nmblookup para realizar consultas más avanzadas. Consultar el
la página de manual del programa para obtener más detalles.
La utilidad smbstatus le informa sobre el estado actual de su servidor Samba, incluyendo
los clientes que están conectados a él y los archivos que están abiertos actualmente:
$ smbstatus
Sección de procesamiento "[hogares]"
Sección de procesamiento "[netlogon]"
Sección de procesamiento "[smbpdf]"
Sección de procesamiento "[impresoras]"
Sección de procesamiento "[print $]"
Samba versión 3.4.9
Grupo de nombre de usuario PID
Máquina
-------------------------------------------------- -----------------
20225 usuarios de samlowry
[Link] ([Link])
20209 jill
usuarios
ayudante ([Link])
Máquina de pid de servicio conectada a
-------------------------------------------------- -----
jill
20209 ayudante sáb 13 nov 13:24:22 2010
samlowry 20225172.24.21.5 Sáb 13 de noviembre 13:26:30 2010
Archivos bloqueados:
Pid
Uid
Acceso DenyMode R / W
Oplock
SharePath Nombre Hora
-------------------------------------------------- ---------------------
20209
500
DENY_NONE 0x100081 RDONLY NONE
/ inicio / jill. Sáb 13 de noviembre 13:24:23 2010
Configuración de un servidor Samba
371

Página 414
372
Capítulo 8 ■
Configurar servidores de archivos
Este ejemplo muestra las conexiones de dos computadoras ([Link] y helpman ), que
han abierto los recursos compartidos de jill y samlowry (dos recursos compartidos de inicio de usuario en el servidor). Uno
el cliente ha abierto el directorio / home / jill en el servidor, pero no hay archivos abiertos actualmente.
Algunos programas abren y luego cierran archivos y luego abren y cierran el
archivos de nuevo para guardar los cambios. Por lo tanto, no se puede concluir de la ausencia de
abrir archivos que un cliente no está usando el servidor; podría ser simplemente que el
el usuario está editando archivos y requerirá que el servidor esté disponible en el futuro.
La utilidad smbstatus admite muchas opciones que pueden ajustar la salida que produce.
Consulte la página de manual del programa para obtener más detalles.
Comprobación de archivos de registro de Samba
El directorio / var / log / samba contiene los archivos de registro de Samba. Existen varios de estos archivos. Más
comúnmente, los servidores nmbd y smbd crean los archivos [Link] y [Link] , respectivamente.
Estos archivos contienen información en estos servidores en general. Además, los archivos que llevan el nombre
los nombres o direcciones IP asociadas con clientes específicos, como [Link] o
log.[Link] , contiene información sobre los intentos de conexión para estos clientes.
Los archivos de registro pueden ser un tesoro de información si tiene problemas con Samba. Si
un cliente no puede conectarse, puede examinar los archivos [Link] y [Link] , junto con cualquier
archivos para ese cliente en particular. (Verifique usando tanto su nombre como su dirección IP). Busque
mensajes de error obvios poco después de intentar conectarse. También puede querer comparar
¿Qué sucede con el cliente problemático con las entradas de registro equivalentes de un cliente que no tiene
problemas, asumiendo, por supuesto, que un problema está aislado para uno o unos pocos clientes.
También puede comprobar los archivos de registro en el lado del cliente; sin embargo, es poco probable que aparezcan tales registros
en / var / log / samba . En su lugar, verifique / var / log / messages , / var / log / syslog u otros archivos de registro
para problemas relacionados con el montaje de un recurso compartido SMB / CIFS.
Uso de Linux como cliente SMB / CIFS
Linux incluye herramientas que brindan la capacidad de interactuar con sistemas Windows o Samba
servidores como un cliente SMB / CIFS, en lugar de un servidor. Samba incluye un importante programa para clientes
llamado smbclient . Además, puede utilizar el código de tipo de sistema de archivos smbfs o cifs con el
comando de montaje normal de Linux .
Uso de un programa de cliente dedicado
El programa smbclient proporciona un acceso similar a FTP a recursos compartidos remotos. Específicamente,
smbclient imita el comportamiento del programa estándar ftp en modo texto , así que si estás
familiarizado con ftp , debería sentirse como en casa con smbclient . Aunque SMB / CIFS es
generalmente utilizado por un cliente de SO que monta los recursos compartidos localmente, usar smbclient puede ser una
herramienta útil porque puede proporcionar un acceso conveniente a un servidor que no utiliza en un

Página 415
de forma regular con una configuración mínima. También puede encontrar que smbclient puede
proporcionar información de depuración útil que puede ser más difícil de obtener cuando se utiliza un
enfoque convencional de montaje compartido para utilizar el servidor.
La sintaxis básica de smbclient es:
smbclient [// SERVIDOR / COMPARTIR ] [ contraseña ] [ opciones ]
En Linux, los recursos compartidos SMB / CIFS generalmente se denominan // SERVER / SHARE . En
Windows, los caracteres de barra ( / ) se convierten en caracteres de barra invertida ( \ ),
de acuerdo con las convenciones de Windows. Por lo tanto, la referencia de Windows
sería \\ SERVER \ SHARE . En ambos sistemas operativos, el caso del servidor y
compartir nombres es irrelevante, aunque las mayúsculas se usan más comúnmente
para los nombres de servidor NetBIOS.
La Tabla 8.3 resume las opciones más comunes y útiles , pero debe consultar
la página de manual del programa para obtener opciones adicionales y detalles operativos. La mayor parte de tu
las interacciones con smbclient se llevarán a cabo en su propio indicador interno smb: \> , en el que
puede escribir comandos como help , ls , cd , renombrar , obtener , poner y salir . Muchos de estos
Los comandos funcionan igual que sus equivalentes ftp , muchos de los cuales son a su vez similares a
comandos de shell regulares de Linux. Escriba el comando de ayuda o consulte la página de manual de smbclient para
aprenda más sobre estos comandos.
TABLA 8.3 Opciones comunes de smbclient
Nombre corto de la opción
Nombre de opción largo
Sentido
- I ip - dirección
N/A
Se conecta a la dirección IP especificada en lugar de
que a la computadora con el nombre NetBIOS
de SERVER .
- L HOST
N/A
Muestra los recursos compartidos disponibles en HOST .
- s nombre de archivo
N/A
Utiliza el nombre de archivo como archivo de configuración en lugar de
que [Link] en cualquier directorio su
construir usos (generalmente / etc / samba ).
-N
N/A
Suprime el mensaje normal para un
contraseña. Si el tipo de acceso que tiene
invocar normalmente requeriría una contraseña,
esta opción hará que la operación falle.
- Un nombre de archivo
- - autenticación -
archivo nombre de archivo
Obtiene el nombre de usuario y la contraseña del
nombre de archivo especificado .
Configuración de un servidor Samba
373

Página 416
374
Capítulo 8 ■
Configurar servidores de archivos
Como ejemplo, considere las siguientes interacciones:
$ smbclient // SERVICIOS / jill -U jill
Ingresa la contraseña de jill:
Dominio = [CENTRAL] SO = [Unix] Servidor = [Samba 3.4.9]
smb: \> ls
.
re
0 Sáb 13 de noviembre 17:07:04 2010
..
re
0 dom 29 nov 00:34:30 2009
EFI
re
0 Vie 16 Oct 16:00:55 2009
[Link].bz2
70277083 Martes 9 de noviembre 09:34:47 2010
[Link]
79081 dom 31 de octubre 23:25:38 2010
smb: \> obtener [Link]
obteniendo el archivo \ [Link] de tamaño 79081 como [Link] (4542.8
KiloBytes / seg) (promedio 4542,8 KiloBytes / seg)
smb: \> salir
Esta secuencia inicia sesión en el servidor de SERVICIOS como jill , obtiene una lista de archivos y recupera
un archivo ( Form27b - [Link] ).
Nombre corto de la opción
Nombre de opción largo
Sentido
- U nombre de usuario
[% contraseña ]
- - usuario = nombre de usuario
[% contraseña ]
Utiliza el nombre de usuario especificado y, opcionalmente,
contraseña al conectarse al servidor.
Si se omite esta opción, su inicio de sesión actual
se utiliza el nombre de usuario, y el programa solicita
usted por una contraseña o utiliza la contraseña
especificado en la línea de comando, si
incluir uno.
- n NOMBRE
N/A
Pasa NAME como el nombre NetBIOS de la computadora
al conectarse.
- W GRUPO DE TRABAJO
- - grupo de trabajo =
GRUPO DE TRABAJO
Pasa WORKGROUP como el de la computadora
grupo de trabajo o nombre de dominio.
- comandos c
N/A
Acepta comandos como comandos que
smbclient debería ejecutarse. (Varios comandos
deben estar separados por punto y coma).
utilice esta función para crear scripts que interactúen
con servidores SMB / CIFS.
TABLA 8.3 Opciones comunes de smbclient (continuación)

Página 417
La opción - A le permite almacenar sus credenciales de autenticación en un archivo, que
suele ser útil para scripts. Si usa esta opción, asegúrese de que el archivo que crea tenga la
permisos mínimos necesarios (generalmente 0600 o incluso 0400). Contiene tres líneas:
nombre de usuario = usuario
contraseña = pasar
dominio = dom
Montaje de recursos compartidos SMB / CIFS
La forma habitual de montar recursos compartidos SMB / CIFS es mediante el comando de montaje estándar de Linux . Esta
requiere que pase un tipo de sistema de archivos de smbfs o cifs con el parámetro - t , junto
con el servidor y el nombre compartido en lugar de un nombre de archivo de dispositivo Linux local:
# mount -t cifs // servicios / jill / mnt / services
El soporte para smbfs se ha eliminado de los núcleos 2.6.37 y posteriores.
Por lo tanto, en instalaciones recientes de Linux, debe usar cifs en lugar de smbfs . Si
está actualizando un sistema antiguo, es posible que deba realizar cambios en / etc /
fstab o cualquier otro archivo que haga referencia al código de tipo smbfs .
Escribir este comando normalmente resultará en una solicitud de contraseña. El programa utiliza el
valor de la variable de entorno USER como el nombre de usuario a menos que utilice el usuario = nombre de usuario
opción para establecer otro nombre de usuario. Esta y otras opciones se pueden especificar mediante la opción - o
para montar , como en mount - t cifs - o user = jill // services / jill / mnt / services . Cuadro 8.4
resume algunas de las opciones de montaje más útiles . Consulte los hombre páginas para [Link]
y [Link] para obtener más detalles. La opción de credenciales es particularmente importante,
ya que le permite montar automáticamente un recurso compartido sin colocar la contraseña confidencial
información en / etc / fstab . El formato del archivo de credenciales es similar al descrito
antes, con referencia a smbclient ; sin embargo, si incluye un grupo de trabajo / nombre de dominio,
debe identificarse por la palabra clave del grupo de trabajo en lugar del dominio .
TABLA 8.4 Opciones de montaje importantes de smbfs y cifs
Opción de montaje
Sentido
usuario = nombre o
nombre de usuario = nombre
Pasa el nombre como nombre de usuario para acceder al servidor.
contraseña = pasar
Utiliza pass como contraseña para acceder al servidor.
Configuración de un servidor Samba
375

Página 418
376
Capítulo 8 ■
Configurar servidores de archivos
Puede montar un recurso compartido automáticamente cuando se inicia la computadora o habilitar a usuarios normales
para montar recursos compartidos, al incluir entradas en / etc / fstab , como esta:
// SERVICIOS / jill / mnt / jill-serv cifs credentials = / etc / samba / jill 0 0
Este ejemplo monta el recurso compartido de jill en el servidor de SERVICIOS en / mnt / jill - serv
punto de montaje usando credenciales en / etc / samba / jill siempre que la computadora arranque. Usted puede
por supuesto, cambie las opciones de montaje, muchas de las cuales son las mismas que las opciones para local
sistemas de archivos descritos en el Capítulo 3, “Administración básica del sistema de archivos. "
Una vez que se monta un recurso compartido SMB / CIFS, puede acceder a él como lo haría con
sistema de archivos ordinario. Sin embargo, debe tener en cuenta que es posible que deba lidiar con
reglas extrañas o limitantes de propiedad y permisos, ya que los servidores Windows SMB / CIFS
no admite la propiedad y los permisos de estilo Unix que utiliza Linux. Si el servidor es un
Sistema Unix o Linux que ejecuta Samba, las cosas pueden mejorar, pero admitiendo dos conjuntos de
Las reglas en conflicto a veces crean un enredo de reglas que pueden ser difíciles de superar.
En tales casos, es posible que prefiera simplificar implementando NFS para compartir archivos entre
estos sistemas operativos similares.
Opción de montaje
Sentido
credenciales = nombre de archivo
Obtiene el nombre de usuario y la contraseña del archivo especificado.
uid = UID
Establece el UID predeterminado para los archivos almacenados en el servidor. No debería ser
utilizado para la mayoría de los servidores que admiten las extensiones CIFS Unix,
como servidores Samba.
gid = GID
Establece el GID predeterminado para los archivos almacenados en el servidor. No debería ser
utilizado para la mayoría de los servidores que admiten las extensiones CIFS Unix,
como servidores Samba.
file_mode = modo
Establece el modo de archivo predeterminado para los archivos almacenados en el servidor. Debería
no se puede utilizar para la mayoría de los servidores que admiten CIFS Unix
extensiones, como servidores Samba.
dir_mode = modo
Establece el modo predeterminado para los directorios almacenados en el servidor.
No se debe utilizar para la mayoría de los servidores que admiten CIFS Unix
extensiones, como servidores Samba.
TABLA 8.4 Opciones de montaje importantes de smbfs y cifs (continuación)

Página 419
Configuración de un servidor NFS
Si su red aloja más de un puñado de clientes de intercambio de archivos Linux o Unix, puede
desea utilizar NFS en lugar de o además de Samba. Porque NFS fue diseñado con Unix
la propiedad y los permisos en mente, es un ajuste más natural entre un servidor Linux y Linux
o clientes Unix que SMB / CIFS, que fue diseñado con DOS, Windows y OS / 2
clientes en mente. (Los clientes NFS para Windows y otros sistemas operativos que no son Linux / Unix están disponibles, pero
En general, es mejor usar Samba cuando se atiende a estos clientes).
Para configurar NFS, primero debe observar los requisitos previos de NFS, como el kernel y
opciones del paquete. Luego puede continuar con la configuración de las exportaciones NFS editando el archivo / etc /
archivo fstab . (Recuerde que una exportación es el equivalente NFS de un recurso compartido SMB / CIFS).
también sabe cómo realizar cambios temporales en la configuración de NFS y ajustar las opciones
que afectan la seguridad de NFS. Finalmente, debe saber cómo montar exportaciones NFS en un
sistema cliente.
Configuración de requisitos previos de NFS
Todas las distribuciones principales de Linux se envían con un servidor NFS llamado [Link] . En la mayoría
distribuciones, este servidor es parte del paquete nfs - utils , pero Debian, Ubuntu y relacionados
las distribuciones lo colocan en el paquete nfs - kernel - server . Estos servidores estándar se basan en
Soporte de servidor NFS que está integrado en el kernel, como se describe brevemente. Servidores NFS más antiguos
no se basó en este soporte, y dichos servidores todavía están disponibles en algunas distribuciones. por
Por ejemplo, el servidor nfs - user - server de Debian se ejecuta completamente en el espacio del usuario sin aprovechar
del soporte del servidor NFS del kernel.
Muchas distribuciones presentan opciones para activar el servidor NFS en la instalación del sistema o
cuando instala el paquete del servidor NFS. Para otros, es posible que deba crear o activar
un script de inicio SysV, Upstart o local, como se describe en el Capítulo 1, “Inicio del sistema
y gestión avanzada del sistema. ”El script de inicio se llama nfs - kernel - server
(o nfs - usuario - servidor para el servidor en modo usuario) en Debian y Ubuntu, nfs en Mandriva
y Red Hat, y nfsserver en OpenSUSE.
Para usar un servidor basado en kernel, su kernel debe incluir las opciones apropiadas para
admite funciones NFS. Se requieren otras características del kernel para montar el software de otra computadora.
Exportaciones NFS. Ambos conjuntos de opciones son accesibles desde la red de sistemas de archivos.
Menú de configuración del kernel de sistemas de archivos, como se muestra en la Figura 8.1 para un kernel 2.6.37.
(El Capítulo 2, “Configuración del kernel de Linux”, describe la configuración de un kernel con más detalle).
La opción Soporte de cliente NFS habilita la compatibilidad con la funcionalidad del cliente NFS , y
La opción Soporte de servidor NFS activa la funcionalidad del servidor NFS.
Configuración de un servidor NFS
377

Página 420
378
Capítulo 8 ■
Configurar servidores de archivos
NFS ha sido objeto de varias revisiones a lo largo de los años. Estos números de versión de NFS son
a menudo añadido al acrónimo de NFS , como en NFSv2 para NFS versión 2. Este nivel es el
predeterminado en las opciones del kernel de Linux; para usar NFSv3 o NFSv4, debe activar extra
características, que son visibles en el menú de la Figura 8.1. A partir del 2.6. x kernels, soporte NFS
a través de NFSv3 es razonablemente estable y completo. La compatibilidad con el servidor NFSv4 todavía se considera
experimental a partir del kernel 2.6.37 (el último mientras escribo). Recomiendo evitar el uso
de un controlador NFS experimental; puede resultar en un rendimiento deficiente, archivos perdidos u otros
problemas.
Todos los kernels predeterminados de las distribuciones de Linux admiten NFS, aunque a veces se compila
como módulos separados - nfs.o para el cliente NFS y nfsd.o para el servidor NFS. los
el módulo apropiado debería cargarse automáticamente cuando intentas montar una exportación remota
o inicie el servidor NFS. Aunque los módulos de soporte NFS no son controladores de hardware,
cargarlos se realiza utilizando las mismas herramientas que utiliza para cargar módulos de controladores de hardware. Algunos
distribuciones se envían con este soporte compilado en el archivo principal del kernel en lugar de como
un módulo.
La implementación de NFS de Linux se basa en varios programas adicionales. Estos programas
debe instalarse automáticamente con el servidor NFS. En su mayor parte, estos programas
operan entre bastidores y no requieren una configuración especial, pero debe tener en cuenta
FIGURA 8.1 El kernel de Linux proporciona opciones de soporte NFS en su herramienta de configuración

Página 421
de su existencia. La Tabla 8.5 resume estos programas. Estos programas se relacionan con
Mecanismo de llamada a procedimiento remoto (RPC) , que es un método para habilitar una computadora
para activar la activación de una función en otro equipo. NFS se basa en RPC, por lo que
requiere la ejecución de varios programas auxiliares de RPC.
TABLA 8.5 Programas de soporte RPC de NFS
Opción de montaje
Sentido
[Link]
Este programa, que solo funciona con NFSv4 y versiones posteriores, asigna
nombres de usuario y UID entre sistemas. Esta característica puede ser importante
si dos computadoras admiten los mismos usuarios pero usan diferentes UID
números para esos usuarios.
[Link]
Este programa, que se ejecuta en el servidor, ayuda a administrar el montaje
solicitudes de clientes NFS. Se comunica con los clientes y envía
les da información sobre la exportación y realiza un seguimiento de los clientes
conectado al servidor. Este programa a veces se denomina
mountd .
[Link]
Este programa es el usuario - espacio front - end del kernel - space nfsd
proceso, que hace la mayor parte del trabajo del servidor NFS.
[Link]
Este programa le dice a los clientes NFS cuando el servidor NFS está a punto de reiniciarse,
que ayuda a los clientes a gestionar este evento.
portmap
Este programa (también conocido como portmapper ) se ejecuta en el servidor y
les dice a los clientes qué número de puerto deben contactar para usar el NFS
servidor o ciertos otros servidores.

Configuración de las opciones básicas de exportación


Linux usa el archivo / etc / export para describir los directorios que un servidor NFS
exportaciones. Las líneas de este archivo pueden ser comentarios, que comienzan con marcas de almohadilla ( # ) o
pueden ser definiciones de exportación. Cada definición de exportación tiene la siguiente forma:
/ directorio cliente ( opciones ) [ cliente ( opciones ) [...]]
El directorio / es el directorio que estará disponible, como / home u / opt /
[Link] . A continuación del directorio se encuentran una o más especificaciones del cliente. Usted puede
enumerar clientes de varias formas:
Nombres de host Puede proporcionar el nombre de host de una computadora, como [Link] o
servicios . Si omite el nombre de dominio, el servidor asume que se refiere a una computadora
en su propio dominio.
Configuración de un servidor NFS
379

Página 422
380
Capítulo 8 ■
Configurar servidores de archivos
Comodines Si desea exportar un directorio a todos los equipos de un dominio oa determinados
subconjuntos de ellos, es posible que pueda utilizar los comodines asterisco ( * ) y signo de interrogación ( ? ).
Estas características funcionan de manera muy similar a sus equivalentes en shells cuando se usan para especificar nombres de
archivos. Ellos
sin embargo, no haga coincidir los puntos en los nombres de host. Por ejemplo, * .[Link] coincide con [Link]
.edu y [Link] pero no [Link] .
Direcciones IP Puede especificar una computadora por dirección IP, como en [Link] . Esta
El método es más difícil de interpretar para los humanos que los nombres de host, pero tiene una ventaja de seguridad.
porque no depende de un servidor del Sistema de nombres de dominio (DNS) para convertir el nombre de host a
una dirección IP. Si usa nombres de host, un atacante posiblemente podría obtener acceso a su
Servidor NFS asumiendo primero un servidor DNS.
Direcciones de red Puede especificar una red por rango de direcciones IP proporcionando la IP
dirección, una barra y una máscara de red. La máscara de red se puede especificar con puntos - decimal
forma o como el número de bits en la porción de red de la dirección. Por ejemplo,
[Link]/[Link] y [Link]/16 son equivalentes.
NIS Netgroups Aunque rara vez se utiliza hoy en día, el Sistema de información de red
(NIS) le permite especificar un grupo de red NIS precediendo su nombre con un signo arroba, como en
@tranquilidad .
Después de cada especificación de cliente hay una lista de opciones separadas por comas. Cuadro 8.6
resume la más común de estas opciones. Puede encontrar opciones adicionales en el
exporta la página del manual.
TABLA 8.6 Opciones comunes de exportación de NFS
Opción
Sentido
seguro o inseguro
Especifica que el cliente debe conectarse ( seguro ) o no necesita
conectar ( inseguro ) desde un puerto seguro (uno numerado a continuación
1024). El valor predeterminado es seguro .
rw o ro
Especifica el acceso de cliente de lectura / escritura ( rw ) o solo lectura ( ro ) a
la exportación. El valor predeterminado en los servidores NFS Linux recientes es ro ,
pero algunas versiones han usado rw . Recomiendo hacer tu
elección explícita para evitar la posibilidad de confusión.
sincronizar o asincronizar
La opción asincrónica puede mejorar el rendimiento a costa
de un riesgo de corrupción de datos en caso de un bloqueo del sistema.
En servidores NFS del núcleo hasta la versión 1.0.0 incluida,
async era el predeterminado, pero las versiones más recientes usan sync
como predeterminado.

Página 423
Las opciones disponibles en el servidor NFS han cambiado entre NFS
versiones del servidor en el pasado, y pueden cambiar en el futuro. Consultar el
página de manual para exportaciones para obtener detalles si tiene problemas con alguno de estos
opciones.
Opción
Sentido
esconderse o no esconderse
Normalmente o cuando utiliza la opción de ocultar , el servidor NFS

“Oculta” los sistemas de archivos montados dentro de un directorio exportado. por


Por ejemplo, si exporta / usr y si / usr / local es un
partición, los clientes no verán el contenido de / usr / local . Si tu
especificar nohide , los clientes verán archivos y subdirectorios en
/ usr / local . La opción nohide puede confundir a algunos clientes y
sólo funciona con especificaciones de host único (nombres de host
y direcciones IP). En lugar de utilizar nohide , puede exportar
cada partición individualmente y monte cada exportación en el
Clientes NFS.
root_squash o no_root_
squash
Por razones de seguridad, el servidor NFS normalmente se "aplasta"
acceso desde la raíz en el cliente, sustituyendo un privilegio bajo
ID de usuario para el ID de usuario root . Puedes otorgar el control remoto
raíz de usuario completa de la raíz de acceso al directorio exportado mediante el uso de
la opción no_root_squash . Esta opción es potencialmente muy
peligroso, aunque a veces es necesario, como cuando un
El cliente NFS se utiliza para realizar copias de seguridad de otros equipos.
all_squash o no_all_
squash
Esta opción especifica si aplicar "aplastamiento" a
accesos de usuarios ordinarios. Aplastando tales accesos
puede ser deseable como un medio de proporcionar una seguridad modesta
aumento en las exportaciones de solo lectura.
acl o no_acl
Normalmente, o cuando se especifica acl , NFS comparte ACL
información con clientes. Con no_acl , el servidor no funcionará
entonces, que puede cambiar quién puede acceder a los archivos y de qué manera;
sin embargo, el uso de no_acl requiere un kernel parcheado para admitir
esta opción.
fsid = [ num | root | uuid ]
Muchos sistemas de archivos tienen números de serie de identificación, algunos de
que toman la forma de un identificador único universal (UUID).
Normalmente, NFS comparte esta información con los clientes; sin embargo,
puede anular el identificador especificando un entero corto
( num ), especificando un UUID completo ( uuid ), o identificando el
filesystem como raíz de todos los exportados por el servidor NFS.
Configuración de un servidor NFS
381

Página 424
382
Capítulo 8 ■
Configurar servidores de archivos
Como ejemplo de un archivo NFS / etc / export , considere el Listado 8.2. Este archivo define
tres exportaciones: para / home , / opt y / export . La exportación de / home es bastante sencilla.
Los clientes de esta exportación ( helpman , kurtzmann e ida ) se definen mediante nombres de host
sin nombres de dominio. Todos estos clientes tienen acceso de lectura / escritura al recurso compartido. Todo excepto
kurtzmann debe conectarse desde un puerto seguro, pero a kurtzmann se le concede una excepción a
Esta regla. Quizás kurtzmann está ejecutando un sistema operativo que no es Unix que usa un puerto de numeración alta
para el acceso NFS. La exportación / opt está disponible para dos clientes, [Link] y
[Link] . El primero de estos clientes tiene acceso de lectura / escritura a la acción, y la raíz
el acceso desde este cliente no se aplasta. Puede utilizar esta configuración si el cliente
El administrador debe poder agregar software a la exportación / opt , pero esta configuración
es arriesgado: un problema de seguridad podría permitir que un delincuente cambie archivos en este
directorio sensible. Finalmente, el directorio / export se exporta a todas las computadoras en la información
.[Link] (pero no sus subdominios) y a todas las computadoras en [Link]/16
red. En el caso del dominio [Link] , todos los accesos de los usuarios están aplastados. En ambos
casos, ningún cliente puede escribir en la exportación.
Listado 8.2: Ejemplo / etc / exportación de archivos
/ ayudante a domicilio (rw) kurtzmann (rw, inseguro) ida (rw)
/ opt [Link] (rw, no_root_squash) [Link] (ro, nohide)
/ exportaciones * .[Link] (ro, all_squash) [Link]/16(ro)
Si realiza cambios en su archivo / etc / export , puede informar al servidor NFS sobre esos
cambios con el programa exportfs . Específicamente, escriba exportfs - r como root para actualizar el
lista del servidor de exportaciones disponibles para que coincida con el archivo de exportaciones . También puede utilizar esta utilidad
- u opción para hacer que una exportación específica no esté disponible o usar varias otras opciones para tener otras
efectos. La próxima sección "Ajuste de un servidor NFS en ejecución" describe más
opciones de exportfs .
Gestión de exportaciones sobre la marcha
Con frecuencia es necesario monitorear el funcionamiento de un servidor NFS e implementar
cambios en la configuración sin apagar el servidor. Existen varias herramientas para
este propósito: exportfs , showmount y nfsstat . El archivo / proc / mounts , descrito en
El capítulo 3 también puede resultar útil a este respecto.
Ajuste de un servidor NFS en ejecución
Además de / etc / export , NFS permite cambios no permanentes en sus exportaciones a través de
el comando exportfs . Usado sin ninguna opción, exportfs muestra una lista de NFS activos
exportaciones, similar al contenido de / etc / export , pero con una línea por exportación (por lo que si enumera
un directorio como exportado a tres sistemas o redes, aparecerán tres líneas en el
exportfs salida para ese directorio). Agregar opciones le permite modificar los

Página 425
Exportaciones NFS. La Tabla 8.7 resume las más importantes de estas opciones. La página de manual de
exportfs proporciona detalles sobre opciones más oscuras.
TABLA 8.7 Opciones comunes de exportfs
Opción
Explicación
- una
Lee / etc / exporta y exporta todos los directorios enumerados allí. (Cuando
se utiliza con - u , No exporta todos los directorios).
-r
Vuelve a exportar todos los directorios. Esto tiene el efecto de no exportar directorios.
que no aparecen en / etc / export .
- o opciones
Implementa las opciones especificadas , que toman la misma forma que las de
/ etc / export .
-u
Anula la exportación de uno o más directorios.
-f
Vacía y reconstruye la tabla de exportaciones.
-v
Agrega mensajes detallados a la salida del programa.
Cuando utilice exportfs para agregar o eliminar exportaciones, especifique un cliente y un directorio en
el formulario cliente : / export / directorio . No es necesario especificar ninguna de las opciones de
Tabla 8.7 al exportar un nuevo directorio, pero debe utilizar el - u opción de Unexport
un directorio. Por ejemplo, suponga que su servidor NFS está exportando / var / www a
[Link]/24 como un medio para permitir que los usuarios locales editen los archivos de un servidor web. Usted quiere
para mover este directorio a / var / apache / webfiles . Puede implementar estos cambios
escribiendo los siguientes comandos:
# exportfs -u [Link]/24:/var/www
# exportfs [Link]/24:/var/apache/webfiles
Sin embargo, este cambio será temporal; también debería editar / etc / export . De hecho, tu
podría preferir editar / etc / export primero y luego escribir exportfs - r , implementando así
sus cambios.
Identificación de exportaciones montadas
Una segunda herramienta para administrar NFS es showmount , que muestra información sobre NFS actual
actividad. Utilizada sin opciones, esta herramienta revela las direcciones IP de las computadoras que están
actualmente usando el servidor. La Tabla 8.8 resume las opciones más comunes de showmount .
Configuración de un servidor NFS
383

Página 426
384
Capítulo 8 ■
Configurar servidores de archivos
Puede usar showmount para mostrar información sobre el servidor que se ejecuta en cualquier computadora,
firewall de red y otras opciones de seguridad que lo permitan. Por defecto, el programa muestra
información en el servidor NFS de la computadora local, pero si agrega un nombre de host de la computadora, el
el resultado es información en esa computadora:
$ showmount -a central
Todos los puntos de montaje en central:
[Link]:/home
[Link]:/home/jill/photos
[Link]:/home
[Link]:/home/tuttle
En este ejemplo, [Link] está accediendo a / home / jill / photos (parte de la exportación de / home ),
y [Link] está accediendo a / home / tuttle (también parte de la exportación de / home ).
Medición de la actividad de NFS
La utilidad nfsstat proporciona estadísticas relacionadas con la actividad del servidor y del cliente NFS y RPC.
La tabla 8.9 resume algunas opciones importantes de nfsstat . Cabe destacar que
nfsstat proporciona información tanto del cliente como del servidor, por lo que puede usarla desde cualquier lado de
una conexión NFS, aunque, por supuesto, la información proporcionada en cada lado no será
idéntico.
TABLA 8.8 Opciones comunes de montaje en exhibición
Opción
Opción
abreviatura Explicación
- - todas
- una
Muestra las direcciones IP de los clientes y la
directorios que están usando.
- - directorios
-d
Muestra los directorios que comparte actualmente el
servidor, pero no las identidades de los clientes.
- - exportaciones
-e
Muestra las exportaciones disponibles actualmente (similar a la
salida predeterminada de exportfs , pero cada exportación utiliza solo
una línea de salida).
- - ayuda
-h
Presenta información de ayuda básica.
- - versión
-v
Imprime el número de versión del programa.
- - no - encabezados
Ninguna
Suprime los encabezados explicativos en la salida.

Página 427
Gran parte de la salida de nfsstat es críptica, pero puede obtener información útil de
las entradas que entiendes. Por ejemplo, columnas etiquetadas como leer , escribir , crear y mkdir
especifique los bytes leídos y escritos y el número de archivos y directorios creados, respectivamente.
La salida de la opción - m ( - - mounts ) puede ser particularmente útil en un cliente NFS, ya que
puede aprender cómo se monta una exportación. Esta información puede proporcionar pistas sobre problemas,
como si un usuario no puede crear nuevos archivos. (Por ejemplo, ¿el recurso compartido es de solo lectura?)
Comprobación de la actividad de RPC
La utilidad rpcinfo proporciona acceso a datos RPC. Este programa puede ser útil para
identificar qué servidores habilitados para RPC se están ejecutando en una computadora o red. Lo mas
La opción útil es probablemente - p , que debería incluir líneas como las siguientes, que
denota las versiones 2 y 3 de NFS que se ejecutan tanto en TCP como en UDP:
$ rpcinfo -p
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
TABLA 8.9 Opciones comunes de nfsstat
Opción corta
nombre
Opción larga
nombre
Sentido
-s
- - servidor
Muestra solo estadísticas del servidor.
-C
- - cliente
Muestra solo estadísticas de clientes.
-n
- - nfs
Muestra solo estadísticas de NFS.
-r
- - rpc
Muestra solo estadísticas de RPC.
-2,-3o-4
N/A
Muestra estadísticas sobre la versión de NFS especificada.
-m
- - montajes
Muestra información sobre exportaciones de NFS montadas, incluidas
sus nombres y opciones de montaje actuales (si
especificado implícita o explícitamente).
- o facilidad
N/A
Muestra información sobre la instalación especificada , que
debe ser uno de nfs , rpc , net , fh , rc o all .
-Z
- - dormir
Toma una instantánea de las estadísticas, pausas y
luego muestra las diferencias entre la instantánea y
el estado del sistema cuando recibe una señal SIGINT
(como cuando el usuario presiona Ctrl + C).
Configuración de un servidor NFS
385

Página 428
386
Capítulo 8 ■
Configurar servidores de archivos
La salida adicional se ha eliminado de esta salida de ejemplo por brevedad. Cuadro 8.10
resume otras opciones de rpcinfo . Algunos de estos son bastante oscuros.
TABLA 8.10 Opciones comunes de rpcinfo
Nombre de la opción
Sentido
- p [ anfitrión ]
Sondea el host (o la computadora local) y muestra todos los RPC registrados
programas
- tu anfitrión
programa
Usando UDP, le dice al programa en el host que ejecute el procedimiento 0 e informa el
resultados
- t anfitrión
programa
Usando TCP, le dice al programa en el host que ejecute el procedimiento 0 e informa el
resultados
- n portnum
Usa portnum como el número de puerto (usado con las opciones - u y - t )
- programa b
versión
Transmite a la red local una solicitud para ejecutar el procedimiento 0 utilizando el
programa y versión especificados e informa el resultado
- programa d
versión
Permite al superusuario eliminar el registro del programa especificado
y versión en la computadora local
EJERCICIO 8.1
Administrar un servidor NFS
Esta actividad ilustra cómo administrar un servidor NFS. Este ejercicio asume que tienes
acceso a una sola computadora Linux, por lo que utiliza una computadora como cliente y servidor;
sin embargo, puede dividir las funciones en dos equipos si tiene el acceso adecuado. A
Realice este ejercicio, siga estos pasos:
1. Inicie sesión en su computadora Linux. Necesitará acceso de root para realizar algunos de estos
acciones, por lo que es posible que desee iniciar sesión como root o usar su para adquirir privilegios de root en una
ventana.
2. Utilice las herramientas de administración de paquetes de su distribución para instalar el servidor y el cliente NFS
programas. Los nombres de los paquetes varían de una distribución a otra; por ejemplo, en
Ubuntu, debe instalar los paquetes de servidor nfs - common y nfs - kernel - , pero
en Fedora, debe instalar el paquete nfs - utils .
3. Si aún no se está ejecutando, inicie su servidor NFS. Por lo general, esto se puede hacer escribiendo
/etc/init.d/nfs start o /etc/init.d/nfs - kernel - server start como root .

Página 429
4. Escriba rpcinfo - p . Verá una lista de servidores habilitados para RPC que se están ejecutando. Esta lista
debe incluir entradas para su servidor NFS. Tenga en cuenta qué versiones son compatibles y
ya sean compatibles con TCP, UDP o ambos.
5. Cargue / etc / export en un editor de texto.
6. Cree una exportación escribiendo su entrada en su editor de texto. Por ejemplo, puede crear un
exportar para compartir el directorio / home :
/ inicio [Link] (rw)
Si tiene acceso a una segunda computadora para usar como cliente, puede sustituir su
nombre de host o dirección IP para [Link] en este ejemplo.
7.
En su cliente, intente montar el recurso compartido escribiendo mount localhost: / home / mnt como root .
(Cambie localhost , / home y / mnt según sea necesario para el servidor que está utilizando, la exportación
que ha definido y el punto de montaje que desea utilizar localmente). Este intento fallará.
8. Escriba exportfs - r como root para decirle al servidor que vuelva a cargar / etc / export .
9. Repita el paso # 7. Esta vez debería tener éxito. Verifique que / mnt proporcione acceso a los archivos
en el directorio exportado en el servidor.
10. Escriba showmount - a para ver qué clientes están usando el servidor, así como qué directorios
están accediendo. Debería ver su único recurso compartido exportado asociado con el de su cliente.
Dirección IP. Si su computadora se había configurado previamente para el servicio NFS, es posible que vea
exportaciones y clientes adicionales, también.
11. Escriba nfsstat - s para ver estadísticas sobre las solicitudes que ha manejado el servidor NFS.
12. Utilice el cliente para realizar algunas acciones inofensivas en la exportación montada, como
leer un archivo de texto.
13. Repita el paso 11. Compare las dos salidas de nfsstat . Deberías ver que algunos de
los valores han cambiado. Por ejemplo, si lee un archivo de texto, el valor de lectura debe
incrementar.
14. Escriba umount / mnt como root en el cliente (cambiando / mnt , si es necesario) para desmontar el
directorio exportado.
15. En el editor que está abierto en / etc / export , elimine la entrada que creó.
16. Escriba exportfs - u [Link]:/home como root para decirle al servidor que deje de servir el / home
exportar. (Cambie la dirección IP o el nombre de host y exporte el directorio según sea necesario para su
system.) Tenga en cuenta que escribir exportfs - r funcionaría también en este punto; este ejercicio llama
para que use - u para ver cómo funciona.
Por supuesto, puede experimentar más con las utilidades de NFS, quizás antes de realizar
pasos 15 y 16. Si la computadora no debe ejecutar un servidor NFS, sería prudente
desinstálelo usando su administrador de paquetes cuando haya terminado con este ejercicio.
Configuración de un servidor NFS
387

Página 430
388
Capítulo 8 ■
Configurar servidores de archivos
Mejora de la seguridad de NFS
La mayoría de los servidores utilizan contraseñas o alguna otra herramienta de autenticación para controlar el acceso a
archivos. NFS funciona de manera diferente; un servidor NFS confía en el sistema cliente para controlar el acceso a los archivos.
Una vez que se exporta un directorio a través de NFS, cualquier computadora cliente que esté autorizada para acceder
El directorio en / etc / export puede hacerlo de cualquier forma que permita la definición de / etc / export .
La idea es que la computadora cliente tenga una base de usuarios que sea compatible con el usuario
base en el servidor y que la computadora cliente es confiable.
Estas suposiciones no eran irracionales cuando se creó NFS, pero en la actualidad
entorno informático, son un poco arriesgados. Alguien con una computadora portátil y
El hardware de red inalámbrica puede acceder a su servidor y hacerse pasar por otro
computadora si usa una red inalámbrica. Incluso con una red cableada, un sistema comprometido
o el acceso físico puede permitir que un atacante pretenda ser un sistema confiable. Un atacante puede
controlar la base de datos del usuario en el equipo atacante o utilizar un programa cliente NFS personalizado
que no sigue las reglas de seguridad habituales, evitando así la intención de la seguridad NFS
esquema. Por lo tanto, debe tener cuidado con la seguridad de NFS. No agregue una computadora a
/ etc / export a menos que sea realmente necesario, y no otorgue a los clientes acceso de lectura / escritura a menos que
realmente lo necesitan. La opción no_root_squash es particularmente arriesgada. Es posible que también quieras
utilizar direcciones IP en lugar de nombres de host para especificar computadoras en / etc / export ; esta
La práctica hace que hacerse pasar por un sistema confiable sea un poco más difícil.
Una precaución de seguridad adicional es proteger el asignador de puertos o los puertos del servidor NFS.
utilizando reglas de firewall (como se describe en el Capítulo 7) o envoltorios TCP (como se describe en el Capítulo 10,
"Seguridad"). Cualquiera de los enfoques evitará que equipos no autorizados accedan al NFS
servidor. (Lo mismo puede y debe hacerse con Samba y otros servidores, por supuesto).
Usar Linux como cliente NFS
El cliente NFS de Linux es, esencialmente, el propio kernel de Linux. El kernel trata a otro
Exportación NFS de la computadora como un sistema de archivos que se puede montar a través del comando mount o
una entrada en / etc / fstab . El Capítulo 3 describe estas herramientas en detalle. Las reglas de uso
Las exportaciones de NFS son similares a las del uso de sistemas de archivos normales en particiones, aunque
algunos detalles difieren. Para montar una exportación NFS, especifique el tipo de sistema de archivos nfs . (Utilizar
nfs4 para forzar el uso de NFSv4, si tanto el cliente como el servidor lo admiten.) En algunos casos, Linux
puede determinar a partir del contexto que quiere decir nfs , por lo que a veces puede omitir esta opción.
En lugar de especificar un nombre de archivo de dispositivo Linux, especifica el host y el nombre de exportación. (Por
protección contra un servidor DNS comprometido o, como una cuestión de preferencia, puede utilizar un
Dirección IP en lugar de un nombre de host). Por ejemplo, para montar / home desde [Link]
en / mnt / morehome , puede escribir el siguiente comando:
# mount -t nfs [Link]:/home / mnt / morehome
Si no sabe qué exportaciones pone a disposición un servidor, puede escribir
showmount - e nombre del servidor . El resultado es una lista de exportaciones disponibles en
servername , junto con los clientes que pueden conectarse a cada exportación.

Página 431
En el caso del ejemplo anterior, puede omitir la especificación - t nfs , y si su
el cliente está en [Link] o está configurado para buscar ese dominio a través de una línea de búsqueda en / etc /
[Link] , puede especificar la exportación como central: / home en lugar de [Link]
.edu: / hogar . Si desea montar una exportación cada vez que la computadora arranca o da
usuarios el poder de montar una exportación, puede hacerlo agregando una entrada a / etc / fstab . por
ejemplo, la siguiente línea monta esta exportación en el momento del arranque:
[Link]:/home / mnt / morehome nfs por defecto 0 0
También puede agregar muchas opciones de montaje estándar; por ejemplo, especificando una opción
of ro provoca un montaje de solo lectura, incluso si el servidor le ha otorgado acceso de lectura / escritura a su sistema.
(No puede usar rw para obtener acceso de lectura / escritura si el servidor le brinda acceso de solo lectura,
aunque.) También hay algunas opciones de montaje específicas de NFS. El más importante de estos puede
sea duro y suave . Normalmente, o si especifica explícitamente hard , un programa que intenta acceder
un servidor NFS se bloqueará (dejará de responder mientras espera una entrada) si el servidor no lo hace
responder. Cuando el servidor esté disponible, el programa continuará donde lo dejó.
Sin embargo, si especifica soft , el cliente NFS del kernel eventualmente agotará el tiempo de espera y entregará un
mensaje de error al cliente. Si la red o el servidor NFS es escamosa, es posible que prefiera suave ,
porque podrá matar mejor los procesos que se cuelgan debido a la imposibilidad de acceder a NFS
exportaciones. Sin embargo, si su red funciona normalmente, el comportamiento preferido es duro ,
porque especificar soft puede causar problemas ocasionales en una red con buen comportamiento.
Otra opción de montaje específica de NFS que puede usar es proto = transport , donde
el transporte es tcp o udp . (Alternativamente, puede usar tcp o udp como opciones, sin
el proto = parte.) NFS era originalmente un protocolo basado en UDP, que funciona bien en
redes locales. El uso de TCP agrega características que pueden mejorar la confiabilidad si la red está
poco confiable, pero estas características también agregan una sobrecarga que tal vez prefiera evitar. Es posible que desee
para experimentar con ambas configuraciones para ver cuál funciona mejor en su red.
Una vez que se monta una exportación, todos los usuarios normales pueden acceder a esa exportación, dentro de los límites
impuesto por la propiedad y los permisos del archivo. Una posible advertencia es que NFS usa ID de usuario
(UID) y números de identificación de grupo (GID) en el manejo de la propiedad y los permisos. Si los usuarios tienen
cuentas tanto en el cliente como en el servidor, los UID y GID de los usuarios en esos
dos sistemas deben coincidir o los usuarios no podrán acceder a sus propios archivos. Un similar
Puede surgir un problema si los usuarios tienen cuentas en dos o más clientes que acceden al mismo servidor.
Se han implementado varias soluciones para solucionar este problema, algunas de las cuales no están actualizadas.
Tres enfoques son los mejores hoy:
Sincronizar manualmente los nombres de usuario En una red pequeña con pocos usuarios, puede
mantener sus cuentas para que el mismo usuario tenga el mismo UID en todos los sistemas, y
lo mismo ocurre con los valores GID. Este enfoque se vuelve bastante tedioso en redes más grandes con
muchos usuarios, sin embargo.
Usar un mapeador de ID Puede usar el servidor [Link] , descrito anteriormente, que puede
mapear automáticamente nombres de usuario y valores UID. Este servidor debe ejecutarse tanto en NFS
servidor y el cliente NFS.
Configuración de un servidor NFS
389

Página 432
390
Capítulo 8 ■
Configurar servidores de archivos
Utilice un servidor de inicio de sesión central Si utiliza LDAP o algún otro servidor de inicio de sesión centralizado,
El problema puede desaparecer, ya que los usuarios administrados por el servidor de inicio de sesión tendrán el mismo UID
valores en todos los equipos de la red.
Tenga en cuenta que la sincronización de UID no es necesaria para fundamentalmente públicos de solo lectura
exportaciones, como exportaciones de directorios que contienen software o plantillas de solo lectura compartidas,
a menos que algunos usuarios tengan restringido el acceso a estos archivos. Además, si un servidor NFS
contiene directorios de inicio, pero los usuarios no necesitan iniciar sesión en esa computadora directamente, no
necesita sincronizar UID y GID porque los usuarios no necesitan cuentas en el servidor.
(Todavía necesita sincronizar los UID y GID en varios clientes en este caso,
aunque.) Si el servidor no tiene cuentas para sus usuarios NFS, asegúrese de que cualquier directorio
que los usuarios deberían poder escribir tiene permisos para permitir la escritura mundial, o en
menos escrito por el grupo apropiado, que en este caso debe ser mapeado apropiadamente.

Configuración de un servidor FTP


FTP ha sido durante mucho tiempo un servidor popular. El protocolo tiene algunas peculiaridades, pero todos los sistemas operativos
que tiene una pila TCP / IP seria tiene un cliente FTP. FTP se utiliza normalmente en uno o ambos
de dos formas:
Los usuarios deben autenticarse en el servidor proporcionando un nombre de usuario y
contraseña. Luego pueden leer, y a menudo escribir, archivos en su directorio personal o en
áreas comunes en la computadora.
Los usuarios proporcionan un nombre de usuario anónimo y cualquier contraseña (convencionalmente su correo electrónico
direcciones). Luego pueden leer, pero generalmente no escribir, datos almacenados en directorios públicos.
Este acceso FTP anónimo es un medio popular de entregar archivos públicos como
actualizaciones de software, archivos multimedia, etc.
Ambas configuraciones comparten muchas características, pero ciertos detalles difieren. ¿Cómo configuraste un
El servidor FTP para usar cualquier sistema depende del servidor que elija. Varios de estos servidores
existen para Linux. La siguiente sección describe sus opciones y luego cubre dos FTP populares
servidores, Pure - FTPd y vsftpd , con más detalle.
Uno de los principales problemas de FTP cuando se utiliza para el acceso de usuarios autenticados es
que FTP envía todos los datos, incluidas las contraseñas, de forma no cifrada. Esta
hecho significa que los malhechores en la red del servidor, la red del cliente,
o las redes que intervienen pueden utilizar rastreadores de paquetes para robar
contraseñas. Este problema no es tanto para el acceso anónimo,
que se supone que es público.
Aunque el acceso anónimo a menudo es necesario en servidores FTP públicos, debe ser
Se evita si solo los usuarios autenticados deben tener acceso al servidor. Además, anónimo
es mejor restringir el acceso únicamente a las descargas; si un sitio permite cargas anónimas, entonces

Página 433
cualquier persona en Internet puede cargar archivos en su servidor, incluido el contenido ilegal. Si otros
puede recuperar esos archivos de forma anónima, entonces su sitio puede convertirse rápidamente en un
sitio de alojamiento para piratería.
Si realmente necesita habilitar cargas anónimas (por ejemplo, para permitir que los clientes envíen
archivos en apoyo de informes de errores), puede minimizar los riesgos dando la carga anónima
permisos de directorio de 733 ( rwx - wx - wx ) o 773 ( rwxrwx - wx ) y propiedad de root . Si
usa permisos 773, otorga propiedad de grupo a un grupo que contiene usuarios que deberían
poder leer el directorio, pero asegúrese de que la cuenta utilizada para el acceso anónimo
¡El servidor FTP no está en este grupo! Esta configuración permitirá a los usuarios anónimos cargar
archivos a este directorio pero no descargar archivos de él. Si usa un directorio existente, escriba
chmod - R u - r / ruta / a / entrante / dir para asegurarse de que ningún archivo dentro de él se pueda leer al azar
usuarios antes de poner esta configuración en su lugar.
Seleccionar un servidor FTP
FTP es un protocolo antiguo y, a lo largo de los años, han surgido numerosas implementaciones.
Estos servidores varían en muchos detalles; sin embargo, todos cumplen el mismo protocolo, y todos
se parecen mucho a sus usuarios. Las opciones de servidor FTP para Linux incluyen lo siguiente:
Pure - FTPd Este servidor, con sede en [Link] , es un servidor FTP
que enfatiza la seguridad. Muchas distribuciones se envían con él, generalmente bajo el nombre del paquete.
puro - ftpd .
vsftpd Este servidor tiene como objetivo sobresalir en seguridad, estabilidad y velocidad. Al hacerlo, sus desarrolladores
han optado por evitar algunas de las funciones más avanzadas de servidores como ProFTPd. Si
no necesita esas características, esta compensación puede ser más que aceptable. Puedes aprender
más en su sitio web, [Link] . Está disponible con un número creciente
de distribuciones de Linux, normalmente con el nombre de paquete vsftpd .
ProFTPd Este servidor, con sede en [Link] , es uno de los más populares
de los servidores FTP muy complejos. Se envía con la mayoría de las principales distribuciones de Linux. Sus
El archivo de configuración se basa en el de Apache, y el servidor admite muchos
caracteristicas. Por tanto, es mucho más difícil de configurar.
Esta lista de servidores FTP está lejos de ser completa. Gentoo Linux, que tiene una
repositorio de software bastante completo, tiene al menos siete servidores FTP distintos.
Hay disponibles muchos más servidores muy poco conocidos. Si tiene necesidades especiales,
es posible que desee investigar algunas de estas alternativas.
Debido a que FTP puede potencialmente proporcionar a los usuarios un acceso sustancial al sistema, el
capacidad de leer o escribir cualquier archivo, dentro de los límites impuestos por la propiedad de archivos de Linux y
permisos: los servidores FTP son inusualmente sensibles desde el punto de vista de la seguridad. Como resultado,
las páginas web de muchos servidores FTP enfatizan la atención de sus desarrolladores a la seguridad. Más
Configuración de un servidor FTP
391

Página 434
392
Capítulo 8 ■
Configurar servidores de archivos
Los servidores FTP brindan soporte explícito para encerrarse en cárceles chroot , como se describe
con referencia a los servidores DNS en el Capítulo 6, “Configuración del servidor DNS. "
Para un sitio FTP pequeño, es probable que cualquiera de los servidores de la lista anterior funcione bien.
Debido a que ambos se envían con múltiples distribuciones de Linux, las siguientes dos secciones se enfocan en
Puro: FTPd y vsftpd .
Comprensión de los conceptos básicos de FTP
FTP es un protocolo antiguo y peculiar, y presenta un par de trampas que son únicas
a FTP. Se trata en gran parte de problemas del lado del cliente, por lo que los usuarios deben ser conscientes de ellos; sin embargo,
Si configura un firewall, como se describe en el Capítulo 7, es posible que deba tomar el primero de estos
cuestiones en cuenta.
La primera peculiaridad de FTP está en la forma en que administra los puertos. Dos puertos (puertos TCP 20 y 21)
están registrados en FTP. El puerto 20 es el puerto de datos, que se utiliza para transferencias de datos; y puerto
21 es el puerto de comando, que se utiliza para emitir comandos. El gran problema con
esta configuración es que en el modo activo FTP convencional , el cliente inicia el
conexión al puerto de comando, y luego el servidor inicia una conexión inversa a
el cliente desde el puerto de comando del servidor. Esta conexión de servidor a cliente está bloqueada por
algunos firewalls, por lo que FTP a menudo falla en firewalls que no están configurados explícitamente para permitir
esta conexión. Una solución del lado del cliente para este problema es utilizar el modo pasivo de FTP
(escribiendo pasivo en el programa ftp o seleccionando opciones equivalentes en GUI u otro
Clientes FTP). En modo pasivo, el cliente FTP inicia ambas conexiones, lo que supera
el problema de los cortafuegos que bloquean todas las conexiones entrantes. El modo pasivo usa un
puerto no privilegiado en el servidor para sus transferencias de datos, sin embargo, que a veces puede ejecutarse
conflicto de cortafuegos. Por lo tanto, es posible que deba probar los modos activo y pasivo para determinar
cuál funciona mejor. Debería consultar la documentación de su cliente FTP para saber qué
modo que utiliza por defecto.
La segunda peculiaridad de FTP se relaciona con el modo de transferencia. Los clientes FTP suelen utilizar ASCII de forma
predeterminada
(texto plano) modo de transferencia, en el que los archivos se transfieren de tal manera que se
alterar la codificación de caracteres para tener en cuenta las diferentes formas en que los diferentes sistemas operativos almacenan
archivos de texto sin formato. (Linux / Unix, Windows y el Mac OS original usaban una línea diferente:
convenciones de terminación, y algunos sistemas aún más exóticos utilizan métodos de codificación que no son ASCII).
El uso del modo ASCII funciona bien para archivos de texto sin formato, pero este modo casi siempre corrompe
archivos binarios, como tarballs, archivos gráficos, documentos de procesamiento de texto, etc. Tú
puede usar las opciones ascii y binarias en ftp , u opciones similares en otros clientes FTP, para configurar
el modo de transferencia. En caso de duda, utilice el modo binario; la mayoría de los editores de texto actuales pueden manejar
cualquier
de los tipos de terminación de línea común, por lo que recuperar un archivo de texto en el formato incorrecto causará
problemas mínimos o nulos. Algunos archivos de configuración de Linux deben usar terminaciones de línea al estilo Unix,
sin embargo, es posible que deba prestar atención a este detalle si transfiere dichos archivos.
También debe conocer la forma en que se inicia el servidor FTP. Algunos FTP
los servidores favorecen el lanzamiento a través de SysV, Upstart o scripts de inicio locales; pero otros funcionan
mejor cuando se inicia a través de un super servidor, como inetd o xinetd . Las posibilidades son tu
El paquete de distribución incluye los archivos de configuración y los scripts de inicio necesarios, pero

Página 435
Es posible que deba reconfigurar su sistema para iniciar el servidor en su nivel de ejecución. (A veces el
La configuración predeterminada es no iniciar el servidor, como medida de seguridad en caso de que esté instalado.
accidentalmente.)
Configuración de Pure - FTPd
El servidor Pure-FTPd está diseñado para ser controlado principalmente a través de la línea de comandos.
argumentos en lugar de un archivo de configuración. Por lo tanto, si desea ajustar sus opciones principales,
debe rastrear el archivo específico de distribución en el que se almacenan estas opciones y
modificarlo. Por ejemplo, en Ubuntu puede editar / etc / default / pure - ftpd - common y archivos
en / etc / pure - ftpd / conf , en Fedora puede editar / etc / pure - ftpd / pure - [Link] , y en
Gentoo puede editar /etc/conf.d/pure - ftpd . La Tabla 8.11 resume los más importantes
Pure: opciones de FTPd; sin embargo, hay muchos más disponibles; consulte la página de manual del servidor
para detalles.
TABLA 8.11 Opciones comunes de ftpd puro
Opción corta
nombre
Opción larga
nombre
Sentido
-4
- - ipv4only
Acepta solo conexiones IPv4.
-6
- - ipv6only
Acepta solo conexiones IPv6.
- un gid
- - trustgid gid
Causas usuarios en el grupo especificado a no ser
chrooted a sus directorios personales; otros (excepto
para la raíz ) están chrootados. Sin esta opción, solo
el acceso anónimo está chrooteado.
- UNA
- - chrooteveryone
Hace que todos los accesos excepto el root sean
chrooted a sus directorios personales.
-B
- - demonizar
Inicia el servidor en segundo plano.
- c num
- - maxclientsnumber
num
Acepta como máximo num cliente simultáneo
conexiones. El valor predeterminado es 50.
- C num
- - maxclientsperip
num
Acepta como máximo num conexiones simultáneas
por dirección IP de cliente. Esta opción solo funciona en
modo autónomo (los super servidores proporcionan similares
funcionalidad).
-e
- - solo anónimo
Admite solo acceso anónimo.
Configuración de un servidor FTP
393

Página 436
394
Capítulo 8 ■
Configurar servidores de archivos
Cuando se usa para acceso anónimo, Pure - FTPd requiere que la computadora tenga una cuenta
llamado ftp , y permite a los usuarios anónimos descargar desde y (si está configurado a través de
opciones de línea de comandos) cargar en el directorio anónimo. Scripts incluidos con pure - ftpd
paquete puede o no configurar la cuenta necesaria y el directorio de inicio, por lo que debe
comprobar su presencia. Además, los paquetes Pure - FTPd de algunas distribuciones no permiten
acceso por defecto; por lo tanto, es posible que deba rastrear su distribución: configuración específica
archivos y modificarlos apropiadamente. Debido a que Pure - FTPd no tiene un archivo de configuración estándar, el
Los detalles de esta tarea variarán mucho de una distribución a otra.
Configuración de vsftpd
Un segundo servidor FTP que es popular en los sistemas Linux modernos es vsftpd . Normalmente, vsftpd
se ejecuta desde un super servidor; sin embargo, se puede ejecutar desde un SysV o un script de inicio local si
preferir. El archivo de configuración de vsftpd es /etc/[Link] o /etc/vsftpd/[Link] .
Este archivo contiene líneas de comentarios, que comienzan con marcas de almohadilla ( # ), y líneas de directiva que
tomar esta forma:
opción = valor
No debe haber espacios perdidos alrededor del signo igual en las directivas vsftpd . Cuadro 8.12
resume algunas de las directivas vsftpd más importantes . Esta tabla no cubre todos los
las directivas disponibles; comprobar el hombre página para [Link] para obtener información sobre adicional
directivas.
Opción corta
nombre
Opción larga
nombre
Sentido
-E
- - noanónimo
Solo admite usuarios no anónimos (usuario normal)
acceso.
- yo
- - anónimo
no puedo cargar
Desactiva el soporte de carga para usuarios anónimos.
-M
- - anónimo
cancreatirs
Permite a los usuarios anónimos crear directorios.
-N
- - natmode
Utiliza el modo activo por defecto; útil detrás de algunos
Enrutadores NAT.
- u uid
- - minuid UID
No permite el acceso a usuarios con números UID
debajo de uid .
TABLA 8.11 Opciones comunes de ftpd puro (continuación)

Página 437
TABLA 8.12 Directivas [Link] importantes
Directiva
Valor
Sentido
escucha
SI o NO
En caso afirmativo , vsftpd se une al puerto FTP para escuchar
para conexiones IPv4. Establezca este valor en SÍ si vsftpd
se ejecuta desde un script de inicio local o SysV; dejalo
en su valor predeterminado ( NO ) si se ejecuta desde un super
servidor.
listen_ipv6
SI o NO
Esta opción funciona de manera muy similar a escuchar , pero se aplica a
Conexiones IPv6 en lugar de conexiones IPv4.
ftpd_banner
Cuerda
Establece un mensaje de bienvenida que aparece en el
Programa cliente FTP al conectarse.
nopriv_user
Nombre de usuario
El nombre de usuario que vsftpd usa para personas sin privilegios.
operaciones.
ftp_username
Nombre de usuario
El nombre de usuario que vsftpd usa para anónimos
acceso. El predeterminado es ftp .
local_enable
SI o NO
Si se aceptan inicios de sesión de usuarios locales autenticados.
anonymous_enable
SI o NO
Si acepta inicios de sesión anónimos.
anon_root
Directorio
nombre
Establece el directorio que se utilizará como directorio raíz.
para acceso anónimo. Este directorio normalmente debe
no se puede escribir para el usuario anónimo, a menos que
anon_upload_enable es SÍ . El predeterminado es el
directorio de inicio del usuario anónimo , como se especifica en
/ etc / passwd .
chroot_local_user
SI o NO
Le dice a vsftpd si debe usar chroot al aceptar
inicios de sesión de usuarios locales.
userlist_enable
SI o NO
Si SÍ , vsftpd comprueba el archivo especificado por userlist_
archivo y niega los inicios de sesión a estos usuarios antes de preguntar
para una contraseña.
write_enable
SI o NO
Otorga o niega la capacidad de escribir archivos, es decir, para
usuarios para cargar archivos y descargarlos.
anon_upload_
habilitar
SI o NO
Otorga o niega a usuarios anónimos la capacidad de
subir archivos. En caso afirmativo , write_enable también debe ser YES .
Configuración de un servidor FTP
395

Página 438
396
Capítulo 8 ■
Configurar servidores de archivos
El archivo de configuración de vsftpd predeterminado a menudo admite inicios de sesión de usuarios locales autenticados
e inicios de sesión anónimos. Normalmente, vsftpd realiza un chroot para usuarios anónimos, pero
no lo hace para usuarios locales autenticados. Si desea verificar o cambiar estas funciones,
compruebe el archivo de configuración para las siguientes líneas y cámbielas según sea necesario:
anonymous_enable = SÍ
local_enable = SÍ
También puede cambiar opciones adicionales relacionadas con estos, como la ubicación del
directorio raíz anónimo ( anon_root ) y si hacer chroot en usuarios autenticados
directorios de inicio cuando inician sesión ( chroot_local_user ).

Resumen
Los servidores de archivos son un componente crítico de muchas redes y Linux admite una amplia variedad
de software para manejar esta tarea. Este capítulo describe los servidores que se utilizan para manejar tres
Protocolos. El servidor Samba maneja el protocolo SMB / CIFS, que es el dominante
Protocolo de intercambio de archivos en redes Windows. Samba tiene que "traducir" ciertas características a
hace felices a los clientes de Windows, y hace este trabajo muy bien. Para satisfacer Linux y Unix
clientes, Samba agrega más funciones, pero para estos clientes, el protocolo NFS es generalmente
una mejor elección. A diferencia de Samba, NFS puede presentar una visión más veraz de los
sistema de archivos a sus clientes, lo que agiliza y simplifica el proceso de intercambio de archivos. El final
El protocolo descrito en este capítulo es FTP, que está destinado a ser utilizado por clientes dedicados
programas, en lugar de sistemas operativos que tratan al servidor como si fuera un sistema de archivos para montar.
Hay bastantes servidores FTP disponibles para Linux, pero este capítulo cubre solo dos de los
los más populares, Pure - FTPd y vsftpd . Ambos servidores ofrecen una variedad de opciones
para habilitar inicios de sesión por nombre de usuario y contraseña o para usuarios anónimos. Porque FTP es
se utiliza a menudo para entregar archivos en Internet en general (a diferencia del uso local que es más
común para SMB / CIFS y NFS), la seguridad FTP es particularmente importante, y debe
asegúrese de configurar su servidor FTP de la manera más segura posible.

Examen esencial
Explique la diferencia entre seguridad a nivel de usuario y de recurso compartido en Samba. Compartir - nivel
seguridad emula el antiguo modelo de seguridad de Windows 9 x / Me, en el que las contraseñas son
asociado con acciones en lugar de cuentas. La seguridad a nivel de usuario emplea un modelo de seguridad
similar al de Linux, en el que las cuentas tienen contraseñas y los clientes deben enviar un
nombre de usuario al servidor, junto con la contraseña.
Describe los dos demonios principales de Samba. El demonio nmbd maneja la resolución de nombres y
Tareas de soporte y antecedentes similares para un servidor Samba. El demonio smbd maneja el
la mayor parte del trabajo de intercambio de archivos e impresoras de Samba. Ambos demonios son necesarios para una completa
instalación funcional de Samba.

Página 439
Resuma dos métodos para usar una computadora Linux como cliente SMB / CIFS. los
El programa smbclient se conecta a un servidor SMB / CIFS y presenta una interfaz de usuario similar
al del programa ftp en modo texto . Los usuarios pueden transferir archivos, eliminar archivos, renombrar archivos y
pronto. El comando de montaje de Linux , junto con el soporte adecuado del sistema de archivos del kernel
y programas de ayuda, habilita al administrador del sistema (o usuarios, si corresponde / etc /
existen entradas fstab ) para montar recursos compartidos SMB / CIFS como si fueran sistemas de archivos locales. Los usuarios
pueden
luego haga cualquier cosa que puedan hacer con los archivos almacenados en un sistema de archivos local, utilizando
archivo: herramientas de mantenimiento ( cp , mv , etc.) o aplicaciones.
Describe la estructura del archivo [Link] . El archivo de configuración de Samba, [Link] , está dividido en
secciones, cada una de las cuales comienza con un nombre entre corchetes. La sección [global] establece global
opciones, y la mayoría de las secciones siguientes establecen opciones para un solo archivo o recurso compartido de impresora. (Las
[casas]
y [impresoras] comparten definiciones, ambos crean múltiples recursos compartidos en función de todos los usuarios y todas las
impresoras,
respectivamente.) Dentro de cada sección, las opciones toman la forma de opción
Valor , donde la opción es un
el nombre de la opción y el valor es su valor. Todas las opciones y la mayoría de los valores no distinguen entre mayúsculas y
minúsculas.
Describe la estructura del archivo / etc / export . El archivo de configuración principal del servidor NFS, / etc /
exportaciones , consta de una serie de líneas, una por exportación. Cada línea comienza con el directorio que está
exportar y comienza con una serie de definiciones de servidor o grupo de servidores delimitadas por espacios.
Cada una de estas definiciones consta de un nombre de host, nombre de red, dirección IP o dirección IP
rango seguido de una serie de opciones entre paréntesis. Estas opciones están separadas por comas.
Explique por qué las restricciones de acceso adecuadas son tan importantes para NFS. A diferencia de muchos servidores,
NFS no requiere contraseña para ingresar. Por lo tanto, un servidor NFS que no restringe el acceso
basado en direcciones IP puede ser fácilmente invadido por cualquier persona con acceso físico al local
red (o por cualquier persona en Internet, si el servidor está expuesto a ella). Por esta razón,
especificar clientes de forma limitada en / etc / export es muy importante para NFS.
Resuma cómo se pueden modificar las exportaciones NFS sin reiniciar el servidor. los
El comando exportfs puede modificar las exportaciones de un servidor NFS sobre la marcha, permitiendo cambios
sin modificar / etc / export o reiniciar el servidor. La opción - o le permite configurar
nuevas opciones usando el mismo formato que las entradas en / etc / export ; - u no exporta un solo
directorio; -r vuelve a implementar el archivo / etc / export ; y así.
Describa cómo se pueden montar las exportaciones NFS en un cliente. Los clientes NFS utilizan el montaje
comando o entradas de / etc / fstab como lo harían para los sistemas de archivos locales. Debieras
use el código de tipo de sistema de archivos de nfs (o nfs4 para servidores NFSv4), y en lugar de un dispositivo
nombre de archivo, usted especifica el servidor y exporta en el formulario servidor : / export .
Explique la diferencia entre FTP activo y pasivo. FTP tradicionalmente emplea activos
modo, en el que el cliente inicia una conexión con el servidor y el servidor luego implementa
una conexión inversa con el cliente. Este enfoque de conexión inusual causa problemas con
algunos cortafuegos. En modo FTP pasivo, el cliente inicia dos conexiones independientes con el
servidor, que funciona mejor con algunos cortafuegos. (Algunos clientes ahora usan el modo pasivo de forma predeterminada).
Nombre algunos de los servidores FTP más populares para Linux. The Pure - servidores FTPd y vsftpd
Ambos proporcionan funciones de servidor FTP con todas las funciones, pero están configuradas de formas muy diferentes.
el uno del otro. El servidor ProFTPd es otro servidor FTP popular para Linux. Proporciona
funcionalidad adicional pero es mucho más difícil de configurar.
Examen esencial
397

Página 440
398
Capítulo 8 ■
Configurar servidores de archivos

Preguntas de revisión
1. Un servidor Samba (baile) incluye una definición de recurso compartido de [hogares] pero no un recurso compartido de [sammy]
definición. Suponiendo que exista la cuenta relevante, ¿qué pasará entonces cuando el usuario
sammy en un cliente intenta acceder a \\ dance \ sammy?
R. Aparecerá un mensaje de error porque el recurso compartido [sammy] no existe.
B. Si el usuario ingresa la contraseña correcta, se le dará acceso al directorio / home en
el servidor.
[Link] usuario tendrá acceso al directorio / tmp independientemente de si la contraseña es correcta.
es ingresado.
D. Si el usuario ingresa la contraseña correcta, se le dará acceso a su directorio de inicio.
archivos en el servidor.
2. Está configurando un servidor Samba para participar en un dominio de Windows existente que
administrado por un controlador de dominio de Windows 7. Quieres que los usuarios puedan autenticarse
utilizando la base de datos de cuentas del controlador de Windows. ¿Cómo configurarías la opción de seguridad?
en [Link] para lograr este resultado? (Elija todas las que correspondan).
A. usuario de seguridad
B. servidor de seguridad
C. dominio de seguridad
D. anuncios de seguridad
3. ¿Qué significa la siguiente línea en un archivo [Link]?
nombre resolver orden = lmhosts
A. Samba usa el archivo lmhosts preferentemente para la resolución de nombres, pero usará otros
métodos si es necesario.
B. Samba usa el archivo lmhosts exclusivamente para la resolución de nombres y no recurre a
otros metodos.
C. Samba usa el archivo lmhosts como material fuente cuando funciona como un nombre NetBIOS
servidor.
D. Samba usa el contenido del archivo lmhosts para determinar la prioridad dada a diferentes
solicitudes de resolución de nombres de los clientes.
4. ¿Qué hay de malo en la siguiente definición de acciones de Samba?
[temas]
comentario: Temas para todos los usuarios
escribible: 0
ruta: / usr / share / themes
público: 1

Página 441
[Link] líneas dentro de una definición de recurso compartido requieren un signo igual (=), no dos puntos (:), para separar el
opción del valor.
B. Las líneas que siguen a la línea de definición de acciones deben tener una sangría de al menos un espacio.
C. Las opciones booleanas (de escritura y públicas) requieren valores No o Sí, no valores 0 o 1.
D. No tiene nada de malo.
5. ¿Cuál de las siguientes cosas puede hacer cuando accede a un archivo en un recurso compartido SMB / CIFS?
usando mount que no puede hacer al acceder a través de smbclient?
A. Elimine el archivo del servidor.
B. Utilice Emacs para editar el archivo mientras está en el servidor.
C. Copie el archivo del servidor al cliente.
D. Cambie el nombre del archivo mientras está en el servidor.
6. Quiere agregar un servidor Samba a una red Windows existente, en la que los usuarios
acostumbrados a usar sus nombres completos, incluidos los espacios, como nombres de usuario. ¿Qué archivo harías?
editar para permitir que los usuarios continúen usando esos nombres de usuario, mientras los convierten a más
nombres de usuario de Linux convencionales y más cortos?
A. El archivo al que apunta la opción de mapa de nombre de usuario en [Link]
B. El archivo /etc/samba/[Link]
[Link] archivo al que apunta la opción smb passwd file en [Link]
D. El archivo / etc / samba / smbpasswd
7.
¿Cómo puede verificar que su archivo [Link] no contiene errores de sintaxis graves antes
lanzando un servidor Samba?
A. Escriba check - samba .
B. Escriba smbchkconfig .
C. Escriba smbd - - compruebe [Link] .
D. Escriba testparm .
8. ¿Qué significa cuando la opción de seguridad de un servidor Samba está configurada en Compartir?
A. Samba intenta emular la autenticación estilo Windows 9 x / Me.
B. Samba permite el acceso a archivos e impresoras, en lugar de estar desconectado.
C. Samba usa el estilo de intercambio de archivos SMB / CIFS en lugar del estilo Exportar usado por NFS.
D. Samba funciona como cliente y servidor en la red.
9. ¿Cómo determina un servidor NFS quién puede acceder a los archivos que está exportando?
A. Utiliza la propiedad y el permiso del archivo local junto con el usuario del cliente.
autenticación y una lista de equipos cliente de confianza.
B. Utiliza una contraseña que se envía sin cifrar a través de la red.
C. Utiliza una contraseña que se envía en forma cifrada a través de la red.
D. Utiliza el contenido de los archivos .rlogin de usuarios individuales para determinar qué cliente
las computadoras pueden acceder a un recurso compartido.
Preguntas de revisión
399

Página 442
400
Capítulo 8 ■
Configurar servidores de archivos
10. Desea exportar el directorio / home a dos computadoras a través de NFS: remington debería
tener acceso completo de lectura / escritura, mientras que el suave debería tener acceso de solo lectura. Como harias
configurar esto en / etc / export?
A. remington (/ home, rw) suave (/ home, ro)
B. [hogares] remington (leer y escribir) suave (solo lectura)
C. / inicio remington (rw) suave (ro)
D. remington (/ home, readwrite) suave (/ home, readonly)
11. Quiere exportar temporalmente el directorio / mnt / cdrom usando NFS para que el lector
.[Link] puede leer pero no escribir la exportación. Suponiendo que un servidor NFS ya está
en ejecución, ¿qué escribiría en un indicador de shell para lograr este objetivo?
A. exportaciones - o ro [Link]:/mnt/cdrom
B. showmount - o ro [Link]:/mnt/cdrom
C. exportfs - o ro [Link]:/mnt/cdrom
D. mount - o ro [Link]:/mnt/cdrom
12. ¿En qué sentido es inusual el servidor NFS más popular de Linux, en comparación con la mayoría de
servidores?
R. El servidor NFS de Linux requiere que los permisos de ejecución estén presentes en todos los archivos servidos.
B. El servidor NFS de Linux no puede servir a clientes Windows o Mac OS X.
C. El servidor NFS de Linux incluye un componente basado en kernel.
D. El servidor NFS de Linux debe ejecutarse desde un super servidor como inetd o xinetd.
13. ¿Cuál es la función del mapeador de puertos con respecto a NFS?
A. Escucha el puerto NFS y transfiere las conexiones al servidor NFS.
B. Crea un mapa de clientes NFS para ayudar al servidor a optimizar su velocidad.
C. Les dice a los clientes en qué puerto se está ejecutando el servidor NFS.
D. Mantiene información sobre los sistemas de archivos locales y su relación con
Exportaciones NFS.
14. ¿Qué hay de malo en la siguiente entrada / etc / fstab para montar una exportación NFS?
// usuarios centrales / jill / mnt / jill nfs 0 0
R. Utiliza una descripción de servidor / exportación estilo SMB / CIFS, no estilo NFS.
B. La opción de usuarios no es válida con una entrada NFS en / etc / fstab.
C. Un servidor NFS no debería exportar / jill, sino / home / jill.
D. El código de volcado para un montaje NFS debe ser 1, no 0.

Página 443
15. ¿Por qué debería utilizar la opción no_root_squash con precaución en las exportaciones NFS?
A. Esta opción otorga privilegios de root en los sistemas cliente dentro de los directorios exportados en
el servidor, que es peligroso si el cliente está comprometido.
B. Esta opción hace que el servidor NFS se ejecute fuera de su jail chroot, lo que le da
acceso a archivos de usuario y sistema a los que no debería poder acceder.
[Link] opción otorga privilegios de inicio de sesión de shell completo de root en el servidor sin pasar por un
cuenta regular, lo que lo hace más fácil para un intruso que carece de una contraseña de usuario.
D. Esta opción permite a los usuarios normales iniciar sesión en el servidor NFS como root, lo que puede
conducir rápidamente a compromisos de seguridad si sus usuarios no son dignos de confianza.
16. Sabe que la computadora hereville tiene una exportación NFS que desea utilizar, pero no puede
recuerda su nombre. ¿Cómo puedes descubrir esta información?
A. smbclient // hereville
B. showmount - e hereville
C. nfsclient - - mostrar hereville
D. nfsstat - - servidor hereville
17. ¿Qué archivo de configuración debería editar para habilitar el acceso anónimo a un servidor Pure - FTPd?
A. / etc / pure - ftpd / conf / NoAnonymous
B. / etc / pure - ftpd / pure - [Link]
C. /etc/conf.d/pure - ftpd
D. Se requiere más información para responder esta pregunta.
18. ¿Qué opción de [Link] establecería para permitir que usuarios anónimos accedan al servidor FTP?
A. anon = SÍ
B. anonymous_enable = SÍ
C. anónimo = SÍ
D. noanónimo = NO
19. ¿Cuál es la mejor forma de iniciar un servidor FTP?
A. Desde un script de inicio de SysV.
B. De un super servidor.
C. Desde un script de inicio local.
D. Es imposible decirlo sin más información.
20. Una red pequeña está protegida por un firewall muy estricto. Este cortafuegos evita que todo exterior
que los sistemas inicien conexiones a cualquier computadora dentro del firewall; solo conexiones
iniciados desde dentro de la red local. ¿Cómo afectará este firewall a los usuarios?
en la red local que necesitan descargar archivos de sitios FTP externos?
R. Los usuarios deberán utilizar transferencias FTP ASCII.
B. Los usuarios deberán utilizar transferencias FTP binarias.
C. Los usuarios deberán utilizar transferencias FTP pasivas.
D. Los usuarios deberán utilizar transferencias FTP activas.
Preguntas de revisión
401

Página 444
402
Capítulo 8 ■
Configurar servidores de archivos

Respuestas a las preguntas de repaso


1. D. La participación de [hogares] en Samba es especial; da acceso a los directorios de inicio de los usuarios, con
a cada usuario se le da acceso a su propio directorio de inicio, como se describe en la opción D.
La opción A es incorrecta porque el objetivo de compartir [casas] es permitir el acceso a la casa
directorios sin tener que definir explícitamente un nuevo recurso compartido para cada usuario. La opción B es
incorrecto porque el recurso compartido de [casas] da acceso a los directorios de inicio individuales de los usuarios,
no al directorio Linux / home, que suele ser el directorio en el que todos los usuarios
residen directorios de inicio. La opción C es incorrecta porque normalmente se sigue utilizando una contraseña correcta.
necesario para acceder a [hogares] y porque este recurso compartido no da acceso a / tmp a menos que
las opciones se establecen de forma extraña. (El directorio predeterminado para la mayoría de los recursos compartidos de Samba es / tmp, pero
este
no es cierto para [hogares]).
2. B, C, D. La configuración del servidor le dice a Samba que se autentique contra el controlador de dominio.
sin unirse completamente al dominio. La configuración del dominio le dice a Samba que se una completamente al dominio
utilizando protocolos de Windows NT 4. La configuración de ADS le dice a Samba que se una completamente al dominio usando
Protocolos de Active Directory (AD). Cualquiera de estas opciones funcionará, si se configura correctamente.
La configuración de Usuario le dice a Samba que use su base de datos de cuenta local, por lo que esta configuración no funcionará como
la pregunta especifica.
3. B. La opción de orden de resolución de nombre en Samba determina qué herramientas utiliza Samba para resolver
nombres de host en direcciones IP. Dado que solo aparece una opción (lmhosts) en este ejemplo, este
es la única herramienta que se utiliza, como se indica en la opción B. La opción A es incorrecta porque ninguna otra
se utilizarán métodos. Las opciones C y D son incorrectas porque el nombre resuelve el orden
La opción controla la resolución de nombres de Samba, no cómo funciona como un nombre NetBIOS.
servidor o cómo entrega nombres a los clientes.
4. A. Como se especifica en la opción A, el archivo [Link] de Samba separa las opciones de los valores con un
signo igual (=), no dos puntos (:). La opción B es incorrecta porque, aunque las líneas que contienen
Los pares de opción / valor de una acción a menudo están sangrados, esto no es un requisito. La opción C es
incorrecto porque 0, No y Falso son sinónimos en las opciones booleanas, al igual que 1, Sí,
y verdadero .
5. B. La capacidad más importante que le ofrece montar un recurso compartido SMB / CIFS,
en comparación con acceder a él con el ftp, como smbclient, es que montar el recurso compartido permite
programas ordinarios para tratar el archivo como si fuera un archivo local. Emacs, siendo un ordinario
programa, por lo tanto, puede editar el archivo en el servidor SMB / CIFS, como se describe en la opción B.
Las opciones A, C y D son todas las cosas que se pueden hacer usando smbclient y normal
archivo: herramientas de manipulación en un recurso compartido de archivos montado.
6. A. La opción de asignación de nombre de usuario en [Link] especifica dónde se realiza una asignación de Windows a Linux
Se pueden encontrar nombres de usuario, por lo que la opción A es correcta. Aunque /etc/samba/[Link] es
un nombre de archivo común para especificar a través de la opción de mapa de nombre de usuario, no es la única posibilidad,
entonces la opción B es incorrecta. La opción de archivo smb passwd le dice a Samba dónde encontrar a su usuario
archivo de contraseña, pero este archivo no incluye la asignación de nombres de usuario de Windows a Linux,
entonces la opción C es incorrecta. Un nombre común para el archivo de contraseña de Samba es / etc / samba /
smbpasswd, pero este nombre de archivo no contiene convencionalmente asignaciones de Windows a Linux
nombres de usuario, por lo que la opción D es incorrecta.

Página 445
7.
D. El programa testparm verifica su archivo [Link] en busca de varios tipos simples de errores.
(Sin embargo, no puede verificar todos los errores). Por lo tanto, la opción D es correcta. El cheque - samba y
Los programas smbchkconfig son ficticios, por lo que las opciones A y B son incorrectas. El programa smbd
es uno de los principales programas de servidor de Samba, pero no tiene la opción - - check,
entonces la opción C es incorrecta.
8. A. La seguridad a nivel de recurso compartido se refiere al método de autenticación utilizado: Samba emula, como mejor
puede, autenticación de estilo Windows 9 x / Me, en la que las contraseñas están asociadas con
comparte en lugar de usuarios. Por tanto, la opción A es correcta. Aunque varias opciones de Samba pueden
deshabilite temporalmente el acceso a archivos e impresoras, que no es cierto para el recurso compartido de seguridad,
B es incorrecto. Los términos compartir y exportar tienen significados similares pero se utilizan como referencia
a SMB / CIFS y NFS, respectivamente; pero Exportar no es un valor válido para la seguridad de Samba
parámetro, por lo que la opción C es incorrecta. Samba es fundamentalmente un servidor, aunque Linux
kernel y algunos programas auxiliares de Samba (como smbclient) pueden funcionar como clientes.
La opción de seguridad en [Link] no afecta directamente el estado de la computadora como
Sin embargo, el cliente SMB / CIFS, por lo que la opción D es incorrecta.
9. A. NFS utiliza una política de "host de confianza" para permitir que los clientes controlen a sus propios usuarios, incluido el acceso a
los archivos del servidor NFS, que es lo que describe la opción A. NFS no usa una contraseña, por lo que
las opciones B y C son incorrectas; ni utiliza el archivo .rlogin en los directorios de inicio de los usuarios, por lo que
la opción D es incorrecta.
10. C. La opción C presenta la sintaxis correcta para lograr el objetivo especificado en / etc / export.
Las opciones A y D colocan incorrectamente el nombre del directorio exportado en la lista de opciones para
cada cliente. La opción B usa [homes] (un nombre de Samba para los directorios de inicio de los usuarios) en lugar de
/ homes. Las opciones B y D expanden incorrectamente los códigos ro y rw en readonly y
leer escribir .
11. C. El programa exportfs controla el servidor NFS; agrega o elimina directorios y
clientes de la lista que mantiene el servidor, ampliando o restringiendo temporalmente la lista
que normalmente se mantiene en / etc / export. La opción C presenta la sintaxis correcta para
este programa para lograr el objetivo establecido. No hay un comando de exportación estándar, por lo que la opción
A es incorrecta. El comando showmount de la opción B muestra información sobre los clientes que
están usando el servidor, pero no cambia la lista de exportación. El comando mount monta un
exportación remota; no afecta lo que se exporta, por lo que la opción D es incorrecta.
12. C. Las características del servidor NFS basado en el kernel de Linux ayudan a mejorar su rendimiento. Mayoría de los demás
los servidores no incluyen dicha ayuda basada en el núcleo, por lo que la opción C es correcta. La opción A describe
un requisito ficticio del servidor NFS. Aunque pocas computadoras con Windows tienen NFS
clientes, clientes NFS para Windows están disponibles; y OS X incluye un cliente NFS. Así,
la opción B es incorrecta. A diferencia de la opción D, el servidor NFS de Linux se ejecuta directamente, no desde un
super servidor.
13. C. La opción C resume correctamente la función del mapeador de puertos. La opción A describe la
función de un super servidor, como inetd o xinetd, excepto que los super servidores no son
de uso común con servidores NFS. Las opciones B y D son descripciones compuestas de soluciones
a problemas inexistentes.
Respuestas a las preguntas de repaso
403

Página 446
404
Capítulo 8 ■
Configurar servidores de archivos
14. A. La forma correcta para una definición de exportación NFS en / etc / fstab es server : / share , entonces
esta entrada probablemente debería comenzar central: / jill o central: / home / jill. La entrada
en su lugar utiliza la definición de recurso compartido de estilo SMB / CIFS, como establece la opción A. Contrario a la opción
B, la opción de usuarios es perfectamente válida para entradas NFS en / etc / fstab. Aunque exportando
un directorio llamado / jill es realmente inusual, no es ilegal, y porque un directorio más serio
El problema es correcto en la forma de la opción A, la opción C es incorrecta. Se utiliza la utilidad de volcado
para realizar copias de seguridad de los sistemas de archivos ext2, ext3 y ext4 locales, no exportaciones NFS, por lo que el código de volcado
debe ser 0 en las entradas NFS en / etc / fstab, al contrario de la opción D.
15. A. La opción no_root_squash hace lo que especifica la opción A, lo cual es útil si un cliente necesita
acceso a archivos restringidos en el servidor, pero también presenta el riesgo especificado en la opción A.
La opción no_root_squash no tiene nada que ver con las cárceles chroot, por lo que la opción B es incorrecta. Opción
C describe una opción de inicio de sesión de Secure Shell (SSH) y sus riesgos, pero debido a que NFS no proporciona
acceder al shell de inicio de sesión o utilizar contraseñas, es una respuesta incorrecta a esta pregunta. NFS no permite
que los usuarios “inicien sesión” en un servidor en el sentido sugerido por la opción D, lo que hace que esa opción sea incorrecta.
16. B. La utilidad showmount muestra información sobre el servidor que especifique. Los detalles varían
con las opciones lo pasa, pero - e produce una lista de las exportaciones del servidor, haciendo que la opción B
correcto. El programa smbclient se utiliza para acceder a servidores SMB / CIFS, no a servidores NFS,
y la sintaxis de la opción A es incorrecta incluso para descubrir recursos compartidos SMB / CIFS. El nfsclient
El programa es ficticio. El programa nfsstat muestra estadísticas relacionadas con el uso de NFS y
aunque la opción D es un comando válido para producir dicha información, no mostrará
información sobre las exportaciones disponibles en el servidor, según lo requiera la pregunta.
17. D. Pure - FTPd no tiene un archivo de configuración estándar; en cambio, se basa en la línea de comandos
argumentos para cambiar su comportamiento. Desafortunadamente, diferentes distribuciones manejan pasar
estos argumentos al servidor de diferentes maneras, por lo que necesita conocer la distribución para
responda la pregunta, haciendo que la opción D sea correcta. Las opciones A, B y C son correctas, pero
solo para distribuciones específicas: Ubuntu, Fedora y Gentoo.
18. B. La opción B es correcta. Las opciones A y C son ficticias; ni anónimo ni anónimo es
una opción válida de [Link]. La opción D tampoco es una opción [Link] válida, pero
pasar - - noanonymous al servidor ftpd puro es una forma de deshabilitar el acceso anónimo
con ese servidor.
19. D. Los programas de servidor FTP varían en diseño; algunos están destinados a ejecutarse desde un local o SysV
script de inicio, otros están diseñados para ejecutarse desde super servidores y otros pueden iniciarse
de cualquier manera. También se deben considerar las necesidades del sitio; por ejemplo, un FTP poco utilizado
El servidor podría iniciarse mejor desde un super servidor, mientras que un servidor FTP que está en constante
es mejor que el uso se inicie desde un script de inicio. Por tanto, la opción D es correcta. Porque allí
no es la mejor manera, las opciones A, B y C son respuestas incorrectas.
20. C. Las transferencias FTP pasivas implican que el cliente FTP inicia dos conexiones al FTP.
servidor, que no debe entrar en conflicto con la configuración del firewall descrita en la pregunta,
entonces la opción C es correcta. La alternativa a las transferencias FTP pasivas son las transferencias FTP activas, en
que el cliente inicia una conexión con el servidor y el servidor luego inicia una devolución
conexión con el cliente. Dado que el firewall bloquea las conexiones entrantes, un FTP activo
la transferencia será bloqueada por el cortafuegos descrito, haciendo que la opción D sea incorrecta. El problema de
Las transferencias ASCII frente a las binarias es independiente de la cuestión de las transferencias pasivas frente a las activas y es
irrelevante para la configuración del firewall, por lo que las opciones A y B son incorrectas.

Página 447

Configuración de Web y
Servidores de correo electrónico
EL SIGUIENTE PROFESIONAL DE LINUX
LOS OBJETIVOS DEL INSTITUTO ESTÁN CUBIERTOS EN
ESTE CAPÍTULO:
208.1 Implementación de un servidor web (peso: 3)
208.2 Mantener un servidor web (peso: 2)
208.3 Implementación de un servidor proxy (peso: 1)
211.1 Uso de servidores de correo electrónico (peso: 3)
211.2 Gestión de la entrega de correo electrónico local (peso: 2)
211.3 Gestión de la entrega de correo electrónico remoto (peso: 2)

Capítulo

9
Página 448
Dos de las partes más importantes de Internet son el correo electrónico.
y la World Wide Web (WWW o Web para abreviar). De hecho,
Linux juega un papel en ambos subsistemas de Internet; correo electrónico
y el software de servidor web existe para Linux, y tanto Linux como el servidor Linux común
Los programas son importantes en la implementación actual de estas herramientas.
La configuración del servidor web puede involucrar múltiples protocolos y programas, a veces
en varias computadoras. Es posible que se le solicite que configure un servidor web y ayude a mantener el
documentos en ese servidor. También debe tener en cuenta los servidores proxy, que se encuentran entre
usuarios y servidores web externos para filtrar contenido o mejorar el rendimiento.
El correo electrónico se envía a través de varios protocolos, como se describe más adelante en "Comprensión
Correo electrónico ”, por lo que la configuración de Linux como servidor de correo puede requerir que configure varios
diferentes programas de servidor. Los programas adicionales ayudan a "pegar" todo junto,
habilitar la entrega local, el acceso a filtros de correo basura, etc. Es fundamental que
comprender cómo interactúan estos protocolos y software, así como los conceptos básicos de cómo
configurar los programas individuales.

Comprensión de los servidores web


Los servidores web implementan el Protocolo de transferencia de hipertexto (HTTP) y son extremadamente
importante para la Internet de hoy. Incluso las redes locales a menudo emplean servidores web para
fines locales. Los servidores web son similares a los servidores de archivos (descritos en el Capítulo 8, “Configuración
Servidores de archivos ”) en el sentido de que brindan acceso más o menos directo a los archivos almacenados en el servidor.
computadora; pero los servidores web están diseñados para entregar rápidamente uno o varios archivos a la vez,
normalmente sin requerir autenticación, y luego terminar una conexión. A pesar de que
Es posible cargar archivos en un sitio web, una configuración simple normalmente no permite tales
acceso; Estos sitios Web sencillos son de naturaleza de solo lectura.
Estas funciones son ideales para la Web, que permite a los usuarios leer información en un
amplia variedad de sitios web de todo el mundo con un mínimo de esfuerzo. Algunas características críticas
de sitios web, como los hipervínculos que permiten moverse de un sitio a otro mediante
al hacer clic en un enlace, se implementan en el tipo principal de documento entregado por los servidores web.
Este tipo de documento se conoce como lenguaje de marcado de hipertexto (HTML) . Proporciona
funciones de formato de documentos para habilitar la configuración de fuentes, la creación de listas, etc. incrustación
ciertos archivos relacionados, como gráficos, en la página web; y vinculación a otros documentos

Página 449
en el mismo sitio o en otros. HTTP y HTML son distintos; es posible ejecutar un sitio web
(usando HTTP) que no aloja archivos HTML, y es posible usar archivos HTML sin un
Servidor web. Sin embargo, en la práctica, los dos suelen estar vinculados; existe un servidor web
para entregar archivos HTML a los clientes, y esos archivos se crean con un servidor web como entrega
mecanismo en mente. Ni el examen LPIC-2 ni este capítulo cubren HTML en detalle;
simplemente debe saber cómo encaja HTML con HTTP.
Los sitios web de hoy a menudo emplean tipos de documentos más complejos, como scripts y otros
contenido dinámico. Los sitios web creados a partir de dichos documentos pueden ser mucho más interactivos que
los archivos HTML estáticos tradicionales que dominaron la Web hace una década. Varios tipos de
Existe contenido dinámico y cada uno tiene sus propias opciones de configuración. Este capítulo cubre
los conceptos básicos de PHP: preprocesador de hipertexto (PHP) y scripts de Perl en sitios web en el
Sección "Configuración de Scripts".
En principio, cualquier computadora puede ejecutar un servidor web. En Internet en general, la mayoría
las computadoras servidor tienen el nombre de host www en sus respectivos dominios o subdominios. Esto es
aunque sólo una convención; muchos sitios emplean otros nombres o ejecutan varios servidores web en
un solo dominio por una razón u otra.
Hay muchos programas de servidor web disponibles, tanto para Linux como para otras plataformas. los
el más popular, sin embargo, es Apache ( [Link] ). Este capítulo describe cómo
para configurar este software para las tareas comunes del servidor web. Si necesita ejecutar otro servidor,
debe consultar su documentación.
Apache 2.2.17 es la versión más nueva disponible mientras escribo. Algunos
las opciones de configuración cambiaron entre la 1.3. serie xy la serie 2. x .
Este capítulo enfatiza el software más reciente. Si está utilizando un
mayor 1.3. x , es posible que deba desviarse de las descripciones en
Este capítulo. (La serie 1.3. X aún se mantiene, pero la mayoría
las instalaciones deben utilizar un 2.2. x versión.)

Configuración de opciones básicas de Apache


El archivo de configuración principal de Apache se llama [Link] , [Link] o (para Apache
2. x en algunas distribuciones de Linux) [Link] o [Link] . Este archivo generalmente se encuentra
en / etc / apache , / etc / apache2 , / etc / httpd o / etc / httpd / conf . Cualquiera que sea el nombre del archivo o
ubicación, la mayoría de las líneas en este archivo son comentarios que comienzan con marcas de almohadilla ( # )
o líneas de opción que toman la siguiente forma:
Valor de directiva
La directiva es el nombre de un parámetro que desea ajustar y el valor es el valor
dado al parámetro. El valor puede ser un número, un nombre de archivo o una cadena arbitraria.
Configuración de opciones básicas de Apache
407

Página 450
408
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
Algunas directivas aparecen en bloques con nombre que comienzan y terminan con códigos encerrados en ángulo
corchetes, como este:
<IfDefine APACHEPROXIED>
Escuchar 8080
</ IfDefine>
Este ejemplo particular establece la directiva Listen en 8080 si la variable APACHEPROXIED
se define. Tenga en cuenta que la última línea usa el nombre especificado en la primera línea, pero está precedido por
una barra ( / ). Esta disposición significa el comienzo y el final de un bloque de opciones, aunque uno que
contiene solo una opción en este ejemplo.
Apache está diseñado de forma modular; muchas de sus funciones se pueden compilar por separado
módulos que se pueden cargar en tiempo de ejecución o dejar sin cargar. Precisamente qué características son
compilados como módulos y que se compilan en el ejecutable principal de Apache (normalmente
llamado apache , apache2 , httpd o httpd2 ) varía de una distribución a otra. Cargar
un módulo, utiliza la directiva LoadModule y muchos archivos de configuración de Apache tienen un
gran número de estas directivas al principio del archivo. Con Apache 1.3. x (pero no para Apache
2. x ), es posible que deba usar la directiva AddModule para activar las características de un módulo que es
compilado en el binario principal. Es posible que desee examinar estos módulos para ver qué características
están habilitados de forma predeterminada.
Comentar las directivas LoadModule para características no utilizadas puede ser
una buena medida de seguridad. Por ejemplo, si no necesita entregar
contenido dinámico, comentar el cgi_module puede reducir la posibilidad
que una mala configuración accidental o un agrietamiento intencional causará
dañar. Desafortunadamente, es difícil saber qué hace cada módulo, así que
Recomiendo precaución al comentar las definiciones de los módulos.
La directiva Incluir carga archivos adicionales como si fueran parte de la
archivo de configuración. Algunas distribuciones aprovechan esta función para colocar módulos
soporte en archivos separados, típicamente en los subdirectorios mods - available y mods - enabled .
Los archivos en mods habilitados se cargan mediante una declaración de inclusión . Estos archivos son en realidad
enlaces simbólicos a archivos equivalentes en mods: disponibles . El resultado es que la configuración del sistema
Los scripts pueden habilitar o deshabilitar módulos creando o eliminando enlaces simbólicos apropiados en
estos directorios.
Además del archivo de configuración principal, son importantes algunos archivos adicionales:
[Link] No todas las configuraciones de Apache usan este archivo, que es esencialmente un complemento
archivo que le dice a Apache cómo tratar directorios específicos. Muchos sistemas transfieren esta información a
el archivo de configuración principal. Para aquellos que no lo hacen, una directiva AccessConfig en el archivo principal
apunta al archivo [Link] .
[Link] o apache - [Link] Este archivo define una variedad de Internet multipropósito
Tipos de extensión de correo (MIME) , que son códigos que ayudan a identificar el tipo de archivo. HTTP

Página 451
Las transferencias identifican archivos por tipo MIME, pero los sistemas de archivos Linux no almacenan el tipo MIME
información de forma nativa. Por lo tanto, Apache utiliza este archivo para asignar extensiones de nombre de archivo (como
.html o .txt ) a tipos MIME. El archivo predeterminado maneja los archivos más comunes que probablemente
entregar en su servidor web, pero es posible que deba agregar tipos MIME si coloca archivos exóticos
tipos en el servidor.
magic Este archivo existe en apoyo de un segundo método para determinar el tipo MIME de un archivo.
En lugar de depender de extensiones de nombre de archivo, este archivo incluye "huellas digitales" para muchos tipos de archivos
basado en el contenido de los archivos. No debe intentar ajustar este archivo a menos que tenga
instrucciones sobre cómo hacerlo para un tipo de archivo en particular o si posee un conocimiento profundo
del formato interno del archivo.
Estos archivos normalmente residen en el mismo directorio que contiene el Apache principal.
archivo de configuración. Lo más probable es que necesite ajustar [Link] , pero solo en sistemas
que lo utilizan de forma predeterminada o si elige utilizar esta opción de configuración. Si entregas
tipos de archivos inusuales, la mejor manera de asociar tipos MIME con esos archivos suele ser mediante
ajustar el archivo [Link] o apache - [Link] ; modificar el archivo mágico es mucho
más complicado.
Los usuarios o encargados del mantenimiento del sitio web pueden anular algunas opciones de configuración de Apache utilizando
los archivos .htaccess en los directorios que sirve Apache. El formato del .htaccess
El archivo es como el del archivo de configuración principal de Apache, pero las opciones establecidas en este archivo
afecta solo al árbol de directorios en el que reside el archivo .htaccess . Normalmente, este archivo es
utilizado solo por usuarios cuyas páginas web personales se comparten con una directiva UserDir global
o por los encargados del mantenimiento del sitio web que pueden editar uno o más subdirectorios de la página principal del servidor.
Directorio de espacio web pero que no tiene acceso administrativo completo para editar el Apache principal
archivo de configuración.

Configuración de Apache para alojar su sitio


Un archivo de configuración de Apache predeterminado generalmente funciona al menos mínimamente. Puedes probar tu
instalación después de instalarlo ingresando http: // localhost como la ubicación en un sitio web
navegador que se ejecuta en la misma computadora. Debería ver aparecer una página genérica, como se muestra en
Figura 9.1, que muestra la página predeterminada en un sistema Ubuntu 10.10. Los detalles varían de
una distribución a otra, así que no se sorprenda si su página predeterminada se ve diferente
de la Figura 9.1. También debe probar el acceso al servidor desde otras computadoras para
reglas de firewall seguras (descritas en el Capítulo 7, "Configuración de red avanzada") o
otros problemas no bloquean el acceso al servidor. Si no puede acceder al servidor, marque
que está funcionando. Debería aparecer como apache , apache2 , httpd o httpd2 en una lista de ps .
Apache 1.3 también se puede ejecutar desde un super servidor, aunque esta configuración no es
común.
Configuración de Apache para alojar su sitio
409
Página 452
410
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
Una vez que el servidor se está ejecutando, es posible que desee ajustar algunos de sus valores predeterminados. Algo comun
Las características que quizás desee cambiar incluyen el usuario y el grupo del servidor, la ubicación de Web
páginas que entrega el servidor y dominios virtuales. Dos opciones aún más avanzadas: entrega
páginas web seguras y contenido dinámico, también puede ser necesario ajustar.
Configuración del usuario y grupo de Apache
Como la mayoría de los servidores que comienzan con SysV, Upstart o scripts de inicio locales, Apache se inicia
corriendo como root . Apache admite dos directivas que ajustan el nombre de usuario y el nombre del grupo
bajo el cual se ejecuta el servidor después de iniciarse. Estas directivas son Usuario y Grupo . por
Por ejemplo, puede incluir las siguientes líneas para que Apache se ejecute como el usuario apache en
el grupo llamado agroup :
Usuario apache
Grupo agroup
Después de configurar estas opciones, una verificación de estas características usando ps (como en ps aux | grep
apache o ps aux | grep httpd ) debería revelar que la mayoría de las instancias de Apache se están ejecutando
como el usuario y el grupo especificados. Sin embargo, la primera instancia seguirá ejecutándose como root .
Sin embargo, esta instancia no responde directamente a las solicitudes entrantes.
FIGURA 9.1 Una vez instalado y ejecutado, una configuración Apache predeterminada muestra un
Página web de Apache o una página para su distribución.

Página 453
Cambiar las ubicaciones de las páginas web
Como regla general, Apache admite dos tipos de páginas web estáticas: las páginas web de un sitio y
páginas web de usuarios individuales. El administrador del sistema mantiene las páginas web de un sitio.
o un Web master designado; la mayoría de los usuarios comunes no pueden modificar estas páginas. Multi usuario
los sistemas a veces proporcionan a los usuarios espacio web. Por lo general, estas páginas se publican desde
subdirectorios de los directorios de inicio de los usuarios. Naturalmente, Apache proporciona herramientas para cambiar
las ubicaciones de las páginas web del sitio y de las páginas web de las personas.
Comprensión de las direcciones web
Para comprender cómo Apache devuelve páginas web, es útil ver cómo un HTTP
la solicitud está estructurada. La forma habitual de esta solicitud, escrita por una persona en la Dirección
o el campo Ubicación de un navegador web, es como un Identificador uniforme de recursos (URI) , que parece
Me gusta esto:
[Link]
El acrónimo URI es el reemplazo oficial de otro acrónimo, Uniforme
Localizador de recursos (URL) . Aunque la URL todavía es de uso común, oficialmente
un término "informal".
Ejecutando Apache en una cárcel chroot
Asegurarse de que Apache se ejecute en una cuenta con pocos privilegios es una buena medida de seguridad;
sin embargo, puede ir más lejos. Como con el servidor de dominio de nombres de Internet de Berkeley (BIND)
descrito en el Capítulo 6, "Configuración del servidor DNS", puede ejecutar Apache en un chroot
cárcel. Hacerlo limita el daño que Apache puede hacer en caso de verse comprometido o debería
Los scripts mal escritos se vuelven locos. Deberá realizar alguna configuración adicional para hacer esto,
aunque.
Gran parte de la tarea de ejecutar Apache en una cárcel chroot es similar a la descrita en el Capítulo 6
para BIND. En términos generales, debe crear un árbol de directorios para alojar Apache, copiar
archivos de configuración y bibliotecas de soporte a ese árbol de directorios, y modifique su Apache
script de inicio para iniciar el servidor usando el comando chroot . (A diferencia de BIND,
Apache no tiene una opción para hacer esto por sí mismo).
Si necesita más información, numerosas páginas web describen esta configuración en más
detalle; haciendo una búsqueda en la Web en Apache chroot los encontrará. Es posible que desee comprobar su
la documentación de distribución primero, sin embargo; puede proporcionar un método de configuración simplificado.
Configuración de Apache para alojar su sitio
411
Página 454
412
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
Este URI consta de cuatro componentes:
El protocolo Los primeros caracteres de un URI especifican el protocolo: http en este
caso. El protocolo se termina por dos puntos ( : ), y en muchos casos (incluyendo URIs para
Transferencias HTTP) dos barras le siguen. Otros protocolos comunes en URI incluyen https
(HTTP seguro), ftp y correo electrónico .
El nombre de host El nombre de host sigue el nombre del protocolo en HTTP URI, así como algunos
otros tipos de URI, como FTP URI. En este ejemplo, el nombre de host es [Link] .
El nombre de archivo Después del nombre de host en HTTP URIs viene el nombre de archivo que debe ser
recuperado - /products/[Link] en este ejemplo. El nombre del archivo puede ser un solo archivo o un
ruta completa a un archivo, como en este ejemplo. Normalmente, el nombre de archivo se especifica en relación con el
raíz del documento del servidor, como se describe a continuación, en “Cambio de la página web del sitio. "Si una tilde ( ~ )
lleva el nombre del archivo, sin embargo, es relativo al área de almacenamiento web de un usuario específico, como se describe
en la próxima sección “Habilitación de páginas web de usuario. "
Información adicional Algunos URI incluyen información adicional. El precedente
ejemplo especifica #orig después del nombre del archivo, lo que significa que el navegador debe ubicar una etiqueta
llamado orig dentro de la página y mostrar el texto en ese punto. El contenido dinámico usa esto
parte del URI para permitir que los navegadores pasen datos al servidor web para su procesamiento.
Muchos de estos componentes se pueden omitir o abreviar. Por ejemplo, la mayoría de la Web
los navegadores asumen una transferencia HTTP si inicia el URI con el nombre de host. Si omite el
nombre de archivo, el servidor web asume un nombre de archivo predeterminado. En Apache, puede establecer este valor
predeterminado
con la directiva DirectoryIndex . Si proporciona más de un valor para esta directiva,
Apache los busca a todos. La mayoría de las instalaciones crean un valor predeterminado que busca uno o
más de [Link] , [Link] o [Link] . Si está moviendo un conjunto existente de Web
páginas a Apache y ese conjunto incluye un nombre de archivo de índice predeterminado diferente, es posible que desee
cambiar el predeterminado.
Cambiar la página web del sitio
Una de las primeras directivas en el archivo de configuración de Apache es probablemente un DocumentRoot
directiva, que le dice a Apache dónde buscar las páginas web que entrega. Encontrarás el
páginas Web predeterminadas, como la que se muestra en la Figura 9.1, en esta ubicación. Para usar Apache
para publicar las páginas de su propio sitio, puede hacer una de estas dos cosas:
Cambie la directiva DocumentRoot para que apunte a otro directorio en el que haya
almacenó las páginas de su sitio web.
Reemplace los archivos en el directorio DocumentRoot predeterminado por los que cree.
Al igual que con las configuraciones de módulos, algunas instalaciones de Apache colocan el sitio web
datos de configuración, incluido DocumentRoot , en una configuración separada
archivo, normalmente en los sitios - archivo disponible / predeterminado (con un enlace simbólico en
sitios: habilitado / predeterminado ).

Página 455
Cambiar la directiva DocumentRoot es un poco preferible porque reduce las probabilidades
que sus páginas web se sobrescribirán accidentalmente cuando actualice su servidor web
instalación. El uso de una ubicación inusual para la página de inicio del servidor también puede reducir el riesgo
de un ataque con script que usa alguna otra vulnerabilidad del sistema para sobrescribir los archivos de su sitio;
si el atacante no sabe dónde residen sus archivos, no se pueden sobrescribir. Cuando usted
cree un nuevo directorio para albergar su sitio, debe asegurarse de que sea legible para el usuario
bajo cuyo nombre se ejecuta Apache. Este nombre de usuario a menudo se especifica con la directiva de usuario
en el archivo de configuración principal de Apache. El grupo también puede ser importante; que se establece a través del
Directiva de grupo . Debido a que los sitios web públicos rara vez contienen datos confidenciales, no es infrecuente
para hacer que los directorios y los archivos dentro de ellos sean legibles para el mundo.
Normalmente, el Web master es responsable del mantenimiento del sitio Web. El web maestro
también puede ser el administrador del sistema, pero no siempre es así. El web maestro
normalmente tiene acceso de escritura completo al directorio de la página web del sitio, y el maestro web puede
De hecho, sea el propietario de este árbol de directorios y de todos los archivos que contiene. La raíz del documento predeterminada
Sin embargo, el directorio no es normalmente el directorio de inicio del Web Master; configurar el sistema
de esta manera, cualquiera podría descargar archivos como el archivo .bashrc del Web master .
Habilitación de páginas web de usuario
Además de las páginas web principales de un sitio, Apache puede ofrecer páginas web que pertenecen a
usuarios individuales. Para activar esta función, debe configurar la directiva UserDir , que toma
el nombre de un directorio dentro del directorio de inicio de un usuario como argumento. (Esta directiva puede
aparecer en el archivo mods - available / [Link] , que debe ser activado simbólicamente
vinculándolo a un archivo en el directorio habilitado para mods .) Por ejemplo, puede usar lo siguiente
definición:
UserDir public_html
Una vez que se establece esta directiva, los usuarios pueden crear subdirectorios llamados public_html y almacenar
sus páginas web personales en ese directorio. Por ejemplo, suponga que un usuario remoto ingresa
[Link] como URI. Si el servidor está configurado
con UserDir establecido en public_html y si el usuario charlotte tiene un directorio de inicio de / home /
charlotte , Apache intentará devolver /home/charlotte/public_html/[Link]
al cliente.
Los directorios que conducen al especificado por UserDir , incluido ese directorio, deben
ser accesible a la cuenta utilizada para ejecutar Apache. Esto incluye tanto el bit de lectura como el
ejecutar bit (que en el caso de directorios significa la capacidad de atravesar el árbol de directorios).
Normalmente, es apropiado establecer permisos mundiales en estos directorios; sin embargo, estableciendo
Los permisos de grupo son adecuados si el proceso de Apache se ejecuta utilizando un grupo adecuado.
Asegúrese de configurar la directiva UserDir y la casa del usuario root
directorio (típicamente / root ), que los extranjeros pueden 't recuperar archivos de la raíz ' s
directorio de inicio. Esta configuración es una amenaza potencial para la seguridad.
Configuración de Apache para alojar su sitio
413

Página 456
414
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
La entrega de páginas web de usuario se basa en el módulo userdir_module . Si su sitio
no debe entregar páginas web de usuario, es posible que desee eliminar la directiva LoadModule que
carga este módulo. Si elimina esta directiva, un intento de utilizar la directiva UserDir
hacer que Apache falle al inicio, a menos que esté rodeado por un <IfModule mod_userdir.c>
directiva para probar la presencia del módulo. Si su instalación usa directorios separados con
archivos de configuración por módulo, habilitar o deshabilitar el archivo relevante automáticamente
habilitar o deshabilitar tanto el módulo como la directiva UserDir .
Sirviendo dominios virtuales
Un solo servidor web Apache puede entregar páginas para múltiples dominios. Esta configuración
es extremadamente importante para los ISP de alojamiento web, que ejecutan servidores web que responden
diferente a las solicitudes de cada cliente. Por ejemplo, un ISP puede entregar páginas web para
[Link] , [Link] y muchos más. Para hacer esto sin dedicar un
toda la computadora y la dirección IP a cada dominio, el ISP debe configurar el servidor web para
responden de manera diferente dependiendo de la parte del nombre de host del URI. Esta práctica es conocida
como configurar dominios virtuales . Por supuesto, si usted es un ISP que aloja dominios virtuales, este
el capítulo es inadecuado para su trabajo; deberías leer varios libros sobre Apache o contratar a un
administrador del sistema con experiencia sustancial en la ejecución de Apache o alguna otra Web
servidor. No obstante, los dominios virtuales pueden resultar útiles incluso en algunos sitios más pequeños. Por ejemplo,
una pequeña empresa puede cambiar su nombre y querer que su servidor web responda de manera diferente a
dos nombres de host. Un individuo o una pequeña empresa también puede asociarse con otro individuo
o pequeñas empresas para configurar sitios web en una conexión de banda ancha, minimizando los costos
asociados con el funcionamiento de sus sitios web de esta manera. Dos métodos de entrega virtual
Los dominios son comunes: VirtualDocumentRoot y VirtualHost .
Usando VirtualDocumentRoot
La idea detrás de la directiva VirtualDocumentRoot es decirle a Apache qué directorio
para utilizar como directorio raíz del documento en función del nombre de host utilizado por el cliente.
VirtualDocumentRoot funciona de manera muy similar a la directiva DocumentRoot estándar , excepto
que incluya variables, como se especifica en la Tabla 9.1, en el valor de la directiva.
TABLA 9.1 Variables utilizadas junto con VirtualDocumentRoot
Variable
Sentido
%%
Un solo % en el nombre del directorio.
% N . METRO
Partes del nombre. N es un número que se refiere al nombre separado por puntos
componente. Por ejemplo, si el nombre es [Link] , % 1 significa
www , % 2 significa ejemplo , y así sucesivamente. Los números negativos cuentan desde el
final; 1 significa com , % - 2 es ejemplo , y así sucesivamente. Un N de 0 se refiere a todo
nombre de host. La M opcional se refiere al número de caracteres dentro del
nombre. Por ejemplo, % 2.4 sería examen . Los valores M negativos cuentan desde
el final del componente, entonces % 2. - 4 sería mple .

Página 457
Si desea configurar dominios virtuales basados en la dirección IP
del servidor (para servidores con varias direcciones IP), puede utilizar
VirtualDocumentRootIP , que funciona de forma muy similar a VirtualDocumentRoot
pero usa direcciones IP en lugar de nombres de host.
La directiva VirtualDocumentRoot es más útil cuando desea alojar una gran
número de dominios o cuando los dominios cambian con frecuencia. Puedes configurar un dominio
simplemente creando un nuevo subdirectorio. Por ejemplo, suponga que desea crear un directorio
estructura de la forma / home / httpd / tld / domain , como en / home / httpd / com / example como el
directorio raíz del documento para [Link] . Una configuración que se adapta a este diseño
se vería así:
VirtualDocumentRoot / home / httpd /% - 1 /% - 2
Por otra parte, supongamos que desea ordenar alfabéticamente sus dominios de manera que [Link] 's
El directorio raíz del documento estaría en / home / httpd / e / example . Este arreglo podría ser
logrado usando la siguiente entrada:
VirtualDocumentRoot /home/httpd/%-2.1/%-2
Algunas configuraciones pueden crear entradas duplicadas. Por ejemplo, el
anteriores a la entrada tratará de colocar tanto [Link] 's y [Link] ' s
raíces del documento en el mismo directorio. Para evitar el problema, use % 0
variable en la ruta, que usa el nombre de host completo.
Siempre que use VirtualDocumentRoot , debe establecer la siguiente línea en su
Archivo de configuración de Apache:
UseCanonicalNames Off
Normalmente (o cuando UseCanonicalNames está configurado como Activado ), Apache intenta usar el nombre de host
de la máquina en la que se ejecuta al realizar accesos relativos dentro de un sitio web -
es decir, cuando una página web omite las porciones de protocolo y nombre de host de un URI en un enlace
y proporciona solo el nombre de archivo del documento. Es probable que esta práctica lleve a "presentar no
encontrado "o se devuelven páginas incorrectas, porque Apache buscará el sitio equivocado
documentos. Sin embargo, si configura UseCanonicalNames en Off , le indica a Apache que use
nombre de host proporcionado por el cliente con el acceso original, que da como resultado una búsqueda correcta.
Usando VirtualHost
Otro enfoque para definir dominios virtuales es crear bloques de directivas VirtualHost .
Estos bloques deben ir precedidos en el archivo de una línea que defina las interfaces en las que
desea definir hosts virtuales:
NombreVirtualHost *
Configuración de Apache para alojar su sitio
415

Página 458
416
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
Este ejemplo le dice al sistema que cree hosts virtuales en todas las interfaces. Si el sistema tiene
múltiples interfaces y solo desea crear hosts virtuales en una interfaz, puede
especifique la dirección IP en lugar de un asterisco como valor de esta directiva. En algún momento
después de la directiva NameVirtualHost en el archivo de configuración de Apache son VirtualHost
bloques de directiva para cada nombre de host:
<VirtualHost *>
ServerName [Link]
DocumentRoot / home / httpd / business
</ VirtualHost>
<VirtualHost *>
ServerName [Link]
DocumentRoot / home / httpd / loonie / html
ScriptAlias / cgi-bin / "/ home / httpd / loonie / cgi-bin /"
</ VirtualHost>
Al igual que con una configuración de VirtualDocumentRoot , debe asegurarse de establecer
UseCanonicalNames en Off en el archivo de configuración principal de Apache. No hacerlo es
probablemente resulte en errores falsos de "documento no encontrado" y posiblemente fallas en la recuperación
documentos cuando las páginas web utilizan referencias de documentos relativas en URI.
Una de las grandes ventajas de las definiciones de VirtualHost sobre VirtualDocumentRoot es que
puede personalizar cada servidor para que responda de manera diferente. Por ejemplo, el ejemplo anterior
utiliza nombres de archivo raíz del documento que son únicos pero que no están relacionados sistemáticamente con el
nombres de host. La definición de [Link] también activa un directorio de contenido dinámico
a través de la directiva ScriptAlias , que se describe con más detalle en la próxima sección
“Servicio de contenido dinámico con scripts CGI. ”Estas ventajas pueden ser muy importantes para
muchos servidores que manejan solo unos pocos dominios. El inconveniente de este enfoque es que
debe cambiar el archivo de configuración cada vez que agrega o elimina un dominio, que puede ser un
un problema si cambia los dominios que maneja con regularidad.
Configurar Scripts
Muchos sitios ejecutan un servidor web simplemente para entregar contenido estático, es decir, páginas cuyo contenido
no cambia. Sin embargo, los servidores web también pueden ejecutar contenido dinámico, como Common
Scripts de interfaz de puerta de enlace (CGI), PHP: preprocesador de hipertexto (PHP; un acrónimo recursivo,
anteriormente expandido como scripts de página de inicio personal ), o scripts mod_perl . Estos guiones
puede ampliar la funcionalidad de un servidor web, lo que le permite proporcionar contenido dinámico o
realizar funciones informáticas en nombre de los clientes. Cada una de estas tecnologías es extremadamente
complejo, y esta sección proporciona solo la información suficiente para activar el soporte para
en Apache. Si necesita mantener un sitio que se basa en tecnología de secuencias de comandos, debe
consultar documentación adicional sobre el tema.

Página 459
Habilitar funciones de scripting en un servidor web puede ser arriesgado, porque una
La configuración incorrecta con scripts con errores puede dar a un atacante una forma
comprometer la seguridad de la computadora en su conjunto. Por lo tanto, fuertemente
Le recomiendo que no intente esto a menos que aprenda mucho más sobre Web
servidores y sus capacidades de scripting que puedo presentar en este breve
introducción a este tema.
Los scripts CGI son scripts o programas que se ejecutan en el servidor web a petición de un cliente.
Los scripts CGI se pueden escribir en cualquier lenguaje: C, C ++, Perl, Bash, Python u otros. CGI
Los scripts pueden ser scripts reales o programas compilados, pero debido a que suelen ser scripts verdaderos,
el término script CGI se aplica a cualquier tipo de programa CGI, incluso si está compilado. los
El script debe estar escrito de tal manera que genere una página Web válida para los usuarios, pero
ese tema es demasiado complejo para cubrirlo aquí.
Para activar el soporte de scripts CGI en Apache, normalmente se apunta a un directorio CGI especial
usando la directiva ScriptAlias :
ScriptAlias / cgi-bin / usr / www / cgi-bin
Esta línea le dice a Apache que busque scripts en / usr / www / cgi - bin . Este directorio puede ser un
subdirectorio del padre del directorio DocumentRoot , pero sus ubicaciones pueden ser bastante
diferente si lo prefiere.
PHP, por el contrario, es un lenguaje de programación que está diseñado explícitamente para construir Web
páginas. Al igual que con los scripts CGI, escribir scripts PHP es un tema complejo que no se trata en
los exámenes LPIC - 2. Sin embargo, debe saber cómo activar el soporte de PHP en Apache. A
Comience esta tarea, asegúrese de haber instalado los paquetes PHP necesarios. Lo más probable es que
necesita uno llamado php , y quizás también varios paquetes de soporte o auxiliares.
Con PHP instalado, puede configurar Apache para que lo admita. Esto se hace a través de Apache.
líneas de configuración como las siguientes:
# Uso para PHP 5.x:
LoadModule php5_module
módulos / [Link]
AddHandler php5-script php
# Agrega [Link] a tu línea DirectoryIndex:
DirectoryIndex [Link] [Link]
AddType texto / html php
La configuración anterior funciona para la versión 5 de PHP. Si está utilizando
otra versión de PHP, es posible que deba cambiar los nombres de archivo.
Las primeras líneas de esta configuración simplemente cargan el módulo PHP y
manipulador. Las líneas DirectoryIndex y AddType ayudan a Apache a administrar los archivos PHP. los
La línea DirectoryIndex reemplazará las líneas existentes en su configuración, o más precisamente,
Configuración de Apache para alojar su sitio
417

Página 460
418
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
debe asegurarse de que [Link] aparezca en la línea DirectoryIndex junto con cualquier
otros nombres de archivo que utiliza para los archivos de índice.
Además de estas opciones globales, los directorios que contienen scripts PHP pueden incluir archivos
llamado [Link] , que establece varias opciones de intérprete de PHP. Hay bastantes opciones,
como user_dir , include_path y extension . Si necesita modificar la configuración de PHP,
Recomiendo a partir de un archivo de ejemplo, como el mundial [Link] archivo en / etc .
La solución de scripting mod_perl permite a Apache ejecutar scripts de Perl directamente, en lugar de
que confiar en las herramientas CGI normales para hacerlo. Es posible que deba instalar un paquete llamado
apache - mod_perl , libapache2 - mod - perl2 , o algo similar para habilitar este soporte.
Con el soporte mod_perl instalado, debe activarlo. En la mayoría de los casos, esto se hace
incluyendo un archivo de configuración que se envía con el paquete, como mods - available / perl
.load o modules.d / 75_mod_perl.conf . Si dicho archivo no está disponible, la siguiente línea,
agregado a su archivo de configuración principal de Apache, hará el trabajo:
LoadModule perl_module /usr/lib/apache2/modules/mod_perl.so
Es posible que deba modificar la ruta al archivo mod_perl.so para su instalación. Vas a
también es necesario definir un directorio para contener los scripts Perl del sitio:
<Directorio / var / www / perl>
AllowOverride All
SetHandler perl-script
PerlResponseHandler ModPerl :: Registro
PerlOptions + ParseHeaders
Opciones - Índices FollowSymLinks MultiViews ExecCGI
Orden permitir, negar
Permitir de todos
</ Directorio>
Normalmente, este directorio será un subdirectorio del directorio del sitio principal ( / var / www en
este ejemplo). Cuando un usuario accede a un archivo de script de Perl, el resultado será que el script
carreras. Normalmente, el script generará contenido dinámico.
Independientemente de la herramienta de secuencias de comandos que utilice, puede reiniciar Apache a través de su secuencia de
comandos de inicio SysV
para que habilite el soporte de secuencias de comandos. Depende de usted o de sus desarrolladores web crear
scripts apropiados para administrar contenido dinámico en su sitio. Este es un tema complejo que es
no cubierto en los exámenes LPIC - 2.
Habilitación del cifrado
HTTP seguro se indica mediante un encabezado https: // en el URI. Este protocolo es un HTTP
variante que utiliza cifrado para mantener la privacidad de las transferencias de datos. Apache admite seguro
Transferencias HTTP, pero configurarlo para que lo haga es un proceso de tres pasos:
1. Debe instalar una versión especial de Apache o un paquete complementario que habilite el cifrado.
2. Debe obtener o crear un certificado , que es una clave de cifrado.
3. Debe configurar Apache para escuchar en el puerto HTTP seguro y responder a las solicitudes.
en ese puerto usando cifrado.

Página 461
Instalación de Secure Apache
Secure HTTP se basa en un protocolo de cifrado conocido como Secure Sockets Layer (SSL) .
Para implementar SSL, su sistema necesita una biblioteca SSL. Hoy, OpenSSL ( http: // www
.[Link] ) es la opción más común para este trabajo. OpenSSL se envía con muchos Linux
distribuciones, por lo que probablemente pueda instalarlo desde su medio de instalación principal.
Además de SSL, debe instalar una versión de Apache habilitada para SSL o un módulo SSL
para Apache. Las distribuciones modernas normalmente se envían con un paquete de módulos adecuado para Apache
2. x , con un nombre como apache - mod_ssl . A veces se instala el módulo apropiado
junto con el paquete principal de Apache o en un paquete de soporte genérico. Si está utilizando un
instalación anterior de Apache 1.3, es posible que deba utilizar una versión especial de Apache, como
como Apache - SSL ( [Link] ).
Obtención o creación de un certificado
Al igual que con una red privada virtual (VPN), como se describe en el Capítulo 5, "Redes
Configuración ”, HTTPS se basa en claves y certificados para autenticar cada lado del
otro. Sin embargo, en el caso de HTTPS, normalmente es importante que el servidor pueda
acreditar su identidad al cliente, sin contacto previo entre los dos sistemas. Considerar
un comerciante web que solicita un número de tarjeta de crédito, por ejemplo; el usuario quiere estar seguro
que el servidor pertenece a un comerciante legítimo y no a un impostor. La verdadera identidad de
el cliente suele ser menos importante en esta situación.
Si necesita establecer una confianza bidireccional entre el servidor web y el
Cliente web, puede hacerlo. Debe adquirir claves para ambos sistemas (usted
puede generar la clave del cliente usted mismo) y usar SSLRequire
directiva para apuntar al servidor a las claves públicas para los clientes que deberían
poder conectarse. Consulte la documentación de Apache para obtener más detalles.
sobre este tipo de configuración.
Para proporcionar este nivel de confianza, HTTPS se basa en certificados y claves firmados
por cualquiera de las pocas autoridades de certificación (CA) de conocimiento público. Cada Web moderna
El navegador tiene una lista de firmas de CA y, por lo tanto, puede verificar que las claves de un sitio web se hayan
firmado por una CA apropiada y que el sitio web es, por lo tanto, lo que dice ser. Esta
El sistema no es absolutamente perfecto, pero es razonablemente confiable.
Para entregar contenido seguro, necesita un certificado. Para muchos propósitos, la mejor manera de hacerlo
esto es para comprar uno de una CA. Una lista de unas dos docenas de CA está disponible en http: // www.
.[Link] / # Certificados_digitales . Antes de obtener un certificado de una CA,
debe investigar las políticas de las empresas y determinar qué tan ampliamente reconocidas
las firmas de certificados son. No tiene sentido comprar un certificado de tarifa reducida si sus usuarios
los navegadores generan alertas sobre firmas desconocidas. Puedes crear tu propio certificado
eso produciría el mismo resultado.
Crear su propio certificado tiene sentido si no le importa autenticar
la identidad del servidor o si esta autenticación se requiere en solo unos pocos sistemas. por
Configuración de Apache para alojar su sitio
419

Página 462
420
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
Por ejemplo, si desea cifrar ciertos accesos al servidor web en una pequeña red local, o
incluso entre oficinas que están separadas geográficamente, no es necesario acudir a una CA. Tú
puede decirle a sus navegadores web que acepten su propio certificado generado localmente. Por supuesto,
decirle a sus usuarios que acepten su certificado personal pero que no acepten certificados sospechosos
de otros sitios puede resultar confuso.
Ya sea que obtenga su certificado de una CA o lo genere localmente, debe hacerlo
disponible para Apache. Normalmente, esto se hace copiando el certificado a un certificado especial.
directorio en algún lugar de / etc , como / etc / ssl / apache . Si usa un script para generar un
certificado, el script puede hacer esto automáticamente, o puede colocar el certificado en otro
directorio, como el directorio principal de configuración de Apache. El certificado consta de dos
archivos: un archivo de certificado (que a menudo tiene una extensión .crt ) y una clave (que a menudo tiene una .key
extensión).
Asegúrese de proteger el certificado y la clave de miradas indiscretas. El valor por defecto
configuración cuando las utilidades crean estos archivos utiliza la propiedad raíz y
0600 permisos para realizar esta tarea. Si copia los archivos, asegúrese
estas características se conservan. Un malhechor que copia estos archivos puede
hacerse pasar por su (anteriormente) servidor web seguro!
Configuración de Apache para usar cifrado
Los sistemas Apache 2. x tienden a necesitar solo cambios mínimos en el archivo de configuración para admitir
SSL. Con estos sistemas, es posible que solo necesite cargar el módulo SSL con una línea como esta:
LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
Es posible que deba ajustar la ubicación del módulo SSL para su sistema. Si tu
la instalación utiliza la carga del módulo y los archivos de configuración, debería poder activar
Soporte SSL mediante la creación de un enlace simbólico apropiado para usar el archivo SSL. Una vez activado
De esta manera, un sistema Apache 2. x responderá tanto al HTTP ordinario como al HTTP seguro.
peticiones. La tabla 9.2 resume algunas de las opciones de configuración de Apache que afectan a SSL
operación. La directiva SSLRequireSSL es particularmente digna de mención, porque puede ayudar a mantener
su servidor Web no entregue inadvertidamente datos sensibles a través de un enlace no cifrado.
TABLA 9.2 Directivas que afectan el funcionamiento de SSL
Directiva
Sentido
Escucha
Esta opción vincula el servidor a un puerto en particular. El seguro
El puerto HTTP es 443.
SSLEngine
Puede configurar esta opción para en o fuera para activar o desactivar SSL.

Página 463
Limitar el acceso a Apache
Los servidores web suelen ser objetivos de ataques. Varias funciones de Apache están diseñadas para
abordar este problema. En particular, puede limitar el número y los tipos de conexiones
que Apache aceptará, y puede configurar Apache para que requiera autenticación de usuario.
Limitar las conexiones a Apache
Apache le permite limitar el número absoluto de conexiones manejadas por el servidor. Esta
generalmente se realiza a través de un bloque de opciones como este:
<IfModule mpm_prefork_module>
StartServers
5
MinSpareServers 5
MaxSpareServers 10
Clientes maximos
150
MaxRequestsPerChild 0
</ IfModule>
Estas opciones le dicen a Apache que lance cinco servidores inicialmente ( StartServers ), para mantener
entre 5 y 10 servidores disponibles para responder a las solicitudes en todo momento ( MinSpareServers
y MaxSpareServers ), para lanzar un máximo de 150 instancias de servidor ( MaxClients ) y para imponer
sin límite en el número de solicitudes que maneja el servidor ( MaxRequestsPerChild ; un valor de
0 significa sin límite). Establecer estas opciones de manera adecuada puede limitar el potencial de abuso.
El valor de MaxClients es particularmente importante; sin tal restricción, un atacante
solo necesita orquestar una gran cantidad de solicitudes en el servidor para forzarlo a lanzar lo suficiente
procesos para poner de rodillas el servidor. Bajo el peso de tal ataque,
Puede que le resulte difícil cerrar Apache, y mucho menos lidiar con el ataque de una manera más
Directiva
Sentido
SSLRequireSSL
Normalmente, Apache entregará archivos tanto a HTTP ordinario como a
clientes HTTP seguros. El uso de esta opción le dice a Apache que entregue
archivos solo a clientes que hayan realizado conexiones seguras. Esta
directiva no tiene valor, y normalmente se coloca dentro de un
Bloque de directiva <Directorio> .
SSLCACertificatePath
Esta directiva apunta al directorio en el que SSL
reside el certificado, como / etc / ssl / apache .
SSLCertificateFile
Esta directiva identifica el archivo de certificado SSL, como
/etc/ssl/apache/[Link] .
Configuración de Apache para alojar su sitio
421

Página 464
422
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
forma dirigida. Al utilizar MaxClients , al menos tiene la posibilidad de retener el control de la
computadora, que le permitirá leer archivos de registro y rastrear el ataque a medida que avanza.
Desafortunadamente, los valores adecuados para MaxClients y las otras opciones pueden ser difíciles de
cerciorarse; dependen de factores como la carga normal en el servidor, la calidad de su
conexión de red, la cantidad de RAM en la computadora y la velocidad de su disco duro
disco. Es posible que deba monitorear los archivos de registro de Apache y realizar experimentos para determinar
cómo configurar estas opciones.
Configuración de las opciones de autenticación de usuario
Aunque muchos sitios web están pensados para el acceso gratuito sin una cuenta o contraseña,
algunos sitios requieren autenticación. Los foros web, por ejemplo, normalmente requieren que ingrese
un nombre de usuario y contraseña antes de poder publicar. Dichos inicios de sesión son manejados por el usuario de Apache
herramientas de autenticación. Para comenzar a usar estas herramientas, primero debe cargar el módulo mod_auth .
Puede hacer esto directamente en el archivo de configuración principal:
LoadModule auth_module /usr/lib/apache2/modules/mod_auth.so
El módulo mod_auth está disponible en versiones de Apache anteriores a 2.1. Más
las versiones recientes emplean una funcionalidad similar a través de módulos más especializados,
como mod_auth_basic (que es similar al anterior mod_auth ), mod_
auth_pam (que funciona a través del sistema de módulos de autenticación conectables),
y mod_auth_ldap (que usa un servidor LDAP para la autenticación).
Alternativamente, si su instalación carga módulos usando un directorio separado con módulo
archivos de configuración, puede crear enlaces apropiados para cargar el módulo relevante.
Con el módulo apropiado cargado, puede generar un archivo de contraseña. Estar seguro
que el archivo que genera reside fuera de los directorios que crea el servidor web
disponible para los clientes; no desea que los usuarios puedan recuperar el archivo de contraseña. A
cree el archivo, use htpasswd , indicándole que cree un nuevo archivo a través de su opción -c , especificando
el archivo de contraseña, y terminando el comando con el nombre del usuario con el que
para asociar la contraseña:
# htpasswd -c / etc / apache / passwd / passwords charlotte
Nueva contraseña:
Reescriba nueva contraseña:
Agregar contraseña para el usuario charlotte
Para solicitar una contraseña, debe especificar varias opciones en su archivo de configuración de Apache.
Estas opciones pueden residir en una definición de directorio adecuada dentro de la configuración principal
o pueden ir en un archivo .htaccess dentro del directorio que desea proteger:
AuthType Basic
AuthName "Archivos restringidos"
Página 465
# (Siguiente línea opcional)
Archivo AuthBasicProvider
AuthUserFile / etc / apache / passwd / passwords
Requerir usuario charlotte
Si desea permitir que más de un usuario acceda a archivos en la contraseña - protegido
directorio, debe modificar su configuración. Una forma de hacer esto es especificando
Un grupo. Esto se hace en un archivo de definición de grupo (digamos, / etc / apache / passwd / group ), que
contiene solo una línea que contiene los nombres de usuario relevantes:
Nombre del grupo: charlotte wilbur fern
Luego puede agregar los usuarios adicionales al archivo de contraseña repitiendo el mismo
comando htpasswd , pero asegúrese de omitir la opción -c , ya que esta opción crea un nuevo
archivo de contraseña; y cambie el nombre de usuario de cada usuario. Luego modifica Apache
configuración del directorio para:
AuthType Basic
AuthName "Archivos restringidos"
# (Siguiente línea opcional)
Archivo AuthBasicProvider
AuthUserFile / etc / apache / passwd / passwords
AuthGroupFile / etc / apache / passwd / groups
Requiere grupo GroupName
Una forma algo más sencilla de lograr este objetivo es agregar usuarios a su archivo de contraseña
y luego cambie la línea Require :
Requerir usuario válido
Esta configuración evita la necesidad de crear un grupo; en su lugar, cualquier usuario listado en el
El archivo de contraseña puede acceder a los archivos restringidos.

Controlando Apache
Puede iniciar, detener y reiniciar Apache a través de su script de inicio SysV o Upstart, simplemente
ya que puede controlar muchos otros servicios. Otra herramienta, apachectl o apache2ctl , proporciona
capacidades similares, y algunas más. De hecho, los scripts de inicio de Apache a menudo funcionan invocando
apache2ctl . Con Apache en ejecución, es posible que deba verificar sus archivos de registro para obtener información sobre
cómo está funcionando.
Controlando Apache
423

Página 466
424
Capítulo 9 ■
Configuración de servidores web y de correo electrónico

Usando apache2ctl
Por lo general, llamará apache2ctl escribiendo apachectl o apache2ctl junto con una opción,
los más comunes se resumen en la Tabla 9.3.
TABLA 9.3 comunes apache2ctl comandos
Nombre del comando
Efecto
comienzo
Lanza Apache.
detener
Termina Apache.
elegante - parada
Similar a detener , pero las solicitudes que se están atendiendo actualmente son
permitido completar.
reiniciar
Reinicia Apache. Si no se está ejecutando, reiniciar es idéntico al inicio .
agraciado
Similar al reinicio , pero solicitudes que se están atendiendo actualmente
se les permite completar.
fullstatus
Muestra un informe de estado, incluida una lista de solicitudes atendidas.
Esta opción requiere que el módulo mod_status esté habilitado.
estado
Similar a fullstatus pero omite la lista de solicitudes que se atienden.
configtest
Realiza una prueba de la sintaxis del archivo de configuración e informa cualquier error.
Puede usar apache2ctl en lugar del script de inicio Apache SysV si necesita obtener
un informe de estado o verifique la sintaxis de su archivo de configuración. Es posible que desee comprobar su
Secuencia de comandos de inicio de SysV para ver si utiliza las opciones normales o agradables para detener y
reiniciando.
En el ejercicio 9.1, configurará y probará un servidor Apache básico.
EJERCICIO 9.1
Configurando Apache
Este ejercicio lo guía a través del proceso de configuración de un servidor Apache, incluido
haciendo un pequeño cambio en su archivo de configuración y controlando el servidor en ejecución. antes de
Al principio, debe usar el administrador de paquetes de su distribución para instalar Apache. los
Es probable que el paquete se llame apache , apache2 , httpd o httpd2 . Tenga en cuenta que su

Página 467
El archivo de configuración y los nombres y ubicaciones predeterminados del sitio web pueden diferir de los descritos
en este ejercicio. (Este ejercicio se basa en una instalación de Ubuntu 10.10).
Una vez que haya instalado Apache, siga estos pasos:
1. Inicie sesión como root , adquiera privilegios de root a través de su o esté preparado para usar sudo para realizar
la mayoría de los pasos restantes de este ejercicio.
2. Cargue el archivo de configuración principal de Apache ( /etc/apache2/[Link] para Ubuntu) en
su editor de texto favorito.
3. Si el archivo de configuración principal de Apache no incluye una opción DocumentRoot , use grep
para localizar el archivo que lo hace, como en grep - r DocumentRoot / etc / apache2 / * . Cargue el archivo que
buscar en un editor de texto. (Si varios archivos contienen esta directiva, deberá escanear el
archivo de configuración principal para determinar qué archivo cargar.) En el caso de Ubuntu 10.10,
debe cargar el archivo / etc / apache2 / sites - available / default .
4. Busque la directiva DocumentRoot y cámbiela para que apunte a una nueva ubicación, como
/ var / mywww .
5. En su shell bash , escriba apache2ctl configtest . El programa debe responder con
Sintaxis correcta . Si no es así, revise los cambios en el archivo de configuración de Apache; lo más probable es que
cambió accidentalmente algo que no debería haber cambiado.
6. Cree el directorio que especificó en el paso 4.
7.
Asegúrese de que los permisos en el directorio que creó en el paso 6 otorguen acceso de escritura
a un solo usuario (puede usar root por el momento, pero a la larga un Web master
cuenta podría ser más apropiado) pero que todos los usuarios, o al menos la cuenta utilizada para
ejecutar Apache, puede leer el directorio.
8. Escriba cp /var/www/[Link] / var / mywww para copiar la página de inicio predeterminada del servidor a la
nueva ubicacion. Alternativamente, obtenga un archivo HTML válido que no dependa demasiado de
otros archivos y cópielos en / var / mywww .
9. Cargue /var/mywww/[Link] en un editor de texto.
10. Realice cambios en /var/mywww/[Link] para que pueda identificarlo fácilmente. No necesitas
mucha comprensión de HTML para hacer esto; simplemente busque algo que sea claramente texto en inglés
en lugar de etiquetas de control HTML y cámbielo.
11. Escriba apache2ctl restart . Esto iniciará el servidor o lo reiniciará si ya se estaba ejecutando.
12. Como usuario no root , inicie un navegador web.
13. Escriba http: // localhost en el campo URI del navegador web. Deberías ver tu modificado
Aparece la página web. Si no es así, tendrá que depurar la configuración para determinar
si el servidor se está ejecutando, se está ejecutando pero no responde a una conexión de host local,
apunta al directorio equivocado o tiene algún otro problema.
Controlando Apache
425

Página 468
426
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
EJERCICIO 9.1 (continuación)
14. Si su computadora está en una red, intente acceder a ella desde otra computadora escribiendo
http: // nombre del servidor en el campo URI de un navegador web en otra computadora, donde
servername es el nombre de host o la dirección IP de la computadora que está configurando. Si tú ves
su página web modificada, todo está bien. Si no es así, tendrá que depurar el problema.
15. Escriba apache2ctl stop . Verifique que el servidor se haya detenido actualizando su Web
página del navegador. (Si está utilizando un servidor proxy, como se describe en la siguiente sección
"Implementando un servidor proxy", su navegador puede seguir mostrando la página incluso
aunque el servidor Apache se ha detenido).
En este punto, puede continuar agregando archivos HTML al directorio / var / mywww para crear
un sitio web completo; sin embargo, debido a que ejecutar un servidor web innecesariamente es un riesgo de seguridad,
es mejor desinstalar Apache completamente de su computadora, o al menos asegurarse de que
no se ejecuta cuando reinicia su computadora. Puede hacerlo marcando y, si es necesario,
cambiar su configuración de SysV o Upstart, como se describe en el Capítulo 1.

Administrar archivos de registro de Apache


Muchas instalaciones de Apache crean un directorio de registro, llamado / var / log / apache2 , / var / log /
httpd , o algo similar, para contener los archivos de registro de Apache. Normalmente, [Link] contiene tanto
mensajes de error y notificaciones de acciones rutinarias de inicio y detención del servidor, se mantiene el registro de acceso
información sobre los accesos a páginas web, y other_vhosts_access.log contiene host virtual
informacion de acceso. Sin embargo, hay variantes en los nombres de archivo, así que consulte su servidor para ver
cómo se llaman los archivos. Además, es probable que los archivos de registro se roten y archiven automáticamente,
por lo que si el servidor ha estado funcionando durante un tiempo, es probable que vea archivos de registro antiguos, así como
los actuales.
Puede utilizar [Link] para ayudar a diagnosticar problemas con el servidor que impiden que
iniciar o que lo impacten negativamente de una manera menos drástica. Deberías tratar mucho este archivo
como lo haría con las entradas de cualquier otro servidor en su servidor, específico o de propósito general
archivos de registro.
El archivo [Link] , por el contrario, detalla los accesos rutinarios al servidor. Sus entradas se asemejan al
siguiendo:
[Link] - - [29 / Nov / 2010: 15: 57: 41 -0500] "HEAD / HTTP / 1.1" 200 338 "-"
"Mozilla / 5.0 (X11; U; Linux i686; en-US) AppleWebKit / 534.7 (KHTML, como
Gecko) Ubuntu / 10.10 Chromium / [Link] Chrome / [Link] Safari / 534.7 ”
Esta entrada está cargada con información, gran parte de la cual (como la fecha) es propia -
explicativo. Sin embargo, parte de la información es menos clara. Cada entrada comienza con una dirección IP
o nombre de host, que le permite identificar los clientes del servidor. En el ejemplo anterior,

Página 469
HEAD / especifica el documento recuperado; en este caso, la raíz del sitio web fue
pedido. Las dos últimas líneas de este ejemplo contienen información que identifica al navegador,
Sistema operativo y plataforma utilizados para acceder al servidor: Chromium ejecutándose en un i686 Ubuntu
instalación en este ejemplo.
Puede examinar los archivos de registro manualmente si lo desea y si está buscando algunos
información, el examen directo puede tener mucho sentido. Frecuentemente,
sin embargo, querrá confiar en una herramienta de análisis de archivos de registro, como Webalizer ( http: // www
.[Link] ) o AWStats ( [Link] ). Tales herramientas pueden
resumir cuántos visitantes ha tenido un sitio durante períodos de tiempo determinados, identificar cuándo
el servidor está más ocupado, localiza los archivos más populares servidos, etc. La mayoría de estas herramientas pueden
Genere gráficos para ayudarlo a visualizar los datos.

Implementación de un servidor proxy


Un servidor proxy es un programa que acepta solicitudes de acceso a la red en nombre de un cliente,
accede al servidor de destino y transmite los resultados al cliente. En algunos aspectos, un
el servidor proxy es similar a una computadora cortafuegos; sin embargo, un proxy procesa las solicitudes de acceso
en un nivel superior. Por ejemplo, un servidor proxy web analiza los URI enviados por los clientes y puede
Ensamblar completamente las páginas Web enviadas en respuesta. Esto permite que un servidor proxy utilice
reglas para bloquear páginas web no deseadas, almacenar datos en caché para accesos posteriores más rápidos, o para
realizar otras tareas de alto nivel.
Seleccionar un servidor proxy
Los servidores proxy existen para muchos propósitos, y existen diferentes servidores proxy para satisfacer una variedad
de necesidades:
Squid Este servidor proxy, que se describe con más detalle en breve, existe principalmente para almacenar en caché
datos para un acceso rápido. Si tiene una oficina con usuarios que tienden a acceder a la misma Web
sitios, Squid puede almacenar en caché los accesos recientes, mejorando así la velocidad de navegación para toda su
oficina. Puede obtener más información en [Link] .
Privoxy En lugar de mejorar la velocidad, este servidor tiene como objetivo filtrar anuncios y mejorar la privacidad
eliminando algunos tipos de funciones de seguimiento del navegador web de algunos sitios web. Es
con sede en [Link] .
Tinyproxy Este proxy, basado en [Link] , está destinado a ser un
servidor proxy ligero que realiza algunas operaciones de filtrado mínimas.
Una búsqueda en la Web mostrará muchos más servidores proxy para Linux. Muchos de estos son
realmente implementado usando Squid, ya que Squid es una herramienta extremadamente flexible. El seguimiento
Las páginas describen Squid con más detalle, porque es inusualmente flexible y está cubierto en la
Examen LPIC 202.
Implementación de un servidor proxy
427

Página 470
428
Capítulo 9 ■
Configuración de servidores web y de correo electrónico

Configurando Squid
El énfasis de Squid está en almacenar datos en caché para mayor velocidad, en lugar de proporcionar seguridad u otros
caracteristicas. Si instala Squid y luego lo inicia inmediatamente, el programa funcionará en este
capacidad inmediatamente; sin embargo, su archivo de configuración, /etc/squid/[Link] , proporciona una
vertiginosa variedad de opciones. Si necesita ajustar la configuración de Squid, puede leer detenidamente este
archivo de configuración, preferiblemente junto con la documentación de Squid.
Puede instalar Squid en una computadora cliente individual para obtener algunos beneficios; sin embargo,
Squid funciona mejor cuando se ejecuta en un servidor central y almacena en caché las solicitudes de
múltiples clientes. Por ejemplo, si Fred accede a una página web desde su sistema de escritorio, un Squid
El proxy que se ejecuta en un sistema diferente pero cercano puede almacenar en caché esa página localmente. Si Mary entonces
accede a la misma página desde su computadora, Squid puede entregar la página en caché. Si calamar
se instalaron por separado en las computadoras de Fred y Mary, no podría entregar la
copia en caché a Mary, eliminando así los beneficios de Squid.
Squid es un servidor proxy y, como servidor, debe ejecutarse de una de las formas adecuadas.
a los servidores. Normalmente, esto significa que Squid se ejecuta desde un script de inicio de SysV. Si acabas de
instalado Squid, debe asegurarse de iniciarlo manualmente la primera vez y asegurarse de que esté
configurado para ejecutarse automáticamente cuando reinicia la computadora.
Uso de un servidor proxy anonimizado o tunelizado
Un servidor proxy anonimizado es un servidor proxy cuyo propósito es mantener su identidad
confidencial. Un servicio similar es un servidor proxy de túnel , que existe para ayudar a los usuarios a trabajar
alrededor de bloqueos impuestos por sitios web, ISP o censores nacionales. Si un servidor proxy
Se denomina anonimización o tunelización depende en gran medida de su finalidad; los dos trabajan de una manera muy
de manera similar.
No ejecuta un servidor proxy de este tipo localmente (a menos que tenga la intención de anonimizar o
servicio de tunelización disponible para terceros); en su lugar, configura su navegador web para acceder
un servidor dirigido por otra persona. Cuando hace esto, el servidor web definitivo ve su
Los accesos web provienen del servidor anonimizado o de tunelización, en lugar de
su propia dirección IP; y sus accesos pueden ser dirigidos a una dirección IP distinta a la
destino final (es decir, el servidor proxy), trabajando así alrededor de bloques que podrían
de lo contrario evitará que acceda al sitio.
A veces se abusa de los servidores proxy anonimizados y de tunelización para ayudar en la piratería;
sin embargo, también se pueden usar simplemente para ayudar a proteger su privacidad o para evitar
Problemas de red intencionales o no intencionales o censura.

Página 471
Ajustar las reglas de acceso
Squid implementa reglas de seguridad opcionales que permiten establecer políticas de control de acceso basadas
en la dirección IP del cliente, número de puerto, número de conexiones, nombre de usuario y contraseña,
o muchas otras funciones. Estas listas de control de acceso (ACL) se pueden utilizar para ajustar el proxy
acceso. Por ejemplo, puede usar reglas de firewall para bloquear el acceso web saliente excepto
a través de Squid y luego use las reglas de Squid para permitir que solo ciertas computadoras o usuarios accedan
La web. Para implementar tal configuración, usa tres comandos en el Squid
archivo de configuración: auth_param , acl y http_access . Es probable que llame a cada uno de
estos comandos varias veces para configurar varias opciones.
El mecanismo de autenticación de Squid hace que las contraseñas se transmitan
forma no cifrada. Esto puede ser aceptable en una red local, pero
debe ser consciente de los riesgos. Usuarios locales descontentos o intrusos que se benefician
el acceso a una máquina local podría interceptar contraseñas y provocar
estragos. Los datos de los usuarios de Wi-Fi se pueden interceptar fácilmente a menos que sea adecuado
cifrado. Para mayor seguridad, use diferentes contraseñas en el servidor proxy
que en otras computadoras de la red.
El comando auth_param le dice a Squid qué mecanismo usar para autenticar a los usuarios:
Módulos de autenticación conectables locales (PAM), un controlador de dominio Samba o Windows,
un servidor de Protocolo ligero de acceso a directorios (LDAP), o lo que sea. Un típico
La configuración puede parecerse a la siguiente:
auth_param programa básico / usr / lib / squid / pam_auth
auth_param basic niños 5
auth_param servidor web de almacenamiento en caché proxy Squid basic realm
auth_param basic credentialsttl 2 horas
Este ejemplo le dice a Squid que use el programa / usr / lib / squid / pam_auth como ayuda
para la autenticación, para generar cinco procesos de autenticación para manejar la autenticación inicial
solicitudes, para entregar el servidor web de almacenamiento en caché del proxy Squid como parte de la autenticación
solicitar y conservar las credenciales de los usuarios durante dos horas. Muchas otras opciones para auth_param
están disponibles; consulte la documentación de Squid (incluyendo comentarios extensos en su
archivo de configuración) para obtener más información.
Con auth_param configurado, ahora debe usar el comando acl para definir una ACL:
acl myacl proxy_auth REQUERIDO
Esta ACL se llama myacl , es obligatoria y se define como una ACL proxy_auth , lo que significa
que se basa en los mecanismos de autenticación definidos con auth_param . Puedes más
ajustar esta configuración; nuevamente, consulte la documentación de Squid para más detalles.
Implementación de un servidor proxy
429

Página 472
430
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
Finalmente, debe usar http_access para definir las reglas de acceso que usan myacl (u otras reglas):
http_access deny! myacl
http_access permitir localnet
http_access denegar todo
Esta configuración le dice a Squid que niegue a cualquier usuario que no pase la prueba myacl (la
signo de exclamación, ! , sirve como símbolo de negación), para permitir el acceso a cualquier usuario que pase
la primera prueba y quién está en la red local, y para denegar a todos los demás usuarios. Una vez más, muchos
son posibles variantes en esta configuración; consulte la documentación de Squid para más detalles.
Si el archivo de configuración actual existente tiene auth_param o http_acces
opciones, debe comentarlas para asegurarse de que las nuevas
aplicado correctamente. Los comandos acl existentes pueden coexistir con los nuevos
siempre que use un nombre único para su nueva ACL ( myacl en estos ejemplos).

Configuración de clientes para utilizar un servidor proxy


Además de instalar y ejecutar Squid (o cualquier otro servidor proxy) en su sistema host,
debe configurar los clientes para que lo utilicen. Por lo general, esto se hace seleccionando las opciones adecuadas.
en los servidores web de sus clientes. Por ejemplo, en Mozilla Firefox en Linux, debe seleccionar
Edite las preferencias para mostrar el cuadro de diálogo de preferencias de Firefox. Seleccione la opción Avanzado,
haga clic en la pestaña Red y haga clic en el botón Configuración. El resultado será la conexión
Cuadro de diálogo Configuración, que se muestra en la Figura 9.2 junto con el cuadro de diálogo Preferencias de Firefox
caja. Seleccione Configuración manual de proxy e ingrese el nombre de host o la dirección IP del
computadora del servidor proxy, junto con el número de puerto que está usando. (Squid tiene por defecto el puerto 3128.)
FIGURA 9.2 Debe configurar los navegadores web para utilizar un servidor proxy como Squid

Página 473
Si configura Squid para requerir autenticación, su próximo intento de acceder al
Internet después de configurar su navegador para usar Squid producirá una autenticación
cuadro de diálogo, como el que se muestra en la Figura 9.3, que muestra el cuadro de diálogo producido por
Konqueror. Una vez que ingrese un nombre de usuario y contraseña, podrá navegar por Internet
normalmente hasta que la contraseña expire (según lo determinado por la opción credentialsttl establecida a través de
auth_param ).
FIGURA 9.3 Cuando Squid está configurado para requerir autenticación, hace que el navegador
para mostrar un cuadro de diálogo de autenticación
Otra forma de usar un servidor proxy es usar una configuración de firewall de iptables en su
enrutador de la red para redirigir todo el tráfico web saliente al servidor proxy. (Capítulo 7
describe iptables .) Esta configuración evita la necesidad de configurar cada cliente
individualmente; sin embargo, también significa que si el servidor proxy corrompe los datos, sus usuarios
no tengo ningún recurso. Es posible que la autenticación tampoco funcione mediante este mecanismo. Si intentas
tal configuración, asegúrese de eximir a la computadora del servidor proxy de la regla, no sea que
configura un bucle infinito en el que el tráfico del servidor proxy se redirige a sí mismo.

Comprensión del correo electrónico


La entrega de correo de Internet hoy en día está dominada por un protocolo conocido como Simple Mail
Protocolo de transferencia (SMTP) . Este protocolo es un ejemplo de protocolo push , lo que significa que
el sistema de envío inicia la transferencia. Un usuario escribe un mensaje con un lector de correo
y luego le dice al lector de correo que envíe el correo. El lector de correo contacta con un SMTP local
servidor, que puede ejecutarse en la misma computadora o en otra. El servidor SMTP acepta la
mensaje para su entrega, busca la dirección del destinatario y entrega el mensaje a
Comprensión del correo electrónico
431

Página 474
432
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
el sistema receptor. En algunos casos, el sistema del destinatario puede reenviar el correo a otro
sistema, que gestiona la cuenta de correo del destinatario. Dependiendo de cómo
El destinatario lee el correo, esa persona puede usar la computadora del servidor de correo de destino directamente o
ejecutar un cliente de correo en otra computadora. En el último caso, el cliente de correo utiliza un protocolo
como el Protocolo de oficina de correos (POP) o el Protocolo de acceso a mensajes de Internet (IMAP)
para recuperar el correo del servidor de correo local. POP e IMAP son ejemplos de
protocolos de extracción , en los que el destinatario, en lugar del remitente, inicia la transferencia de datos.
La figura 9.4 describe esta configuración. El sistema de correo de Internet es lo suficientemente flexible como para
el número total de enlaces entre el remitente y el destinatario puede ser mayor o menor que el
número representado en la Figura 9.4, sin embargo.
[Link]
[Link]
[Link]
[Link]
[Link]
POP o
IMAP
SMTP
SMTP
SMTP
FIGURA 9.4 El correo electrónico generalmente atraviesa varios vínculos entre el remitente y el destinatario
Aunque POP e IMAP se utilizan a menudo como enlace final en el correo electrónico
cadena de suministro, como se muestra en la Figura 9.4, este no tiene por qué ser el caso.
El programa Fetchmail ( [Link] ) funciona como
Cliente POP o IMAP y luego inyecta los mensajes recuperados en un local
cola de correo, lo que permite que estos protocolos funcionen en otros puntos
en la cadena. Fetchmail es útil si confía en un ISP externo para administrar
su dominio de Internet, incluidas sus direcciones de correo electrónico accesibles desde Internet,
pero desea ejecutar su propio sistema de correo (tal vez incluso incluyendo su propio
Servidor POP o IMAP) internamente.
Tres de las computadoras de la Figura 9.4: [Link] , [Link] y
[Link] : debe ejecutar servidores SMTP. Estos servidores pueden ser completamente diferentes
productos que se ejecutan en diferentes plataformas. Además de ejecutar un servidor SMTP,
El archivo [Link] de la Figura 9.4 debe ejecutar un servidor POP o IMAP. Los dos puntos finales
Las computadoras, [Link] y [Link] , no necesitan ejecutar servidores de correo.
En su lugar, [Link] se conecta al servidor SMTP en [Link] para
enviar correo y [Link] se conecta al servidor POP o IMAP en la bandeja de entrada
.[Link] para recuperar correo.

Página 475
Configuración de un servidor de correo push
La importancia de SMTP en la cadena de entrega de correo electrónico significa que la gran mayoría de los servidores de correo
las computadoras ejecutarán un servidor SMTP (también conocido como agente de transferencia de correo o MTA ). antes de
sin embargo, comienza a instalar software, debe comprender la dirección de correo electrónico y el dominio
problemas de correo electrónico. Con esta tarea en la mano, debe decidir qué programa de servidor de correo electrónico ejecutar,
ya que varios están disponibles para Linux. Este capítulo cubre dos servidores SMTP, sendmail y
Postfix, en las secciones "Ejecución de Sendmail" y "Ejecución de Postfix", con suficiente detalle para
le permite realizar tareas básicas de configuración del servidor de correo.
Los servidores de correo electrónico son lo suficientemente complejos como para que se hayan escrito libros completos
sobre los principales servidores. Debe consultar un título como Costales,
Assmann, Jansen y Shapiro's sendmail, 4th Edition (O 'Reilly, 2007) o
Postfix de Dent : The Definitive Guide (O 'Reilly, 2003) si necesita hacer más
que la configuración básica del servidor de correo.

Configuración de un dominio para aceptar correo


Las direcciones de correo electrónico de Internet pueden adoptar una de dos formas:
username @ [Link] , donde username es el nombre de usuario del destinatario y [Link] es un
nombre de host de la computadora. (La dirección también puede usar una dirección IP, generalmente rodeada por
corchetes, en lugar de un nombre de host.) Por ejemplo, el correo puede estar dirigido a
ben@[Link] . Es probable que esta forma de direccionamiento funcione siempre que el objetivo
La computadora está configurada para aceptar correo dirigido a ella.
username @ [Link] , donde username es el nombre de usuario y el [Link] del destinatario
es el nombre de dominio. Por ejemplo, el correo puede dirigirse a ben@[Link] . Tal
El direccionamiento suele ser más corto que una dirección que incluye el servidor de correo
nombre de host completo, y puede ser más confiable, dependiendo de la configuración del dominio.
Para que funcione el segundo tipo de dirección, el dominio requiere un nombre de dominio especial
Entrada del sistema (DNS). Esta entrada se conoce como registro de intercambiador de correo (MX) y apunta
enviar servidores de correo a un servidor de correo específico. Por ejemplo, el registro MX para
[Link] podría apuntar a [Link] . Por tanto, correo dirigido a ben @ pangea
.edu se entrega al servidor [Link] , que puede procesarlo localmente o reenviarlo
a otra computadora.
El Capítulo 6, "Configuración del servidor DNS", describe la configuración de Berkeley Internet
Servidor DNS de dominio de nombre (BIND). En resumen, un registro MX pertenece al control del dominio
archivo, que generalmente está en / var / named y generalmente se nombra después del dominio, como named
.[Link] para [Link] . (Sin embargo, el nombre exacto es arbitrario). Un registro MX


Configuración de un servidor de correo push
433

Página 476
434
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
para [Link] , apuntando servidores SMTP externos a [Link] para la entrega de correo,
se vería así:
@ IN MX 5 [Link].
Si otro administrador del sistema ejecuta el servidor DNS de su dominio, consulte a esa persona.
sobre la administración de registros MX. Si usa un proveedor externo, como un dominio
servidor DNS del registrador, es posible que deba ingresar la información del registro MX en un
formar. Estos formularios pueden intentar reflejar el diseño de la información que encontrará en un DNS.
configuración del servidor, como se acaba de describir, pero es posible que no le permitan cambiar
información. Alternativamente, el formulario puede presentar campos de entrada de datos simplificados, como campos
solo para el código de prioridad del servidor y el nombre de host.
Es posible que una computadora en un dominio funcione como servidor de correo para un
dominio diferente. Por ejemplo, [Link] podría ser el servidor de correo de pangea.
.edu . Esta configuración requiere configurar el servidor para aceptar correo dirigido al
dominio en cuestión y, por supuesto, ingresando la ruta completa al servidor de correo en el destino
registro MX del dominio.
Elegir un servidor de correo electrónico
Una amplia variedad de servidores SMTP pueden ejecutarse en Linux. Los servidores de correo Linux más populares
son todos programas muy poderosos que son capaces de manejar las necesidades de correo de grandes dominios,
cuando se combina con hardware suficientemente potente. Los servidores más populares son:
Sendmail Este servidor, con sede en [Link] , ha dominado durante mucho tiempo
Entrega de correo de Internet. Aunque no es tan dominante como antes, las encuestas sugieren que
sendmail sigue siendo el servidor de correo de código abierto más popular. Desafortunadamente, sendmail tiene
también se ganó la reputación de tener un formato de archivo de configuración difícil de dominar. Por suerte,
Las herramientas para crear un archivo de configuración a partir de un archivo más simple son comunes.
Postfix Este servidor es comparable a sendmail en popularidad. Postfix utiliza una serie de pequeños
programas para manejar tareas de entrega de correo, a diferencia del enfoque monolítico utilizado por
enviar correo. El resultado es una mayor velocidad y, al menos en teoría, menos posibilidades de seguridad seria
defectos. (En la práctica, Postfix tiene un buen historial de seguridad). Su configuración es mucho más fácil de
manejar que el de sendmail. Puede obtener más información en [Link] .
Exim Este servidor de correo, descrito en [Link] , no es tan popular como
sendmail o Postfix, pero sigue siendo un servidor de correo Linux popular. Como sendmail, Exim usa
un diseño monolítico, pero el archivo de configuración de Exim es mucho más inteligible. Este servidor
incluye amplias herramientas de coincidencia de patrones que son muy útiles para combatir el spam.
qmail La popularidad de este servidor es aproximadamente igual o un poco menor que la de Exim, dependiendo
en la encuesta. La mayoría de las distribuciones principales no se envían con qmail porque sus términos de licencia son
peculiar - no permiten la distribución de binarios excepto bajo condiciones limitadas. Me gusta
Postfix, qmail utiliza un diseño modular que enfatiza la velocidad y la seguridad. Compruebe http: //
[Link] para obtener más información.

Página 477
Para trabajos livianos, por ejemplo, para una pequeña empresa o un servidor de correo personal, cualquiera de estos programas
funcionará bastante bien. Para tales casos, recomiendo seguir con cualquier software que sea el
estándar para su distribución. Para instalaciones más grandes o si necesita funciones avanzadas,
es posible que desee investigar alternativas al servidor predeterminado de su distribución más
cercanamente. Puede encontrar características particulares, como las herramientas de coincidencia de patrones de Exim o la
diseño modular de Postfix y qmail, atractivo. Todos estos servidores son capaces de manejar
dominios grandes u ocupados, aunque sendmail puede requerir un hardware más rápido que los demás
para manejar un volumen determinado de correo. Para sitios pequeños, incluso sendmail no enfatiza más que
computadoras más débiles.
Las siguientes secciones describen la configuración de sendmail y Postfix en más
detalle. No he incluido secciones sobre Exim y qmail porque son menos populares y no
incluidos en los objetivos de LPI, excepto por una breve mención de Exim, pero ciertamente son
vale la pena considerarlo si desea cambiar su servidor de correo.
Ejecutando Sendmail
La mayoría de las distribuciones de Linux proporcionan un paquete sendmail, aunque muchas instalan Postfix
o Exim como servidor de correo predeterminado. Si desea ejecutar sendmail con una distribución que
normalmente utiliza otro servidor de correo, debe eliminar el servidor de correo estándar e instalar
enviar correo. Desafortunadamente, las ubicaciones y los nombres de los archivos de configuración de sendmail varían algo
de una distribución a otra, por lo que debe saber dónde buscar para encontrar estos archivos.
Una vez encontrado, puede cambiar muchas opciones de sendmail, como las direcciones que el servidor
considera opciones locales y de retransmisión.
Muchos programas dependen de la presencia de un archivo ejecutable llamado sendmail .
Por esta razón, los servidores de correo que no sean sendmail suelen incluir un
ejecutable llamado sendmail , que a menudo es un enlace al programa equivalente
archivo para el otro servidor de correo.
Uso de archivos de configuración de Sendmail
El archivo principal de configuración de sendmail se llama [Link] y normalmente se encuentra en
/ etc / mail . Desafortunadamente, este archivo es muy largo y difícil de entender. Debieras
no intente editar este archivo directamente; en su lugar, debe editar un archivo de configuración que pueda
utilizado para generar un archivo [Link] . Este archivo de configuración de origen se escribe con m4
lenguaje de procesamiento de macros, que es más inteligible que la configuración de sendmail sin procesar
formato de archivo. Para editar y compilar un archivo de configuración m4 para sendmail, es posible que deba
instalar paquetes adicionales:
El lenguaje de macros m4 Debe instalar el lenguaje de macros m4 . Este software generalmente
viene en un paquete llamado m4 . Busque un archivo de programa llamado m4 (a menudo almacenado en / usr / bin )
para comprobar si ya está instalado en su sistema. Si no es así, busque e instale el
paquete que vino con su distribución de Linux.
Configuración de un servidor de correo push
435

Página 478
436
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
Archivos de configuración de Sendmail m4 Necesita un conjunto de archivos de configuración de m4 para sendmail
para modificar su configuración. Estos archivos normalmente se instalan desde el paquete sendmail - cf.
La mayoría de las distribuciones se envían con archivos de configuración m4 predeterminados que se pueden usar para reconstruir
el archivo [Link] estándar que se envía con la distribución. (Si reconstruye el
archivo, algunos comentarios difieren, pero el archivo reconstruido es funcionalmente idéntico al original).
El nombre del archivo de configuración predeterminado varía, pero podría llamarse [Link] , [Link] ,
o algo mas. Puede residir en / etc / mail , / usr / share / sendmail / cf o en otro lugar.
Para Red Hat, el archivo predeterminado es /etc/mail/[Link] . (Este archivo en realidad se envía con
el paquete sendmail en lugar de sendmail - cf. ) El archivo predeterminado de Slackware es / usr / share /
sendmail / cf / cf / [Link] .
Para realizar cambios en su configuración, siga estos pasos como root :
1. Haga una copia de seguridad de su archivo /etc/mail/[Link] predeterminado .
2. Cambie al directorio en el que reside el archivo de configuración m4 original .
3. Copie el archivo original con un nuevo nombre; por ejemplo, podría llamarlo [Link] .
4. Edite el archivo de configuración como se describe en las siguientes secciones o para lograr
otros extremos.
5. Escriba el siguiente comando para crear un nuevo archivo /etc/mail/[Link] :
# m4 <[Link]> /etc/mail/[Link]
Si todo va bien, el comando m4 no mostrará ningún mensaje en su shell de comandos, pero
si marca , debería encontrar que el archivo /etc/mail/[Link] es nuevo. Entonces puedes decir
sendmail para leer el nuevo archivo de configuración:
# killall -HUP sendmail
Este comando le dice a todas las instancias de sendmail en ejecución que relean sus archivos de configuración y
implementar cualquier cambio. Luego, puede probar esos cambios de la manera que sea apropiada:
enviando o recibiendo correo y verificando si los cambios que estableciste están implementados.
Además del archivo principal [Link] , varios otros archivos son importantes en el
configuración. La mayoría de estos archivos residen en / etc / mail , pero algunos pueden residir en / etc . Dos de
los más importantes de estos archivos son:
[Link] Este archivo, que normalmente reside en / etc / mail , controla el acceso al sendmail
servidor. Al enumerar o no enumerar sistemas particulares en este archivo de formas específicas, puede
ajustar qué sistemas pueden usar sendmail para retransmitir correo a otros sistemas. Este archivo es un binario
base de datos construida a partir del archivo de acceso de texto sin formato utilizando el programa makemap .
[Link] Como [Link] , este archivo es un archivo de base de datos binario construido a partir de un archivo de texto plano
( alias ) usando nuevos alias . Este archivo aparece en / etc o / etc / mail , dependiendo de su
distribución. Este archivo enumera los alias para nombres de usuario o direcciones particulares. Por ejemplo, si
configura un alias que vincula el nombre del administrador de correos a la raíz , todo el correo dirigido al administrador de correos
se entrega a root . Los alias se describen con más detalle más adelante en "Configuración de alias y
Reenvío. "

Página 479
Configuración del nombre de host en Sendmail
Los mensajes de correo electrónico tienen nombres incrustados en ellos. Estos nombres identifican la computadora, por lo que en
teoría, deberían ser los mismos que el nombre de host de la computadora. A veces, sin embargo, los nombres
en el encabezado puede ser necesario cambiar. Por ejemplo, es posible que desee que el correo saliente sea
asociado con su nombre de dominio en lugar de con el nombre del servidor de correo. Configurando
su servidor de correo de esta manera puede evitar problemas en el futuro, por ejemplo, si cambia su
sistema de servidor de correo. Si su correo saliente ha utilizado el verdadero nombre de host del servidor de correo, responde
a los mensajes antiguos pueden seguir dirigiéndose a este sistema y, por tanto, rebotar. A
establecer el nombre que se usa en los encabezados De: en los mensajes de correo, debe agregar líneas como
como se muestra a continuación en el archivo de configuración m4 y reconstruya su archivo de configuración principal:
MASQUERADE_AS (` dirección-destino ')
FUNCIÓN (masquerade_envelope)
La línea MASQUERADE_AS incluye dos tipos de caracteres de comillas simples. los
El personaje principal es una marca inversa, accesible en la mayoría de los teclados en la tecla para
la izquierda de la tecla 1 . La comilla de cierre es un carácter de comilla simple ordinario,
que está en la tecla a la izquierda de la tecla Enter en la mayoría de los teclados. Si tu
use los caracteres incorrectos, estas líneas no funcionarán.
Por supuesto, debe cambiar la dirección de destino en la primera de estas líneas de muestra a la
dirección que desea utilizar, como [Link] . La línea MASQUERADE_AS solo cambia
la dirección que se muestra en la línea de encabezado De: correo. También cambia esta configuración
sólo si el lector de correo no especifica una dirección diferente. Muchos clientes permiten a los usuarios configurar
direcciones de retorno arbitrarias, y estos valores anulan cualquier opción que establezca en sendmail.
La línea FEATURE (masquerade_envelope) va más allá; anula la configuración que ingresan los usuarios
en sus clientes de correo. Puede utilizar esta opción si desea limitar la capacidad de los usuarios para configurar
direcciones de retorno falsas en sus lectores de correo.
Configuración de Sendmail para aceptar correo entrante
Para aceptar correo entrante, sendmail debe estar configurado para aceptar la red entrante
conexiones. Muchas distribuciones se envían con configuraciones que bloquean las conexiones de
cualquier cosa menos la computadora local. Esta configuración es buena para estaciones de trabajo que pueden necesitar
para enviar correo saliente o enviar correo entre usuarios locales pero que no debería recibir correo de
sistemas exteriores. Si desea recibir correo de otras computadoras, debe modificar este
configuración. Para hacerlo, edite el archivo de configuración m4 (como /etc/mail/[Link] ).
Busque la siguiente línea:
DAEMON_OPTIONS (`Port = smtp, Addr = [Link], Name = MTA ') dnl
Comente esta línea agregando la cadena dnl y un espacio al comienzo de la línea.
(A diferencia de la mayoría de los archivos de configuración, los archivos sendmail m4 usan dnl como indicador de comentarios).
luego puede crear un nuevo archivo [Link] , como se describe en la sección anterior "Uso de Sendmail
Archivos de configuración. ”Reinicie el servidor escribiendo killall - HUP sendmail o pasando
Configuración de un servidor de correo push
437

Página 480
438
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
reinicie con el script de inicio SysV del servidor, y el servidor debería aceptar conexiones desde
sistemas remotos.
Otro aspecto de aceptar conexiones remotas es decirle a sendmail qué nombres de host
reconocer como local. Por ejemplo, considere la Figura 9.4. Si [Link] es la computadora
al que apunta el registro MX del dominio [Link] , entonces [Link] debe
saber aceptar correo dirigido al usuario @ [Link] . Normalmente, sendmail rechaza mensajes
dirigido a cualquier cosa que no sea el propio nombre de host de la computadora. Puedes cambiar este comportamiento
agregando cualquier alias para la computadora del servidor de correo en un archivo de configuración especial.
Este archivo se llama / etc / mail / local - nombres de host , y su uso está habilitado por defecto en algunos
configuraciones de sendmail de las distribuciones. En otros, primero debe agregar una línea al sendmail
m4 y cree un nuevo archivo [Link] , como se describe anteriormente en “Uso
Archivos de configuración de Sendmail. ”La línea que debe agregar es:
FUNCIÓN (use_cw_file)
Asegúrese de que esta línea aparezca antes de las dos líneas MAILER en la parte inferior del archivo predeterminado.
Después de haber reconstruido el archivo [Link] , cree o edite / etc / mail / local - host - nombres y
agregue los nombres que desea que sendmail reconozca como locales. Por ejemplo, puede agregar líneas
como los siguientes:
[Link]
[Link]
Una vez realizada esta tarea, el servidor aceptará el correo de estos dominios como correo local, incluso si
el nombre de host del servidor no se parece en nada a estos nombres. Por ejemplo, ingresando
estas dos líneas en [Link] 's locales - acogida - nombres de archivos hará que se distribuye correo
dirigido a sue@[Link] a cualquier cuenta local con un nombre de usuario de sue .
Configuración de opciones de configuración de retransmisión de Sendmail
Los servidores de correo a menudo deben configurarse como retransmisores . En tal configuración, el servidor acepta correo
de un sistema y lo pasa a otro. Una configuración de relé común es la de un
servidor de correo departamental, que acepta correo de muchos clientes y pasa el correo a
a los sistemas de destino. Por ejemplo, se debe configurar [Link] de la Figura 9.4
De este modo. Otra configuración de retransmisión implica decirle a sendmail que utilice otro sistema como
un relevo. Por ejemplo, si el [Link] de la Figura 9.4 fuera un sistema Linux, podría
configúrelo para usar [Link] como retransmisión saliente. El uso de relés salientes habilita
utilizar la computadora de retransmisión como punto de control para el correo. En algunos casos, debe
configure su sistema de esta manera. Por ejemplo, su LAN o ISP puede estar configurada
para bloquear las conexiones SMTP salientes excepto al servidor de correo autorizado.
Configuración de Sendmail para retransmitir correo
Sendmail ofrece muchas opciones de retransmisión. La configuración más común implica un
característica que se puede definir en el archivo sendmail m4 usando una línea como esta:
FUNCIÓN (`access_db ')
Algunas configuraciones de sendmail agregan opciones adicionales a esta definición. Algunas distribuciones '
las configuraciones estándar no definen esta opción; por lo tanto, si desea utilizarlo, debe

Página 481
agréguelo al archivo de configuración m4 y reconstruya el archivo [Link] , como se describe anteriormente en
“Uso de archivos de configuración de Sendmail. ”Una vez que la opción está presente, puede editar el archivo / etc /
archivo de correo / acceso . Un archivo típico puede parecerse al que se muestra en el Listado 9.1, excepto que
tales archivos predeterminados carecen de la entrada final.
Listado 9.1: Un archivo de acceso típico para controlar la retransmisión de correo
# Permitir retransmisión desde localhost ...
[Link] RELAY
localhost
RELÉ
[Link]
RELÉ
# Relé para la red local
172.25.98
RELÉ
El Listado 9.1 primero aprueba la retransmisión para la computadora local, utilizando tres métodos de identificación
esa computadora - por dos nombres ( [Link] y localhost ) y por dirección IP
([Link]). Si activa la función access_db , su archivo / etc / mail / access debe contener
estas entradas si su sistema va a manejar de manera confiable el correo desde la computadora local. (Algunos programas
llamar a sendmail de tal manera que estas entradas no sean necesarias, pero otras usan el loopback
interfaz de red, que requiere la retransmisión de sendmail para localhost o sus alias).
para más sistemas, debe agregarlos a la lista, como lo hace el Listado 9.1. Ese ejemplo se retransmite para
la red [Link]/24. Si lo prefiere, puede especificar equipos individuales o enumerarlos
por nombre de dominio o nombre de host, pero el uso de direcciones IP asegura que un atacante no podrá
abusar de las capacidades de retransmisión de su sistema comprometiendo un servidor DNS.
Debido a que esta sección se refiere a la reinstalación, todos los ejemplos de Listado 9.1 especifican el RELAY
opción. Sin embargo, puede proporcionar otras palabras para lograr diferentes efectos:
OK Puede decirle a sendmail que acepte correo para su entrega incluso si otra regla lo haría
rechazado. Por ejemplo, puede anular un bloqueo en una red para hosts específicos usando OK .
RELÉ Esta opción habilita la retransmisión. Esta opción es en realidad bidireccional. Por ejemplo,
El Listado 9.1 permite que los sistemas externos transmitan correo a los servidores de la red [Link]/24.
RECHAZAR Esta opción bloquea el correo procedente o dirigido al nombre de host especificado o
red. Sendmail genera una respuesta de rebote cuando se intenta enviar hacia o desde
los sistemas prohibidos. Puede usarlo para bloquear el dominio de un spammer conocido, por ejemplo.
DESCARTAR Esta opción funciona de manera muy similar a RECHAZAR , pero sendmail no generará un mensaje de devolución.
ERROR: nnn texto Esta opción también funciona como RECHAZAR , pero en lugar de generar un estándar
mensaje de rebote, responde con el número de código de error ( nnn ) y el mensaje ( texto ) que defina.
Después de modificar el archivo / etc / mail / access , debe crear un archivo de base de datos binaria desde
el archivo de texto sin formato. Para hacerlo, usa el comando makemap :
# makemap hash /etc/mail/[Link] </ etc / mail / access
Algunas configuraciones incluyen este comando en sus scripts de inicio de sendmail SysV, por lo que
puede omitir este paso si reinicia el servidor usando estos scripts. Cuando hayas terminado, reinicia
sendmail y pruebe la nueva configuración de retransmisión.
Configuración de un servidor de correo push
439

Página 482
440
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
Además de la función access_db , sendmail admite una variedad de retransmisiones adicionales
opciones. La mayoría de estas opciones incluyen la palabra relé en sus nombres, como relay_entire_
dominio o relay_local_from . La mayoría de estas opciones implementan reglas de retransmisión que pueden
configurados a través del archivo / etc / mail / access , por lo que es probable que no los necesite.
Una opción de retransmisión que debe evitar se llama promiscuous_relay . Esta
La opción configura el sistema para retransmitir desde cualquier host a cualquier servidor. Tal
La configuración es peligrosa porque los spammers pueden abusar de ella fácilmente. De hecho,
debe tener cuidado al configurar la retransmisión para evitar que su sistema
de la retransmisión desde cualquier fuente no confiable.
Configuración de Sendmail para usar una retransmisión
Si su servidor debe retransmitir correo a través de otra computadora, puede configurar sendmail
para adaptarse a este requisito. Para hacerlo, agregue la siguiente línea al sendmail m4
archivo de configuración y recompile el archivo [Link] :
FUNCIÓN (`nullclient ',` [Link] ')
El procedimiento para modificar el archivo de configuración m4 se describe anteriormente, en “Uso
Archivos de configuración de Sendmail. ”Reemplace [Link] con el nombre de host del correo
servidor que va a funcionar como un relé, como el servidor de correo de su departamento o ISP. Puedes
También es necesario eliminar un par de líneas o comentarlas precediendo las líneas con dnl :
MAILER (local) dnl
MAILER (smtp) dnl
Estas líneas duplican la funcionalidad incluida en la configuración del relé, por lo que incluyen
junto con la configuración del relé pueden hacer que m4 se queje cuando intentas construir un
nuevo archivo [Link] . Sin embargo, no todas las configuraciones usan estas líneas en sus archivos predeterminados.
Ejecutando Postfix
En comparación con sendmail, Postfix es fácil de configurar. Postfix usa una configuración primaria
archivo, /etc/postfix/[Link] , que tiene una sintaxis relativamente sencilla. El valor por defecto
La versión de este archivo también suele estar muy bien comentada, por lo que puede aprender mucho sobre su
configuración examinándola. Un problema con la configuración de Postfix es que depende en gran medida
en variables, como myhostname . Una variable puede usarse para establecer otra, que puede ser
utilizado para configurar otro, y así sucesivamente. Por lo tanto, es posible que deba rastrear su camino de regreso
varias capas de asignaciones de variables para aprender cómo se configura una variable importante. Sufijo
los nombres de las variables están precedidos por un signo de dólar ( $ ) cuando se accede, pero no cuando se asigna
valores para ellos. Al igual que con sendmail, es posible que sea necesario cambiar algunas configuraciones predeterminadas, incluso
en
una configuración bastante simple.

Página 483
Configuración del nombre de host en Postfix
Varios parámetros de Postfix afectan el nombre del servidor de Postfix o el nombre de host
que aparece en los encabezados de correo. Las más comunes de estas opciones se resumen en la Tabla 9.4.
En una configuración simple, no es necesario ajustar nada; Postfix adquiere su nombre de host
automáticamente y construye todo lo demás a partir de ahí. Puede anular la configuración si
Sin embargo, es necesario, por ejemplo, si su computadora tiene varios nombres de host y desea
use el que Postfix no detecta automáticamente en el servidor de correo, o si obtiene su dominio
name requiere eliminar más de un componente del nombre de host. La mascarada_
La opción de dominios requiere una explicación especial: esta opción elimina los componentes del nombre de host
si y solo si coinciden con el nombre reducido especificado. Por ejemplo, considere un caso en el que
ha configurado masquerade_domains = [Link] . Si se le dice al servidor que envíe correo con un
dirección de sue@[Link] , reducirá esta dirección a sue@[Link] . Si el
se le dice al sistema que envíe correo con una dirección de sue@[Link] , no cambiará la dirección.
TABLA 9.4 Opciones comunes de nombre de host de Postfix
Opción
Valor por defecto
Sentido
myhostname
Ordenadores
nombre de host, como
devuelto por
el nombre de host
mando
Nombre de host de la computadora; utilizado como predeterminado en muchos
opciones posteriores. Debe estar completamente calificado (que
es, incluya tanto el nombre de host como el dominio
nombre).
mi dominio
$ myhostname
despojado de su primera
componente
Nombre de dominio de la computadora; utilizado como predeterminado en
muchas opciones posteriores.
myorigin
$ myhostname
El nombre de host que se agrega al correo saliente
si el cliente de correo omite uno.
mascarada_
dominios
Ninguna
Dominios a los que debe reducirse una dirección.
Los dominios se prueban de izquierda a derecha en la lista
hasta que se encuentre la primera coincidencia.
mascarada_
clases
remitente_sobre ,
header_sender
Tipos de direcciones que se ven afectadas por
masquerade_domains . Las posibilidades son sobre_
remitente , envelope_recipient , header_sender ,
y header_recipient . Si las cuatro opciones son
usados, enviándolos por correo a máquinas individuales en el
los dominios especificados se volverán imposibles.
mascarada_
excepciones
Ninguna
Nombres de usuario que no deben enmascararse. por
Por ejemplo, si establece este valor en root , el correo de root
no se alterarán los encabezados.
remitente_
canonical_maps
Ninguna
Cambia la dirección del remitente mediante una búsqueda flexible
base de datos.
Configuración de un servidor de correo push
441

Página 484
442
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
Lo último en reasignación de direcciones se logra a través de sender_canonical_maps
opción. Apunte esta opción a un archivo usando una línea como la siguiente:
sender_canonical_maps = hash: / etc / postfix / sender_canonical
Luego puede especificar los nombres de host que desea cambiar en / etc / postfix / sender_
archivo canónico . Por ejemplo, para cambiar localhost y el mal escrito [Link] a
[Link] en direcciones salientes, use las siguientes dos líneas:
@ [Link] @ [Link]
@localhost @ [Link]
También puede incluir nombres de usuario para realizar cambios solo para usuarios particulares
correo. Después de crear este archivo y hacer referencia a él en /etc/postfix/[Link] , debe
convierte el archivo a formato binario. Escriba postmap sender_canonical desde / etc /
directorio postfix para hacer este trabajo. Luego puede decirle a Postfix que vuelva a cargar sus archivos de configuración
escribiendo postfix reload .
Aceptando correo entrante
Normalmente, Postfix acepta correo local dirigido a $ myhostname o localhost . $ myhostname ,
donde $ myhostname es su nombre de host o cualquier valor que haya establecido para esta variable. Usted puede
ampliar o reducir el rango de direcciones locales aceptadas cambiando el mydestination
ajuste. Por ejemplo, puede establecer este valor de la siguiente manera para el servidor de correo de un dominio:
mydestination = $ myhostname, localhost. $ myhostname, localhost, $ mydomain
Puede agregar más nombres si lo desea y, de hecho, tal cambio puede ser necesario si el
El servidor debe manejar varios dominios o correo dirigido a muchos clientes específicos en
la red. Si especifica muchos destinos de destino, puede dividirlos entre líneas
sin usar barras invertidas. En su lugar, sangra la segunda línea y las siguientes con una o
más espacios o pestañas. Postfix usa tal sangría como señal de que la línea es una continuación
de la configuración de la línea anterior.
Otra opción que puede necesitar cambiar es la configuración de inet_interfaces . Esta opción
establece las interfaces a las que escucha Postfix. Por ejemplo, configurarlo en $ myhostname indica
el servidor para escuchar en las interfaces de red asociadas con el nombre de host principal - o
cualquier valor que use $ myhostname . Si cambia este valor o si desea que Postfix
escuchar de manera más amplia, puede configurar la opción en todos para que el servidor escuche toda la red
interfaces.
Opciones de configuración del relé Postfix
Naturalmente, puede configurar Postfix para retransmitir correo de varias formas o para enviar correo a través de
un relevo saliente. La mayoría de las distribuciones se envían con una configuración de relé bastante restrictiva que
evita que el servidor retransmita correo de cualquier programa que no sea local. Deberías comprobar esto
configuración para estar seguro de cómo está configurado. Si necesita utilizar una retransmisión de correo saliente, debe
ajustar esa configuración, también.

Página 485
Configuración de Postfix para retransmitir correo
Varias opciones influyen en cómo Postfix trata un intento de retransmisión de correo. La tabla 9.5 resume
estas opciones. La configuración de retransmisión de Postfix se basa en el concepto de confianza ; el servidor retransmite
correo para máquinas en las que confía. Definir la autorización de retransmisión, por lo tanto, se convierte en un asunto
de definir en qué sistemas confiar.
TABLA 9.5 Opciones comunes de relé postfijo
Opción
Valor por defecto
Sentido
mynetworks_
estilo
subred
Tipo de redes que Postfix confía. subred (la
predeterminado) significa la misma subred de dirección IP que
el servidor, clase significa la misma clase de dirección IP
como servidor, y host significa confiar solo en el
computadora servidor en sí.
mynetworks
Lista de redes
según lo especificado por
$ mynetworks_
estilo
Lista de redes en las que se puede confiar. Las redes pueden ser
especificado como pares de dirección IP / máscara de red, o
puede proporcionar un nombre de archivo para un archivo en el que el
se almacena la información.
relay_domains
$ mydestination
Máquinas y dominios enumerados explícitamente por nombre.
Cuando se ejecuta desde Linux, la configuración predeterminada mynetworks_style significa que Postfix
retransmitir correo desde cualquier computadora con una dirección IP en la misma subred que el servidor.
Normalmente, las distribuciones de Linux se envían con mynetworks = [Link]/8 o algo similar,
que restringe la retransmisión a la computadora local solamente, anulando el predeterminado mynetworks_
ajuste de estilo . Debe expandir esta opción o eliminarla y confiar en mynetworks_style
configuración, si la computadora debe retransmitir correo a otras computadoras. Además, el relé_
dominios predeterminados significa que el servidor retransmitirá correo desde cualquier computadora especificada en el
opción mydestination o en computadoras dentro del dominio especificado. Por ejemplo, si tu
tiene una especificación de mydestination que incluye [Link] , Postfix retransmitirá desde cualquier
computadora en el dominio [Link] .
Si su computadora utiliza un acceso telefónico o la mayoría de los tipos de Internet de banda ancha
conexión, usando mynetworks_style = subnet o especificando su subred
el uso de mynetworks permite a Postfix retransmitir a todos los usuarios de la subred del ISP.
Esta configuración es un riesgo de spam, por lo que es posible que desee ajustar su Postfix
ajustes.
Como medida antispam, es posible que desee limitar las capacidades de retransmisión de Postfix. Esta
puede ser particularmente importante si ha configurado mydestination para incluir un dominio para el que
Configuración de un servidor de correo push
443

Página 486
444
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
el servidor no debe servir como retransmisor o si los sistemas de ese dominio ya están cubiertos por IP
address en las opciones mynetworks o mynetworks_style . Para hacerlo, puede proporcionar un
configuración restrictiva de relay_domains , como este ejemplo:
relay_domains = $ myhostname, localhost, [Link]
Si está ejecutando Postfix en una estación de trabajo, es posible que desee evitar que el servidor
retransmitir correo para cualquier cosa que no sea la propia computadora de la estación de trabajo. (Esta configuración acepta
correo tanto desde la computadora local a cualquier lugar como desde cualquier lugar a la computadora local).
Para esta configuración, debe combinar el límite estricto de relay_domains con un
definición de mynetworks_style :
mynetworks_style = host
Si Postfix se está ejecutando en un servidor de correo más grande y desea expandir las computadoras
para lo que retransmitirá, la forma más sencilla suele ser crear un relay_domains expandido
definición. Por ejemplo, para retransmitir correo para los sistemas predeterminados más los sistemas de [Link] ,
puede usar la siguiente línea:
relay_domains = $ mydestination, [Link]
Configuración de Postfix para utilizar un relé
Si está configurando Postfix en una estación de trabajo u otro sistema que debería retransmitir correo
otro servidor de correo, la configuración es bastante sencilla. Normalmente, es necesario configurar
opción relayhost al nombre del servidor de correo que debe usar. Por ejemplo, para configurar su
system para usar [Link] como retransmisor de correo, debe usar la siguiente línea:
relayhost = [Link]
Alternativamente, si desea utilizar la computadora a la que apunta el registro MX de un dominio,
puede proporcionar el nombre de dominio en lugar del nombre de host. Postfix luego hace un MX
registro de búsqueda y envía correo al servidor de correo del dominio. Esta configuración puede ser
preferible si es probable que cambie el nombre del servidor de correo saliente; no necesitas ajustar
su configuración de Postfix cuando esto suceda.
Gestión de correo electrónico
Una vez que su servidor de correo esté configurado, probablemente querrá probarlo y monitorear sus actividades.
Por lo tanto, describo algunas tareas administrativas comunes que implican probar un servidor SMTP,
administrar colas de correo electrónico, configurar alias y reenviar correo electrónico.
Prueba de un servidor SMTP
Puede realizar pruebas de bajo nivel de un servidor SMTP utilizando el programa telnet . Que hacer
esto, accede al servidor de correo electrónico y emite los comandos SMTP involucrados en el envío de correo.
Estos comandos incluyen HELO (para identificar la computadora emisora ), MAIL FROM (para identificar

Página 487
el usuario remitente), RCPT TO (para identificar al destinatario), DATA (para comenzar el texto del mensaje) y
SALIR (para terminar la sesión). Un ejemplo podría verse así:
$ telnet localhost 25
Intentando [Link] ...
Conectado a localhost.
El carácter de escape es '^]'.
220 [Link] ESMTP Postfix
HELO localhost
250 [Link]
CORREO DESDE: <benf@[Link]>
250 2.1.0 Ok
RCPT PARA: <janet@[Link]>
250 2.1.5 Aceptar
DATOS
354 Finalice los datos con <CR> <LF>. <CR> <LF>
Este es un mensaje de prueba.
.
250 2.0.0 Ok: en cola como C5E9DD9761
DEJAR
221 2.0.0 Adiós
Conexion cerrada por anfitrion desconocido.
La mayoría de estos comandos incluyen opciones, como direcciones de correo electrónico. El servidor responde a
comandos más exitosos con un código 250. Este y otros códigos pueden incluir opcionalmente
texto explicativo. Cuando llegue a ingresar el texto del mensaje real, puede ingresar
una o más líneas de texto, terminadas por una sola línea que contiene un solo punto ( . ).
Es posible que desee probar el servidor de correo de varias formas: intente conectarse desde el
el propio sistema servidor (como en este ejemplo), de los sistemas para los que debe retransmitir, y de
Los sistemas de la que debería no relé. También intente enviar correo electrónico a los destinatarios en el
computadora local y en otros lugares. Probar estas posibilidades ayudará a garantizar que el servidor esté
configurado correctamente.
Comprobación de la cola de correo electrónico
Un servidor de correo electrónico administra una cola de mensajes de correo electrónico que debe entregar. Esta tarea puede
suena simple, pero puede ser sorprendentemente complejo. Se le puede pedir al servidor que entregue
muchos mensajes en un período de tiempo muy corto y, por lo tanto, es posible que deba retrasar la entrega de
algunos mensajes mientras funciona en otros. Además, los problemas pueden llevar a una
incapacidad permanente para entregar mensajes. Cuando un problema parece ser temporal, como un
falla de enrutamiento de la red, el servidor de correo electrónico debe almacenar el mensaje e intentar entregarlo nuevamente
luego. Por lo tanto, la cola de correo electrónico de una computadora con Linux puede contener mensajes no entregados.
Conocimiento
Configuración de un servidor de correo push
445

Página 488
446
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
cómo identificar estos mensajes y administrar la cola puede ayudarlo a mantener su Linux
El subsistema de correo electrónico de la computadora funciona sin problemas.
El programa mailq es la herramienta principal para ayudar en la gestión de colas de correo electrónico. Este programa
originalmente era parte del paquete sendmail, pero Postfix, Exim, qmail y otros Linux
Los servidores SMTP tienen todos los comandos compatibles implementados. Desafortunadamente, comando
las opciones difieren entre las implementaciones. El comando básico, sin opciones, muestra
el contenido de la cola de correo electrónico en todos los sistemas:
$ mailq
-ID de cola- - Tamaño-- ---- Hora de llegada -----Remitente / Destinatario -------
5B42F963F * 440 Martes 23 de agosto 13:58:19 sally@[Link]
benf@[Link]
- 0 Kbytes en 1 solicitud.
Este ejemplo, tomado de un sistema que ejecuta Postfix, muestra un mensaje en la cola,
junto con información de identificación relevante. El formato de visualización exacto varía de uno
Servidor SMTP a otro. En la mayoría de los casos, escribir mailq equivale a escribir sendmail - bp .
Si ocurre una falla en la red, los mensajes de correo electrónico pueden acumularse en la cola. Tu servidor SMTP
normalmente intentará volver a realizar la entrega en una fecha posterior, pero si su conexión de red ha llegado
de nuevo y desea despejar la cola inmediatamente, puede hacerlo. Escribiendo sendmail - q
hará el trabajo con la mayoría de los servidores SMTP, y algunos tienen otros comandos equivalentes, como
como postqueue en Postfix o runq en Exim.
Todos los servidores de correo electrónico ofrecen una amplia variedad de opciones avanzadas para priorizar la entrega de correo
electrónico,
aceptar mensajes en la línea de comando, eliminar mensajes específicos de la cola, depurar
conexiones de correo electrónico, etc. Desafortunadamente, los comandos y procedimientos para usar estos
las funciones varían de un servidor de correo electrónico a otro. Por lo tanto, debe consultar el
documentación para aprender a utilizar estas funciones.
Configuración de alias y reenvío
Los alias de correo electrónico permiten que una dirección sustituya a otra. Por ejemplo, todos los servidores de correo electrónico
se supone que deben mantener una cuenta llamada postmaster . El correo electrónico a esta cuenta debe ser
leído por alguien responsable del mantenimiento del sistema. Una forma de hacer esto es
Configure un alias que vincule el nombre del administrador de correo con el nombre de una cuenta real. Puedes hacerlo
editando el archivo de alias , que normalmente reside en / etc o, a veces, en / etc / mail .
El formato de archivo de alias es bastante sencillo. Las líneas de comentario comienzan con marcas de almohadilla
( # ), y otras líneas tienen la siguiente forma:
nombre : addr1 [, addr2 [, ...]]
El nombre que encabeza la línea es un nombre local, como postmaster . Cada dirección ( addr1 ,
addr2 , etc.) puede ser un nombre de cuenta local al que se reenvían los mensajes, el
nombre de un archivo local en el que se almacenan los mensajes (indicado por una barra inclinada), un comando
a través del cual se canalizan los mensajes (indicado por un carácter de barra vertical inicial), el nombre

Página 489
de un archivo cuyo contenido se trata como una serie de direcciones (indicadas por un : incluyen:
string) o una dirección de correo electrónico completa (como fred@[Link] ).
Una configuración predeterminada típica incluye algunos alias útiles para cuentas como
postmaster . La mayoría de estas configuraciones asignan la mayoría de estos alias a root . Leyendo correo
Sin embargo, ya que root no es aconsejable, hacerlo aumenta las probabilidades de una violación de seguridad u otra
problema debido a un error tipográfico o error en el lector de correo. Por lo tanto, es posible que desee configurar un alias
línea como la siguiente:
root: yourusername
Este ejemplo redirige todo el correo de root , incluido el correo dirigido a root a través de otro
alias, a su nombre de usuario , que puede tomar cualquiera de las formas que se acaban de describir. Algunos servidores de correo
incluidos sendmail, Postfix y qmail, requieren que compile / etc / aliases en un binario
archivo que se puede procesar más rápidamente. Para hacerlo, use el comando newaliases :
# nuevosalias
Otro método para redirigir el correo es hacerlo a nivel de usuario. En particular, tu
puede editar el archivo ~ / .forward en el directorio de inicio de un usuario para enviar correo a ese usuario
Otra dirección. Específicamente, el archivo ~ / .forward debe contener la nueva dirección. Esta
Este enfoque tiene la ventaja de que puede ser utilizado por usuarios individuales. Un inconveniente es
que no se puede utilizar para configurar alias para cuentas inexistentes o para cuentas que carecen
directorios de inicio. La cuenta también puede modificar o eliminar el archivo ~ / .forward
propietario, que puede no ser deseable si desea hacer cumplir una regla de reenvío que el usuario
no debería poder anular.
Comprobación de archivos de registro
Como la mayoría de los servidores, los servidores de correo registran sus actividades en archivos dentro del directorio / var / log
árbol. Los detalles dependen de la distribución, el servidor de correo y los cambios que haya realizado en
el servidor de correo o el registrador del sistema que afectan la forma en que se registra la información. En algunos sistemas,
encontrará archivos con nombres que comiencen con correo , como /var/log/[Link] y / var /
log / [Link] . En otros sistemas, los registros de correo se almacenan en un archivo de registro de uso general, como
/ var / log / messages o / var / log / syslog .
Intente usar grep para buscar el nombre de su servidor de correo en todos los archivos en / var /
log para localizar dónde su sistema registra sus mensajes relacionados con el correo.
Una sola entrega de correo electrónico puede generar varias entradas en su archivo de registro, como en este ejemplo,
tomado de una computadora que ejecuta Postfix:
/ var / log / messages: 24 de noviembre 07:07:04 postfix de nessus / smtpd [8785]: conectarse desde
localhost [[Link]]
/ var / log / messages: 24 de noviembre 07:07:04 postfix de nessus / smtpd [8785]: 11E92F81C8:
cliente = localhost [[Link]]
Configuración de un servidor de correo push
447

Página 490
448
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
/ var / log / messages: 24 de noviembre 07:07:04 postfix / cleanup de nessus [8788]: 11E92F81C8:
id-mensaje = <LYRIS-290413-547281-2010.11.23-22.30.28--
benf#[Link]@[Link]>
/ var / log / messages: 24 de noviembre 07:07:04 postfix de nessus / qmgr [8663]: 11E92F81C8:
from = <bounce-5439281-290413@[Link]>, tamaño = 91562, nrcpt = 1
(cola activa)
/ var / log / messages: 24 de noviembre 07:07:04 postfix de nessus / local [8789]: 11E92F81C8:
to = <benf @ localhost>, relé = local, retardo = 0,76, retardos = 0,56 / 0/0 / 0,2, dsn = 2.0.0,
status = enviado (entregado al comando: / usr / bin / procmail)
/ var / log / messages: 24 de noviembre 07:07:04 postfix de nessus / qmgr [8663]: 11E92F81C8:
remoto
Cada línea relaciona información sobre una etapa particular en el proceso de entrega de correo. Si una
ocurre un error, los mensajes pueden proporcionar una pista sobre lo que salió mal, por ejemplo,
podría ser una mención de una falla de DNS o un servidor remoto que no respondió.

Configuración de Procmail
En principio, un servidor de correo electrónico como sendmail o Postfix puede almacenar el correo entrante directamente en
una cola de correo , que es un archivo o directorio que contiene mensajes de correo electrónico. En la práctica, sin embargo,
muchos sistemas emplean una herramienta adicional, Procmail, para realizar este trabajo. La razón es que
Procmail se puede configurar usando reglas complejas para ajustar cómo se entrega el correo. Usted puede
use Procmail para filtrar spam, redirigir correo, copiar correo y mucho más.
Comprensión de los formatos de almacenamiento de correo
Desde el punto de vista del usuario, los mensajes de correo electrónico se pueden organizar en carpetas de correo electrónico. Incluso
si un
el usuario no utiliza carpetas de correo electrónico, el correo entrante de ese usuario debe almacenarse en algún formato.
La mayoría de los principales servidores de correo para Linux (sendmail, Postfix y Exim) utilizan un formato
conocido como mbox , en el que los mensajes de una carpeta de correo se almacenan en un solo archivo. Típicamente,
Los servidores SMTP o sus programas de ayuda almacenan los archivos de los usuarios en / var / spool / mail / username .
Cuando los usuarios emplean carpetas con software que usa el formato mbox, cada una consta
de un solo archivo.
El servidor qmail, por el contrario, almacena su correo entrante en otro formato: un maildir . los
El formato maildir dedica un directorio a cada carpeta de correo y coloca cada mensaje en su propio
expediente. Normalmente, los maildirs entrantes se almacenan en los directorios de inicio de los usuarios. Aunque qmail usa
maildirs de forma predeterminada, se puede configurar para usar el formato mbox. Del mismo modo, Postfix y
Exim se puede configurar para usar maildirs.
La elección del formato de correo tiene consecuencias para otro software, como el correo de los usuarios.
lectores (también conocidos como agentes de usuario de correo o MUA ), servidores POP o IMAP y Procmail.

Página 491
Muchos programas admiten los formatos mbox y maildir, pero algunos solo admiten uno. Como
descrito brevemente, es posible que sea necesario ajustar las reglas de Procmail para el formato del correo.
A menudo se afirma que el formato maildir produce mejor velocidad que mbox,
particularmente cuando una carpeta de correo contiene cientos de mensajes. Esto es
es más probable que sea importante si usa IMAP en lugar de POP y si su
los usuarios recopilan muchos mensajes de correo electrónico en sus carpetas de correo mediadas por IMAP.

Escribir reglas de Procmail


La mayoría de los servidores de correo de Linux utilizan Procmail de forma predeterminada o se pueden configurar para hacerlo
mediante
establecer una opción de archivo de configuración. Si sigue las instrucciones descritas en los siguientes
párrafos y descubre que Procmail no funciona, puede intentar crear un archivo .forward en
su directorio de inicio que contiene la siguiente línea:
“| / ruta / a / procmail ”
Reemplace / path / to con el nombre del directorio en el que reside el binario procmail .
Si incluso esto no funciona, es posible que deba consultar la documentación de Procmail o
para su servidor de correo. Una vez que Procmail aparece en la imagen, el sistema lee el archivo / etc / global
procmailrc archivo de configuración y el archivo .procmailrc en los directorios de inicio de los usuarios. Estas
Los archivos contienen recetas de Procmail, que tienen la siguiente forma:
: 0 [ banderas ] [: [ archivo de bloqueo ]]
[ condiciones ]
acción
El archivo / etc / procmailrc de todo el sistema generalmente se lee y procesa como
raíz . Este hecho significa que una receta mal diseñada en ese archivo podría funcionar
daño grave. Por ejemplo, un error tipográfico podría hacer que Procmail sobrescriba un
binario importante del sistema en lugar de utilizar ese binario para procesar un mensaje.
Por esta razón, debe mantener el procesamiento de Procmail en todo el sistema
mínimo y en su lugar concéntrese en usar ~ / .procmailrc para procesar correo usando
cuentas de particulares.
Cada receta comienza con la cadena : 0 . Pueden seguir varias banderas, como se resume en
Cuadro 9.6. Puede combinar estos indicadores para producir efectos más complejos. Por ejemplo,
el uso de banderas de HB hace que se realicen coincidencias tanto en los encabezados como en el cuerpo del mensaje.
El archivo de bloqueo es el nombre de un archivo que Procmail usa para indicar que está trabajando con un archivo.
Si Procmail ve un archivo de bloqueo, retrasa el trabajo en el archivo afectado hasta que el archivo de bloqueo desaparece.
Ordinariamente, un solo dos puntos ( : ) es suficiente para esta función; Procmail luego elige un nombre de archivo de bloqueo
sí mismo. Sin embargo, puede especificar un nombre de archivo si lo prefiere.
Configuración de Procmail
449

Página 492
450
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
Las condiciones en una receta de Procmail son esencialmente expresiones regulares ordinarias, pero
cada línea de condiciones comienza con un asterisco. La mayoría de los caracteres de una expresión regular coinciden
contra los mismos caracteres en el mensaje, pero hay excepciones. Por ejemplo, un quilate
( ^ ) indica el comienzo de una línea, un punto ( . ) coincide con cualquier carácter, excepto por una nueva línea,
y la combinación de un punto y un asterisco ( . * ) denota una cadena de cualquier longitud. Un habitual
La expresión puede incluir una cadena entre paréntesis, a menudo con una barra vertical ( | ) dentro. Esta
condición denota una coincidencia contra la cuerda a cada lado de la barra vertical. Una barra invertida
( \ ) deshace eficazmente el formato especial en el siguiente carácter; por ejemplo, para igualar
un asterisco, debe especificar la cadena \ * . Un signo de exclamación ( ! ) Invierte el sentido de
una coincidencia para que una receta coincida con cualquier mensaje que no cumpla con los criterios especificados. Cada
La receta puede tener ninguna, una o más condiciones . (El uso de ninguna condición generalmente se realiza dentro de
bloques de anidación o para hacer una copia de seguridad de los mensajes cuando experimente con nuevas recetas).
La receta incluye varias condiciones , todas deben coincidir para que se aplique la receta. El hombre de Procmail
La página describe estas expresiones regulares con más detalle.
Finalmente, una receta de Procmail termina con una sola línea que le dice qué hacer: la acción .
Una línea de acción puede ser cualquiera de varias cosas:
Una referencia de nombre de archivo Procmail almacena el mensaje en el archivo nombrado en formato mbox.
Para almacenar mensajes en formato maildir, agregue una barra inclinada ( / ) al final del nombre del archivo.
Para la lucha contra el spam, una medida eficaz pero drástica es almacenar el spam en / dev / null , que
elimina eficazmente el spam.
Un programa externo Si la línea de acción comienza con una barra vertical ( | ), Procmail trata la línea
como programa a ejecutar. Puede utilizar esta función para pasar el procesamiento a otra herramienta.
TABLA 9.6 Indicadores de recetas comunes de Procmail
Bandera
Sentido
H
La coincidencia se realiza con los encabezados de los mensajes. (Este es el valor predeterminado).
si
La coincidencia se realiza con el cuerpo del mensaje.
re
El emparejamiento se realiza distinguiendo entre mayúsculas y minúsculas. (El valor predeterminado es un caso:
coincidencia insensible.)
C
La correspondencia se realiza en una "copia al carbón" del mensaje. El "original" es
pasado para comparar con recetas posteriores. Esta bandera es generalmente
utilizado dentro de los bloques de anidamiento (descrito brevemente).
w
Procmail espera a que se complete la acción . Si no se completa
correctamente, el mensaje se compara con recetas posteriores.
W
Lo mismo que una bandera de w , pero suprime los mensajes de error del programa.

Página 493
Una dirección de correo electrónico Un signo de exclamación ( ! ) Al comienzo de una línea indica un correo electrónico
habla a; Procmail envía el mensaje a la dirección especificada en lugar de entregarlo localmente.
Un bloque de anidación Una línea de acción que comienza con una llave abierta ( { ) denota una
receta anidada. La receta anidada tiene la misma forma que cualquier otra receta, pero se utiliza
solo si la receta circundante coincide con el mensaje. La receta anidada termina con un cierre.
llave ( } ).
Ver Procmail en acción
Como ejemplo, considere el Listado 9.2, que demuestra muchas de las características de Procmail
recetas. Estas recetas en particular están diseñadas para filtrar el spam; sin embargo, muchos otros usos de
Procmail son posibles. Por ejemplo, puede usarlo para reenviar correo que cumpla con ciertos
criterios, enviar un duplicado de correo dirigido a una persona a otro usuario, o enviarlo
a través de un programa para detectar virus y gusanos.
Listado 9.2: Recetas de muestra de Procmail
# No aplique recetas al administrador de correos
:0
*! ^ Para:. * Postmaster @ (pangea \ .edu | smtp \ .pangaea \ .edu)
{
# Bloquear correo con más de cinco espacios en el Asunto: encabezado,
# a menos que sea del subsistema de fax local
:0
* ^ Asunto:. *. *
*! ^ De: root @ fax \ .pangaea \ .edu \ (Fax Getty \)
/ dev / null
# Pase correo con texto rojo brillante a través de un script de bloqueo de spam personalizado
:0B
* ^. * \ <html
* ^. * \ <color de fuente. * ff0000
| / usr / local / bin / spam-block "correo con texto rojo brillante"
# Cosas que no son para mí.
:0
*! ^ (Para | Cc):. * (Pangea \ .edu | ben @ example \ .com)
!sam@[Link]
}
Configuración de Procmail
451

Página 494
452
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
El listado 9.2 sangra recetas dentro del bloque de anidamiento. Esta práctica mejora
legibilidad pero no es necesario.
El Listado 9.2 incluye cuatro recetas. Tres de ellos están incrustados dentro del cuarto:
La receta circundante coincide con cualquier encabezado To: que no incluya la cadena
postmaster@[Link] o postmaster@[Link] . Esta receta usa el abierto
el carácter de llave ( { ) para hacer que las recetas incluidas se apliquen solo si el correo
no está dirigido al administrador de correos . La intención es proteger el correo del administrador de correos de
las reglas antispam. Después de todo, los usuarios pueden reenviar spam a la cuenta del administrador de correo para
quejarse de ello, y tales quejas no deben ignorarse.
Algunos spam incluyen cinco o más espacios consecutivos en el encabezado Asunto : . los
La primera regla de spam verdadera descarta dichos mensajes. Esta regla hace coincidir todos los mensajes con cinco
o más espacios en el encabezado Asunto: excepto los mensajes que provienen del fax
subsistema en la computadora [Link] , que presumiblemente genera correo no deseado
informes de entrega de fax que de otro modo coincidirían con este criterio. Esta receta descarta el
spam enviándolo a / dev / null .
La segunda regla de spam coincide con todos los mensajes que contienen texto HTML que establece la fuente
color a ff0000 , es decir, rojo brillante. Una gran cantidad de spam utiliza esta técnica para detectar
ojos de los lectores, pero en mi experiencia, ningún correo legítimo utiliza esta técnica. Esta receta
pasa el spam a través de un programa especial, / usr / local / bin / spam - block , que no es
un programa estándar. Lo uso en el Listado 9.2 como un ejemplo de uso de Procmail para pasar un
mensaje a través de un programa externo.
La regla de spam final coincide con los mensajes que no contienen el nombre de dominio local
( [Link] ) o un nombre de usuario de excepción especial ( ben@[Link] ) en De: o
Cc: encabezados. Una regla como esta puede ser muy eficaz para detectar spam, pero puede ser
peligroso cuando se aplica en todo el sistema. El problema es que las listas de correo, los boletines
y similares pueden no incluir los nombres de los destinatarios en estos encabezados, por lo que la regla debe
ser personalizado para todas las listas de correo y otros correos electrónicos de suscripción que recibe un destinatario.
Hacer esto para un sitio grande es prácticamente imposible. Esta regla también descartará la mayoría del correo
enviado a un destinatario mediante la función de copia oculta (BCC) de un remitente, lo que hace que
el nombre del destinatario no debe aparecer en ningún encabezado. Esta regla usa la acción del signo de exclamación
para enviar el correo no deseado sospechoso a sam@[Link] . En la práctica, es poco probable que envíe un correo electrónico
su spam a cualquier sitio, sin embargo; este uso en el Listado 9.2 está destinado a una demostración de
lo que Procmail puede hacer, no como una sugerencia práctica de lo que debe hacer con el spam.
Algunas herramientas de lucha contra el spam incluyen disposiciones para enviar mensajes de "devolución".
al remitente del spam. Esta práctica es razonablemente segura cuando se aplica en
un servidor de correo; el mensaje de rebote se genera mientras el remitente todavía está
conectado, por lo que es probable que el destinatario del mensaje devuelto sea el
recipiente. Usted debe no intentar rebotar correo no deseado de una receta de Procmail
o un lector de correo. Hacerlo normalmente enviará el mensaje de rebote a
la dirección incorrecta, ya que los spammers suelen falsificar sus direcciones de retorno.



Página 495
En general, Procmail es una herramienta extremadamente útil y poderosa para filtrar el correo que el
identificadores del servidor de correo. Le recomiendo que comience la experimentación con Procmail examinando su
el archivo / etc / procmailrc predeterminado del sistema y luego crear un archivo ~ / .procmailrc personalizado en un
cuenta de prueba. A continuación, puede ver cómo afectan sus reglas a los mensajes de prueba que genera localmente o
de forma remota. Una vez que esté seguro del efecto de sus reglas, puede implementarlas en una
cuenta, y luego todo el sistema, si es necesario.

Configuración de servidores POP e IMAP


Hoy en día, los usuarios suelen ejecutar programas de cliente de correo electrónico en sistemas de escritorio o estaciones de trabajo.
Estas
los clientes se conectan a la computadora del servidor de correo utilizando un protocolo de extracción como POP o IMAP. UNA
El servidor POP o IMAP puede manejar clientes que se ejecutan en casi cualquier sistema operativo.
Si elige ejecutar POP o IMAP, su primera decisión se refiere al servidor POP o IMAP.
Debe elegir qué protocolo desea admitir, así como el paquete de servidor específico.
Una vez hecho esto, debe instalar y configurar el servidor de correo de extracción y probarlo para asegurarse
funciona según lo previsto. Este capítulo cubre dos servidores comunes para Linux, Courier y
Palomar.
Seleccionar un servidor POP o IMAP
Antes de apresurarse a instalar un servidor de correo de extracción, debe comprender las diferencias entre
los principales protocolos de servidor de correo pull y los productos individuales que están disponibles en este
arena. En algunos casos, no importa mucho qué protocolo o servidor seleccione, pero en
otros, las diferencias pueden ser bastante importantes.
POP versus IMAP
La mayoría de los clientes de correo modernos admiten uno o ambos protocolos POP e IMAP, y
pocos admiten protocolos más exóticos. Tanto POP como IMAP realizan básicamente la misma tarea:
Los programas cliente se conectan, recuperan el correo electrónico y se desconectan. Los programas cliente muestran una lista
de mensajes disponibles y permitir a los usuarios leer estos mensajes, archivarlos, responderlos,
y así.
POP e IMAP son protocolos de correo de extracción, por lo que un cliente de correo puede recuperar
correo desde el servidor POP o IMAP. Para enviar correo, un cliente de correo usa otro
protocolo - normalmente SMTP. Las redes pequeñas a menudo se configuran de manera que
Los clientes de correo utilizan la misma computadora para un servidor SMTP saliente que
que utilizan para correo POP o IMAP entrante. Las redes más grandes a veces usan
equipos físicamente separados para estas dos funciones con el fin de mejorar
repartir la carga de entrega de correo.
Configuración de servidores POP e IMAP
453

Página 496
454
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
Aunque cumplen aproximadamente la misma función, POP e IMAP no son protocolos idénticos.
Algunas de sus diferencias importantes incluyen:
Los usuarios de Mail Storage POP normalmente recuperan sus mensajes del servidor y luego
eliminar inmediatamente los mensajes del servidor. Se produce un archivo de mensajes a largo plazo
en los sistemas del cliente. IMAP, por otro lado, fue diseñado para permitir a los usuarios almacenar mensajes
en carpetas en la computadora servidor IMAP. Como resultado, es posible que un servidor IMAP deba dedicar
más espacio en disco para los directorios de correo del usuario que un servidor POP. IMAP también puede requerir más
ancho de banda de la red a largo plazo, aunque las opciones de recuperación parcial de IMAP (que
se describen a continuación) pueden mitigar esta necesidad o incluso dar una ventaja a IMAP, según
sobre cómo interactúan sus usuarios con sus sistemas de correo. Una gran ventaja del sistema IMAP
es que permite a los usuarios acceder al correo utilizando diferentes programas de cliente de correo o incluso diferentes
computadoras, sin tener que copiar archivos de correo entre sistemas.
Opciones de recuperación parcial La recuperación de correo POP es todo o nada. Los clientes pueden recuperar un
mensaje en su totalidad o dejar el mensaje en el servidor. IMAP es más flexible; es compatible
recuperar varias partes de un mensaje, como su encabezado por separado de su cuerpo. Por lo tanto,
con IMAP, los usuarios pueden eliminar los mensajes que saben que no quieren sin recuperar el
la mayor parte del texto del mensaje. Con spam y gusanos obvios, esta función puede salvar su
red cantidades sustanciales de ancho de banda.
Soporte al cliente Aunque POP e IMAP son ampliamente compatibles, el soporte POP es
más común que eso para IMAP. Si sus usuarios ya tienen clientes de correo preferidos,
es posible que desee comprobar sus opciones de configuración para saber qué protocolos de correo
apoyo.
Su decisión de admitir POP, IMAP o ambos se reducirá a un estudio de
estos factores. Como regla general, IMAP es el protocolo más flexible, pero es posible que prefiera
para forzar el correo fuera del servidor de correo y en los clientes lo más rápido posible. En ese caso, usando
POP tiene sentido. Si sus usuarios utilizan con frecuencia varias computadoras, IMAP tiene un cierto
ventaja en conveniencia para los usuarios.
Tanto POP como IMAP están disponibles en varias versiones diferentes. En 2011, la última
las versiones son POP3 e IMAP4. Las versiones anteriores de ambos todavía están en uso en algunos sitios, y
es posible que deba admitir versiones anteriores para algunos clientes antiguos. En el caso de IMAP,
el soporte para versiones anteriores suele ser automático. POP2, sin embargo, usa un puerto diferente (109)
que POP3 (110). IMAP usa el puerto 143.
Elegir el paquete correcto
Los servidores de correo de extracción tienden a ser mucho más simples que los servidores de correo de inserción. Esencialmente,
tire del correo
los servidores son clientes de correo local; ellos leen la cola de correo directamente. Luego entregan el correo a
otra computadora usando sus propios protocolos de extracción. Como resultado, los servidores de correo pull tienden
para atraer poca atención. No obstante, hay varios servidores de correo pull diferentes disponibles.
para Linux:
UW IMAP A pesar de su nombre, el servidor IMAP de la Universidad de Washington ( http: // www
.[Link] / imap / ) admite POP2, POP3 e IMAP. Los servidores POP utilizan

Página 497
Servidor IMAP detrás de escena. Este conjunto de servidores generalmente se envía en un paquete llamado imap o
uw - imapd . El servidor IMAP almacena las carpetas de correo del usuario en los directorios de inicio de los usuarios, que pueden
será incómodo si los usuarios también inician sesión en sus cuentas y almacenan allí archivos que no son de correo.
Cyrus IMAP Como UW IMAP, Cyrus IMAP ( [Link] ) admite más
que solo IMAP. Específicamente, Cyrus IMAP admite IMAP, POP3 y Kerberos habilitado
Variante POP3 (KPOP). Este servidor almacena carpetas de correo IMAP en un formato de archivo propietario en
su propio árbol de directorios, por lo que puede ser una buena opción si los usuarios almacenan archivos que no son de correo
electrónico en su hogar
directorios.
Courier El servidor de correo Courier ( [Link] ) es un conjunto integrado de
Servidores SMTP, POP e IMAP. Aunque el servidor Courier SMTP no es muy popular en
Linux, el servidor IMAP se puede instalar por separado y tiene un número modesto de seguidores.
Dovecot Este servidor, con sede en [Link] , es otro servidor que
maneja tanto POP como IMAP. Su página web enfatiza la velocidad, seguridad y
facilidad de configuración.
Una consideración crítica al elegir un servidor de correo de extracción es el formato de archivo de mensaje
el servidor admite. Como se señaló anteriormente en este capítulo, la mayoría de los servidores SMTP de Linux utilizan el mbox
formato por defecto. UW IMAP y Dovecot favorecen el formato mbox, aunque Dovecot
se puede configurar para usar maildir en su lugar. Courier usa maildir por defecto. Cyrus IMAP,
como se mencionó anteriormente, utiliza su propio formato propietario. Si un servidor de extracción determinado parece atractivo
pero utiliza el formato de almacenamiento de correo "incorrecto" en comparación con su servidor SMTP, tendrá que
reemplace su servidor SMTP, reconfigure su servidor SMTP, elija un servidor de correo de extracción diferente,
o traducir entre formatos con Procmail.
La compatibilidad es necesaria solo para el directorio principal de correo entrante. Un
El servidor IMAP puede usar cualquier formato para las carpetas de correo que crean los usuarios, ya que
el servidor SMTP no interactúa con estas carpetas.
Un problema que debe considerar al instalar y configurar un servidor de correo de extracción es
seguridad de contraseña. Los protocolos básicos entregan nombres de usuario y contraseñas para la autenticación.
a través de un enlace no cifrado. Como consecuencia, un delincuente con el acceso adecuado puede
olfatear la contraseña. Algunos servidores admiten variantes encriptadas de los protocolos estándar, pero
estas variantes requieren soporte en los clientes de correo. Otro enfoque es utilizar Secure
Shell (SSH) para canalizar el protocolo de correo de extracción a través de un enlace cifrado, es decir, para cifrar
extraer los datos del correo y pasarlos a través de una conexión cifrada. Este enfoque requiere
configurar SSH en el servidor y en todos los clientes, como se describe en el Capítulo 7. Si
no quiere hacer este esfuerzo, puede considerar dejar de lado el correo especial, solo
cuentas e indique a los usuarios que creen contraseñas únicas para estas cuentas. Idealmente, puedes
cree estas cuentas en un servidor de correo de extracción dedicado. Esta práctica al menos
Minimice el daño que un malhechor podría hacer si las contraseñas de correo electrónico se vean comprometidas.
Es posible que también desee restringir el acceso a sus puertos POP o IMAP mediante reglas de firewall, TCP
Wrappers o restricciones de acceso xinetd .
Configuración de servidores POP e IMAP
455

Página 498
456
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
Las siguientes páginas describen la configuración básica de Courier y Dovecot porque estos
Los servidores son flexibles, populares y están cubiertos por los objetivos LPIC - 2. Si quieres usar UW
IMAP, Cyrus IMAP o algún otro servidor, debe consultar su documentación para aprender
cómo usarlo.
Configuración de Courier
Courier se administra a través de archivos almacenados en / etc / courier . Específicamente, authdaemonrc
controla aspectos de un demonio de autenticación que viene con el paquete, y controles imapd
la mayoría de las configuraciones del servidor. Ambos archivos incluyen comentarios, que comienzan con marcas de almohadilla ( # ),
y líneas de configuración, que toman la forma option = value . La tabla 9.7 resume las opciones
es más probable que desee adaptarse. Examine el archivo o consulte la documentación en http: //
[Link]/imap/ para obtener información sobre opciones adicionales.
TABLA 9.7 Opciones de configuración comunes de Courier IMAP
Opción
Sentido
HABLA A
Establece la dirección IP en la que escucha el servidor. Un valor de 0 hace que
servidor para escuchar en todos los puertos disponibles.
PUERTO
Establece el número de puerto (o números, separados por comas) en el que
el servidor escucha. El valor predeterminado es 143 .
MAXDAEMONS
Limita el número de demonios (y por lo tanto conexiones simultáneas)
soportado por el servidor.
MAXPERIP
Limita la cantidad de conexiones simultáneas desde un solo cliente
Dirección IP.
IMAP_
CAPACIDAD
Especifica las capacidades del servidor IMAP. Lo más probable es que no
Necesita ajustar esta opción, pero podría ser útil si un cliente importante tiene
problemas con una función IMAP específica admitida por Courier IMAP.
MAILDIRPATH
Establece el nombre del directorio en el que el servidor almacena los correos electrónicos.
Una vez que haya ajustado su configuración, puede reiniciar el servidor Courier IMAP usando
su script de inicio SysV o Upstart. Si todo va bien, debería poder acceder al
servidor utilizando un cliente de correo electrónico habilitado para POP o IMAP para leer su correo. Manten eso en mente
Courier admite el formato maildir, mientras que la mayoría de los servidores SMTP de Linux almacenan su correo en
formato mbox por defecto. Por lo tanto, es posible que deba ajustar la configuración de su servidor SMTP o
incluso cambie a un servidor SMTP diferente antes de poder utilizar Courier IMAP.

Página 499
Configuración de Dovecot
Dovecot es compatible con los formatos mbox y maildir, por lo que es posible que prefiera usarlo en Courier
IMAP si su sistema usa el formato mbox y no desea cambiar el formato de correo electrónico.
El archivo de configuración principal de Dovecot es /etc/dovecot/[Link] . Como Courier's
archivo de configuración, este archivo contiene comentarios y configuraciones con el formato option = value .
La Tabla 9.8 resume algunas de las opciones importantes que quizás desee verificar y ajustar.
El archivo de configuración predeterminado suele estar bien comentado, así que examínelo o consulte el Dovecot
documentación en [Link] para obtener más información.
TABLA 9.8 Ajustes de configuración comunes de Dovecot
Opción
Sentido
protocolos
Especifica los protocolos que Dovecot debe admitir. (Separar
múltiples protocolos con espacios.) Las opciones comunes incluyen
imap , imaps , pop3 y pop3s . (Valores que terminan en s apoyo
cifrado, que se ajusta aún más a través de opciones que comienzan
con ssl .)
escucha
Especifica la dirección IP y, opcionalmente, el puerto en el que
escucha. Un asterisco ( * ) se refiere a todas las direcciones IPv4, mientras que dos
dos puntos ( : :) se refiere a todas las direcciones IPv6.
login_process_per_
conexión
Especifica si cada inicio de sesión inicia su propio proceso ( sí ,
por defecto) o si cada proceso puede manejar múltiples
inicios de sesión ( no ).
login_max_processes_
contar
Establece el número máximo de procesos de inicio de sesión de Dovecot (y
de ahí el número máximo de inicios de sesión, si login_process_per_
la conexión es sí ) compatible.
login_max_connections
Establece el número máximo de conexiones por proceso si
login_process_per_connection se establece en no .
mail_location
Especifica la ubicación de los archivos mbox o directorios maildir
para ser utilizado para el almacenamiento de correo. El valor normalmente comienza con
mbox: o maildir: y continúa con un nombre de ruta, que puede
incluir las variables % u (el nombre de usuario local), % n (la parte del usuario
en la dirección de correo), % d (la parte del dominio en la dirección de correo),
o % h (el directorio de inicio). Se puede especificar una bandeja de entrada separada
usando dos puntos y INBOX después del usuario - correo manejable
ubicación.
Configuración de servidores POP e IMAP
457
Página 500
458
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
En la práctica, la opción de configuración que probablemente tendrá que ajustar es
mail_location , ya que esto puede variar de un sitio a otro. El archivo de configuración predeterminado
es probable que contenga varios ejemplos comentados, como estos:
# ubicación_correo = maildir: ~ / Maildir
# ubicación_correo = mbox: ~ / mail: INBOX = / var / mail /% u
# ubicación_correo = mbox: / var / mail /% d /% 1n /% n: INDICE = / var / indexes /% d /% 1n /% n
Localice el ejemplo más cercano a lo que su sistema ya usa o lo que desea
utilícelo y modifíquelo según sea necesario. En un servidor de correo ocupado, es posible que deba ajustar las opciones
que controlan el número máximo de conexiones simultáneas. También puede querer
especificar los protocolos que admite el servidor o examinar el archivo de configuración para obtener más
opciones exóticas en un servidor complejo o inusual.

Resumen
Dos de los servicios más importantes de Internet en la actualidad son los sitios web y el correo electrónico. Linux
proporciona una variedad de servidores para cumplir ambos roles. El servidor web más popular para Linux es
Apache, que es un servidor con todas las funciones que maneja tanto el HTTP sin cifrar como el
protocolos HTTPS cifrados. Una configuración de Apache predeterminada funciona lo suficientemente bien para muchos
propósitos simples, aunque, por supuesto, debe agregar las páginas web únicas de su sitio. Si tu
necesidad de habilitar el cifrado, el contenido dinámico, las páginas web específicas del usuario u otras características,
debe ajustar la configuración predeterminada editando los archivos de configuración de Apache. Más
Tales cambios implican modificar solo unas pocas líneas, pero Apache es lo suficientemente complejo como para
Un sitio inusual puede requerir cambios extensos en el archivo de configuración. Es posible que también deba configurar
otro tipo de servidor web, conocido como servidor proxy, que funciona como un intermediario
vincular clientes a servidores. Los servidores proxy pueden mejorar el rendimiento, agregar funciones de seguridad,
bloquear contenido no deseado y modificar de otro modo la experiencia de navegación web. En Linux,
Squid es un servidor proxy popular con una configuración predeterminada que está diseñada para mejorar
actuación. Sin embargo, cambiar la configuración le permite hacer muchas otras cosas.
El correo electrónico se maneja a través de una variedad de protocolos, siendo el más importante
SMTP, que requiere que el cliente inicie una transferencia de correo electrónico. Varios servidores SMTP para
Existen Linux, dos de los más populares son sendmail y Postfix. Ambos servidores pueden funcionar
en estaciones de trabajo como herramientas de entrega de correo local o como el primer paso en la cadena de entrega de correo;
o pueden recibir correo de sistemas externos, tal vez funcionando como concentradores de correo para un
todo el dominio. Excepto por el uso limitado de la estación de trabajo, es probable que necesite modificar su
Configuración del servidor SMTP para su dominio y necesidades específicas. Otros dos correos electrónicos importantes
los protocolos son POP e IMAP, los cuales requieren que el cliente se conecte al servidor
para recuperar el correo electrónico almacenado en el servidor. POP e IMAP son implementados por ISP y en
Grandes servidores de correo en las empresas como herramienta para permitir a los usuarios leer su correo
sus computadoras de escritorio y estaciones de trabajo. Existen varios servidores POP e IMAP, incluidos
Palomar y Mensajero. Estos servidores pueden requerir algunos ajustes de configuración menores para
manejar correctamente el correo de un dominio.

Página 501
Examen esencial
Describe los principales archivos de configuración de Apache. Apache usa un archivo de configuración llamado
[Link] , [Link] , [Link] o [Link] , que se encuentra en algún lugar
en el árbol de directorios / etc / httpd , / etc / httpd2 , / etc / apache o / etc / apache2 . (Hay
considerable variabilidad de distribución a distribución en el nombre y la ubicación del archivo).
a veces, el archivo carga archivos de configuración auxiliares desde el mismo árbol de directorios. Un archivo llamado
.htaccess , ubicado en un directorio que es servido por el servidor, puede contener opciones relacionadas con
ese directorio solo.
Distinga entre contenido web estático y dinámico. El contenido web estático consta de
HTML u otros archivos que se entregan directamente desde el servidor web al cliente sin
modificación u otro procesamiento por parte de la computadora del servidor web. Contenido web dinámico
consta de scripts o programas que ejecuta el servidor web para generar contenido para un
cliente específico, como un foro web o la página del "carrito de compras" de un comerciante web.
Resuma las herramientas de restricción de acceso de Apache. Apache admite nombre de usuario y contraseña
restricciones de acceso basadas. Utiliza el programa htpasswd para crear un archivo de contraseña utilizando un
nombre que especifique, que luego se refiere al uso del archivo de configuración AuthUserFile
opción. Las opciones adicionales del archivo de configuración, como AuthType y Require , indican a Apache
cómo implementar controles de acceso para un directorio específico.
Explique el propósito de los hosts virtuales en Apache. Una sola computadora servidor web puede alojar
los sitios web para varios dominios. Dependiendo del nombre usado en la URI o la IP
dirección utilizada para acceder al servidor, puede entregar páginas web almacenadas en diferentes directorios.
Puede utilizar la directiva Apache VirtualDocumentRoot o VirtualHost para configurar este
característica.
Resuma el proceso de configuración del soporte SSL en Apache. Para habilitar el cifrado
en Apache, primero debe instalar un módulo SSL adecuado, generalmente de un paquete llamado
apache - mod_ssl o de un paquete con módulos de Apache para muchos propósitos. Debes
también obtenga un certificado de una autoridad certificadora (CA). Alternativamente, puede generar
su propio certificado; sin embargo, sin un certificado de una CA reconocida, los clientes verán
una advertencia sobre un certificado sospechoso cuando navegan a su sitio. Con estos articulos
instalado, puede activar el soporte SSL cargando el módulo llamado ssl_module .
Describa algunas razones comunes para ejecutar un proxy web. Al almacenar en caché los accesos web, como Squid
lo hace de forma predeterminada, un proxy web puede mejorar el rendimiento web para una oficina u otro grupo
de clientes. Las funciones de seguridad pueden incluir limitar el acceso a la Web a usuarios autorizados y
filtrado de contenido web para bloquear el acceso a sitios web sospechosos. Más inusual u oscuro
Las necesidades incluyen el uso de un proxy externo para solucionar los problemas de acceso a la red o para ayudar
mantenga su privacidad.
Explique cómo se transmite el correo electrónico desde el origen al destino. El correo electrónico se escribe usando un correo
electrónico
cliente (un agente de usuario de correo, o MUA), que hoy en día a menudo existe en una computadora de escritorio que
puede carecer de un servidor de correo. El MUA se conecta a un servidor SMTP (un agente de transferencia de correo o
Examen esencial
459

Página 502
460
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
MTA), que analiza la dirección Para: y se pone en contacto con el servidor SMTP asociado con ese
dirección en el DNS global. Dependiendo de la configuración de este servidor, puede contener la
correo local o reenviarlo a otra computadora. Estas operaciones de reenvío pueden continuar
un número arbitrario de pasos. El destinatario final leerá el correo localmente en un
servidor de correo o utilice un MUA que admita un protocolo de correo de extracción (como POP o
IMAP) para recuperar y leer el correo electrónico.
Describe cómo configurar sendmail. El programa sendmail usa un archivo de configuración
llamado [Link] , normalmente ubicado en / etc / mail . Este archivo es difícil de editar directamente,
sin embargo, por lo que normalmente edita un archivo de configuración m4 ( [Link] o algún otro nombre)
y compile ese archivo en el formulario [Link] final .
Resuma los comandos para ver y borrar la cola de correo electrónico. El comando sendmail puede
Realice ambas tareas y, a menudo, otros comandos también funcionan. Escribiendo sendmail - bp o
mailq muestra los correos electrónicos que están actualmente en la cola. Escribir sendmail - q hace que el servidor
para intentar volver a entregar todo el correo en la cola. Algunos servidores tienen otros comandos que
también puede hacer esto, como postqueue en Postfix o runq en Exim.
Explique la diferencia entre los formatos mbox y maildir. Estos son ambos formatos
para almacenar correo electrónico. El formato mbox almacena todo el correo en una carpeta de correo (incluido el
cola entrante) en un solo archivo, mientras que maildir almacena cada mensaje en su propio archivo dentro de
un directorio en el servidor. De forma predeterminada, sendmail, Postfix y Exim usan mbox, mientras que qmail
usa maildir; pero la mayoría de los servidores se pueden configurar para usar cualquier formato.
Describe la función de Procmail en la entrega de correo. Puede configurar la mayoría de los servidores de correo para
enviar correo a Procmail como parte del proceso de entrega de correo local. Procmail se puede configurar
para filtrar el correo de varias formas: para eliminar los mensajes no deseados obvios, para pasar el correo a través de
programas, para reenviar correo de una cuenta a otra, y así sucesivamente. Sistema: amplio y de usuario
Existen configuraciones de Procmail, que brindan tanto al administrador del sistema como a los usuarios individuales
la capacidad de utilizar estas funciones.
Explique las principales diferencias entre POP e IMAP Ambos protocolos permiten
clientes para conectarse a un servidor de correo para leer su correo electrónico. POP es un protocolo relativamente simple
que permite a los usuarios recuperar su correo electrónico, por lo general para ser descartado o almacenado inmediatamente
en la computadora cliente. IMAP se puede usar de la misma manera, pero IMAP admite el lado del servidor
carpetas de correo y opciones de recuperación de correo más sofisticadas, que son útiles si los usuarios desean
almacenar su correo electrónico en el servidor para acceder a una variedad de clientes.

Página 503
Preguntas de revisión
1. Desea que su servidor Apache use / var / mywww como el directorio desde el cual servir su
Sitio web. ¿Qué opción de configuración de Apache debe establecer para que esto sea así?
A. Raíz / var / mywww /
B. DocumentRoot / var / mywww /
C. establecer root / var / mywww /
D. Base = / var / www
2. ¿Qué tipo de información sobre transferencias HTTP puede recuperar de un servidor Apache?
¿archivos de registro? (Seleccione todas las que correspondan.)
A. La dirección IP o el nombre de host de la computadora cliente
B. El nombre del navegador reclamado por el cliente
C. La ruta de los paquetes de red durante la transferencia.
D. El tamaño de la ventana del navegador web del cliente
3. Ha realizado cambios importantes en sus archivos de configuración de Apache y desea comprobar
en busca de errores graves antes de reiniciar el servidor. ¿Qué comando podría escribir para hacerlo?
A. apachectl testconfig
B. apache2ctl teststat
C. apachectl configstatus
D. configtest apache2ctl
4. Quiere modificar algunas configuraciones de Apache para un solo directorio en el directorio de su sitio web
árbol. Ingresa los cambios relevantes en un archivo y guarda ese archivo en el directorio relevante.
¿Qué nombre debería darle a este archivo?
A. .apache
B. .httpd
C. .htaccess
D. .apache - configuración
5. ¿Qué programa puede utilizar para agregar usuarios a una base de datos de usuarios autorizados cuando
configurar Apache para requerir autenticación?
A. passdb
B. htaccess
C. apacheadd
D. htpasswd
Preguntas de revisión
461

Página 504
462
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
6. Un servidor Apache incluye la siguiente línea de configuración. Asumiendo el resto de la
La configuración está en orden, ¿qué archivo entregará el servidor si un usuario escribe http: //[Link]
.edu / [Link] en un navegador web y el servidor recibe esta solicitud?
VirtualDocumentRoot / var / httpd /% - 2 /% - 1
A. /var/httpd/www/luna/[Link]
B. /var/httpd/www/luna/edu/[Link]
C. /var/httpd/luna/www/[Link]
D. /var/httpd/luna/edu/[Link]
7.
Desea utilizar la directiva VirtualHost para definir un número limitado de hosts virtuales en
un servidor Apache. Además, este servidor tiene dos interfaces de red, una para su local
red (eth0, [Link]) y una para Internet (eth1, [Link]). Que directiva
¿Puede incluir para asegurarse de que sus hosts virtuales estén definidos solo en su red local?
A. VirtualHostOnly eth0
B. Vincular eth0
C. NameVirtualHost [Link]
D. Excluir hosts virtuales [Link]
8. ¿Cuál de los siguientes es el mejor modo para los archivos de clave privada de un servidor Apache seguro?
A. 0600
B. 0640
C. 0644
D. 0660
9. ¿Cuál de las siguientes herramientas almacena en caché los accesos web (HTTP) de los clientes, mejorando así
rendimiento en accesos posteriores a los mismos sitios populares?
A. Calamar
B. PHP
C. lince
D. CGI
10. ¿Cómo puede asegurarse de que todos los accesos a sitios web normales (en el puerto 80) desde su
¿La red pasa a través de un servidor proxy? (Seleccione todas las que correspondan.)
A. Use iptables en su enrutador para redirigir todo el tráfico al servidor proxy para ir al
Internet directamente.
B. Use iptables en su servidor proxy para redirigir todo el puerto entrante - 80 tráfico al
puerto predeterminado del servidor proxy.
C. Uso de iptables en el router para bloquear todo el puerto de salida - 80, excepto el tráfico de la
servidor proxy.
D. Use iptables en su enrutador para redirigir todo el puerto saliente - 80 tráfico al proxy
servidor, excepto desde el propio servidor proxy.

Página 505
11. Su servidor de correo electrónico SMTP, [Link], recibe un mensaje dirigido a postmaster @
[Link]. No hay una cuenta de administrador de correo en esta computadora. Suponiendo que el sistema es
configurado correctamente, ¿cómo debería responder el servidor de correo electrónico?
R. Entregue el correo electrónico a otra cuenta, ya sea localmente o en otra computadora.
B. Rebotar el mensaje para que el destinatario sepa que la cuenta no existe.
C. Mantenga el mensaje en la cola de correo local hasta que se cree la cuenta del administrador de correo.
D. Elimine el mensaje sin rebotarlo para reducir el desorden del correo electrónico.
12. ¿Cuál de los siguientes no es un servidor SMTP popular para Linux?
A. Postfix
B. Sendmail
C. Fetchmail
D. Exim
13. Su conexión a Internet se ha interrumpido durante varias horas. ¿Qué ocurre con el correo electrónico enviado?
de sus usuarios a destinatarios externos a través de un servidor SMTP local correctamente configurado?
R. El servidor SMTP se negará a aceptar correo electrónico de clientes locales durante la interrupción.
B. El correo electrónico no se retrasará ni se perderá.
C. Se perderán todos los correos electrónicos enviados durante la interrupción.
D. El correo electrónico se retrasará unas horas pero no se perderá.
14. Examina su archivo / etc / aliases y encuentra que contiene la siguiente línea:
raíz: jody
¿Qué puedes concluir de esto?
R. El correo electrónico dirigido a jody en este sistema se enviará a la raíz del usuario local.
B. El correo electrónico dirigido a root en este sistema se enviará al usuario local jody.
C. El usuario local jody ha irrumpido en el sistema y ha adquirido privilegios de root.
D. El usuario local jody tiene permiso para leer el correo electrónico directamente desde la cola de correo de root.
15. ¿Cuál de las siguientes es una ventaja comúnmente reclamada de maildir sobre el formato de correo electrónico mbox?
A. Soporte para subdirectorios anidados de carpetas de correo electrónico
B. Soporte para IMAP, en lugar de solo el POP que admite mbox
C. Autenticación más rápida de los usuarios cuando se conectan por primera vez al servidor
D. Acceso más rápido a los mensajes en carpetas que contienen muchos mensajes
Preguntas de revisión
463

Página 506
464
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
16. ¿Cuál es la ventaja de configurar las reglas de Procmail en los archivos /.procmailrc de los usuarios en lugar de
que en el archivo global / etc / procmailrc?
A. Las reglas en /.procmailrc se ejecutan como usuarios normales frente a como root para / etc / procmailrc,
haciendo que /.procmailrc sea más seguro.
B. Las reglas en /.procmailrc tienen acceso a los archivos de correo electrónico locales de los usuarios frente a solo los
archivos para / etc / procmailrc.
[Link] archivos /.procmailrc de los usuarios se pueden configurar con permisos restrictivos, evitando
que los usuarios modifiquen maliciosamente esos archivos.
D. Varias opciones poderosas están disponibles en archivos /.procmailrc que no son válidas en el
archivo global / etc / procmailrc.
17. Describa el efecto de la siguiente receta de Procmail:
# CPUload = 0.5
:0
* ^ De: vandervecken @ example \ .org
/ dev / null
R. El correo de vandervecken@[Link] se retrasa hasta que la carga de la CPU cae por debajo de 0,5.
B. Se descarta el correo de vandervecken@[Link].
C. El correo de vandervecken@[Link] no se ve afectado por las recetas posteriores.
D. Ninguno de los anteriores; esta receta está mal formada.
18. ¿Qué opción establecería en el archivo de configuración de Courier para limitar el número de
conexiones simultáneas que el servidor aceptará?
A. NUMCON
B. MAXCONNECTIONS
C. MAXDAEMONS
D. NÚMEROS
19. ¿Qué ocurre con la siguiente línea, que aparece en un archivo de configuración de Dovecot?
protocolos = pop3, pop3s
A. La lista de protocolos debe ir entre llaves ({}).
B. Dovecot no admite un protocolo llamado pop3s, aunque pops es válido.
C. Dovecot requiere imap o imaps como uno de los protocolos admitidos.
D. La lista de protocolos debe estar separada por espacios; no debe haber coma (,).
20. Los usuarios de correo electrónico de su sitio utilizan con frecuencia computadoras aleatorias en su oficina, por lo que desea ejecutar
un servidor de correo pull que les permite almacenar sus mensajes en la propia computadora servidor.
¿Qué protocolo sería mejor para este propósito?
A. SMTP
B. IMAP
C. Procmail
D. POP

Página 507
Respuestas a las preguntas de repaso
1. B. La directiva DocumentRoot establece el directorio en el que Apache busca archivos para servir,
por defecto. (Otros comandos establecen las raíces para el alojamiento de dominios virtuales y para los sitios de los usuarios).
La directiva Root de la opción A es ficticia. Apache no usa una palabra clave establecida, por lo que la opción
C es incorrecta; y no usa un signo igual (=), por lo que la opción D es incorrecta. (Ambos estos
Las opciones también especifican nombres de directiva incorrectos).
2. A, B. Los registros del servidor Apache también incluyen la dirección IP o el nombre de host del cliente.
como una cadena de identificación proporcionada por el cliente, que identifica el programa del cliente y
plataforma. (Sin embargo, esta cadena no es del todo confiable). Por lo tanto, las opciones A y B son ambas
correcto. Las rutas de paquetes (opción C) normalmente no se incluyen en estos datos, pero puede solicitar
traceroute a la dirección IP o al nombre de host si necesita estos datos. Ventana de navegadores web
Apache normalmente no registra los tamaños (opción D).
3. D. El programa apachectl o apache2ctl (ambos nombres suelen funcionar, pero a veces solo
uno es válido) puede administrar el proceso del servidor Apache, informar sobre las conexiones y probar el
archivo de configuración para la sintaxis correcta. Para hacer esto último, páselo el parámetro configtest, como en
opción D. Los parámetros especificados en las opciones restantes son todos ficticios.
4. C. El archivo .htaccess es un archivo de configuración para un solo directorio en el directorio de un sitio web
árbol, por lo que la opción C es correcta. Aunque el archivo de configuración principal de Apache normalmente se llama
[Link] o [Link], ni la opción A ni la B son correctas para el directorio único
archivo de configuración descrito. La opción D es completamente ficticia.
5. D. El programa htpasswd (opción D) administra la propia base de datos de contraseñas de Apache. Opciones
A, B y C son ficticios, aunque el archivo .htaccess se puede usar para configurar opciones para un
directorio individual.
6. D. Los números precedidos por signos de porcentaje (%) en VirtualDocumentRoot son variables que
consulte los componentes de nombre de host separados por puntos. Los números positivos cuentan los componentes de
los números iniciales y negativos cuentan los componentes desde el final. Por lo tanto, dado un nombre de host
de [Link],% - 2 se refiere a luna y% - 1 se refiere a edu, lo que hace que la opción D sea correcta. los
las opciones restantes son todas distorsiones de esta respuesta correcta.
7.
C. Se requiere la directiva NameVirtualHost cuando se usa VirtualHost. A menudo se necesita un
asterisco (*) como opción, pero pasarle una dirección IP hace que se aplique el alojamiento virtual
solo a solicitudes dirigidas a la interfaz de red asociada con esa dirección IP. Así,
la opción C es correcta. Las opciones restantes son todas ficticias.
8. A. Los permisos en el archivo de clave privada de Apache deben ser lo más restrictivos posible, lo que
normalmente significa 0600 (lectura y escritura para el propietario, sin acceso a nadie más) o incluso
0400 (lectura: solo para el propietario, sin acceso a nadie más). Por tanto, la opción A es correcta. En
Además de este acceso, las opciones B, C y D proporcionan acceso de lectura a los miembros del archivo.
grupo; la opción C proporciona acceso de lectura a todos los usuarios; y la opción D proporciona acceso de escritura al
grupo del archivo. Todas estas adiciones constituyen riesgos de seguridad innecesarios, por lo que estas opciones
incorrecto.
9. A. El programa Squid es un servidor proxy de almacenamiento en caché, lo que significa que proporciona las funciones
descrito en la pregunta, por lo que la opción A es correcta. PHP es una herramienta para ejecutar centrada en la Web
scripts, por lo que la opción B es incorrecta. lynx es un navegador web basado en texto, por lo que la opción C es incorrecta.
CGI es la Common Gateway Interface, una herramienta para ejecutar scripts desde un servidor web, por lo que
la opción D es incorrecta.
Respuestas a las preguntas de repaso
465

Página 508
466
Capítulo 9 ■
Configuración de servidores web y de correo electrónico
10. C, D. Hacer lo que sugiere la opción C impedirá que los clientes normales accedan a Internet,
forzarlos a usar la configuración de proxy de sus navegadores web para usar el proxy de su red
computadora servidor. La opción D utilizará el servidor proxy de forma más fluida, lo que requiere menos
configurando pero puede que no funcione bien con algunas configuraciones de proxy. Cualquiera de las dos opciones servirá
como pide la pregunta. La opción A tiene poco sentido, porque no puede redirigir el tráfico dirigido
en una máquina específica para acceder a Internet en general; y si pudieras, esto haría el
contrario de lo solicitado. La opción B haría que el servidor proxy se ejecutara en dos
ports, el puerto 80 y su puerto nativo, pero esto no es lo que especifica la pregunta.
11. A. Se supone que todos los servidores de correo electrónico SMTP aceptan correo electrónico para el administrador de correo. Sistemas Linux
Por lo general, lo hace utilizando un alias para reenviar el correo electrónico a otro usuario local u ocasionalmente
a un usuario en otra computadora. Por tanto, la opción A es correcta. Las opciones B y D describen
no entrega del mensaje, en violación de la configuración adecuada del servidor de correo electrónico. La opción C es
efectivamente lo mismo que la opción D a menos que la creación de la cuenta del administrador de correo sea inminente,
y un servidor de correo electrónico no tendría forma de saberlo.
12. C. El programa Fetchmail es una herramienta para recuperar correo electrónico de servidores POP o IMAP remotos.
e inyectarlo en una cola de correo electrónico SMTP local (o remota). Como tal, no es un SMTP
servidor, por lo que la opción C es correcta. Postfix, sendmail y Exim son correos electrónicos SMTP populares
servidores para Linux, por lo que las opciones A, B y D son incorrectas.
13. D. Los servidores SMTP aceptan el correo electrónico local para la entrega incluso si sus conexiones a Internet son
abajo. Si el servidor SMTP no puede contactar con los servidores del destinatario, el servidor SMTP retiene el correo electrónico.
e intenta la entrega más tarde, por lo que la opción D es correcta. Porque los servidores SMTP no verifican
sobre la disponibilidad de servidores remotos hasta que se acepte la entrega del correo electrónico, opción A
Es incorrecto. La opción B no puede ser correcta a menos que el servidor tenga una copia de seguridad de Internet.
conexión, que no se especificó en la pregunta. La opción C no es correcta porque la
El servidor SMTP retendrá el correo e intentará entregarlo más tarde.
14. B. El archivo / etc / aliases configura el reenvío de correo electrónico de todo el sistema. La línea especificada
hace lo que describe la opción B. Una configuración como esta es común. La opción A tiene cosas
invertido. La opción C no es una conclusión válida de esta evidencia sola, aunque un intruso
posiblemente esté interesado en redirigir el correo electrónico de root; así que si Jody no debería estar recibiendo
correo electrónico de root, esto debe investigarse más a fondo. Aunque el efecto de la opción D (jody
leer el correo electrónico de root) es casi idéntico al efecto de la respuesta correcta, son diferentes;
jody no puede acceder directamente al archivo o directorio que es la cola de correo electrónico de root. En cambio, el
La configuración descrita redirige el correo electrónico de root a la cola de correo electrónico de jody. Por tanto, la opción D es
incorrecto.
15. D. Al colocar mensajes individuales en archivos, maildir teóricamente puede proporcionar un acceso más rápido
a mensajes individuales que mbox, que requiere que el servidor lea todos los
mensajes en la carpeta de correo. Por tanto, la opción D es correcta. Compatibilidad con mbox y maildir
subdirectorios anidados de carpetas e IMAP, lo que hace que las opciones A y B sean incorrectas. La opción C es
incorrecto porque la autenticación no se ve afectada por el formato de almacenamiento del correo electrónico.
16. A. La declaración de la opción A es correcta; un error en una receta global / etc / procmailrc puede ser
desastroso porque la receta corre como root. No importa qué archivo se utilice, los archivos de correo de los usuarios
se puede acceder, por lo que la opción B es incorrecta. Aunque /.procmailrc puede protegerse de
cambios maliciosos, lo mismo ocurre con / etc / procmailrc, lo que hace que la opción C sea incorrecta. Ambos
Los archivos admiten los mismos comandos, por lo que la opción D es incorrecta.

Página 509
17. B. Esta regla de Procmail usa la expresión regular en su tercera línea, que coincide con mail
de vandervecken@[Link]. Las disposiciones de los mensajes coincidentes están determinadas por
línea final, que en este caso redirige el correo a / dev / null; en otras palabras, se descarta, ya que
estados de la opción B. La opción A es incorrecta porque esta regla no hace nada para probar la carga de la CPU;
el comentario en la primera línea es intencionalmente engañoso. Debido a que la receta descarta el correo,
la opción C es obviamente incorrecta. La receta está formada correctamente, por lo que la opción D es incorrecta.
18. C. La opción C especifica el nombre de variable correcto para limitar el número de demonios y, por tanto,
la cantidad de conexiones simultáneas que Courier aceptará. Las opciones restantes son
todo ficticio.
19. D. La opción D describe correctamente el problema con esta línea de configuración de Dovecot.
Dovecot no requiere llaves en esta opción de configuración, por lo que la opción A es
incorrecto. Dovecot admite protocolos de imap, imaps, pop3 y pop3s, por lo que la opción B
Es incorrecto. Dovecot solo puede funcionar con soporte para POP; no es necesario agregar IMAP
soporte, por lo que la opción C es incorrecta.
20. B. El protocolo IMAP admite directorios y organización de correo electrónico en la computadora del servidor,
por lo que es una buena opción para almacenar correo en el servidor a largo plazo. SMTP es un empujón
protocolo de correo; se utiliza para enviar correo desde el remitente y siguiendo una cadena de entrega. Clientela
no utilice SMTP para recuperar su correo, por lo que la opción A es incorrecta. Aunque Procmail puede ser
parte de la configuración de su servidor de correo, no es un protocolo que utilizan los clientes para recuperar
mail, por lo que la opción C es incorrecta. POP, como IMAP, es un protocolo de correo de extracción, pero no
admite la organización del correo en el servidor, lo que lo convierte en una opción inferior a IMAP para
propósito especificado, por lo que la opción D es incorrecta.
Respuestas a las preguntas de repaso
467

Página 510

Página 511

Seguridad
EL SIGUIENTE PROFESIONAL DE LINUX
LOS OBJETIVOS DEL INSTITUTO ESTÁN CUBIERTOS EN
ESTE CAPÍTULO:
210.2 Autenticación PAM (peso: 3)
Envoltura de TCP 212.4 (peso: 1)
212.5 Tareas de seguridad (peso: 3)

Capítulo

10
Página 512
Internet es un lugar peligroso. Aunque Linux es inmune
a muchos de los peligros que amenazan las computadoras con Windows,
otros peligros aguardan al incauto administrador del sistema Linux.
Este capítulo describe algunas de las características que proporciona Linux para ayudarlo a lidiar con estos
problemas.
Primero está el subsistema de Módulos de autenticación conectables (PAM), que le permite
para cambiar la forma en que Linux autentica a los usuarios. PAM se ha mencionado anteriormente, más notablemente
con respecto al Protocolo ligero de acceso a directorios (LDAP), descrito en el Capítulo 7,
“Configuración de red avanzada. "Un segundo tema es TCP Wrappers, que le permite
para limitar las computadoras que pueden acceder a una amplia variedad de servidores Linux, protegiéndolos así
de amplias clases de sistemas no autorizados. Este capítulo también cubre cómo monitorear su
puertos de red y datos de red en un nivel bajo. Finalmente, debes saber buscar
señales de intrusión y adónde ir para mantenerse al día con los problemas de seguridad.
La seguridad es un tema extremadamente importante y complejo. Este capítulo cubre
solo un puñado de problemas de seguridad. Se describen otros problemas de seguridad
a lo largo de este libro, con referencia a servidores y subsistemas Linux específicos.
Libros como Linux Server Security de Michael Bauer (O 'Reilly, 2005) proporcionan
una mirada más profunda a este importante tema. Incluso libros más especializados, como
Firewalls Linux de Michael Rash : detección de ataques y respuesta con iptables,
psad y fwsnort (No Starch Press, 2007) y Mayer, MacMillan y Caplan's
SELinux por ejemplo: uso de Security Enhanced Linux (Prentice Hall, 2006),
Proporcionar información detallada sobre temas o herramientas de seguridad más especializados.

Autenticar usuarios con PAM


PAM le proporciona un medio flexible para configurar la autenticación. Un Linux estándar
La instalación típicamente autentica a los usuarios de una manera más o menos estándar, típicamente usando
cuentas descritas en / etc / passwd y contraseñas almacenadas en / etc / shadow . Usando PAM, usted
puede ampliar este sistema para utilizar un servidor de contraseñas de red, hardware biométrico u otro
herramientas. Para hacer un uso completo de PAM, primero debe comprender los principios que utiliza. Usted puede
luego construya una nueva pila PAM. Dado que la configuración de PAM puede resultar confusa en abstracto,
Presento algunos ejemplos para ayudarlo a ver cómo funciona. Finalmente, es posible que deba ajustar un
herramienta relacionada, Name Service Switch (NSS), que es menos compleja que PAM pero igualmente
importante para la autenticación de Linux.

Página 513
Comprensión de los principios de PAM
En los primeros días de Linux, todos los programas que autenticaban a los usuarios lo hacían leyendo directamente
el archivo / etc / passwd , que en esos días contenía tanto la información de la cuenta
y la contraseña hash. Aunque este enfoque era sencillo de implementar, tenía una
varios problemas, como exponer la contraseña hash a todo el sistema (por lo tanto
haciendo posible que los delincuentes con acceso local descifren contraseñas mediante el uso de fuerza bruta
ataques basados en diccionario) y necesita cambios en cada programa de inicio de sesión cada vez que
Se deseaba cambiar el mecanismo de autenticación.
La solución a estos problemas fue PAM, que se encuentra entre los programas de inicio de sesión y
la base de datos de la cuenta ( / etc / passwd y / etc / shadow en una configuración predeterminada). PAM
es la forma habitual de implementar contraseñas ocultas , en la que los hash de contraseña se almacenan en
el archivo / etc / shadow más seguro , lo que reduce el riesgo de que se rompan. Una vez común
programas de inicio de sesión, como la utilidad de inicio de sesión en modo texto , GUI X Display Manager (XDM)
programas, el comando su y otros, se convirtieron para usar PAM, todos estos programas
podría aprovechar fácilmente las nuevas herramientas de inicio de sesión simplemente cambiando PAM. Porque PAM
es de naturaleza modular, se puede expandir agregando nuevas bibliotecas a la computadora y
haciendo referencia a esas bibliotecas en los archivos de configuración de PAM.
Para configurar PAM, debe modificar uno o más archivos en la configuración principal de PAM
directorio, /etc/pam.d . Este archivo contiene archivos de configuración para cada programa que usa
PAM, indicándole qué módulos PAM usar y de qué manera. La mayoría de los archivos de este
el nombre del directorio se basa en herramientas de inicio de sesión específicas; por ejemplo, /etc/pam.d/login gestiona el
programa de inicio de sesión en modo texto, y /etc/pam.d/gdm administra el Administrador de visualización de GNOME
(GDM) Programa de inicio de sesión de GUI.
Algunas distribuciones de Linux muy antiguas usaban un solo archivo llamado /etc/[Link]
en lugar de archivos separados en el directorio /etc/pam.d . Este archivo contenía el
equivalente a todos los archivos en /etc/pam.d . Cada entrada en el archivo [Link] ,
sin embargo, comenzó con un nombre de servicio, que se omite en / etc / pam.
d archivos 'líneas, como se describe brevemente.
Por lo general, los archivos cuyos nombres comienzan con common , system o config , como common -
auth y common - session , son llamados por los archivos específicos del servicio. Puedes cambiar todo
sus servicios de inicio de sesión editando estos archivos, o puede cambiar un subconjunto de sus servicios de inicio de sesión
editando sus archivos individualmente.
Los archivos de configuración de PAM constan de una serie de líneas, cada una de las cuales puede ser un comentario que
comienza con una marca de almohadilla ( # ) o una línea que describe un módulo PAM específico y cómo es
ser usado. El último tipo de línea tiene el siguiente formato:
módulo management_group control_flag [ opciones ]
Cada campo tiene un significado particular:
management_group PAM define cuatro grupos de gestión , cada uno de los cuales controla un
aspecto de la autenticación o seguridad de la cuenta: autenticación ( auth ), gestión de la cuenta
( cuenta ), gestión de sesiones ( sesión ) y gestión de contraseñas ( contraseña ). Diferente
Autenticar usuarios con PAM
471

Página 514
472
Capítulo 10 ■
Seguridad
Los tipos de tareas que realiza PAM requieren el uso de diferentes grupos de administración, como se describe
en detalle en breve.
control_flag Cuando se llama a un módulo, puede tener éxito o fallar en su tarea. (Por ejemplo, un
la contraseña puede ser correcta o incorrecta). Este campo le indica a PAM cómo reaccionar ante estos éxitos
y fallas, como se describe con más detalle en breve en “Configuración de indicadores de control. " Por ahora,
Sepa que cuatro banderas de control son válidas: requisito , requerido , suficiente y opcional .
Alternativamente, una sintaxis más compleja permite establecer valores y acciones usando la sintaxis
[ valor = acción [ valor = acción ...]] . Además, el indicador de inclusión le dice a PAM que incluya el
líneas en otro archivo de configuración. (Se describen otros dos métodos para hacer lo mismo
en secciones posteriores.)
módulo La especificación del módulo identifica el archivo del módulo PAM. Esta especificación
puede incluir la ruta completa o ser relativo al directorio de módulos PAM (normalmente
/ lib / security ).
opciones Muchos módulos PAM aceptan opciones que pueden influir en su funcionamiento. Algunas opciones
son reconocidos por muchos módulos, pero otros son muy específicos del módulo, como se describe brevemente.
Editar una pila PAM
La modificación de una configuración de PAM requiere editar una o más pilas de PAM , que son conjuntos
de módulos que están llamados a realizar tareas específicas. Una vez que comprenda cómo se acumula PAM
están compilados, puede crear nuevas pilas o, más probablemente, modificar la distribución existente
pilas. Cada archivo de configuración en /etc/pam.d consta de una o más pilas PAM para
realizar las acciones necesarias por el programa asociado.
Antes de continuar, inicie una sesión de inicio de sesión de root en modo texto y haga
archivos de configuración que planea cambiar. Si se equivoca en su configuración de PAM,
el resultado puede ser la imposibilidad de iniciar sesión en la computadora. Tener una raíz abierta
sesión y copias de seguridad de su configuración original garantizan que estará
capaz de retroceder ante cualquier cambio desafortunado. La alternativa es reiniciar el
computadora usando un CD de rescate y edite la configuración de la instalación principal.
¿Qué es una pila PAM?
Para cualquier servicio de inicio de sesión determinado, cada grupo de administración tiene su propia pila, es decir, hay una
pila para la gestión de cuentas (utilizando la pila de cuentas ), otra para la autenticación (utilizando el
auth stack) y así sucesivamente. PAM individual: el uso de herramientas puede llamar a estas pilas para tareas particulares,
pero es probable que ciertas herramientas utilicen diferentes pilas o las utilicen de diferentes formas. Por ejemplo, un
La herramienta de inicio de sesión, como el inicio de sesión o XDM, está diseñada para autenticar a los usuarios y, por lo tanto, hará
un uso intensivo.
de la pila de autenticación pero puede hacer muy poco con la pila de contraseñas ; pero el programa passwd puede
requieren ambas pilas. El propósito de cada grupo de gestión es el siguiente:
cuenta Este grupo de administración realiza la administración de la cuenta en función de
que la autenticación de usuario. Por ejemplo, podría limitar el acceso a la cuenta según el
hora del día o recursos del sistema disponibles.

Página 515
auth Este grupo de administración maneja la autenticación, generalmente a través de un nombre de usuario / contraseña
par. También puede asignar membresía de grupo a un usuario.
contraseña Este grupo de administración maneja las actualizaciones de contraseña (u otro tipo de autenticación).
sesión Este grupo de administración configura la sesión de inicio de sesión de un usuario y luego limpia cuando el
el usuario cierra la sesión. Puede verificar o incluso crear el directorio de inicio de un usuario, montar particiones, etc.
Cuando un programa llama a una pila PAM, PAM ejecuta cada uno de los módulos de esa pila en
secuencia. Cada módulo puede devolver un código de éxito o de falla, que PAM puede usar para
decidir si ejecutar el siguiente módulo de la pila y, si se ejecuta el siguiente módulo,
cómo combinar los resultados de cada módulo.
El resultado final es que la pila de PAM en su conjunto tiene éxito o falla, lo que significa éxito
o falla en la operación de inicio de sesión, cambio de contraseña u otra tarea de autenticación en cuestión.
Existen varias herramientas para permitir que un archivo haga referencia a otro. Uno de estos es utilizar include
como bandera de control, como se describió anteriormente. Otro es utilizar la directiva @include , que
toma el nombre de un archivo que se incluirá, como una sola línea del archivo, como en:
@include common-auth
Dicha línea se puede utilizar en lugar o además de las líneas estándar en una pila PAM.
(Por supuesto, el archivo incluido debe especificar una pila válida en sí mismo, particularmente si el archivo principal
no lo hace!) Un método más para incluir archivos externos se describe en “Elección de módulos. "
Configuración de banderas de control
Como se señaló anteriormente, hay cuatro indicadores de control que determinan cómo el éxito o el fracaso de
el módulo afectará la ejecución de la pila. Las diversas posibilidades se presentan en la Tabla 10.1.
TABLA 10.1 Banderas de control y consecuencias de la terminación del módulo
Bandera de control
Resultado del éxito del módulo
Resultado de la falla del módulo
requisito
La pila continúa ejecutándose; apilar
puede tener éxito o fracasar dependiendo de
resultados de otros módulos.
Stack detiene la ejecución; la pila falla.
necesario
La pila continúa ejecutándose; apilar
puede tener éxito o fracasar dependiendo de
resultados de otros módulos.
Stack continúa ejecutándose, pero
finalmente falla.
suficiente
Stack detiene la ejecución; pila tiene éxito
a menos que un requisito anterior o
el módulo requerido falló.
La pila continúa ejecutándose; apilar
puede tener éxito o fracasar dependiendo de
resultados de otros módulos.
Opcional
La pila continúa ejecutándose; apilar
puede tener éxito o fracasar dependiendo de
resultados de otros módulos. (Si este es el
único módulo en la pila, la pila
tiene éxito.)
La pila continúa ejecutándose; apilar
puede tener éxito o fracasar dependiendo de
resultados de otros módulos. (Si este es el
único módulo en la pila, la pila
falla.)
Autenticar usuarios con PAM
473

Página 516
474
Capítulo 10 ■
Seguridad
Al diseñar una pila, debe tener mucho cuidado de considerar todos los resultados posibles
del éxito o fracaso de cada módulo. Por ejemplo, considere las siguientes dos líneas:
auth requiere pam_unix.so try_first_pass
auth suficiente pam_ldap.so try_first_pass
Con estos dos módulos y dos posibles resultados (éxito o fracaso) para cada módulo,
Hay cuatro posibles resultados para esta minipila, que se resumen en la Tabla 10.2. Si
pam_unix.so tiene éxito, la pila en su conjunto tiene éxito, tanto si pam_ldap.so falla como si no,
ya que se requiere el primer módulo y el segundo es simplemente suficiente . Si pam_unix.so
falla, por el contrario, la pila en su conjunto también falla, ya que se requiere pam_unix.so . Posibilidades
si esto no era lo que se pretendía; esta pila funcionará también con la línea pam_ldap.so
remoto.
TABLA 10.2 Posibles resultados en la pila de muestra
pam_ldap.so tiene éxito
pam_ldap.so falla
pam_unix.so tiene éxito
La pila tiene éxito
La pila tiene éxito
pam_unix.so falla
La pila falla
La pila falla
Considere, sin embargo, lo que sucede cuando uno invierte estas dos líneas:
auth suficiente pam_ldap.so try_first_pass
auth requiere pam_unix.so try_first_pass
En este caso, debido a que una bandera suficiente hace que la pila detenga la ejecución si el módulo
tiene éxito, la pila tendrá éxito cuando cualquiera de los módulos tenga éxito y fallará solo si ninguno
módulo tiene éxito. (Sin embargo, si la pila contuviera líneas subsiguientes, esas líneas serían
omitido si pam_ldap.so tuviera éxito).
El formato de bandera de control más complejo, que incluye una lista entre corchetes de valor / acción
pares, utiliza uno o más valores de una lista larga, como éxito , open_err , buf_err y
bad_item . (Consulte el hombre página para pam.d para más detalles.) Puede utilizar estos valores para la prueba
para tipos específicos de fallas. A continuación, puede establecer una acción ( ignorar , malo , morir , ok , hecho , restablecer ,
o un valor entero) para que la pila realice una acción en particular si el módulo devuelve el
valor específico. Este tipo de configuración obviamente crea la posibilidad de extremos
complejidad. Si necesita este nivel de complejidad, debe consultar las páginas de manual de PAM
y otra documentación. Si encuentra reglas en su configuración predeterminada que usan este
mecanismo, puede intentar determinar su significado para agregarlos, o puede reemplazarlos
con un mecanismo más simple derivado de la configuración de otra distribución o de alguna otra
fuente.
Página 517
Elección de módulos
Algunos módulos PAM se envían con el paquete PAM principal y otros se envían con accesorios
paquetes, como el software LDAP. Cualquiera que sea la fuente de los módulos, puede agregarlos
a su pila PAM para cambiar el funcionamiento de PAM. La tabla 10.3 resume algunos
Módulos PAM, pero, por supuesto, también puede encontrarse con otros. Es importante reconocer
que no todos los módulos llamados en una pila PAM están destinados a ayudar con la pila
Tarea principal. Se puede llamar a un módulo para realizar alguna tarea auxiliar, como mostrar el
mensaje del día (MOTD) en el terminal cuando un usuario inicia sesión.
TABLA 10.3 Módulos PAM comunes
Nombre del módulo
Grupos de gestión Argumentos comunes
Descripción
pam_access.so
cuenta
accessfile =
nombre del archivo
Restringe el acceso
basado en el nombre de usuario,
nombre de host, red
nombre, dirección IP o
nombre de la terminal.
pam_cracklib.so
contraseña
use_authtok y
otros para establecer específicos
cheques
Comprueba la fuerza
de una contraseña cuando
está siendo cambiado.
pam_deny.so
auth , cuenta ,
sesión , contraseña
Ninguna
Siempre indica un
fracaso; destinado a
usar como predeterminado
para cierta pila
configuraciones.
pam_echo.so
auth , cuenta ,
sesión , contraseña
file = nombre de archivo
Muestra texto para
inicios de sesión en modo texto.
pam_env.so
auth , sesión
conffile = nombre de archivo ,
envfile = nombre de archivo
Establece el entorno
variables.
pam_limits.so
sesión
conf = nombre de archivo
Establece la sesión de inicio de sesión
límites en la memoria,
Tiempo de CPU y otros
los recursos del sistema
que se puede utilizar.
Si la opción conf
no se utiliza, estos
se almacenan en / etc /
seguridad / límites
.conf .
Autenticar usuarios con PAM
475

Página 518
476
Capítulo 10 ■
Seguridad
Nombre del módulo
Grupos de gestión Argumentos comunes
Descripción
pam_listfile.so
auth , cuenta ,
sesión , contraseña
item = tipo ,
sense = {permitir | negar} ,
file = nombre de archivo
Busca en el
nombre de archivo especificado
para que las reglas lo permitan
o denegar el acceso.
Por ejemplo,
si item = rhost
(host remoto) y
sentido = negar , usuarios
iniciando sesión desde
computadoras enumeradas
en el nombre del archivo será
acceso denegado.
pam_mail.so
auth , sesión
dir = directorio , vacío
Muestra un mensaje
si el usuario tiene nuevo
correo.
pam_mkhomedir.so
sesión
skel = directorio ,
umask = octal - umask
Crea un nuevo
directorio de inicio si
uno ya no
existe.
pam_motd.so
sesión
motd = nombre de archivo
Muestra el
Archivo MOTD.
pam_nologin.so
auth , cuenta
successok
Si el / etc / nologin
el archivo existe, falla para
todos los usuarios excepto root
y muestra el
contenido de / etc /
nologin .
pam_securetty.so
auth
Ninguna
Falla si el usuario
es root y es
intentando iniciar sesión
desde un dispositivo que es
no incluido en / etc /
securetty .
pam_selinux.so
sesión
Varios
Configura la seguridad
Linux mejorado
(SELinux) contexto
para el inicio de sesión.
TABLA 10.3 Módulos PAM comunes (continuación)

Página 519
Nombre del módulo
Grupos de gestión Argumentos comunes
Descripción
pam_stack.so
auth , cuenta ,
sesión , contraseña
servicio = nombre
Llama a un externo
apilar. Usado
en vez de
incluir control
bandera o @incluir
directiva en algunos
configuraciones.
pam_unix.so
auth , cuenta ,
sesión , contraseña
nullok , likeauth ,
sombra , prueba_primero_
pase , use_first_pass ,
use_authtok
Realiza
Linux tradicional
autenticación
basado en / etc /
passwd y / etc /
sombra .
pam_unix2.so
auth , cuenta ,
sesión , contraseña
nullok , likeauth ,
sombra , prueba_primero_
pase , use_first_pass ,
use_authtok
Similar a
pam_unix.so ,
pero implementa
características adicionales,
como una habilidad
usar una red
Servicio de información
(NIS) servidor.
La tabla 10.3 está lejos de ser completa, pero incluye las
módulos, junto con varios que son poco comunes en instalaciones estándar
pero que son muy útiles. Puede encontrar información sobre más estándares
módulos en el archivo / usr / share / doc / pam - version / Linux - PAM_SAG.pdf en
la mayoría de las distribuciones, donde versión es el número de versión de PAM instalado.
Hay módulos adicionales disponibles en varios paquetes de software para agregar
soporte para herramientas de autenticación adicionales, como el uso de un servidor LDAP
para autenticación.
Normalmente, cambiar una pila PAM implica seleccionar uno o más módulos que desee
agregar a la configuración existente y agregar una línea que haga referencia a ese módulo. En algunos casos,
Sin embargo, es posible que desee eliminar un módulo, cambiar su orden en la pila o cambiar su
opciones.
Opciones de configuración
Muchas opciones son exclusivas de un solo módulo. Otros, sin embargo, son utilizados por varios módulos.
Esto es particularmente cierto en algunas opciones que influyen en cómo comparten los módulos de autenticación
contraseñas entre ellos o lidiar con contraseñas inusuales. La tabla 10.4 resume algunos
de estas opciones.
Autenticar usuarios con PAM
477

Página 520
478
Capítulo 10 ■
Seguridad
TABLA 10.4 Opciones utilizadas por varios módulos
Opción
Sentido
depurar
Muchos módulos aceptan esta opción, lo que hace que el módulo
registre la información de depuración en los archivos de registro de su sistema.
try_first_pass
Cuando usa varios módulos de verificación de contraseña en una autenticación
pila, esta opción hace que un módulo intente usar la contraseña
recopilados por el módulo anterior en la pila. Si esta contraseña falla,
el módulo recopila una contraseña por sí mismo, lo que puede provocar que el usuario
ver varias solicitudes de contraseña.
use_first_pass
Esta opción funciona de manera muy similar a try_first_pass , excepto que el módulo
no solicitará otra contraseña si falla la primera.
nullok
La mayoría de los módulos de autenticación fallan si se les asigna un valor nulo (en blanco)
contraseñas. Esta opción cambia este comportamiento; si la contraseña grabada
en la base de datos es nula, una contraseña nula autenticará al usuario.
likeauth
Esta opción hace que el módulo devuelva la misma información cuando
se llama como parte de una operación de cambio de contraseña como cuando se llama
como parte de una pila de autenticación .
sombra
Esta opción habilita las funciones de contraseña oculta.
use_authtok
Usado en una pila de contraseñas , esta opción hace que el módulo use el
misma contraseña entregada a un módulo anterior, eliminando así
solicitudes de contraseña duplicadas innecesarias al cambiar las contraseñas.

Examinar configuraciones de ejemplo


PAM proporciona varias formas para que una distribución de Linux autentique a los usuarios, cambie
contraseñas, etc. Por lo tanto, no debería sorprendernos saber que diferentes Linux
Las distribuciones utilizan configuraciones PAM predeterminadas diferentes, a menudo radicalmente diferentes. Esta
Esto puede dificultar el asesoramiento sobre cómo modificar la configuración, ya que
los cambios que funcionan bien para una distribución pueden arruinar otra.
La mayoría de las distribuciones de hoy proporcionan pilas centrales en archivos denominados común - tipo , sistema - tipo ,
o algo similar, donde type es un nombre para el tipo de pila, como auth o login . Tú
puede editar estos archivos si tiene la intención de modificar la forma en que PAM funciona para todos los servicios relevantes.
Por ejemplo, si desea usuarios de consola en modo texto local, usuarios de inicio de sesión de GUI local, SSH remoto
usuarios, usuarios de un servidor IMAP, etc., para que todos utilicen una herramienta de autenticación alterada, puede
edite el archivo de tipo común o de tipo de sistema relevante . Si, por otro lado, desea apuntar
sólo unos pocos servicios de inicio de sesión, como el modo de texto local y los inicios de sesión de GUI, mientras se omiten otros,
como los usuarios de SSH, debe editar los archivos que son específicos de los servicios que desea
modificar.

Página 521
El Listado 10.1 presenta una configuración de muestra, tomada de /etc/pam.d/system -
auth en un sistema Gentoo Linux. Este ejemplo utiliza los cuatro grupos de administración, por lo que
proporciona las funciones básicas requeridas por todas las operaciones de autenticación: iniciar sesión, cambiar
contraseñas, etc. Un inicio de sesión basado en consola o XDM normalmente usará la cuenta , auth ,
y pilas de sesiones ; una contraseña: la operación de cambio normalmente utilizará la cuenta , la autenticación y
pilas de contraseñas .
Listado 10.1: Un archivo de configuración de muestra de PAM
auth requiere pam_env.so
auth requiere pam_unix.so try_first_pass likeauth nullok
cuenta requerida pam_unix.so
contraseña requerida pam_cracklib.so difok = 2 minlen = 8 dcredit = 2
ocredit = 2 reintento = 3
contraseña requerida pam_unix.so try_first_pass use_authtok nullok
sombra sha512
sesión requerida pam_limits.so
sesión requerida pam_env.so
sesión requerida pam_unix.so
sesión opcional pam_permit.so
Considere la posibilidad de autenticar a un usuario para una operación de inicio de sesión. Esta tarea requiere el uso de la
autenticación
stack, que en este ejemplo consta de dos módulos: pam_env.so y pam_unix.so . los
el primero de estos módulos no es muy interesante; simplemente establece variables de entorno y debería
normalmente no falla. El módulo pam_unix.so , sin embargo, incluye una serie de opciones, en
al menos uno de los cuales ( try_first_pass ) puede parecer innecesario; sin embargo, si tuviera que editar un
archivo que llama a este sistema: archivo de autenticación y realice una llamada a otro módulo de autenticación antes
system - auth está incluido, try_first_pass podría ser útil.
Considere ahora la tarea de agregar soporte para la autenticación LDAP, que usa el
módulo pam_ldap.so . (Este módulo no es una parte estándar de PAM pero viene con varios
Paquetes LDAP.) Le gustaría agregar una referencia a pam_ldap.so a las mismas pilas
que usan pam_unix.so , es decir, a los cuatro. La ubicación de esta nueva referencia es
importante, como se indicó anteriormente en “Configuración de indicadores de control. "Porque este ejemplo usa required
banderas de control, una manera fácil de hacer el trabajo es agregar el módulo pam_ldap.so antes del
pam_unix.so y para darle al nuevo módulo una bandera de control suficiente . Esta configuración
funcionará, pero tendrá una característica que podría ser indeseable: comprobará con
el servidor LDAP antes de intentar autenticar a los usuarios con la base de datos de contraseñas local.
Esto podría aumentar la carga en el servidor LDAP y también significará que su raíz
La contraseña se enviará al servidor LDAP con cada intento de autenticación de root . Si
primero desea autenticarse contra sus propios archivos locales, debe agregar el pam_ldap.so
Autenticar usuarios con PAM
479

Página 522
480
Capítulo 10 ■
Seguridad
módulo después del módulo pam_unix.so . Sin embargo, esta configuración requerirá
cambios. Una forma es hacer que el primer módulo (ahora pam_unix.so ) sea suficiente y hacer
Se requiere un segundo módulo ( pam_ldap.so ) .
Considere una alternativa a la pila de autenticación del Listado 10.1, tomada de un
Sistema CentOS:
auth
requerido pam_env.so
auth
suficiente pam_unix.so nullok try_first_pass
auth
requisito pam_succeed_if.so uid> = 500 silencioso
auth
requerido pam_deny.so
En este ejemplo, el módulo crítico pam_unix.so es suficiente , lo que significa que la pila
cesa la ejecución y tiene éxito si el usuario ingresa una contraseña correcta pero continúa la ejecución
y deja indeterminado el éxito de la pila si el usuario no ingresa una contraseña correcta.
Sin embargo, esto funciona porque la pila termina con pam_deny.so , que siempre falla, eso
es decir, si ningún otro módulo ha validado al usuario, la pila como un todo falla. Tal pila puede ser
modificado agregando otra regla suficiente para cualquier módulo que desee agregar.
Ajuste del interruptor de servicio de nombres
Aunque PAM maneja la mayor parte del trabajo de autenticación, otro sistema, el Servicio de Nombres
Switch (NSS), maneja una tarea relacionada: NSS proporciona herramientas del sistema con listas de usuarios y
grupos, asigna números de ID de usuario (UID) a nombres de usuario, identifica los directorios de inicio de los usuarios y
pronto. Si agrega otra herramienta de autenticación, como LDAP, a su sistema, debe
ajuste la configuración de NSS para utilizar esta herramienta. Para hacerlo, debe editar el archivo / etc / nsswitch
Archivo .conf . Este archivo debe contener líneas similares a las siguientes:
passwd:
compat
grupo:
compat
sombra:
compat
Algunas distribuciones usan archivos en lugar de compat , y también pueden estar presentes otras entradas.
Para utilizar una nueva herramienta, como LDAP, debe agregar el código correcto para ella (como ldap ) después
las entradas existentes:
passwd:
compat ldap
grupo:
compat ldap
sombra:
compat ldap
El orden en el que aparecen las entradas controla el orden en el que
se comprueban los datos de los subsistemas. Por lo tanto, colocar ldap después de compat o archivos asegura que
Las definiciones de cuentas locales tienen prioridad sobre las del servidor LDAP. Esto puede ser
importante para las cuentas que deben definirse localmente, como root ; sus definiciones locales
debe tener prioridad sobre las definiciones en un servidor remoto.

Página 523
Habilitación de envoltorios TCP
Puede ajustar su configuración de PAM para cambiar la forma en que Linux autentica a los usuarios o para
agregue varias restricciones de no autenticación en los inicios de sesión. Otro enfoque de seguridad es
bloquear el acceso a los servidores de red en función de los números de puerto y las direcciones IP. Una herramienta común
para realizar tales tareas es TCP Wrappers (también conocido como tcpd , el nombre de archivo del software; o implementado
a través de la biblioteca libwrap ). Este software se utiliza a menudo junto con inetd super
servidor; sin embargo, algunos programas, como el servidor NFS, pueden utilizar envoltorios TCP directamente.
Si recuerda la descripción de iptables en el Capítulo 7, puede estar pensando que
TCP Wrappers parece que cumple la misma función. En muchos sentidos, esto es cierto y, de hecho, TCP
Wrappers es menos flexible que un firewall de filtro de paquetes en muchos aspectos. Por ejemplo,
Los contenedores TCP no pueden bloquear el acceso a servidores que no se inician desde un super servidor o
Crear buenas contraseñas
Ya sea que use contraseñas almacenadas localmente o un servidor de contraseñas de red, crear buenas
las contraseñas son importantes. Las encuestas han demostrado que un número asombroso de personas elige
contraseñas muy malas, como sus propios nombres de usuario.
Desafortunadamente, las buenas contraseñas tienden a ser difíciles de recordar, ya que se parecen
conjuntos aleatorios de letras (en casos mixtos), números y puntuación. Una forma posible de
generar una buena contraseña que sea fácil de recordar es la siguiente:
1. Seleccione dos palabras no relacionadas, como bollo y bolígrafo , y combínelas
( bunpen ); o generar un acrónimo basado en una frase que sea significativa para usted, como
como yiwttd , porque ayer fui al dentista . Esta es la base de la contraseña. Un
El acrónimo posiblemente constituye una base superior, siempre que no sea en sí mismo una palabra del diccionario.
(Por supuesto, no debe utilizar bunpen o yiwttd como base, ya que son
ambos ejemplos publicados.)
2. En el caso de una base derivada de dos palabras, invierta el orden de las letras de una de las
palabras. Esto podría producir bunnep como base derivada de la palabra.
3. Cambie el caso de algunas de las letras. Esto podría producir bUnNep o YiwTTd .
4. Inserte al menos un dígito y al menos un símbolo de puntuación. Esto podría producir
bU4nN% ep o Y> iwT7Td . Esta es su contraseña final.
Una contraseña generada de esta manera debería ser lo suficientemente fácil para que el usuario que la creó
recuerde mientras está lo suficientemente lejos de cualquier palabra real o cadena adivinable para frustrar
la mayoría de los intentos de romperlo. Por supuesto, debe transmitir este consejo a sus usuarios, ya que
en la mayoría de los entornos, los usuarios generan sus propias contraseñas.
Habilitación de envoltorios TCP
481

Página 524
482
Capítulo 10 ■
Seguridad
que utilizan envoltorios TCP de forma más directa y no pueden interceptar el tráfico dirigido o enviado por
clientela. No obstante, los encapsuladores TCP pueden hacer algunas cosas que los cortafuegos de filtrado de paquetes no pueden
hacer,
tales como registrar y restringir el acceso según el nombre de usuario del usuario remoto (si el sistema remoto está
ejecutando identd o un servidor equivalente). Por estas razones y porque la seguridad del sistema es
mejor implementado en capas, es posible que desee utilizar TCP Wrappers en lugar de o además
a iptables . Las siguientes páginas describen los principios básicos de los envoltorios TCP, cómo
restringir el acceso con TCP Wrappers, cómo llamar a TCP Wrappers y funciones similares
proporcionado por el super servidor xinetd .
Comprensión de los principios de las envolturas TCP
El uso más común de TCP Wrappers es junto con inetd , que es un super
servidor. Como todos los súper servidores, inetd se ejecuta como un demonio y escucha las conexiones a un
potencialmente gran cantidad de puertos. Cuando llega una conexión, inetd realiza algunos
comprueba, inicia el servidor apropiado y entrega la conexión al servidor de destino.
Esta configuración puede ahorrar memoria en computadoras que ejecutan una gran cantidad de
servidores, y también permite a los servidores aprovechar las comprobaciones adicionales realizadas por
el super servidor, incluidas las protecciones TCP Wrappers. Usar un super servidor puede ralentizar
conexiones de red, sin embargo; las comprobaciones adicionales y la necesidad de iniciar el servidor de destino para
cada conexión agrega tiempo a la conexión inicial del servidor.
Al usar TCP Wrappers, inetd llama a TCP Wrappers (a través de su ejecutable tcpd ) en su lugar
del servidor de destino y pasa a tcpd el nombre del programa de servidor definitivo, junto con
cualquier parámetro que necesite. Los envoltorios TCP pueden entonces estudiar la conexión entrante y decidir
si aceptarlo. Si se rechaza la conexión, TCP Wrappers ni siquiera llama al
servidor; simplemente corta la conexión. Si TCP Wrappers acepta la conexión, se inicia
el servidor y le entrega la conexión.
Para configurar encapsuladores TCP, proporcione criterios para aceptar o rechazar conexiones
en dos archivos: /etc/[Link] y /etc/[Link] . El primero de estos archivos define
computadoras a las que se les debe otorgar acceso al servidor; el segundo especifica clientes que
no se debe permitir que se conecte. Si una computadora aparece en ambos archivos, [Link] toma
precedencia. Si ninguno de los archivos incluye una computadora, TCP Wrappers le permite conectarse.
Para ejecutar un sistema con la seguridad más estricta posible de TCP Wrappers, incluya
una línea que dice TODOS: TODOS en /etc/[Link] . Esta línea bloquea todas las entradas
accesos manejados por TCP Wrappers. A continuación, puede abrir servidores individuales
para sistemas cliente específicos en /etc/[Link] .
Para usar envoltorios TCP, se refiere a un servidor por su nombre de archivo, que puede no ser el mismo que
su nombre de servicio en / etc / services . Por ejemplo, un servidor FTP puede denominarse en
.ftpd , vsftpd , proftpd o varios otros nombres. Cuando usa TCP Wrappers en conjunto
con inetd , el nombre de archivo del servidor aparece inmediatamente después de la llamada a tcpd en / etc /
línea [Link] para el servidor. Normalmente, el servidor debe residir en algún lugar de la ruta de tcpd .
Si necesita incluir la ruta completa al servidor en su archivo /etc/[Link] , TCP

Página 525
Es posible que las restricciones de los envoltorios no funcionen correctamente. Si es necesario, puede crear un enlace simbólico
desde un directorio en su ruta al ejecutable del servidor real.
Restricción del acceso con envoltorios TCP
Los formatos para /etc/[Link] y /etc/[Link] son idénticos, aunque
la misma entrada tiene efectos opuestos en los dos archivos de control. El formato general para estas entradas
es como sigue:
nombres-de-servicio : lista-de-clientes [: comando-shell ]
Los nombres de servicio pueden ser un nombre de servidor, como [Link] o [Link] ; o puede
ser varios nombres, separados por comas o espacios. En cualquier caso, el nombre es el nombre
del proceso del servidor (según lo revelado por ps o herramientas similares), no su nombre de protocolo (como se muestra
en / etc / services ). También puede utilizar la palabra clave ALL , que significa todos los servicios. los
shell opcional : el comando es un comando que puede ejecutar cuando se intenta acceder. Puedes usar
esta función para enviar una notificación a una dirección, presentar un mensaje de falla en el puerto, o
tomar alguna otra acción.
La lista de clientes es potencialmente mucho más compleja que los nombres de los servicios . Como con el
nombres de servicios , la lista de clientes puede ser una sola entrada o muchas entradas separadas por comas
o espacios. Puede especificar clientes de varias formas diferentes:
Dirección IP Puede proporcionar una única dirección IP, como [Link] , para bloquear o permitir
acceder desde esa dirección IP.
Rango de direcciones IP Si desea bloquear o permitir el acceso de una red completa según
su rango de direcciones IP, puede hacerlo. El enfoque más simple es proporcionar una dirección IP parcial
(terminando en un punto), como 172.24.45. , que coincide con todos los sistemas en [Link]/24
subred. También puede proporcionar la dirección de red completa y agregar el número de bits o un
completar la máscara de red después de una barra, como en [Link]/24 o [Link]/[Link] .
Nombre de host Si no desea utilizar direcciones IP, puede bloquear o autorizar a una persona
computadora proporcionando su nombre de host, como en [Link] . Este enfoque es más riesgoso que
utilizando una dirección IP, sin embargo, porque se basa en una búsqueda de DNS correcta y precisa. Si un
cracker compromete su servidor DNS (o potencialmente incluso el de otra persona) o si su DNS
servidor deja de funcionar, es posible que las reglas de TCP Wrappers no funcionen como esperaba.
En los medios populares, el término hacker se aplica con frecuencia a los delincuentes.
que irrumpen en las computadoras. Sin embargo, esta palabra tiene un significado más antiguo:
se refiere a las personas que tienen habilidades con las computadoras, particularmente en informática
programación y que utilizan esas habilidades con fines productivos. Muchos
Los programadores de Linux se consideran hackers en este sentido positivo.
Por lo tanto, utilizo el término cracker para referirme a los delincuentes informáticos. En el
contexto de las computadoras, este término se refiere inequívocamente a las personas que rompen
en o interrumpir de alguna otra manera computadoras y redes de computadoras.
Habilitación de envoltorios TCP
483

Página 526
484
Capítulo 10 ■
Seguridad
Nombre de dominio Para bloquear o autorizar el acceso en función de un nombre de dominio, debe incluir el dominio
nombre precedido por un punto. Por ejemplo, .[Link] bloquea o autoriza todas las computadoras
en el dominio [Link] . Al igual que con la autenticación de nombre de host, este enfoque depende
con una resolución DNS precisa y confiable.
Nombre del grupo de red NIS Si su red ejecuta un servicio de información de red (NIS)
servidor de grupo de red, puede especificar un nombre de grupo de red NIS precediéndolo con un signo de arroba ( @ ).
Al igual que con las especificaciones de nombre de host y nombre de dominio, este enfoque coloca a su sistema en la
piedad de otro sistema, en este caso, el servidor NIS.
Comodines Puede utilizar cualquiera de varios comodines que coincidan con grupos particulares de
ordenadores. Ejemplos de comodines incluyen TODOS (todos los equipos), LOCAL (todos los equipos
los nombres de host se resuelven sin puntos, normalmente los del mismo dominio que el servidor),
DESCONOCIDO (computadoras cuyos nombres de host o direcciones IP no se conocen, o usuarios cuyos nombres
no se puede verificar mediante identd ), CONOCIDO (nombres de host cuyos nombres de host y direcciones IP
conocidos, y los usuarios cuyos nombres son devueltos por el servidor identd de un cliente ), y PARANOID
(sistemas cuyos nombres de host y direcciones IP no coinciden). Todas estas opciones excepto por
TODOS son algo arriesgados porque dependen del correcto funcionamiento del DNS.
Nombres de usuario Puede hacer coincidir usuarios individuales anteponiendo un nombre de host o una dirección IP
nombre de usuario y un signo arroba ( @ ), como en sue@[Link] . Esta característica requiere que el
el cliente esté ejecutando un servidor identd (también conocido como authd ), y se basa en la veracidad de ese servidor.
Además de estas reglas, puede utilizar la palabra clave EXCEPT para crear una lista con
excepciones. Por ejemplo, [Link]/24 EXCEPTO [Link] excluye [Link]
de la lista de clientes.
Como ejemplo de varias de estas reglas en funcionamiento, considere el Listado 10.2, que muestra
un archivo de muestra /etc/[Link] . Este archivo debe utilizarse junto con / etc /
[Link] archivo que restringe el acceso a algunos o todos los servidores. Si el Listado 10.2 se utilizó con
un archivo [Link] vacío , no tendría ningún efecto, porque no se negaría ningún sistema
acceso.
Listado 10.2: Un archivo /etc/[Link] de muestra
[Link]: [Link] [Link]
vsftpd: 172.24.45. EXCEPTO [Link]
imapd: .[Link] EXCEPTO [Link]
ipop3d: sue@[Link]
Muchos ejemplos de encapsuladores inetd y TCP utilizan servidores antiguos poco conocidos
porque la tendencia de los últimos años ha sido alejarse del uso de estas herramientas.
Por ejemplo, es probable que las instalaciones modernas de Linux utilicen OpenSSH
(descrito en el Capítulo 7) en lugar de Telnet, ya que SSH es mucho más seguro
que Telnet. Los servidores SSH también suelen iniciarse directamente en lugar de a través de
un super servidor.

Página 527
Si se usa junto con un archivo / etc / hosts / deny muy restrictivo (digamos, uno que contenga
la línea TODOS: TODOS ), el Listado 10.2 otorga acceso a solo cuatro servidores y solo permite
hosts para acceder a esos servicios:
Telnet La línea [Link] le dice al sistema que acepte conexiones Telnet solo desde
[Link] y [Link] . Presumiblemente, estos son hosts locales para los que Telnet
los riesgos son menores.
FTP La línea vsftpd le dice a los Wrappers TCP que acepten conexiones FTP desde cada computadora
en la red [Link]/24 excepto [Link]. Quizás [Link] sea un enrutador o
algún otro host que nunca debería necesitar utilizar un cliente FTP.
IMAP El Protocolo de acceso a mensajes de Internet (IMAP) es un protocolo de recuperación de correo y el
La línea imapd restringe el acceso a este protocolo. Todas las computadoras del dominio [Link]
excepto [Link] puede acceder a este servidor.
POP La línea ipop3d permite a sue@[Link] utilizar el Protocolo de oficina postal (POP)
para recuperar el correo electrónico. Otros usuarios de ese sistema y usuarios de otros sistemas (incluso demandar a otros
sistemas) no puede acceder al servidor ipop3d .
Recuerde que TCP Wrappers protege solo aquellos servidores que usan su
caracteristicas. Muchos servidores no se inician a través de inetd y no utilizan TCP
Envoltorios.
TCP Wrappers proporciona más funciones de las que puedo presentar aquí, y algunas de sus funciones
puede tener efectos sutiles. Por esta razón, debe probar minuciosamente cualquier /etc/[Link]
y archivos /etc/[Link] que cree. Si tiene problemas, escriba man 5 hosts_access para
lea la documentación oficial sobre el formato de archivo de control de TCP Wrappers.
Llamar a envoltorios TCP
Algunos programas utilizan envoltorios TCP de forma independiente y normalmente de forma automática; sin embargo,
en la mayoría de los casos se llama a través del super servidor inetd . La mayoría de las distribuciones modernas, sin embargo,
han cambiado a xinetd (consulte la próxima sección "Uso de funciones similares en otros
Programas ”), y es posible que no necesite un súper servidor, ya que muchos servidores modernos funcionan
mejor cuando se lanza directamente.
El super servidor inetd se configura mediante el archivo /etc/[Link] o mediante varios archivos
en el directorio /etc/inetd.d . El formato del archivo de configuración incluye líneas de comentarios que
comience con las marcas de almohadilla ( # ) y las líneas de definición del servidor que tienen la siguiente forma:
nombre-servicio-tipo-socket-protocolo-marca-usuario-servidor-argumentos
Cada campo está separado de sus vecinos por espacios o tabulaciones. Los significados de estos campos
se enumeran aquí:
service - name Este campo es el nombre del protocolo, como se define en / etc / services . por
Por ejemplo, ftp significa servidor FTP y telnet es un servidor Telnet.
Habilitación de envoltorios TCP
485

Página 528
486
Capítulo 10 ■
Seguridad
socket - type El tipo de socket es normalmente stream o dgram , aunque algunos otros
también son posibles opciones, como raw , rdm y seqpacket . El valor apropiado varía
de un servidor a otro, así que consulte la documentación del servidor para saber qué
debería usar.
protocolo La mayoría de los servidores usan el protocolo tcp , pero algunos servidores usan udp , y un
un número menor utiliza otros protocolos. Servidores que usan la llamada a procedimiento remoto (RPC)
El sistema para mediar conexiones especifica un protocolo de rpc / tcp o rpc / udp . En cualquier caso, el
el protocolo debe aparecer en / etc / protocol . Debería consultar la documentación de su servidor
para saber cuál usa.
banderas puede pasar una espera o nowait bandera, que le dice a inetd si el servidor es única -
roscado o multiproceso, respectivamente. Esta opción es relevante solo para datagramas ( dgram
tipo de socket) servidores; otros usan una entrada nowait por convención. Puede agregar un punto y un
número a esta entrada para limitar el número de instancias de un servidor que inetd permitirá
corre a la vez. Puede utilizar esta función para limitar el número de conexiones simultáneas
el sistema aceptará, evitando así el uso potencial de CPU, memoria o ancho de banda de la red
problemas. Si omite el número máximo de conexiones, el valor predeterminado es 40 .
usuario Esta entrada especifica el usuario bajo cuyo nombre se ejecuta el servidor. Este valor es
con frecuencia, ya sea root o nadie , pero cualquier usuario que aparezca en / etc / passwd es válido. Usted puede
añada un nombre de grupo después de un punto, como en [Link] para ejecutar el servidor como el ftp de usuario en el
grupo de servidores .
Nunca ejecute un servidor con un privilegio superior al requerido. Hacerlo puede
plantean un riesgo de seguridad en caso de un error o, a veces, incluso cuando un servidor
está funcionando normalmente. Los privilegios que requiere un servidor varían de uno
servidor a otro, así que consulte su documentación para más detalles.
servidor Este campo apunta al servidor en sí, como / usr / sbin / vsftpd para iniciar vsftpd .
El servidor inetd también admite algunos protocolos por sí mismo. Para estos, el campo del servidor debe
leer interno . Si usa TCP Wrappers para iniciar un servidor, este campo debe leer / usr /
sbin / tcpd (por supuesto, la ruta debe ajustarse si tcpd reside en otro lugar de su
sistema).
args Muchos servidores dependen de los argumentos que se les pasan en la línea de comandos. El final
campo es donde especifica estos argumentos, separados por espacios, si es necesario. Si lanza
un servidor a través de TCP Wrappers, el primer argumento es el nombre del servidor que desea iniciar.
Como ejemplo, considere la siguiente entrada:
imap stream tcp nowait root / usr / sbin / tcpd imapd
Esta entrada le dice a inetd que escuche en el puerto TCP de imap (143) y que inicie imapd a través de TCP.
Envoltorios cada vez que aparece una conexión. Este servidor se ejecuta con privilegios de root porque

Página 529
es un servidor de Protocolo de acceso a mensajes de Internet (IMAP), que requiere privilegios de root para
procesar los inicios de sesión de cualquier usuario que desee recuperar el correo electrónico a través de IMAP.
Muchas distribuciones que utilizan inetd se envían con muchas entradas predefinidas para
servidores; sin embargo, la mayoría de estas entradas se comentan colocando marcas de almohadilla antes
cada servidor desactivado. Esta práctica garantiza que un servidor no se inicie accidentalmente
solo porque lo ha instalado; debe tomar medidas activas para activar el servidor
descomentar la línea relevante antes de que funcione. Algunos protocolos están representados por
múltiples entradas, una para cada servidor que puede manejar el protocolo. Si quieres tu sistema
para utilizar el protocolo en cuestión, debe decidir qué servidor utilizar y descomentar el
entrada correcta de [Link] . Si quita el comentario de la entrada incorrecta, el servidor no responderá.
Algunos servidores, especialmente aquellos que no se envían con una distribución, no tienen
entradas en [Link] . Para utilizar un servidor de este tipo, debe agregar la entrada. La forma mas sencilla
Para hacer esto, normalmente se copia una entrada de muestra de la documentación del servidor. Si el
la documentación no proporciona dicha entrada, es posible que no haya sido diseñada para ejecutarse desde
un super servidor, pero puede intentar crear una entrada modificando otra. Puede que tengas que
sin embargo, adivine los campos tipo socket , protocolo y banderas .
Las instalaciones modernas de inetd suelen utilizar archivos en /etc/inetd.d en lugar de un solo / etc /
Archivo [Link] . Esta configuración permite que los paquetes de servidor incluyan fácilmente un
archivo de configuración. Aparte de la ubicación del archivo, la configuración del servidor funciona igual en
cualquier caso.
Cambiar la configuración de [Link] no cambiará la forma en que se ejecuta actualmente
El proceso inetd responde a las solicitudes entrantes. Reiniciar la computadora logrará
este cambio, pero los métodos mucho más simples son reiniciar inetd o pasar al servidor un HUP
señal. Puede reiniciar inetd deteniéndolo y volviéndolo a iniciar a través de su propio SysV o
Comienzo del script de inicio o, por lo general, pasando el script SysV la opción de reinicio . por
Por ejemplo, puede escribir /etc/init.d/inetd restart . Puede hacer esto manualmente usando
kill y luego lanzar inetd manualmente, pero usar los scripts de inicio de SysV es
mejor si su sistema los usa. Sin embargo, este enfoque tiene un gran inconveniente: es probable que
elimine cualquier conexión abierta mediada por inetd . Para evitar este problema, pase la señal HUP,
como en killall - HUP inetd . Algunas distribuciones admiten una opción de recarga para su inetd SysV
scripts de inicio para lograr este objetivo, también. Por ejemplo, la recarga /etc/init.d/inetd se
hacer el trabajo en algunos sistemas.
Si implementa cambios en su configuración inetd y no puede conectarse a la nueva
servidor, compruebe los archivos de registro del sistema. Puede encontrar entradas de inetd sobre una incapacidad
para encontrar el archivo de programa, un socket que ya está abierto o varias otras condiciones de error.
Saber qué está causando un problema puede sugerir correcciones, como verificar dos veces la
nombre de archivo en /etc/[Link] para corregir un error tipográfico.
Uso de funciones similares en otros programas
Aunque los objetivos de LPIC-2 mencionan inetd , la mayoría de las distribuciones modernas de Linux
abandonó este super servidor a favor de xinetd (pronunciado "zi - net - dee"), que proporciona
la mayoría de las características de inetd y TCP Wrappers en un solo programa. El principal xinetd
El archivo de configuración es /etc/[Link] . La mayoría de las distribuciones usan un [Link] mínimo
Habilitación de envoltorios TCP
487

Página 530
488
Capítulo 10 ■
Seguridad
archivo, sin embargo. Este archivo establece solo algunos valores predeterminados y llama a los archivos en /etc/xinetd.d para manejar
servidores individuales. Una configuración que es equivalente a la presentada para un IMAP
servidor en la sección anterior "Llamar a encapsuladores TCP" es el siguiente:
servicio imap
{
socket_type = flujo
protocolo = tcp
Espere
= no
usuario
= raíz
servidor
= / usr / sbin / imapd
server_args =
inhabilitar
= no
}
Esta entrada contiene toda la información presente en la configuración inetd para el mismo
servidor, excepto que está dividido en varias líneas y cada línea está etiquetada. En la práctica, xinetd
No es muy quisquilloso con el orden de estas opciones, por lo que puede verlas en diferentes órdenes.
También puede ver opciones vacías, como server_args en este ejemplo, omitidas.
Puede usar una variedad de opciones para xinetd que no están disponibles en inetd . Uno de estos
opciones está deshabilitado , que toma un parámetro sí o no . Si esta opción se establece en sí , xinetd
ignora el servidor. Puede utilizar esta función para deshabilitar temporal o permanentemente un servidor
sin desinstalarlo. Muchos servidores se envían con una entrada de desactivación sí, por lo que debe
habilite explícitamente el servidor antes de que funcione.
Algunas opciones, como inhabilitar , pueden resultar en un "doble negativo"
interpretación. Por ejemplo, deshabilitar no significa que el servidor está
habilitado; tales configuraciones pueden generar confusión fácilmente, ¡así que esté alerta!
Muchas de las herramientas de control de acceso xinetd reflejan las de TCP Wrappers, aunque
xinetd usa diferentes nombres. xinetd ofrece algunas opciones de seguridad que TCP Wrappers
no ofrece. En términos generales, las opciones de xinetd se dividen en varias categorías:
Restricciones de acceso a la red y al host Puede utilizar las opciones only_from y no_access
tanto como usarías entradas en /etc/[Link] y /etc/[Link] de TCP Wrappers
archivos, respectivamente. Sin embargo, si incluye una línea only_from , todos los sistemas no enumerados explícitamente
se les niega el acceso. Puede especificar hosts por dirección IP, dirección de red con o sin
netmask (como en [Link] o [Link]/24 ), nombre de host o un nombre de red que aparece en
/ etc / networks . Si usa un nombre de host, xinetd realiza una única búsqueda de nombre de host cada vez que
iniciar el servidor, por lo que es probable que esta opción no sea confiable si la dirección IP de un cliente cambia en
todo con frecuencia. Si un sistema coincide con las líneas only_from y no_access , xinetd aplica el
regla asociada con la línea más específica. Por ejemplo, si only_from habilita el acceso desde

Página 531
[Link]/24 y no_access deniega el acceso a [Link], luego [Link] no será
capaz de acceder al sistema.
Restricciones de interfaz Si su computadora tiene múltiples interfaces de red, puede enlazar
un servidor a una de esas interfaces con las opciones de enlace o interfaz , que son
sinónimo. Estas opciones toman la dirección IP en la computadora local asociada con un
interfaz como opción. Por ejemplo, bind [Link] vincula el servidor a la interfaz
con la dirección [Link] . Cuando usa esta función, xinetd ni siquiera escucha
conexiones en otras interfaces, que pueden mejorar enormemente la seguridad; un malhechor no puede tomar
ventaja de un error, incluso en xinetd , si xinetd no está escuchando en la interfaz, el cracker
esta usando.
Restricciones temporales Si desea que un servidor esté disponible en algunos momentos del día pero
otros no, puede configurar restricciones temporales utilizando la función access_times . Esta
la palabra clave toma dos tiempos, separados por un guión ( - ), como una opción. Los tiempos están especificados
en formato de 24 horas. Por ejemplo, access_times 07:30 - 18:00 restringe el servidor
disponibilidad entre las 7:30 AM y las 6:00 PM Esta restricción se aplica al original
conexión; los usuarios pueden continuar usando el servidor después del período de toque de queda. Por ejemplo, si un
el usuario inicia sesión en un servidor Telnet que está restringido de 7:30 a. m. a 6:00 p. m. a las 5:57 p. m.,
la persona podría permanecer conectada mucho después de las 6:00 p.m.
Al igual que con inetd , debe decirle a xinetd que reinicie o vuelva a leer su archivo de configuración después
haciendo cambios en ese archivo. Esto también es necesario si agrega un nuevo archivo de configuración
a /etc/xinetd.d . Puede utilizar los mismos métodos para reiniciar xinetd o hacer que vuelva a leer su
archivo de configuración que puede utilizar con inetd . Al igual que con inetd , el método que es menos probable
causar una interrupción es pasar al servidor una señal HUP, como en killall - HUP xinetd .

Tratar con puertos y paquetes


Las herramientas de diagnóstico y escaneo de red de bajo nivel pueden ayudarlo a auditar sus propias computadoras
para configuraciones potencialmente peligrosas y vigile el tráfico de la red para detectar
patrones. En términos generales, se utilizan dos clases de herramientas para estas tareas: escáneres de puertos
y rastreadores de paquetes. Algunas herramientas, aunque técnicamente no forman parte de estas categorías, pueden llenar un
papel similar y por lo tanto se describen aquí, también.
Los escáneres de puertos y los rastreadores de paquetes son herramientas útiles que pueden ayudarlo
asegurar su red; sin embargo, en las manos equivocadas, también pueden ser herramientas
utilizado por los crackers para ayudarles a entrar en las computadoras. Por esta razón, muchos
las organizaciones tienen políticas que restringen su uso. Antes de utilizar estas herramientas,
asegúrese de obtener un permiso por escrito de una persona autorizada para hacer
entonces. Realizar escaneos de puertos o monitorear paquetes sin permiso, incluso
si sus intenciones son honorables, podría resultar en su despido o incluso
arrastrado a la corte.
Tratar con puertos y paquetes
489

Página 532
490
Capítulo 10 ■
Seguridad

Escaneo y manejo de puertos abiertos


Es fácil dejar un servidor ejecutándose sin querer. Esto puede suceder porque el servidor fue
instalado automáticamente sin su conocimiento, accidentalmente, para uso temporal y luego
olvidado, sin autorización de un usuario legítimo o incluso de un intruso. Servidores desconocidos
pueden representar una seria amenaza para la seguridad, ya que pueden proporcionar acceso a su computadora
no sé. Al usar un servidor de este tipo, un cracker puede entrar en su computadora y causar
grados desconocidos de estragos en la computadora. Quizás peor, el cracker puede entonces ser capaz de
usar su computadora como una plataforma de lanzamiento para ataques contra otras computadoras en su red o
contra otras redes.
El Capítulo 5, “Configuración de la red”, describe varias herramientas de escaneo de puertos que
puede utilizar para auditar equipos individuales o incluso una red completa. Algunos otros programas son
también es útil en este sentido. Estos programas son:
netstat Este programa le permite escanear su computadora local en busca de puertos abiertos.
La opción - - listening ( - l ) realiza esta tarea y, por lo tanto, es particularmente útil para identificar
puertos abiertos en su computadora. También puede utilizar netstat para identificar el programa específico
que usa un puerto después de que un escaneo de puerto externo ha localizado un puerto abierto en su computadora.
Telnet El cliente del protocolo Telnet de Linux, telnet , se puede utilizar para redes rápidas y sucias.
análisis. Pase un nombre de host y un número de puerto, como en telnet [Link] 80 , y el
El programa se conecta al puerto TCP especificado en la computadora especificada. Puedes usar esto
funcionalidad para verificar que un servidor se está ejecutando (produce un error de conexión rechazada si
no hay ningún servidor disponible). Si comprende el protocolo con suficiente detalle, puede incluso
pruébelo directamente, en lugar de utilizar su software cliente habitual. Esta función puede permitirle
detectar errores o vulnerabilidades de seguridad que podrían estar ocultas por capas adicionales de código
en programas de cliente típicos.
nc Este programa puede enviar datos arbitrarios a otras computadoras, monitorear puertos de red y
más. Es una buena herramienta si desea escribir un script personalizado para realizar escaneos especializados.
de su red de forma regular.
Nmap Puede utilizar este programa para escanear computadoras arbitrarias en la red para
puertos abiertos. Puede hacer lo mismo con nc , pero nc realiza tareas de red muy simples y es
diseñado para su uso en scripts, mientras que Nmap puede realizar un escaneo completo de uno o más
ordenadores.
OpenVAS Este programa, basado en [Link] , es un escáner de red que
incorpora pruebas basadas en varias herramientas de código abierto. Incluye interfaz gráfica de usuario y basada en texto
front-end, y está diseñado como una forma de escanear rápida y eficientemente una red completa de
computadoras en busca de vulnerabilidades.
El Capítulo 5 describe los detalles de netstat , nc y Nmap, y puede consultar sus
páginas man para más detalles. En términos generales, es posible que desee escanear todas las computadoras en
su red para puertos abiertos de vez en cuando. Escanear una computadora nueva tan pronto como esté
configurado también está en orden.

Página 533
Escanee una computadora usando al menos dos herramientas. También puede querer
realizar exploraciones desde dos ubicaciones, como dentro y fuera de una
cortafuegos. Algunas configuraciones pueden dejar puertos abiertos en alguna red
interfaces o a algunas redes pero no a otras, por lo que escanea desde diferentes
computadoras o el uso de diferentes herramientas pueden producir resultados diferentes.
Si encuentra puertos abiertos, puede realizar una de varias acciones:
Déjelo abierto Algunos puertos deben dejarse abiertos. Esto es cierto para los puertos asociados con
software de servidor, por ejemplo. A veces, un servidor debería estar disponible en algunas redes
pero no otros, en cuyo caso se debería implementar alguna forma de acceso selectivo. Algunos
La configuración para esto en los programas del servidor deja el puerto abierto, pero el servidor denegará el acceso en un
nivel más alto.
Restringir el acceso a la interfaz de red Algunos servidores se pueden vincular a una interfaz de red
pero no otro. Esta función es particularmente útil en enrutadores y otras computadoras con
múltiples interfaces de red, pero también puede ser útil si un servidor debe ejecutarse para acceso local
solo: puede vincularlo a la dirección localhost ([Link]) pero no a su Ethernet habitual o
otra dirección de red.
Bloquear el puerto Puede bloquear el acceso al puerto de varias formas diferentes. Si el
el servidor se inicia a través de un super servidor ( inetd o xinetd ), puede utilizar TCP Wrappers o
xinetd reglas de acceso para hacer el trabajo. En todos los casos, puede usar iptables para bloquear el acceso a
el puerto. Este enfoque puede resultar especialmente útil si el servidor debe ejecutarse durante
clientes, pero no para otros; digamos, si debería ser accesible para las computadoras en su
red, pero no a los sistemas de Internet en su conjunto. Algunos bloques de puertos pueden
implementado en la computadora que ejecuta el servidor, pero otros se pueden implementar en su
enrutador de la red.
Rediseño de su red En algunos casos, es posible que desee rediseñar su red. Tú
puede colocar computadoras altamente sensibles detrás de un enrutador dedicado que incluye
reglas de firewall para limitar el acceso a las computadoras sensibles. Este enfoque puede ser eficaz, pero
implementarlo puede ser una empresa importante.
Desactive el software Si el puerto no debería estar abierto en la computadora,
es posible que desee cerrar el software que utiliza el puerto. Puede hacer esto ajustando
su script de inicio SysV o Upstart o editando su configuración inetd o xinetd para
el servidor. En muchos casos, si este enfoque tiene sentido, el siguiente hace aún más
sentido.
Quitar el software Puede usar el sistema de administración de paquetes de su computadora para
desinstale completamente el software. Esta opción tiene sentido si el servidor no debe estar
ejecutándose en la computadora y nunca debería estarlo.
Tratar con puertos y paquetes
491

Página 534
492
Capítulo 10 ■
Seguridad
La seguridad se implementa mejor en capas. Por lo tanto, es posible que desee tomar dos o más de estos
se acerca cuando localiza un puerto abierto. Por ejemplo, puede eliminar el software,
implementar una regla de iptables local para bloquear el acceso al puerto e implementar una regla de firewall
en su enrutador para restringir el acceso al puerto en la computadora afectada (y tal vez en otros
computadoras, según sus necesidades). Crear varias restricciones de este tipo hace que sea menos probable
que su computadora se verá comprometida por un solo error de configuración. Por ejemplo, si
tiene un firewall que bloquea el acceso al puerto 80, una instalación accidental de una Web
Es poco probable que el servidor que utiliza este puerto cause algún daño.
Supervisión del tráfico de la red
Puede utilizar un escáner de puertos para comprobar la vulnerabilidad de una red. Otro camino para mejorar
La seguridad es monitorear su red en busca de actividad sospechosa. Un rastreador de paquetes es una forma de hacerlo
esto y otro es usar herramientas para monitorear sus archivos de registro en busca de actividad sospechosa.
Usando Snort
El Capítulo 5 describió un par de programas de monitoreo de paquetes de red, tcpdump y
Wireshark. Estos programas le permiten examinar los paquetes de red a medida que entran o salen
su computadora y, a veces, cuando pasan entre otras computadoras en su red.
Estas herramientas de monitoreo pueden ser útiles para diagnosticar problemas de red y también pueden
Ser herramientas de seguridad útiles: puede escanear en busca de paquetes sospechosos y tomar las medidas adecuadas.
cuando se detectan dichos paquetes.
Snort ( [Link] ) es otro programa de rastreo de paquetes muy poderoso.
Además de funcionar como un rastreador de paquetes genérico, Snort puede funcionar de una manera más
papel sofisticado como un sistema de detección de intrusos (IDS). Un IDS es un programa que
monitorea el tráfico de la red para detectar actividades sospechosas y alerta al administrador apropiado
a las señales de advertencia. Dicho de otra manera, un IDS es un rastreador de paquetes con la capacidad de reconocer
patrones de actividad que indican que se está produciendo un ataque.
Instalación de Snort
El primer paso a la hora de instalar Snort es decidir dónde colocarlo. Figura 10.1
muestra un par de posibles ubicaciones. Snort System # 1 en esta figura es capaz de monitorear el tráfico
hacia o desde Internet en general, mientras que Snort System # 2 puede monitorear el tráfico local. Ambos
tienen la posibilidad de detectar ataques externos contra computadoras locales específicas, pero el Sistema # 1
será sensible a los ataques que están bloqueados por el firewall, mientras que el Sistema # 2 será
sensible a ataques puramente locales. Además, el sistema n. ° 2 requiere un concentrador en lugar de un conmutador
localmente o un interruptor que está programado para hacer eco de todo el tráfico al Snort System # 2; Un interruptor
sin dicha configuración ocultará la mayor parte del tráfico entre las computadoras locales de la
Snort system, volviéndolo inútil.

Página 535
La mayoría de las distribuciones de Linux modernas se envían con Snort, por lo que debería poder instalarlo
de la forma habitual. Una vez instalado, Snort se configura a través de / etc / snort / snort
Archivo .conf . (Algunas distribuciones no proporcionan un archivo con este nombre, pero proporcionan un archivo llamado
[Link] o alguna otra variante. Puede copiar o cambiar el nombre de este archivo y usarlo
como una plantilla que puede modificar). Un archivo [Link] predeterminado puede funcionar aceptablemente, pero
es posible que desee personalizar varias variables, como $ HOME_NET , $ SMTP_SERVERS y
$ HTTP_SERVERS . El primero de ellos especifica las direcciones IP a monitorear. Otros definen
las direcciones IP de determinados tipos de servidores. Los valores predeterminados le dicen a Snort que monitoree todos
Direcciones IP, que pueden estar bien, ya que es posible que desee que Snort observe todo el tráfico en su
red, que es todo lo que normalmente podrá ver.
Algunas distribuciones colocan una serie de archivos de configuración suplementarios de Snort, con
nombres que terminan en .rules , en el directorio / etc / snort . Estos archivos de reglas definen los tipos
de paquetes que Snort debería considerar sospechosos. La mayoría de los protocolos tienen un solo .rules
archivo, como [Link] para paquetes SMTP. Se hace referencia a estos archivos .rules mediante include
Cubo
Sistema de inhalación
#1
Sistema de inhalación
#2
Cortafuegos
Internet
Hub o conmutador
Computadoras locales
1 2 3 4 5 6 7 8 9 10 11 12 13 14

FIGURA 10.1 Se puede colocar un sistema Snort en cualquiera de varios lugares para monitorear
actividad de la red
Tratar con puertos y paquetes
493

Página 536
494
Capítulo 10 ■
Seguridad
directivas en el archivo principal [Link] , así que asegúrese de que su archivo principal [Link] cargue el
reglas apropiadas para su red. Si no ve un archivo .rules para un protocolo que desea
monitor, consulte [Link] . Este sitio puede ayudarlo a localizar e instalar
archivos adicionales de Snort .rules .
Lanzamiento de Snort
Para iniciar Snort, escriba su nombre de comando: snort . El programa se ejecuta y registra su salida en
archivos ubicados en / var / log / snort . Estos archivos de registro registran información sobre paquetes sospechosos.
Debe asegurarse de monitorear estos archivos de registro de manera regular. Para iniciar Snort en un
de forma permanente, puede ejecutarlo desde un script de inicio. De hecho, muchas distribuciones proporcionan
Secuencias de comandos de inicio de SysV o Upstart para iniciar Snort.
Snort no necesita una dirección IP para monitorear el tráfico de la red. Por lo tanto, puede
configurar un sistema Snort dedicado con controladores de red pero sin una IP
dirección y utilícela para controlar el tráfico de la red. Esta configuración hace que
Snort monitor muy resistente a ataques externos, porque un atacante no puede
abordar directamente el sistema. En el lado negativo, debes usar el Snort
propia consola del sistema o un enlace serial RS-232 para monitorear sus actividades.
Comprobación de intrusos mediante Fail2Ban
A veces, un pirata intentará ingresar a una computadora haciendo un inicio de sesión repetido
intentos. El resultado será una serie de mensajes de error en los archivos de registro de la computadora. los
El programa Fail2Ban ( [Link] ) es un servidor que supervisa el registro de su sistema
archivos y, cuando detecta repetidos intentos fallidos de inicio de sesión desde una dirección IP en particular,
modifica las reglas de firewall de iptables de su computadora, las reglas de envoltorios TCP u otra herramienta para
bloquear esa dirección IP. Esta acción niega al posible intruso la oportunidad de hacer
más de unas pocas conjeturas sobre las contraseñas de su sistema.
Fail2Ban utiliza varios archivos de configuración en el árbol de directorios / etc / fail2ban .
El archivo que probablemente modificará es /etc/fail2ban/[Link] . Este archivo incluye
definiciones para muchos servidores comunes que la herramienta puede monitorear. Cada definición comienza
con un nombre entre corchetes, como [ssh] , que supervisa las fallas de inicio de sesión SSH. (Los
los nombres de las secciones son arbitrarios y pueden variar de una distribución a otra.) El [Link]
El archivo comienza con una sección llamada [DEFAULT] , que establece algunos valores predeterminados globales, como
el número de reintentos necesarios para activar una prohibición ( maxretry ), el período de tiempo durante el cual este
se debe intentar el número de reintentos para activar una prohibición (tiempo de búsqueda ), el número de segundos
que un host está prohibido una vez que se cumple la condición de activación ( bantime ), y el método utilizado para
prohibir la computadora infractora ( banaction ). Puede anular cualquiera de estos valores predeterminados para
servidores.
Debe examinar el archivo [Link] para encontrar configuraciones para los servidores que desea
monitor. Por ejemplo, suponga que desea bloquear computadoras que intentan romper su
Servidor SSH. Es posible que desee modificar la sección [ssh] , que se ve así de forma predeterminada
en un sistema Ubuntu:

Página 537
[ssh]
habilitado = verdadero
puerto = ssh
filter = sshd
logpath = /var/log/[Link]
maxretry = 6
La mayoría de estas líneas se explican por sí mismas; esta configuración particular está habilitada,
monitorea el puerto ssh (como se define en / etc / services ), monitorea el / var / log / auth
.log para fallos de inicio de sesión, y se toleran hasta seis fallos antes de que se promulgue una prohibición. los
la línea de filtro se refiere a un archivo en el directorio /etc/fail2ban/filter.d con el
nombre pero con .conf agregado ( [Link] en este ejemplo). Este archivo contiene una serie de
expresiones regulares que describen fallas de inicio de sesión para el servidor en cuestión.
Algunas distribuciones se envían con configuraciones Fail2Ban que pueden requerir más ajustes.
Por ejemplo, el archivo [Link] predeterminado de Gentoo incluye una configuración SSH que es más tosca
que la configuración de Ubuntu:
[ssh-iptables]
habilitado = falso
filter = sshd
acción = iptables [nombre = SSH, puerto = ssh, protocolo = tcp]
sendmail-whois [nombre = SSH, dest=you@[Link],
sender=fail2ban@[Link]]
logpath = /var/log/[Link]
maxretry = 5
Como mínimo, esta configuración debe estar habilitada, las direcciones de correo electrónico deben estar
personalizado, y la ruta de registro debe actualizarse (Gentoo registra las fallas de SSH en / var / log /
mensajes ). Este ejemplo también demuestra una de las características de Fail2Ban: puede enviarle un
alertar al correo electrónico cuando se produce un error de inicio de sesión mediante la acción sendmail - whois . Si no
incluir una acción de notificación por correo electrónico, tendrá que supervisar el archivo de registro Fail2Ban (establecido en
el archivo /etc/fail2ban/[Link] ) si desea saber qué direcciones IP están siendo
restringido por el software.
Es posible que desee examinar detenidamente el sitio web de Fail2Ban, especialmente si necesita habilitar
soporte para servidores no incluidos en la configuración estándar. El sitio incluye una wiki con
la documentación y las configuraciones enviadas por el usuario, algunas de las cuales pueden ser útiles si
necesita desviarse de las configuraciones disponibles en su instalación estándar.
Una vez que todo esté configurado, debe iniciar Fail2Ban. Si lo instaló desde un paquete
proporcionado por su distribución, es probable que venga con un script de inicio SysV o Upstart,
para que pueda utilizar ese script de la forma habitual. Si instaló el software desde el código fuente,
puede iniciar el programa escribiendo fail2ban - el cliente se inicia en un indicador de shell o incluyendo
Tratar con puertos y paquetes
495

Página 538
496
Capítulo 10 ■
Seguridad
ese comando en un script de inicio local. Asegúrese de verificar el archivo de registro Fail2Ban y probar su
operaciones para asegurarse de que funciona de la manera esperada.
EJERCICIO 10.1
Usando Fail2Ban
Este ejercicio demuestra el uso de Fail2Ban para prohibir rápidamente direcciones IP errantes de un
computadora. Este ejercicio depende de la configuración predeterminada de Fail2Ban de su distribución
paquete; es posible que deba realizar cambios que vayan más allá de los descritos aquí para hacer esto
ejercicio de trabajo. Lo he probado tanto en sistemas Ubuntu como Fedora. Necesitará acceso a
dos computadoras para realizar estos pasos; configurarás uno y usarás otro como soporte
para la computadora de un atacante.
Para continuar, siga estos pasos:
1. Inicie sesión en la computadora como root , use su para adquirir privilegios de root o esté preparado para
realice las siguientes acciones usando sudo .
2. Si la computadora aún no ejecuta un servidor SSH, instálelo y configúrelo. (Capítulo 7
describe la configuración SSH.) Alternativamente, puede usar otro protocolo que requiera
autenticación y que Fail2Ban puede monitorear, como POP o IMAP (Capítulo 9).
3. Utilice las herramientas de administración de paquetes de su distribución para instalar Fail2Ban. En la mayoría de los casos,
el nombre del paquete es fail2ban .
4. Cargue el archivo /etc/fail2ban/[Link] en un editor de texto.
5. Busque en el archivo [Link] la cadena ssh . Su archivo predeterminado puede incluir varios
Configuraciones SSH que utilizan diferentes herramientas para prohibir a los abusadores de SSH. En Ubuntu, el [ssh]
la configuración está habilitada por defecto; en Fedora, la configuración [ssh - iptables]
está habilitado de forma predeterminada. Ambos usan iptables para bloquear a los atacantes. Puedes irte cualquiera
configuración sin cambios, aunque establecer maxretry en un valor bajo (como 2 )
simplificar las pruebas. En algunas distribuciones, es posible que deba ajustar otros valores para hacer
la configuración funciona como se esperaba.
6. Inicie o reinicie el servicio Fail2Ban. Por lo general, escribir reinicio /etc/init.d/fail2ban se
hacer este trabajo.
7.
Inicie sesión en su computadora de "ataque", a la que me referiré como ataque . (Me referiré a su sistema
ejecutando el servidor SSH como servidor ). El sistema de ataque puede ejecutar Linux o cualquier otro sistema operativo,
pero debe tener un cliente SSH instalado.
8. Uso de ataque cliente SSH 's, acceda a su cuenta regular en el servidor . Escribe tu contraseña
correctamente y verifique que puede utilizar la computadora.
9. Usando otra ventana o sesión de inicio de sesión en ataque , use su cliente SSH para intentar iniciar sesión
en su cuenta habitual en el servidor , pero esta vez ingresó mal deliberadamente su contraseña.
En una configuración típica, el servidor SSH le dará tres oportunidades para escribir el
contraseña correctamente. Dependiendo de las políticas de registro de su servidor SSH, estos tres
las oportunidades pueden contar como una o tres de las oportunidades de maxretry de Fail2Ban .

Página 539
10. Repita el paso # 9. Según las políticas de registro, es posible que no pueda
conéctese para escribir su contraseña. Si puede conectarse, debería ser baneado una vez que
complete el intento, asumiendo que establece maxretry en 2 .
11. Intente utilizar el inicio de sesión remoto que inició en el paso 8. Debería fallar, ya que el inicio de sesión
es de la misma computadora que inició los intentos fallidos de inicio de sesión; la prohibición de iptables
bloquea todo el tráfico de la computadora atacante al puerto SSH en el servidor (y tal vez para
otros puertos, también).
12. Usando su sesión de consola en el servidor , escriba iptables - L para ver sus iptables
configuración. Debería ver una nueva cadena con el nombre de su configuración de Fail2Ban SSH.
Esta cadena debe incluir una regla para restringir el acceso de los ataques a la computadora.
13. Espere un momento: para ser precisos, espere el número de segundos especificado por la opción bantime
en [Link] en el servidor .
14. Escriba iptables - L nuevamente. El ataque de prohibición de reglas debería faltar, ya que Fail2Ban ha
lo eliminó una vez finalizado el tiempo de prohibición.
15. En caso de ataque , intente una vez más acceder al servidor a través de SSH. Deberías poder iniciar sesión
adentro de nuevo.
En este punto, tiene la opción de dejar Fail2Ban ejecutándose o desinstalarlo. Si lo dejas
en ejecución, es posible que desee ajustar la configuración de maxretry si la cambió. También deberías comprobar
los otros protocolos que están configurados en el archivo [Link] predeterminado ; es posible que desee activar,
desactivar o ajustar algunos de ellos. Recuerde comprobar si el servidor se ejecuta automáticamente
cuando reinicia; es posible que deba ajustar su secuencia de comandos de inicio SysV o su configuración Upstart.

Mantenerse al día con


Temas de seguridad
Debe adquirir el hábito de revisar varios sitios web de seguridad y otros recursos para
aprender sobre nuevas amenazas:
CERT / CC Centro de coordinación del equipo de respuesta ante emergencias informáticas ( http: // www
.[Link] ) aloja información de seguridad general, incluida información sobre las últimas amenazas.
La revisión periódica de este sitio le ayudará a mantenerse al día con los desarrollos de seguridad.
EE. UU. - CERT El equipo de preparación para emergencias informáticas de los Estados Unidos ( http: //[Link]-cert
.gov ) ha asumido algunas de las funciones que anteriormente tenía el CERT / CC. En la práctica, ambos sitios
Vale la pena monitorear.
CIAC The Cyber Incident Advisory Capability ( [Link] ), dirigido por
el Departamento de Energía de EE. UU., Es similar al CERT / CC y al CERT de EE. UU. en muchos aspectos,
Mantenerse actualizado con los problemas de seguridad
497

Página 540
498
Capítulo 10 ■
Seguridad
pero su página web da mayor énfasis a las amenazas actuales y menos cobertura de
prácticas de seguridad.
CVE El sitio Computer Vulnerabilities and Exposures ( [Link] ) es
dedicado a mantener un diccionario de nombres de vulnerabilidades. Esta información puede ser
útil para facilitar la comunicación sobre problemas. El CVE contiene menos en la forma de
descripciones de las vulnerabilidades y explota sus nombres.
SecurityFocus y Bugtraq El sitio web de SecurityFocus ( [Link] )
es otro sitio de seguridad general. Una de sus características importantes es que alberga el Bugtraq
lista de correo ( [Link] ), que puede ser una buena forma de mantener
informado: después de suscribirse, las alertas sobre nuevas amenazas se enviarán a su correo electrónico
cuenta poco después de que se hagan públicos.
Seguridad de Linux El sitio de seguridad de Linux, [Link] , es similar a
CERT / CC, US - CERT, CIAC y SecurityFocus de muchas formas. Sin embargo, la seguridad de Linux
atiende a Linux en particular y, por lo tanto, puede ser más útil para abordar problemas específicos de Linux
o al señalar correcciones específicas de Linux.
Sitios web de las distribuciones La mayoría de las distribuciones de Linux mantienen información de seguridad en sus
Sitios web. Vaya a la página principal de su distribución y busque enlaces relacionados con la seguridad. Estas
Los sitios pueden proporcionar instrucciones de actualización específicas para su distribución en particular.
Páginas web de productos y listas de correo Muchos programas tienen páginas web y listas de correo
listas, que pueden ser buenos recursos para aprender sobre problemas de seguridad relacionados con
estos programas. Por supuesto, examinar regularmente todas las páginas relacionadas con los cientos de
Los programas que componen un sistema Linux pueden ser un trabajo de tiempo completo. Es posible que desee mantener un
esté atento a las páginas web o listas de correo para cualquier programa de servidor de alto perfil que ejecute,
como el servidor web Apache o el servidor de correo sendmail.
Grupos de noticias sobre seguridad Varios grupos de noticias de Usenet están dedicados a la seguridad. De particular
interés son los grupos en la jerarquía de seguridad de comp .
Le recomiendo que investigue la mayoría o todos estos recursos y luego se mantenga al día con algunos
de ellos. Por ejemplo, puede consultar los sitios web de CERT / CC y Linux Security en un
diariamente, suscríbase a la lista de correo de Bugtraq y verifique la seguridad de su distribución
página semanalmente. Mantenerse al día con los desarrollos de seguridad de esta manera lo alertará
a problemas potenciales rápidamente, con un poco de suerte, lo suficientemente rápido para evitar problemas causados por
crackers que podrían intentar explotar las debilidades poco después de ser descubiertas.
Muchos de estos recursos ofrecen fuentes de resumen de sitios (RSS) RDF de sus
contenido. Este protocolo le permite utilizar un programa agregador de noticias,
como AmphetaDesk ( [Link] ) o
BlogBridge ( [Link] ), para rastrear problemas de seguridad y
aprenda sobre ellos lo antes posible.
Si se entera de una vulnerabilidad de seguridad, ¿qué debe hacer? Como regla general,
debe parchear cualquier software vulnerable lo antes posible. La mayoría de los proveedores de Linux lanzan

Página 541
software actualizado rápidamente, por lo que debe vigilar el sitio web de su distribución o utilizar
su sistema de gestión de paquetes (Yum, APT o cualquier otra cosa que utilice su distribución) para
descargar e instalar una actualización. Si no está satisfecho con la velocidad con la que se actualiza
están disponibles, puede desinstalar el paquete de su distribución e instalar un parche
versión del proveedor del paquete, ya sea utilizando un paquete binario (si hay uno disponible) o
instalando desde la fuente (como se describe en el Capítulo 1, “Inicio del sistema y sistema avanzado
Administración " ). En algunos casos, los problemas de seguridad se pueden solucionar realizando cambios
a los archivos de configuración, por lo que es posible que desee hacer esto, si es posible, como una medida temporal (o
incluso de forma permanente, si el cambio no es perjudicial para el funcionamiento de su sistema).
En algunos casos, los problemas de seguridad no le afectan directamente. Pueden relacionarse con servidores
no ejecuta, funciones del servidor que no utiliza o configuraciones que no utiliza. Por ejemplo,
Una clase común de problema de seguridad involucra la capacidad de los usuarios locales para adquirir
privilegios de root alimentando un programa local con datos falsos. Si es el único usuario local de un
computadora, sin embargo, tal vulnerabilidad no es probable que sea un problema. Asegúrate de ser el único
usuario local, sin embargo; algunos servidores brindan a los usuarios remotos la capacidad de ejecutar programas locales (como en
Servidores web con contenido dinámico), por lo que a veces no eres tan invulnerable como parece.
podría parecer a primera vista!
Las distribuciones modernas de Linux con frecuencia incluyen automáticas o semi -
funciones de actualización automática de paquetes. Aunque acepta ciegamente todas las actualizaciones
a veces puede dar lugar a problemas si un nuevo paquete presenta nuevos errores
o rompe una configuración en su sistema, aceptar actualizaciones también arreglará
vulnerabilidades de seguridad conocidas en el software que ejecuta. Como regla general,
comprobar y aplicar actualizaciones de forma diaria o semanal es una buena
idea. Debe estar alerta a la posibilidad de que se rompan funciones en su
computadora, sin embargo. Tenga en cuenta que algunos cambios, especialmente en el kernel,
puede causar problemas que no se harán evidentes hasta que reinicie el
computadora.

Resumen
Linux proporciona un sistema de autenticación e inicio de sesión flexible, PAM. Una configuración predeterminada
normalmente permite que su computadora almacene información de la cuenta, incluidos los nombres de usuario y
contraseñas utilizadas para la autenticación, localmente. Puede modificar su configuración de PAM para
agregar funciones que no sean de autenticación a un proceso de inicio de sesión (como restringir los inicios de sesión por tiempo o
ubicación) o para agregar o cambiar el mecanismo de autenticación predeterminado (como usar un LDAP
servidor para almacenar la información de la cuenta). Esta capacidad se puede utilizar para crear un
entorno de red, para ajustar los procedimientos de inicio de sesión o para mejorar la seguridad.
Una computadora que ejecuta servidores a menudo necesita limitar quién puede acceder a esos servidores. Esta
la tarea a menudo se realiza mediante reglas de firewall de iptables , como se describe en el Capítulo 7; sin embargo, otros
También se pueden emplear herramientas para este fin. Un ejemplo son los envoltorios TCP, que pueden
Resumen
499
Página 542
500
Capítulo 10 ■
Seguridad
Bloquear el acceso a servidores específicos según la dirección IP, el nombre de host o características similares de
el cliente. Estos bloques funcionan a un nivel más alto que los bloques de iptables , que tiene tanto
ventajas y desventajas: algunos bloques pueden funcionar en funciones que son difíciles o
imposible de administrar a través de iptables (como restricciones basadas en el nombre de usuario en el
cliente), pero TCP Wrappers sólo funciona para programas que están diseñados para usarlo o que se ejecutan
a través de un super servidor, como inetd .
Debe pensar en la seguridad como un proceso continuo, más que como una característica
configurado y olvidado. Las tareas de seguridad que debe realizar con regularidad incluyen
escanear sus computadoras en busca de servidores innecesarios, monitorear el tráfico de su red para
intentos de acceso no autorizados y mantenerse al día con las últimas noticias de seguridad. Aquellos
que quieren irrumpir en sus computadoras por los datos que contienen, para usarlos como bases
para nuevos ataques, o simplemente para dar un paseo virtual, actualizan constantemente sus herramientas
y métodos. Debe mantener una vigilancia constante para asegurarse de que sus computadoras permanezcan
sin concesiones.

Examen esencial
Describa cómo PAM permite un sistema de autenticación más flexible. Programas individuales
que deben autenticar a los usuarios usan PAM para hacerlo, lo que desenreda estos programas de la
detalles de autenticación. Por lo tanto, si los detalles de autenticación deben cambiarse para una computadora,
puede modificar la configuración de PAM sin realizar cambios en programas individuales.
Dependiendo de la configuración de PAM, es posible que pueda cambiar solo un archivo de configuración
para alterar la forma en que muchos servicios autentican a los usuarios.
Resuma los archivos de configuración importantes de PAM. PAM usa un archivo de configuración, / etc /
[Link] o (más comúnmente) varios archivos en el directorio /etc/pam.d . En este último caso,
la mayoría de los archivos configuran servidores u otras herramientas de inicio de sesión con nombres similares, como gdm para
el servidor de inicio de sesión de GDM GUI. Algunos archivos en /etc/pam.d , sin embargo, pueden ser referidos por otros
archivos. Estos archivos incluidos definen pilas que son comunes a varios servicios.
Distinga entre PAM y NSS. Los módulos de autenticación conectables (PAM)
El sistema es responsable de autenticar a los usuarios, manejando el acceso sin autenticación.
restricciones, administración de sesiones de inicio de sesión y cambio de contraseñas. El cambio de servicio de nombres
(NSS), por el contrario, gestiona la relación entre los ID de usuario (UID) y los nombres de usuario,
realiza un seguimiento de los directorios de inicio de los usuarios y realiza otras cuentas menos relacionadas con la seguridad
Tareas. Ambos sistemas deben usar la misma base de datos de cuentas para que las cuentas de usuario funcionen
correctamente.
Explique el propósito de los envoltorios TCP. Los envoltorios TCP existen para proteger los servidores de
sitios y usuarios maliciosos no autorizados o conocidos. Puede restringir el acceso según la dirección IP,
nombre de host o información relacionada (incluso incluyendo nombres de usuario en algunos casos). Mediante la colocación de
estas restricciones en el paquete TCP Wrappers, el código para servidores simples se puede mantener
sencillo; sin embargo, el servidor debe vincularse a la biblioteca TCP Wrappers, libwrap o al
el servidor debe ejecutarse a través de un super servidor, como inetd .

Página 543
Describa por qué son importantes los análisis de puertos abiertos. Las computadoras son sistemas dinámicos;
sus configuraciones pueden cambiar debido a las actualizaciones de software de rutina, debido a
cambios, o incluso debido a cambios accidentales. Detectar cambios que puedan suponer seguridad
Por tanto, las amenazas son importantes. En el mundo de Linux, una de las mayores amenazas a la seguridad es un
sistema que ejecuta un servidor que no conoce, ya que es difícil de proteger contra amenazas
planteado por un servidor desconocido. Por lo tanto, la exploración periódica de puertos abiertos es una
tarea de administración del sistema.
Resuma algunos métodos para detectar intentos de intrusión. Los intrusos pueden ser detectados por
monitorear la actividad de la red. Un método para hacer esto es monitorear la red de bajo nivel
paquetes usando una herramienta como Snort, que puede buscar paquetes de red sospechosos y
avisarle cuando los encuentre. Otra herramienta es Fail2Ban, que puede comprobar sus archivos de registro para
errores repetidos de inicio de sesión y luego bloquear automáticamente la dirección IP infractora o notificarle
del problema.
Resuma los métodos para mantenerse al día con los asuntos de seguridad. Varias organizaciones,
tales como CERT / CC, CIAC, Security Focus y Linux Security, ejecute sitios web o correo
listas dedicadas a cuestiones de seguridad. Puede consultar estos sitios web de vez en cuando, suscribirse
a sus listas de correo, o utilice fuentes RSS para monitorear los últimos avances en seguridad.
Los sitios Web de distribuciones y productos individuales, así como los grupos de noticias de Usenet, también pueden
Ser fuentes valiosas de información de seguridad.
Examen esencial
501

Página 544
502
Capítulo 10 ■
Seguridad

Preguntas de revisión
1. Utiliza un servidor LDAP para la autenticación y desea asegurarse de que los usuarios
directorios de inicio locales cada vez que inician sesión en una computadora. ¿Qué línea agregarías a tu
¿Configuración de PAM para garantizar que se creen directorios de inicio, si es necesario?
A. requisito de cuenta pam_securetty.so umask = 0022
B. sesión requerida pam_unix.so skel = / etc / skel
C. auth suficiente pam_deny.so skel = / etc / skel
D. sesión requerida pam_mkhomedir.so skel = / etc / skel umask = 0022
2. ¿Cuál es el propósito del módulo pam_cracklib.so?
A. Identifica a los crackers conocidos por sus direcciones IP como parte de una pila de cuentas.
B. Prueba la fuerza de una contraseña como parte de una pila de contraseñas.
C. Presenta dichos humorísticos a los usuarios como parte de una pila de sesiones.
D. Verifica que la cuenta de un usuario no se haya descifrado como parte de una pila de autenticación.
3. El archivo /etc/pam.d/login incluye la siguiente pila de autenticación. Qué autenticación
¿Qué sistema utiliza la herramienta de inicio de sesión?
auth requiere pam_securetty.so
auth incluye inicio de sesión del sistema
A. Cuentas locales estándar de Unix / Linux
B. Un servidor LDAP
C. Un servidor Winbind
D. La respuesta correcta no se puede determinar a partir de la información proporcionada.
4. ¿Dónde se almacenan normalmente las contraseñas de usuario en una computadora Linux configurada para usar la sombra?
passwords y pam_unix.so como único método de autenticación?
A. / etc / shadow
B. / var / shadow - pw
C. /var/accounts/shadow/[Link]
D. / etc / passwd
5. ¿Qué característica está presente en cada línea sin comentarios de /etc/[Link] que no está presente en
los archivos en el directorio /etc/pam.d?
A. Un nombre de grupo de gestión
B. Un nombre de servicio
C. Una bandera de control
D. Un nombre de archivo de módulo

Página 545
Preguntas de revisión
503
6. ¿Qué archivo editaría para asegurarse de que Linux pueda asignar nombres de usuario a valores UID cuando
reconfigurar Linux para usar un controlador de dominio de Windows para la autenticación de usuarios?
A. /etc/[Link]
B. / etc / passwd
C. /etc/pam.d/winbind
D. / etc / winbind / conf
7.
Su servidor de inicio de sesión utiliza PAM y desea limitar el acceso de los usuarios a los recursos del sistema.
¿Qué archivo de configuración necesitará editar?
A. /etc/[Link]
B. /etc/pam/[Link]
C. /etc/security/[Link]
D. /etc/security/pam/[Link]
8. ¿Cuál es el propósito del grupo de administración de sesión PAM?
A. Configura el entorno para una sesión de inicio de sesión y se limpia cuando el usuario cierra la sesión.
B. Realiza la autenticación basada en un nombre de usuario y contraseña o quizás en algún otro
criterios, como una exploración biométrica.
C. Valida o deniega un inicio de sesión basado en datos que no son de autenticación, como una dirección IP.
D. Cambia la contraseña cuando el usuario solicita un cambio de contraseña.
9. ¿Qué se puede decir sobre cómo se asignan los nombres de usuario a las ID de usuario, según lo siguiente?
líneas del archivo de configuración NSS?
passwd: compat ldap
sombra: compat ldap
grupo: compat ldap
A. LDAP se llama en modo de compatibilidad.
B. LDAP se usa después de los archivos locales.
C. La computadora solo usa cuentas LDAP.
D. No se puede concluir nada solo con estas líneas.
10. Aparece una combinación de servidor / computadora en [Link] y [Link]. Cual es el
resultado de esta configuración cuando se ejecuta TCP Wrappers?
A. TCP Wrappers se niega a ejecutarse y registra un error en / var / log / messages.
B. Se busca al administrador del sistema para decidir si permite el acceso.
C. [Link] tiene prioridad; al cliente se le niega el acceso al servidor.
D. [Link] tiene prioridad; el cliente tiene acceso al servidor.

Página 546
504
Capítulo 10 ■
Seguridad
11. ¿Qué utilidad llama en /etc/[Link] para asegurarse de que un servidor se ejecute a través de inetd usa
Envoltorios TCP?
A. tcpd
B. libwrap
C. envuelto
D. tcpwrap
12. ¿Cuál es la mejor manera de mantenerse al tanto de los avances en materia de seguridad?
A. Lea el sitio web del CERT / CC con regularidad.
B. Suscríbase y lea la lista de correo de Bugtraq.
C. Revise la página web de seguridad de su distribución de manera regular.
D. Todo lo anterior.
13. ¿Cuál de las siguientes herramientas es más adecuada para monitorear la actividad dirigida a múltiples
¿ordenadores?
A. netstat
B. iptables
C. resoplido
D. Fail2Ban
14. ¿Cómo puede el programa telnet ser una herramienta de seguridad útil? (Seleccione todas las que correspondan.)
R. Puede usarlo para monitorear paquetes de red dirigidos a una computadora específica.
B. Puede usarlo para verificar la presencia de un servidor en un puerto TCP específico en un
computadora.
C. Puede emitir comandos específicos del protocolo para ver cómo responde un servidor.
D. Puede usarlo para buscar servidores TCP y UDP en las computadoras de una red completa.
15. Un Snort IDS se encuentra en una pequeña red detrás de una traducción de direcciones de red (NAT)
enrutador, que está configurado para no pasar conexiones entrantes a la red protegida. Esta
La red usa un concentrador y tiene servidores Samba, NFS y SSH ejecutándose en él. Un servidor web
El sistema está ubicado fuera de la red protegida, en la misma red exterior que el NAT.
enrutador. ¿Cuál de las siguientes opciones describe los tipos de ataques maliciosos que Snort IDS podría
¿detectar?
A. Puede detectar ataques que se originan en la red local y que están dirigidos a
las interfaces de bucle invertido de las máquinas originarias.
B. Puede detectar ataques que se originan en Internet y que están dirigidos a la Web.
servidor que se ejecuta junto con el enrutador NAT.
[Link] detectar ataques que se originan en la red local y que se dirigen a otros
computadoras en esa red, al servidor Web, oa Internet en general.
D. Puede detectar ataques que se originan en Internet y que están dirigidos al local
Servidores Samba, NFS o SSH.

Página 547
Preguntas de revisión
505
16. ¿Cuál de los siguientes programas utiliza llamadas al sistema local para localizar puertos locales que
actualmente abierto?
A. netstat
B. nmap
C. nc
D. nessus
17. Ha escaneado su red local y ha descubierto que su servidor Web tiene una
abra el puerto SSH. Este puerto se usa solo desde la red local para actualizar la Web
archivos del servidor, pero es accesible desde Internet en general. ¿Cuál de las siguientes medidas?
podría tomar para mejorar la seguridad mientras mantiene la utilidad del servidor SSH en este
¿computadora? (Seleccione todas las que correspondan.)
A. Cree reglas de iptables en la computadora del servidor web para limitar las direcciones IP que pueden
conéctese al puerto SSH.
B. Reconfigure la red para colocar el servidor SSH fuera de un firewall protector,
configurar ese firewall para bloquear todo el tráfico SSH.
C. Reconfigure los scripts de inicio SysV o Upstart de la computadora para mantener el servidor SSH
programa se inicie innecesariamente en la computadora del servidor Web.
D. Cree reglas de iptables en el enrutador de la red para limitar las direcciones IP que pueden
conéctese al puerto SSH.
18. ¿Cuál de las siguientes es una herramienta diseñada para monitorear y restringir el acceso a un solo
¿computadora?
A. resoplido
B. Fail2Ban
C. Telnet
D. VINCULAR
19. ¿Qué hay de malo en la siguiente entrada /etc/[Link]?
imap stream tcp nowait root / usr / sbin / tcpd
A. Falta una llamada a TCP Wrappers.
B. Falta un nombre de protocolo.
C. Falta el nombre del servidor que se iniciará.
D. No hay nada de malo en esta entrada.
20. ¿Qué organización rastrea las vulnerabilidades conocidas en los sistemas operativos?
A. FSF
B. CERT
C. OSI
D. SourceForge

Página 548
506
Capítulo 10 ■
Seguridad

Respuestas a las preguntas de repaso


1. D. El módulo pam_mkhomedir.so crea un directorio de inicio para el usuario si no lo hace
ya existe, y la opción D muestra una configuración válida para su uso, por lo que esta opción es
correcto. El módulo pam_securetty.so se utiliza normalmente para evitar que los inicios de sesión
cualquier cosa menos el dispositivo de la consola, por lo que la opción A es incorrecta; pam_unix.so es el módulo para
manejar cuentas de Linux locales estándar, por lo que la opción B es incorrecta; y pam_deny.so siempre
falla, dando una opción predeterminada - falla para pilas que de otra manera podrían producir ambigüedades o
resultados satisfactorios, por lo que la opción C es incorrecta.
2. B. El módulo pam_cracklib.so hace lo que especifica la opción B; está destinado a obligar a los usuarios
para ingresar buenas contraseñas cuando cambian sus contraseñas. La opción A podría ser una
descripción imperfecta del programa Fail2Ban, pero este programa no es parte de PAM, mucho
menos el módulo pam_cracklib.so. Se pueden generar y mostrar dichos humorísticos
en el momento del inicio de sesión por el programa fortune, pero no por el módulo pam_cracklib.so, por lo que
la opción C es incorrecta. Aunque una herramienta para hacer lo que describe la opción D sería muy útil,
también sería muy difícil de escribir, y esta opción ciertamente no describe
pam_cracklib.so.
3. D. La pila de autenticación especificada llama a pam_securetty.so, que puede restringir el acceso según
en el terminal utilizado, e incluye el contenido del sistema - archivo de inicio de sesión. Por tanto, que
El sistema (o sistemas) de autenticación que se utiliza depende del contenido de ese archivo, que el
La pregunta no aparece, lo que hace que la opción D sea correcta. Cualquiera, todas o ninguna de las opciones A, B y
C podría ser correcto.
4. A. El archivo / etc / shadow contiene contraseñas en sistemas configurados para usar contraseñas ocultas
con pam_unix.so. Las opciones B y C describen archivos ficticios. El archivo / etc / passwd es
real, y contiene información de la cuenta pero no contraseñas reales cuando las contraseñas ocultas
están habilitados (como están por defecto con todas las distribuciones modernas de Linux).
5. B. El archivo /etc/[Link] puede tomar el lugar de todos los archivos en /etc/pam.d; pero para hacerlo,
necesita una forma de asociar cada pila con un servicio en particular, por lo que cada archivo /etc/[Link]
la entrada comienza con un nombre de servicio, como especifica la opción B. Las opciones A, C y D describen
características que están presentes en las entradas para /etc/[Link] y los archivos en /etc/pam.d.
(Las opciones pasadas al módulo también pueden aparecer en ambos tipos de archivo).
6. A. El conmutador de servicio de nombres (NSS) es responsable de asignar los nombres de usuario al ID de usuario (UID)
valores, y el archivo de configuración de NSS es /etc/[Link]. Por lo tanto, editaría este archivo
(haciendo que la opción A sea correcta) para garantizar que los nombres de usuario y los valores de UID estén correctamente vinculados
cuando cambia el sistema de autenticación. Normalmente, esta asignación aparece en / etc /
passwd, pero dado que la pregunta establece explícitamente que la computadora ha sido reconfigurada
para utilizar un controlador de dominio de Windows, la opción B es incorrecta. Los archivos en las opciones C y D
Ambos son ficticios, aunque el nombre del servicio que se autentica contra Windows
controladores de dominio es Winbind.

Página 549
7.
C . El archivo /etc/security/[Link] contiene los ajustes de configuración que permitirán
que limite el acceso de los usuarios, haciendo que la opción C sea correcta. Las opciones A, B y D no dan la
ruta correcta a este archivo.
8. A. La opción A describe correctamente la función del grupo de administración de sesiones y también
correcto. Las opciones B, C y D describen las funciones de autenticación, cuenta y contraseña
grupos de gestión, respectivamente, y también las respuestas incorrectas.
9. B. El orden de las entradas en el archivo de configuración de NSS (/etc/[Link]) determina la
orden en el que se realizan las asignaciones de nombre de usuario / UID. Dado que la entrada de compatibilidad normalmente
se refiere a bases de datos de cuentas locales y ldap se refiere a un servidor LDAP, el efecto es que el
La base de datos de la cuenta local se consultará primero, seguida de un servidor LDAP, haciendo que la opción B
correcto. Esta configuración no establece un "modo de compatibilidad" para el acceso LDAP, al contrario
a la opción A. Si la opción C fuera correcta, no habría entradas compatibles en ninguna de las líneas;
ldap se usaría solo. Debido a que la opción B es correcta, la opción D no puede ser correcta.
10. D. TCP Wrappers utiliza esta función para permitirle anular las denegaciones generales agregando más
permisos de acceso explícitos específicos a [Link], como cuando se establece una política de denegación predeterminada
(TODOS: TODOS) en [Link].
11. A. Configura un super servidor para llamar a tcpd, y le pasa a ese programa el nombre del
servidor real y sus argumentos para utilizar TCP Wrappers a través de un super servidor. Por tanto, la opción A es
correcto. Algunos servidores pueden utilizar TCP Wrappers de forma más directa, a través de la biblioteca libwrap; sin embargo,
libwrap no está referenciado en /etc/[Link], y no puede estar seguro de que un servidor dado
lo usa, haciendo que la opción B sea incorrecta. Las opciones C y D son programas ficticios y, por lo tanto,
son incorrectos.
12. D. Para obtener la mejor vista posible de los desarrollos de seguridad, debe consultar tantos
fuentes como sea posible. El sitio web del CERT / CC, la lista de correo de Bugtraq y su distribución
página de seguridad son tres buenas fuentes de información (pero de ninguna manera las únicas tres
disponible). Consultar solo una de estas fuentes puede no ser adecuado porque un
un tema que es importante para usted puede pasar desapercibido en una sola fuente.
13. C. Snort puede monitorear la actividad de la red dirigida a múltiples computadoras, dada la
infraestructura de red adecuada, proporcionando así un sistema de alerta temprana para la red
como un todo. La utilidad netstat puede buscar puertos abiertos en una sola computadora, pero
no puede monitorear los ataques a múltiples sistemas. La utilidad iptables implementa Linux
reglas de firewall, pero no puede, por sí solo, monitorear la actividad de una red completa. El Fail2Ban
El programa monitorea los archivos de registro de un servidor en busca de evidencia de intentos fallidos de inicio de sesión y puede bloquear
el sistema atacante usando iptables u otras restricciones de acceso, pero esto no monitoreará un
toda la red para la actividad.
Respuestas a las preguntas de repaso
507

Página 550
508
Capítulo 10 ■
Seguridad
14. B, C. Telnet fue diseñado como un simple protocolo de inicio de sesión remoto en modo texto, pero el telnet
El cliente puede conectarse a cualquier puerto TCP y, por lo tanto, puede usarse para verificar servidores TCP, como opción.
Sugiere B. Si el protocolo admite comandos en modo texto, también puede usar telnet para
emita estos comandos manualmente, como sugiere la opción C. El programa telnet no puede monitorear
paquetes de red de la forma que sugiere la opción A; esa tarea se maneja mejor con un paquete
sniffer como Snort. Dado que Telnet utiliza TCP en lugar de UDP, la opción D es incorrecta.
(Usar telnet para escanear más de unos pocos puertos también sería bastante tedioso).
15. C. Dada la ubicación del sistema Snort, puede monitorear el tráfico en la red local.
Dado que esta red está bien protegida por el enrutador NAT, los ataques externos contra el local
Es poco probable que los servidores Samba, NFS y SSH lleguen a la red protegida, por lo que
los ataques no serán detectados. Los tipos de ataques locales descritos en la opción C podrían ser
detectado, sin embargo. Los ataques locales contra interfaces loopback no llegarán a la red
cables y, por lo tanto, tampoco se detectarán.
16. A. Los puertos abiertos locales se pueden encontrar con el programa netstat, que usa el sistema local
llamadas para localizar los puertos que están abiertos actualmente. Los programas nmap y nessus pueden localizar
Abra puertos en la computadora local o en otras computadoras enviando sondas de red a
todos o un subconjunto de los puertos del equipo de destino. nc es una herramienta que se puede utilizar para crear
scripts personalizados para realizar análisis de seguridad de la red.
17. A, D. Las reglas de iptables descritas en las opciones A y D pueden limitar quién puede acceder
el servidor SSH. Si se implementa correctamente, cualquiera de los enfoques puede ser una medida de seguridad útil.
(Idealmente, puede implementar ambos para mayor seguridad). La opción B es lo opuesto a un útil
medida de seguridad; colocar el sistema dentro de un cortafuegos puede protegerlo del exterior no deseado
acceso, pero la opción B limitará el acceso a la computadora de los usuarios legítimos en el interior
red. La opción C apagará completamente el servidor SSH. Aunque esto podría ser un
medida de seguridad útil, hará que sea difícil para los usuarios legítimos actualizar el servidor
Sitio web, que la pregunta establece explícitamente debe seguir siendo posible.
18. B. Fail2Ban es una herramienta que está diseñada para monitorear archivos de registro en busca de evidencia de intentos de intrusión
y restringir el acceso a una sola computadora si se encuentra dicha evidencia, por lo que la opción B es correcta. Bufido
es capaz de monitorear la actividad de la red dirigida a múltiples computadoras; su propósito es más amplio
de lo que se indica en la pregunta, por lo que la opción A es incorrecta. Telnet es un protocolo de inicio de sesión remoto, por lo que
la opción C es incorrecta. BIND se utiliza para proporcionar resolución de nombres, por lo que la opción D es incorrecta.
19. C. En la entrada especificada falta el nombre del servidor que se debe iniciar; cuando
tcpd se utiliza, como en este ejemplo, el nombre del servidor final debe aparecer después de la llamada
a tcpd. Por tanto, la opción C es correcta. El binario tcpd es TCP Wrappers, por lo que la opción A es
incorrecto. (El uso de TCP Wrappers a través de inetd también es opcional, por lo que incluso si hubiera faltado,
la opción A sería incorrecta.) El nombre del protocolo aparece en la primera columna de la entrada,
y está presente (imap), por lo que la opción B es incorrecta. Como la opción C era correcta, la opción D
no puede ser correcto.

Página 551
20. B. El Equipo de Respuesta a Emergencias Informáticas (CERT) rastrea las vulnerabilidades conocidas, por lo que
la opción B es correcta. La Free Software Foundation (FSF), la Open Source Initiative (OSI),
y el sitio web de SourceForge contribuyen enormemente al sistema operativo Linux, pero son
no se centra en las vulnerabilidades dentro del sistema operativo, por lo que las opciones A, C y D son todas
incorrecto.
Respuestas a las preguntas de repaso
509
Página 552

Página 553

Sistema
Solución de problemas I:
Arranque y kernel
Problemas
EL SIGUIENTE PROFESIONAL DE LINUX
LOS OBJETIVOS DEL INSTITUTO ESTÁN CUBIERTOS EN
ESTE CAPÍTULO:
213.1 Identificación de etapas de arranque y resolución de problemas
cargadores de arranque (peso: 4)
213.2 Solución de problemas generales (peso: 5)

Capítulo

11
Página 554
Como todos los sistemas operativos modernos, Linux es complejo y
complejidad significa que muchas cosas pueden salir mal. Por lo tanto,
es imperativo que sepa cómo rastrear las causas de
problemas y resolverlos. Este capítulo y el siguiente cubren la solución de problemas. Esta
El capítulo cubre temas de bajo nivel relacionados con el arranque del sistema, el kernel y el hardware.
El siguiente capítulo trata sobre la resolución de problemas relacionados con los recursos del sistema y el usuario.
ambiente.
Sus mejores herramientas para solucionar problemas son la atención a los detalles, la capacidad de razonar
un problema y un conocimiento básico de los sistemas involucrados en el problema. A menudo es útil
aplicar principios científicos básicos a la resolución de problemas. Por lo tanto, este capítulo comienza con
una descripción de algunas técnicas generales de resolución de problemas que pueden funcionar en una amplia variedad
de problemas. Dado que muchos problemas requieren el conocimiento de sistemas específicos, este capítulo
procede a cubrir algunos de ellos, comenzando con problemas relacionados con el cargador de arranque
y disco RAM inicial. La última parte de este capítulo describe una variedad de
problemas, principalmente relacionados con el kernel y el hardware.

Abordar un problema
La resolución de problemas es básicamente la resolución de problemas y las habilidades de resolución de problemas que aprende en
Los contextos distintos de las computadoras pueden ser útiles para localizar y resolver dificultades informáticas.
Varias estrategias de propósito general que a menudo son útiles incluyen:
Generar y probar hipótesis A menudo es útil pensar en los problemas de la computadora
científicamente. Los científicos generan hipótesis sobre el mundo e idean experimentos para probar
ellos. Solo así, puede generar una hipótesis sobre la causa de un problema y luego probarla.
Por ejemplo, puede sospechar que un servidor se está quedando sin memoria. Si es así, puede usar
herramientas como free , ps y top para monitorear el uso de la memoria o agregar espacio de intercambio al sistema.
A veces, una prueba también sirve como una posible solución, como reemplazar un cable defectuoso o tal vez
incluso aumentando el espacio de intercambio. En otras ocasiones, es posible que desee dar algún otro paso como
solución permanente, como agregar RAM a la computadora.
Reducir el problema A veces puede reducir la gama de posibles causas en un
forma sistemática. Idealmente, si puede eliminar la mitad de las posibles causas, entonces la mitad de esas
que quedan, etc., encontrará la solución con bastante rapidez. En la práctica, por supuesto, este
el enfoque podría no funcionar; Tiende a funcionar mejor cuando las posibles causas tienen alguna clara

Página 555
rango definido, como una computadora desconocida pero que se está comportando mal en una red;
aísle grupos de computadoras hasta que encuentre la que está causando problemas.
Estudie la documentación si sabe que el problema está en una pieza de hardware en particular
o software, consulte su documentación. Quizás se menciona el problema, o quizás
ha configurado mal algo y puede aprenderlo leyendo la documentación.
Comparar con otro sistema Si es posible, compare el comportamiento problemático con un
sistema. Esto puede no ser posible si está configurando una herramienta por primera vez, pero si está
tener problemas con una de varias computadoras similares, comparar archivos de configuración, registrar
entradas, etc., pueden ser una buena forma de identificar el origen del problema.
Utilice herramientas de diagnóstico Muchos sistemas informáticos proporcionan herramientas de diagnóstico, como paquetes
rastreadores para el tráfico de red y fsck para problemas del sistema de archivos. El uso de estas herramientas puede ayudarte
diagnosticar problemas; Sin embargo, debe conocer la existencia de estas herramientas y conocer
cómo usarlos. Algunos programas tienen opciones de tiempo de ejecución para aumentar la verbosidad de sus
salida o entradas de archivos de registro. Usar esta opción puede resultar muy útil.
Utilice un sistema de emergencia Incluso si su computadora no arranca, es posible que pueda arrancar el
Computadora con sistema de emergencia. Los discos de instalación de las distribuciones de Linux a menudo sirven para esto.
propósito, o puede utilizar una herramienta como el CD System Rescue ( http: //[Link]
.org ) o PartedMagic ( [Link] ) para iniciar la computadora lo suficiente como para verificar
sistemas de archivos, examinar y cambiar archivos de configuración, etc.
Consulte a las autoridades Si conoce a alguien con más habilidad que usted en un área, consulte
esa persona. Si no conoce a esa persona, puede probar con un libro o una búsqueda en línea de
información. Escribir palabras clave relevantes en un motor de búsqueda web probablemente resulte útil
resultados. Grupos de noticias de Usenet, foros web, grupos de discusión de Internet Relay Chat (IRC) y
otros recursos en línea también pueden ser valiosas fuentes de información.
Estas acciones pueden ayudarlo a resolver muchos problemas. Como regla general, pensar
metódicamente y saber tanto como sea posible sobre el subsistema en problemas probablemente sea
las mejores formas de solucionar el problema. Por lo tanto, debe respirar hondo, contener el
urgencia de arrojar la computadora recalcitrante del techo del rascacielos más cercano, y leer como
tanto como puedas. Si es necesario, reserve una hora o dos solo para leer, expandiendo así su
base de conocimientos (y tal vez calmar sus nervios).

Solución de problemas de arranque


Una de las clases de problemas más preocupantes son los problemas de arranque. Si su computadora no
arranque, le resultará difícil hacer algo con él. (Aquí es donde el consejo de usar un
disco de emergencia puede ser muy importante). Capítulo 1, “Inicio del sistema y sistema avanzado
Management ”, describe los conceptos básicos de la configuración y el uso del cargador de arranque, por lo que puede
desea revisar ese capítulo antes de continuar. La solución de problemas del proceso de arranque incluye
Solución de problemas de arranque
513

Página 556
514
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
lidiar con la inicialización del hardware, identificar su cargador de arranque, arreglar el cargador de arranque
problemas, solución de problemas con el disco RAM inicial y solución de problemas que ocurren pronto
después de que el kernel de Linux se haya apoderado de la computadora.
Inicializando hardware
Antes de que el cargador de arranque comience a funcionar, se debe inicializar cierto hardware. Esta
El proceso comienza con el firmware de la computadora: el sistema básico de entrada / salida (BIOS),
la Interfaz de firmware extensible (EFI) u otro código que esté integrado en el
tarjeta madre. Normalmente, el firmware incluye opciones para habilitar o deshabilitar el hardware.
dispositivos integrados en la placa base. También puede incluir opciones que pueden afectar cómo
Los recursos se asignan a dispositivos específicos, por ejemplo, cómo se asignan las interrupciones a
diferentes dispositivos.
Si las opciones de firmware se configuran incorrectamente, el resultado puede ser un rendimiento deficiente, poco confiable
funcionamiento, la imposibilidad de utilizar algunos dispositivos de hardware o una variedad de otros problemas. Si
sospecha de estos problemas, es posible que deba reiniciar y, en un punto crítico del arranque
proceso (antes de que aparezca el cargador de arranque), presione una tecla especial, como Eliminar o F10. Un
El mensaje en pantalla puede indicarle qué presionar para ingresar a la utilidad de configuración, pero este mensaje puede
aparecen y desaparecen tan rápido que no podrás leerlo. Consulte su computadora o
la documentación de la placa base si necesita ayuda.
Una vez que esté en la utilidad de configuración del firmware, debería poder ubicar varios
Opciones de desempeño. La mayoría de las utilidades incluyen una opción para restablecer todas las opciones a los valores
predeterminados.
valores. Este puede ser un buen lugar para comenzar. También puede buscar opciones relacionadas con
subsistemas específicos. Si tiene problemas con el disco, por ejemplo, puede intentar cambiar
opciones relacionadas con el controlador de disco. A veces, los problemas generales de confiabilidad se pueden solucionar
ajustando las funciones de la CPU o la memoria, pero los detalles son tan específicos del sistema que son más precisos
es imposible proporcionar asesoramiento. Consultar a las autoridades en línea, incluidos foros web y
La línea de ayuda del fabricante puede ser útil si tiene este tipo de problemas.
Más allá del firmware, el kernel realiza una inicialización de hardware adicional como
busca dispositivos específicos. Algunos controladores de hardware están integrados en el archivo principal del kernel,
pero otros se cargan como módulos. A veces es necesario pasar opciones al kernel o
a los módulos para cambiar la forma en que el kernel busca o inicializa el hardware. Este tema es
cubierto en el Capítulo 1 y el Capítulo 2, “Configuración del kernel de Linux. "
Identificación de su cargador de arranque
El primer paso para resolver los problemas del cargador de arranque es identificar su cargador de arranque. Varios
Los cargadores de arranque para las plataformas x 86 y x 86-64 son comunes en el mundo Linux:
GRUB Legacy The Grand Unified Boot Loader (GRUB; [Link]
grub / ) fue común desde poco después de 2000 hasta aproximadamente 2010. Puede directamente
arranque Linux, FreeBSD, Solaris y varios otros núcleos de SO en computadoras basadas en BIOS; y
mediante el uso de un cargador de cadena, puede arrancar DOS, Windows y la mayoría de los demás sistemas operativos. los
Se ha añadido la palabra Legacy a su nombre para distinguirlo de su sucesor.

Página 557
GRUB 2 Este cargador de arranque es el sucesor de GRUB Legacy ( [Link]
software / grub / ). Iniciado en 2008, algunas distribuciones comenzaron a adoptarlo como arranque predeterminado.
cargador en 2009 y 2010, por lo que se ha vuelto bastante común, aunque no ha
sustituyó a GRUB Legacy en el momento de la publicación. Puede funcionar tanto con BIOS como con EFI.
BURG The Brand - nuevo Universal LoadeR de GRUB (BURG; [Link]
burg ) es una variante de GRUB 2 que enfatiza temas gráficos en el menú de arranque. Comparte
la mayoría de las funciones de GRUB 2, incluida la compatibilidad con los sistemas BIOS y EFI.
LILO El cargador de Linux (LILO; [Link] ) fue el más
cargador de arranque común de Linux antes de 2000. Es más primitivo que GRUB Legacy, que
puede ser tanto un positivo como un negativo. Puede arrancar kernels de Linux o, a través de una cadena, cargar
mecanismo, la mayoría de los demás sistemas operativos, en equipos basados en BIOS.
ELILO Este cargador de arranque, basado en [Link] , es un
Cargador de arranque similar a LILO para computadoras basadas en EFI.
rEFIt Este cargador de arranque, basado en [Link] , es un
cargador en equipos que utilizan EFI en lugar del firmware BIOS anterior. En la práctica, rEFIt
generalmente está emparejado con GRUB 2 o algún otro cargador de arranque. Se usa más comúnmente en
Computadoras con arranque dual Linux y Mac OS X.
loadlin Puede arrancar Linux desde DOS utilizando este inusual cargador de arranque, que puede
obtener de [Link] . En años pasados, Loadlin era un
forma popular de lanzar instaladores de Linux, pero ha caído en la oscuridad en los últimos años.
Syslinux Este cargador de arranque es en realidad una familia de cargadores de arranque relacionados destinados a
tareas especializadas, como arrancar Linux desde un disco óptico (ISOLINUX), desde ciertos
Sistemas de archivos Linux (EXTLINUX), desde una red (PXELINUX) o desde un sistema de archivos FAT
(SYSLINUX). Se utiliza con mayor frecuencia en la instalación de Linux y los discos de emergencia. Puedes leer
más en [Link] .
El cargador de arranque de DOS / Windows Fuera de la caja, la mayoría de las computadoras usan el estándar DOS /
Cargador de arranque de Windows, que es muy sencillo. Este cargador de arranque BIOS entrega el control a un
partición que está marcada con un indicador de "arranque" o "activo". Esta partición a su vez debe tener su
propio cargador de arranque instalado en él. LILO y ambas versiones de GRUB pueden instalarse solas
en una partición de Linux para que el cargador de arranque de DOS / Windows pueda encadenar: cargar en estos
cargadores de arranque.
EFI El firmware EFI incluye su propio cargador de arranque; sin embargo, este cargador de arranque, como el
Cargador de arranque DOS / Windows, no puede arrancar directamente un kernel de Linux. Por lo tanto, los sistemas EFI todavía
necesitan
un cargador de arranque compatible con Linux, como GRUB 2 o ELILO, para arrancar Linux. El EFI arranca el
Cargador de arranque compatible con Linux, que luego arranca Linux.
Cargadores de arranque de terceros Muchas empresas e individuos han lanzado
y cargadores de arranque gratuitos a lo largo de los años. La mayoría de estos cargadores de arranque no pueden arrancar Linux
directamente, pero pueden cargar en cadena un cargador de arranque de Linux, como LILO o GRUB.
Solución de problemas de arranque
515

Página 558
516
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
Si su computadora usa una CPU que no sea la popular x 86 o x 86-64
serie, es probable que utilice un cargador de arranque que no se describe aquí. (Algunos como
Sin embargo, las computadoras usan EFI, por lo que pueden usar un cargador de arranque compatible con EFI
de la lista anterior.) Muchos cargadores de arranque de Linux para tales plataformas son
modelado según LILO.
Esta lista de cargadores de arranque puede ser bastante abrumadora si no está familiarizado con el campo.
En la práctica, es probable que su computadora use GRUB Legacy o GRUB 2, particularmente si es
Basado en BIOS. Si usa el EFI más nuevo, es probable que su computadora use alguna combinación
de rEFIt, GRUB 2 y quizás ELILO.
Una forma de identificar su cargador de arranque es utilizar el script de información de arranque ( http: //
[Link]/projects/bootinfoscript/ ). Este script, que puede ejecutar desde
un disco de arranque de emergencia, escanea su disco duro en busca de firmas del cargador de arranque, partición
información, etc., y genera un informe que guarda como [Link] . La bota
loader se identifica en las primeras líneas de este archivo:
========================== Resumen de información de arranque: ==================== =======
=> Grub 2 se instala en el MBR de / dev / sda y mira el sector 40 del
mismo disco duro para [Link], [Link] está en esta ubicación en / dev / sda
y busca (UUID = 1445adc8-3145-4fcb-86df-701f0f711943) / grub.
Este ejemplo identifica claramente el cargador de arranque como GRUB 2; está instalado en el
Master Boot Record (MBR) del primer disco ( / dev / sda ) y las siguientes líneas de
la salida identifica dónde GRUB 2 busca código de arranque adicional ( [Link] , ubicado en
sector 40 en este ejemplo) y dónde están instalados los archivos GRUB (el directorio / grub
en la partición que contiene un sistema de archivos con un ID único universal [UUID] de
1445adc8 - 3145 - 4fcb - 86df - 701f0f711943).
Aunque el script de información de arranque no se menciona en los objetivos de LPIC - 2,
este script es la herramienta de diagnóstico más útil para identificar y
resolver problemas de arranque. Además de ubicar el principal
ubicaciones de código y archivos de configuración, el script identifica los sistemas de archivos
en uso en cada una de las particiones de la computadora, muestra las tablas de particiones en
todos los discos, resume los UUID de todos los sistemas de archivos de la computadora,
muestra el contenido del archivo de configuración del cargador de arranque y muestra el
contenido de / etc / fstab .

Ubicación de archivos y código del cargador de arranque


En un sistema Linux que funcione correctamente, el cargador de arranque se instala en varios
ubicaciones. Los detalles varían según el cargador de arranque, el tipo de tabla de particiones e incluso la
opciones del cargador de arranque. Las ubicaciones clave en computadoras basadas en BIOS incluyen lo siguiente:

Página 559
MBR El MBR contiene el primer código ejecutado desde el disco duro en un disco normal.
arranque de la computadora. (También contiene la tabla de particiones MBR). En la mayoría de los sistemas Linux, parte
de GRUB Legacy o GRUB 2 reside en el MBR; sin embargo, el MBR podría contener LILO, un
Cargador de arranque DOS / Windows, o algún otro cargador de arranque. En la mayoría de estos casos, el cargador de arranque
luego cargará un cargador de arranque compatible con Linux desde otra ubicación.
Publicación no asignada: sectores MBR En la mayoría de los discos que están particionados mediante MBR
sistema, los 62 sectores inmediatamente posteriores al MBR están oficialmente sin asignar. Bota
Los cargadores suelen hacer uso de este espacio para guardar código adicional que no cabe en el MBR.
Esta práctica, sin embargo, a veces puede dar lugar a problemas, ya que algunas otras utilidades también intentan
para utilizar este espacio. Si dicha herramienta sobrescribe parte de GRUB, su sistema ya no se iniciará.
(El script de información de arranque puede ser muy útil para identificar este problema; informará que el
El cargador de arranque está presente en el MBR pero ese [Link] no está presente donde debería estar).
La partición de arranque del BIOS GRUB 2 utiliza este tipo de partición en sistemas que utilizan
nuevo sistema de tabla de particiones (GPT) de identificador único global (GUID) para mantener un arranque adicional
código. Esencialmente, la partición de arranque del BIOS reemplaza la publicación no asignada: los sectores MBR solo
descrito. Debido a que la partición de arranque del BIOS está correctamente asignada en la tabla de particiones,
hace que GPT sea más seguro frente a algunos tipos de daños que MBR, en teoría. (En la práctica, otros
factores pueden nivelar el campo de juego.) Aunque la presencia de una partición de arranque BIOS en un
El disco GPT no identifica positivamente que el disco utilice GRUB 2, es una buena indicación de que
alguien tenía la intención de usar GRUB 2, o al menos quería dejar abierta la posibilidad de hacer
entonces. GNU Parted identifica este tipo de partición con una etiqueta bios_grub , mientras que gdisk identifica
tiene un código de tipo de EF02. Consulte [Link]
para obtener más información sobre este tipo de partición.
Sector de arranque de una partición de Linux El primer sector de una partición de Linux puede ser utilizado por un
cargador de arranque, muy parecido al MBR de un disco. El cargador de arranque en el MBR puede redirigir
el proceso de arranque a la partición de Linux, incluso si el cargador de arranque basado en MBR no es capaz
de arrancar directamente un kernel de Linux.
Archivos de soporte de arranque El código de arranque puede residir en archivos que el cargador de arranque lee en el momento del
arranque. En
en cierto sentido, el kernel de Linux y el disco RAM inicial son ejemplos de tales archivos; sin embargo, el
El cargador de arranque también puede almacenar su propio código en dichos archivos. GRUB 2 es particularmente dependiente
en dichos archivos, que almacena en / boot / grub (algunas distribuciones usan / boot / grub2 en su lugar).
Archivos de configuración previos a la instalación LILO y GRUB 2 se basan en archivos de configuración
que se encuentran en el directorio / etc. Para LILO, el archivo relevante es /etc/[Link] ; para
GRUB 2, los archivos residen en el directorio /etc/grub.d . Estos archivos no se leen cuando el
El cargador de arranque arranca la computadora, pero se utilizan para modificar la instalación del cargador de arranque.
por otras empresas de servicios públicos. La presencia de estos archivos puede ser una buena pista de que una computadora usa un
cargador de arranque particular; sin embargo, es posible que los archivos permanezcan atrás después de un cargador de arranque
ha sido reemplazado por uno nuevo.
Arranque - Archivos de configuración de tiempo Tanto GRUB Legacy como GRUB 2 dependen de archivos en Linux
sistema de archivos en el momento del arranque. Para GRUB Legacy, estos archivos generalmente se denominan / boot / grub /
[Link] o /boot/grub/[Link] , dependiendo de la distribución. Para GRUB 2, el principal
Solución de problemas de arranque
517

Página 560
518
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
El archivo generalmente se llama /boot/grub/[Link] , pero algunas distribuciones colocan el archivo en / boot /
grub2 en lugar de / boot / grub . Los archivos adicionales en / boot / grub admiten GRUB en ambos
casos. Al igual que con los archivos de configuración de preinstalación, la presencia de estos archivos es indicativa
del uso de un cargador de arranque en particular, pero esto no es seguro.
Programas binarios Cada cargador de arranque incluye archivos de programa binarios que se utilizan para instalar
el código del cargador de arranque en el MBR, la partición de arranque de Linux u otras ubicaciones; o para ajustar el
configuración de arranque definitiva. Para LILO, el archivo de claves se llama lilo . Para GRUB Legacy y
GRUB 2, grub - install es el archivo del programa de instalación.
Por lo tanto, si no está seguro de qué cargador de arranque usa su computadora, debe buscar
la presencia de ciertos archivos, como se resume en la Tabla 11.1. Por supuesto, el cargador de arranque en
La operación se almacena en el MBR, el sector de arranque de la partición de Linux o alguna otra partición en
el disco. La forma más confiable de identificar el código de inicio real es utilizar el script de información de inicio.
TABLA 11.1 Cargadores de arranque y sus archivos de configuración de identificación
Cargador de arranque
Archivos de configuración
LILO
/etc/[Link]
GRUB Legacy
/boot/grub/[Link] o /boot/grub/[Link]
GRUB 2
directorio /etc/grub.d ; /boot/grub/[Link] o / boot / grub2 /
[Link] ; posiblemente una partición de arranque de BIOS en discos GPT
Si su computadora usa EFI en lugar de BIOS, los detalles variarán de los descritos
aquí. Las computadoras basadas en EFI que también usan GRUB 2 usan los mismos archivos de configuración de GRUB 2
como se describe para computadoras basadas en BIOS, pero GRUB 2 coloca un archivo de arranque EFI en el EFI
Partición del sistema (ESP), que es una partición especial que se utiliza para almacenar controladores, código del cargador de
arranque,
y archivos similares de bajo nivel. Si usa rEFIt, ELILO o algún otro cargador de arranque EFI,
debe consultar su documentación para saber dónde almacena sus archivos. El mismo consejo se aplica si
utiliza uno de los cargadores de arranque de BIOS menos comunes o más especializados.
Los dos cargadores de arranque de Linux más comunes en la actualidad, GRUB Legacy y GRUB 2, ambos
colocar archivos en / boot / grub . (Por esta razón, algunas distribuciones cambian el archivo de GRUB 2
ubicación en / boot / grub2 , de modo que ambos cargadores de arranque se puedan instalar simultáneamente.) GRUB
Legacy tiene relativamente pocos archivos en esa ubicación, incluido su archivo de configuración, un dispositivo
archivo .map que asigna identificadores de dispositivos Linux y GRUB, y una variedad de archivos de código de arranque que
incluir etapa en sus nombres. GRUB 2 coloca muchos más archivos en su versión de / boot / grub .
La mayoría de estos archivos tienen nombres que terminan en .mod ; estos son módulos GRUB 2 - código que el
El cargador de arranque solo puede acceder si es necesario. Los módulos permiten a GRUB 2 leer sistemas de archivos, manejar
varios tipos de hardware de vídeo, etc.

Página 561
La configuración más común implica un cargador de arranque instalado en un disco duro. Más
Los discos extraíbles, incluidas las unidades flash USB (Universal Serial Bus), funcionan como si fueran discos duros.
discos desde la perspectiva del cargador de arranque. Los disquetes funcionan de forma ligeramente diferente, pero muchos
Los cargadores de arranque, incluidos GRUB y LILO, se pueden instalar en un disquete. A diferencia del duro
discos, los disquetes no están particionados, por lo que un disquete es más como una partición de un software
perspectiva. Los discos ópticos, como se sugirió anteriormente, son aún más diferentes. Normalmente usan
un software estándar conocido como El Torito para definir cómo arrancan. ISOLINUX es el habitual
Cargador de arranque Linux para discos ópticos.
Interpretación de los mensajes de error del cargador de arranque
Los problemas de arranque a menudo crean mensajes de error molestos y crípticos. Esto se debe a que la bota
el cargador, particularmente en sus primeras etapas, debe ser inusualmente compacto; simplemente no hay mucho
espacio en el código para almacenar mensajes de error largos. Por lo tanto, interpretar el error del cargador de arranque
los mensajes pueden ser difíciles. Esta tarea es diferente para LILO, GRUB Legacy y GRUB 2.
A veces puede solucionar los problemas del cargador de arranque empleando
Super GRUB Disk ( [Link] ), que es un
CD - R que busca y usa los archivos de configuración GRUB de una instalación.
Hay versiones disponibles para GRUB Legacy y GRUB 2. Super GRUB
El disco le permite evitar problemas con un código de arranque GRUB dañado
instalación, siempre que el archivo de configuración GRUB del sistema esté intacto y
correcto. Una vez que haya iniciado el sistema, puede volver a instalar GRUB usando
grub - instalar .
Interpretación de los mensajes de error de LILO
Mientras se inicia, LILO muestra su nombre en la pantalla. Si encuentra un error, altera
esta pantalla para incluir un código de error de algún tipo. El resultado final es parte de la cadena LILO ,
a veces con un código de error adjunto. La tabla 11.2 resume el LILO común
códigos de error.
TABLA 11.2 Códigos de error de LILO
Código de error
Sentido
(nada)
LILO no se ha cargado. Tales problemas pueden indicar que LILO no está instalado
en el MBR, que la partición de Linux está dañada o que un arranque anterior
es posible que loader no pueda cargar LILO desde una partición de Linux.
L ##
La primera etapa de LILO se ha cargado, pero no puede ubicar su segunda etapa
(normalmente almacenado en /boot/boot.b ). Los dos dígitos que siguen a L pueden ayudar
diagnosticar más el problema; consulte la documentación de LILO para
detalles.
Solución de problemas de arranque
519

Página 562
520
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
LILO es bastante simple; aunque le permite iniciar un sistema operativo o un kernel de Linux mediante
escribiendo su nombre o seleccionándolo de una lista, ofrece poco en la forma de depuración interactiva
instalaciones. Si LILO no arranca su computadora debido a una mala configuración en / etc / lilo
.conf , no tiene más remedio que arrancar un disco de emergencia, editar el archivo de configuración,
y reinstale LILO en el MBR o en la partición de arranque de Linux.
Si necesita cambiar su archivo /etc/[Link] , asegúrese de escribir lilo como
root cuando haya terminado. LILO no puede leer su archivo de configuración en el momento del arranque;
en cambio, se basa en el comando lilo de Linux para interpretar la configuración
Archivar y almacenar características críticas en una forma más compacta dentro del código LILO
que se lee en el momento del arranque. De hecho, como escribir lilo como root reinstala el
Código de arranque de LILO, este comando solucionará una variedad de problemas de LILO.
Interpretación de los mensajes de error heredados de GRUB
GRUB Legacy se ejecuta en tres etapas, conocidas como etapa 1, etapa 1.5 y etapa 2. La etapa 1 es
la primera parte del proceso de arranque de GRUB Legacy (normalmente instalado en el MBR), etapa 1.5
Código de error
Sentido
LI
Se cargó la primera etapa de Linux y se ubicó /boot/boot.b ; pero esto
la segunda etapa no se puede ejecutar.
LI1010 ...
En este código de error, los dígitos 10 se repiten sin cesar. Este error indica
que LILO no puede localizar la imagen de su núcleo. Una causa común
es recompilar su kernel y copiarlo sobre el anterior sin
volviendo a ejecutar el comando lilo .
PEQUEÑO
El cargador de arranque de la segunda etapa puede cargarse y ejecutarse, pero no puede leer el
/ boot / archivo de mapa . Esto suele indicar un problema de hardware o un disco
desajuste de geometría.
¿PEQUEÑO?
LILO ha cargado su cargador de arranque de segunda etapa en la dirección incorrecta.
Esto puede suceder si mueve /boot/boot.b sin volver a ejecutar lilo .
PEQUEÑO -
LILO ha detectado daños en el archivo / boot / map . Esto puede suceder si
mueva este archivo sin volver a ejecutar lilo .
LILO
Si LILO muestra esta cadena completa, cualquier dificultad de arranque posterior es
probablemente sea el resultado de problemas del kernel o del disco RAM inicial.
TABLA 11.2 Códigos de error de LILO (continuación)

Página 563
el código reside después del MBR en el disco, y el código de la etapa 2 se carga desde los archivos en el arranque
dividir. Cada etapa tiene sus propios mensajes de error. La tabla 11.3 resume el error de la etapa 1
mensajes.
TABLA 11.3 Mensajes de error de GRUB Stage 1
Mensaje de error
Etapa
Sentido
Error de disco duro
1
No se pudo determinar la geometría del disco duro.
Error de disquete
1
No se pudo determinar la geometría del disquete.
Error de lectura
1
No se pudo leer el disco duro o el disquete.
Error de Geom
1
El archivo que se lee del disco reside fuera de
el área admitida por el BIOS.
Los errores de la etapa 1 tienden a ser muy graves. Si GRUB Legacy no puede determinar el disco
geometría, es posible que necesite ajustar la configuración del BIOS para el disco duro. Una lectura
El error podría indicar un disco duro defectuoso o la necesidad de ajustar la configuración del BIOS para el disco duro.
Un error de geometría es raro con el hardware moderno. Con hardware antiguo, es posible que deba
ajuste sus particiones y reinstale Linux. Cree una partición / boot separada tan pronto como
disco como puedas; esto asegurará que el kernel, el disco RAM inicial y todos los GRUB
Los archivos de configuración de tiempo de arranque caen por debajo del límite que impone el BIOS antiguo. (Límites de BIOS
el tamaño del disco duro ha variado a lo largo de los años, pero 504 MiB y un poco menos de 8 GiB son dos
límites de años pasados.)
Los mensajes de error de la etapa 1.5 toman la forma Error num , donde num es un número que
corresponde a un error de la etapa 2. En GRUB se documenta un total de 34 errores de la etapa 2
Documentación heredada ( [Link]
[Link] ). Cada uno incluye una descripción, como Dispositivo no válido solicitado . Consultar
la documentación de GRUB Legacy si necesita interpretar estos errores, que son
numeroso.
Interpretación de los mensajes de error de GRUB 2
Si GRUB 2 está muy mal configurado, es probable que termine viendo el shell de rescate de GRUB:
comida>
Esto sucede cuando GRUB no puede ubicar el archivo /boot/grub/[Link] en su disco duro.
La causa habitual es que la variable de entorno de prefijo interno de GRUB , que contiene la
La ubicación del directorio en el que se encuentra ese archivo no está configurada correctamente. Puedes usar el ls
Solución de problemas de arranque
521

Página 564
522
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
comando para localizar la ubicación correcta y establecer la variable de entorno de prefijo. Empezar,
probablemente debería usar ls solo para ver las particiones disponibles y luego mirar dentro de ellas
hasta que encuentre la raíz de Linux ( / ) o la partición / boot :
grub> ls
(hd0) (hd0, gpt5) (hd0, gpt4) (hd0, gpt3) (hd0, gpt2) (hd0, gpt1)
grub> ls (hd0, gpt5) /
abi-2.6.31-22-genérico grub / [Link]-2.6.31-22-genérico
memtest86 + .bin [Link]-2.6.31-22-genérico vmcoreinfo-2.6.31-22-genérico
vmlinuz-2.6.31-22-genérico
En versiones recientes de GRUB 2, las particiones pueden identificarse por disco
dispositivo y número solo, como en (hd0,5) , o con un código para la partición
tipo de tabla antepuesto al número de partición, como en (hd0, gpt5) o
(hd0, mbr5) . El último formato elimina la ambigüedad en caso de que un disco tenga una
tabla de partición incrustada dentro de otra o usada lado a lado.
Para ver en una partición, debe pasar una barra diagonal ( / ) después de su identificador, como en
(hd0, gpt5) / ; la omisión de la barra muestra información sobre el sistema de archivos utilizado en el
dividir. Este ejemplo muestra un descubrimiento del contenido de una partición / boot separada
en el primer intento. (Si el directorio / boot está en la partición raíz, entonces querrá ubicar
la partición raíz e incluya la ruta al directorio de GRUB 2 desde allí en el siguiente
comandos.) Con el directorio / boot , y por lo tanto / boot / grub , descubierto, puede configurar
el prefijo y las variables raíz para apuntar al directorio GRUB y la partición en la que
reside, respectivamente:
grub> establecer prefijo = (hd0, gpt5) / grub
grub> establecer root = (hd0, gpt5)
Para obtener un menú, debe cargar el módulo normal y ejecutarlo:
grub> insmod normal
grub> normal
Con suerte, ahora verá un menú normal de GRUB 2. Este efecto no será
permanente, aunque; para que GRUB 2 funcione sin tales intervenciones en el futuro,
necesita reinstalarlo, normalmente escribiendo grub - install / dev / device como root (donde / dev /
device es el nombre de archivo del dispositivo Linux del disco) una vez que la computadora se haya iniciado normalmente.
Los problemas menos graves suelen implicar la capacidad de arrancar un solo kernel o sistema operativo.
Normalmente, GRUB 2 presenta un mensaje de error sobre el tipo de error que encuentra, como
un archivo perdido. Si un error es lo suficientemente simple, es posible que pueda solucionarlo seleccionando el
kernel o OS en el menú de GRUB 2 y presionando la tecla E para editar la entrada. Entonces puedes
siga las instrucciones en pantalla y utilice el editor de texto integrado de GRUB 2 para hacer
cambios en la configuración. (El Capítulo 1 describe este proceso en detalle).

Página 565
Manejo de los problemas iniciales del disco RAM
Como se describe en el Capítulo 1 y el Capítulo 2, los sistemas Linux modernos utilizan con frecuencia una
Disco RAM (también conocido como initrd o initramfs). Se utiliza un disco RAM inicial junto con el
kernel para proporcionar un puñado de utilidades críticas del sistema y módulos del kernel, lo que permite que el kernel
para hacer cosas que normalmente no puede hacer sin acceso al disco duro. Por ejemplo, el
el kernel puede cargar módulos para manejar discos duros particulares. Si compila su propio kernel, como
descrito en el Capítulo 2, puede incluir dichos módulos en el propio kernel, por lo que es posible que no necesite
un disco RAM inicial; sin embargo, a veces necesita un disco RAM inicial para activar determinados
características, como la compatibilidad con el administrador de volumen lógico (LVM). Los discos RAM iniciales también son
utilizados por
la mayoría de las distribuciones para que un solo núcleo pueda admitir una amplia variedad de hardware.
Un inconveniente de los discos RAM iniciales es que a veces pueden complicar el arranque.
proceso. Como se describe en el Capítulo 1, la configuración de su cargador de arranque debe hacer referencia al
archivo de disco RAM inicial. Luego, el cargador de arranque carga tanto el kernel como el disco RAM inicial
en la memoria y ejecuta el kernel, dándole la ubicación del disco RAM inicial en la memoria.
Este proceso puede salir mal de muchas formas diferentes: es posible que el cargador de arranque no
para localizar el archivo de disco RAM inicial, el formato de archivo puede ser incorrecto, el archivo puede ser
dañado, el archivo puede ser para el kernel incorrecto, el archivo del disco RAM puede faltar
característica crítica, etc.
Algunos de estos problemas darán lugar a errores en la etapa del cargador de arranque. Por ejemplo, tu
puede ver un error de "archivo no encontrado", ya sea claramente o en forma de un error críptico
número. Si esto sucede, debe verificar la configuración de su cargador de arranque para verificar que
el nombre de archivo del disco RAM inicial se ingresó correctamente. (Estos nombres de archivo suelen ser largos y
llenos de números y códigos, por lo que es fácil escribirlos incorrectamente) Básicamente, estos problemas pueden ser
tratado como otros problemas del cargador de arranque, como se describió anteriormente.
Si el cargador de arranque puede cargar el kernel y el disco RAM inicial, el proceso de arranque
Continuar. En una configuración convencional, verá una serie de mensajes, que puede
revisión posterior con dmesg , en relación con la detección de hardware del kernel, etc. Puedes
creo que está libre y limpio, pero si el disco RAM inicial está dañado o es para un
kernel o distribución de la que está utilizando, es probable que el proceso se detenga abruptamente con
un mensaje de error. Con frecuencia, la queja será que el kernel no pudo acceder al
dispositivo raíz. Si esto sucede después de haber instalado un nuevo kernel, lo mejor que puede hacer es reiniciar
utilizando un kernel anterior, revise los pasos que utilizó para crear el disco RAM inicial y cree
uno nuevo. Es posible que deba agregar opciones a la utilidad mkinitrd o mkinitramfs para tenerla
incluir módulos que se omiten por error.
Muchas distribuciones modernas de Linux cambian a una pantalla gráfica muy pronto
en el proceso de arranque. Esta pantalla es menos intimidante para los nuevos usuarios que
una pantalla tradicional llena de un flujo de mensajes de inicialización, pero es
menos informativo en caso de errores. Por lo general, puede cambiar de la gráfica
pantalla a una pantalla de modo de texto presionando una tecla o haciendo clic en un botón con su
ratón. Examine la pantalla gráfica para obtener información sobre esto. Cambiando el
Las opciones del kernel en el cargador de arranque también pueden deshabilitar esta pantalla de presentación gráfica ,
como se llama. Eliminar la opción de bienvenida es una forma de hacerlo.
Solución de problemas de arranque
523

Página 566
524
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
Si el problema es con un disco RAM inicial provisto con su distribución, puede
tiene más dificultad. Si puede arrancar con un kernel anterior, es posible que deba usarlo para compilar
su propio kernel. De lo contrario, es posible que pueda localizar las opciones del cargador de arranque o una alternativa
kernel creado por un tercero que funcionará.
A veces, los problemas con los discos RAM iniciales pueden deberse al uso de un kernel demasiado antiguo.
en hardware muy nuevo. Es posible que el hardware más reciente simplemente no sea compatible con los núcleos más antiguos.
Por lo tanto, es posible que deba probar una distribución más nueva si tiene problemas con una nueva.
computadora.
Solucionar problemas al principio de la etapa de inicio del sistema operativo
Si el cargador de arranque carga correctamente el kernel y el disco RAM inicial y si el kernel puede
use el disco RAM inicial para ubicar el sistema de archivos raíz de Linux, el kernel comenzará
el proceso normal de inicialización del sistema, como se describe en el Capítulo 1. Como se describe en ese
capítulo, la mayoría de las distribuciones de Linux utilizan el sistema de inicio SysV o Upstart. El primero es
controlados a través de archivos en /etc/init.d o /etc/rc.d/init.d y enlaces a esos archivos en
varios directorios específicos del nivel de ejecución, como / etc / rc ? .d , ¿ dónde ? es un número de nivel de ejecución.
Upstart se controla mediante archivos de configuración de arranque en / etc / init .
Independientemente de los detalles, una vez que los scripts de inicialización comienzan a funcionar, los problemas de arranque que
descarrilar completamente el proceso de arranque es poco probable que ocurra. En cambio, los problemas en esta etapa son
es más probable que involucre programas específicos, como su servidor web o programa de inicio de sesión de GUI.
Normalmente, cuando esto sucede, verá un mensaje de que se está iniciando un servicio, junto con
una nota en el lado derecho de la pantalla, a menudo en rojo, que indica que este intento falló, de la siguiente manera:
Iniciando Apache ...
[ HA FALLADO ]
Estos problemas se resuelven mejor depurando el subsistema específico en cuestión;
Los problemas con Apache se manejarán necesariamente de manera muy diferente a los problemas con
Samba, por ejemplo. Algunos de los consejos de depuración de propósito general de este capítulo pueden
Sin embargo, se aplican a muchos de estos problemas. La comprobación de los archivos de registro suele ser un buen curso
de acción, por ejemplo.

Solución de problemas varios


Problemas
El resto de este capítulo está dedicado a una variedad de técnicas de resolución de problemas: interpretación
mensajes de tiempo de arranque, comprobación de la información del búfer del anillo del núcleo, identificación del hardware,
resolver problemas de módulos del kernel, interpretar archivos de registro y usar utilidades que lo ayuden a rastrear
problemas de software.

Página 567
Interpretación del arranque: pantallas de tiempo
Si su computadora no está configurada para mostrar un gráfico en el momento del arranque, debería mostrar un
serie de mensajes mientras arranca. La mayoría de estos mensajes se dividen en dos categorías generales:
Mensajes del kernel Al principio del proceso de arranque, los mensajes que ve se originan en
el núcleo relacionan información sobre el hardware que detecta el kernel, las particiones
detectado en el disco duro y así sucesivamente. Estos mensajes se almacenan en el búfer de anillo del kernel,
que puede estudiar con más detalle después de que el sistema se haya iniciado por completo, como se describe en
la próxima sección “Comprobación del búfer de anillo del núcleo. "
Mensajes de la secuencia de comandos de inicio Una vez que el kernel ha inicializado completamente el hardware de la
computadora,
Los scripts de inicio de SysV o Upstart muestran mensajes sobre varios programas que no son del kernel
empezado. Como se señaló anteriormente, en "Solucionar problemas en las primeras etapas de la etapa de inicio del sistema
operativo", estos
Los scripts suelen especificar si cada sistema se ha iniciado o no mostrando un éxito o
mensaje de falla en el lado derecho de la pantalla. Estos mensajes suelen estar codificados por colores:
blanco o verde para el éxito, rojo para el fracaso. Por lo tanto, puede vigilar el lado derecho de
la pantalla y observe el rojo durante el proceso de arranque. Si ve un indicador de estado rojo,
anote el mensaje asociado con él e investigue una vez que la computadora se haya iniciado.
Los mensajes de tiempo de arranque suelen pasar tan rápido que son difíciles de leer. Podrías
suerte y nota algo importante; o en el caso de mensajes de secuencia de comandos de inicio,
puede observar las indicaciones de falla y, con suerte, leer el nombre del subsistema que
no se inició correctamente antes de que salga de la pantalla. A veces escribiendo Shift + Page Up
le permite leer un mensaje que se desplaza fuera de la pantalla. Puedes comprobar el anillo del kernel
búfer después de que la computadora se haya iniciado, pero los mensajes de secuencia de comandos de inicio normalmente no se
registran
cualquier lugar. Los servidores y subsistemas individuales pueden registrar información, como se describe en
"Comprobación de archivos de registro", pero es posible que deba comprobar muchos archivos de registro y recorrer una gran
tratar de información irrelevante si desea verificar que todos los servidores se hayan iniciado correctamente.
Comprobación del búfer de anillo del núcleo
Puede mostrar todo el contenido del búfer circular del kernel escribiendo dmesg ; sin embargo,
Es probable que la salida de este comando sea abundante, por lo que es posible que desee canalizarlo a través de menos
( dmesg | less ) o redirigirlo a un archivo ( dmesg> [Link] ) y luego leer el archivo en un editor de texto.
También debe tener en cuenta que el tamaño del búfer de anillo del kernel es limitado. Mientras la computadora funciona,
el kernel genera nuevos mensajes que se almacenan en el búfer de anillo, por lo que los mensajes más antiguos
eventualmente se perderá. Porque los primeros mensajes de cuando la computadora arranca son
a menudo importante, los scripts de inicio de algunas distribuciones crean una copia del búfer de anillo del kernel
justo después de que se inicie la computadora, normalmente en / var / log / dmesg o /var/log/[Link] .
Aunque los mensajes en el búfer de anillo del kernel se originan todos con el kernel, la amplia
variedad de controladores y otras características del kernel que pueden generar estos mensajes significa que
Solución de problemas varios
525

Página 568
526
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
interpretar estos mensajes a menudo requiere el conocimiento de las características específicas del kernel en
pregunta. Las siguientes páginas describen algunos de los principales tipos de información que puede encontrar
en el búfer de anillo del kernel.
Identificando el Kernel
Si lee el búfer de anillo del kernel con suficiente antelación, comenzará con una identificación de
el kernel:
[0.000000] Linux versión [Link] (rodsmith @ nessus) (gcc versión 4.4.3
(Gentoo 4.4.3-r2 p1.2)) # 3 SMP PREEMPT Domingo 26 de septiembre 23:32:11 EDT 2010
[0.000000] Línea de comando: BOOT_IMAGE = / bzImage-[Link] ro
root = / dev / mapper / nessus-g_root dolvm
El número entre paréntesis al comienzo de estas líneas es un código de tiempo. No todos los granos son
configurado para generar estas marcas de tiempo, por lo que es posible que falten. los
la información restante en la primera línea es similar a la producida por el comando uname ;
incluye el número de versión del kernel, el usuario y la computadora que compiló el kernel,
el compilador que se utilizó, las opciones importantes del kernel y la fecha y hora del kernel
fue compilado. La segunda línea identifica el nombre del archivo del kernel y las opciones pasadas al
kernel por el cargador de arranque. Toda esta información puede ser importante para verificar que está
utilizando el kernel correcto y que el cargador de arranque le ha pasado las opciones correctas.
Describiendo la CPU
Después de la identificación del kernel, verá una gran cantidad de líneas que relacionan varios
detalles técnicos sobre cómo el kernel utiliza la memoria. La mayor parte de esta información es útil
sólo para los expertos en kernel, pero si nota algo sospechoso, investigue por todos los medios.
Eventualmente llegará a un par de líneas que clasifican la velocidad de su CPU:
[0.000000] Procesador detectado a 2800.153 MHz.
[0.002004] Calibración del lazo de retardo (omitido), valor calculado usando
frecuencia del temporizador ... 5600.30 BogoMIPS (lpj = 2800153)
La primera de estas líneas identifica la velocidad de reloj de la CPU (2,8 GHz en este ejemplo).
Si esta información es incorrecta, entonces está sucediendo algo muy extraño, tal vez
su CPU es tan nueva o exótica que el kernel no la maneja correctamente, o tal vez su
La placa base está mal configurada para ejecutar la CPU a la velocidad incorrecta. La segunda línea es
a veces se malinterpreta o se le da demasiado peso. En informática, una medida común de
La velocidad computacional es de millones de instrucciones por segundo (MIPS), por lo que algunas personas intentan
medir la velocidad del hardware mediante la medida BogoMIPS que se encuentra en el búfer de anillo del kernel. los
Sin embargo, el término BogoMIPS significa MIPS falso ; en otras palabras, no es una medida confiable
de velocidad en las CPU. Lo calcula el kernel para su propio uso interno y no debe
ser utilizado para comparar diferentes computadoras.

Página 569
Un poco más adelante, encontrará algunas líneas más relacionadas con la CPU:
[0.018524] CPU0: Procesador AMD Athlon (tm) 64 X2 de doble núcleo 5400+ paso 02
[0.021004] MCE: Decodificación MCE en el núcleo habilitada.
[0.024018] Nodo de arranque 0, Procesadores n. ° 1
[0.095029] Consiguió 2 CPU
[0.095097] Total de 2 procesadores activados (11200.84 BogoMIPS).
Estas líneas identifican la marca y el modelo de CPU. En este caso, indican que el
la computadora tiene dos CPU (de hecho, como es más común hoy en día, es una sola CPU de doble núcleo). Si
el búfer de anillo del kernel indica que hay menos CPU o núcleos disponibles de los que cree
presente en su computadora, entonces debe investigar más. Quizás tu núcleo carece
soporte para múltiples núcleos (es una función en tiempo de compilación, por lo que es posible que deba volver a compilar el
kernel), o quizás esté equivocado acerca de las capacidades de su CPU.
Identificación de buses informáticos
Más adelante en el resultado, verá una gran cantidad de información técnica sobre el
buses de la computadora, principalmente el bus de interconexión de componentes periféricos (PCI) para
computadoras modernas. Estas líneas se ven así:
[0.134046] pci 0000: 03: 05.0: reg 10: [mem 0xfd000000-0xfdffffff]
[0.134150] pci 0000: 03: 05.2: reg 10: [mem 0xfc110000-0xfcffffff]
[0.134254] pci 0000: 03: 06.0: reg 10: [mem 0xfebff000-0xfebfffff]
[0.134262] pci 0000: 03: 06.0: reg 14: [io 0xe800-0xe83f]
[0.134270] pci 0000: 03: 06.0: reg 18: [mem 0xfea00000-0xfeafffff]
[0.134297] pci 0000: 03: 06.0: reg 30: [mem 0xfe900000-0xfe9fffff pref]
[0.134321] pci 0000: 03: 06.0: admite D1 D2
[0.134323] pci 0000: 03: 06.0: PME # compatible con D0 D1 D2 D3hot D3cold
[0.134328] pci 0000: 03: 06.0: PME # deshabilitado
Estas líneas pueden resultar útiles para diagnosticar ciertos tipos de problemas de hardware; sin embargo,
gran parte de los datos se pueden obtener más convenientemente utilizando utilidades como lspci (descrita
más adelante en “Identificación del hardware”).
Identificación de subsistemas de hardware
Un poco más tarde, comenzará a ver mensajes sobre ciertos subsistemas y conjuntos de controladores:
[0.143146] Subsistema SCSI inicializado
[0.143146] Se cargó la versión 3.00 de libata.
[0.143146] Versión 1.0.23 del controlador de arquitectura de sonido avanzada de Linux.
La interfaz de sistemas informáticos pequeños (SCSI) es un método de interfaz de disco. SCSI es raro en
computadoras modernas, pero como se describe en el Capítulo 4, "Administración avanzada de discos", Linux
ha estado confiando cada vez más en su subsistema SCSI para manejar otros tipos de discos,
Solución de problemas varios
527

Página 570
528
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
incluidos los discos de interfaz de tecnología avanzada en serie (SATA) que son los más
tipo de disco común. El subsistema libata ayuda con esta coordinación. El avanzado
El controlador Linux Sound Architecture (ALSA) es el núcleo del moderno manejo de sonido de Linux
sistema. Es probable que su computadora use el subsistema SCSI, y si este subsistema
está ausente y tiene problemas para arrancar o usar ciertos discos, esta puede ser la razón. Tú
Puede que necesite recompilar su kernel o cargar módulos adecuados para que funcione. Sonido
La funcionalidad suele ser mucho menos crítica, por supuesto, pero puede buscar evidencia de tal
controladores (o la falta de dicha evidencia) si tiene problemas con subsistemas particulares.
Otro subsistema importante son las redes, que probablemente generen sus propios
mensajes:
[0.161587] NET: familia de protocolos registrada 2
[0.161666] Entradas de tabla hash de caché de ruta IP: 131072 (orden: 8,
1048576 bytes)
[0.162387] Entradas de tabla hash establecidas por TCP: 262144 (orden: 10,
4194304 bytes)
Los mensajes adicionales a lo largo de estas líneas indican que el kernel se está inicializando para usar
el Protocolo de control de transmisión (TCP). Es probable que haya mensajes similares para el
Protocolo de datagramas de usuario (UDP) y otros protocolos de red. Si tales mensajes están ausentes,
esto indica una falta de soporte de red en su kernel; puede que necesites cargar un kernel
o recompilar su kernel antes de que funcione la red.
Identificación de dispositivos de hardware específicos
El kernel prueba varios dispositivos de hardware críticos. Es probable que estas entradas estén dispersas
sobre, pero muestro varios ejemplos aquí como grupo:
[3.443278] floppy0: no se encontraron controladores de disquete
[3.445717] PNP: Controlador PS / 2 [PNP0303: PS2K, PNP0f03: PS2M]
en 0x60,0x64 irq 1,12
[3.446197] serio: puerto i8042 KBD en 0x60,0x64 irq 1
[3.446236] serio: puerto AUX i8042 en 0x60,0x64 irq 12
[3.446484] ratones: dispositivo de ratón PS / 2 común para todos los ratones
[3.503526] entrada: AT traducido Establecer 2 teclado como
/ dispositivos / plataforma / i8042 / serio0 / input / input0
[3.654551] ata1: SATA max UDMA / 133 abar m1024 @ 0xfbcff800 puerto
0xfbcff900 irq 22
[4.269230] ata1.00: ATAPI: ASUS DRW-2014S1T, 1.01, UDMA máximo / 66
[4.269559] ata1.00: configurado para UDMA / 66
Estas líneas indican que no se encontró ningún controlador de disquete (que es correcto en este caso
pero podría no estar en algunas computadoras), que se encontró un mouse y teclado PS / 2, y
que se encontró un controlador SATA. (De hecho, varios controladores SATA suelen estar presentes si
incluso uno lo es; He mostrado sólo una de las líneas relevantes aquí.) Este controlador SATA se conecta
Página 571
a una unidad de DVD ASUS DRW - 2014S1T. Si tiene problemas con alguno de sus
hardware, puede encontrar pistas en mensajes como estos. Por ejemplo, puede encontrar
que un disco duro no se está detectando correctamente, o es posible que vea mensajes sobre reinicios o
tiempos de espera relacionados con dispositivos de hardware particulares.
Un conjunto de mensajes particularmente importante se relaciona con el disco duro:
[4.282511] sd 1: 0: 0: 0: [sda] 976773168 Bloques lógicos de 512 bytes: (500
GB / 465 GiB)
[4.282544] sd 1: 0: 0: 0: [sda] La protección contra escritura está desactivada
[4.282546] sd 1: 0: 0: 0: [sda] Sentido de modo: 00 3a 00 00
[4.282560] sd 1: 0: 0: 0: [sda] Caché de escritura: habilitado, caché de lectura: habilitado,
no es compatible con DPO o FUA
[4.282668] sda: sda1 sda2 sda3 <sda5 sda6 sda7>
[4.327765] sd 1: 0: 0: 0: [sda] Disco SCSI adjunto
Estas líneas identifican el primer disco duro ( / dev / sda ) con un tamaño de 465 GiB y proporcionan
varios otros detalles técnicos al respecto. La siguiente a la última línea identifica las particiones del disco:
tres particiones primarias de / dev / sda1 a / dev / sda3 y tres particiones lógicas de
/ dev / sda5 a / dev / sda7 en este ejemplo. (De hecho, / dev / sda3 es una partición extendida).
Las computadoras modernas a menudo dependen en gran medida de los dispositivos USB, por lo que las líneas que identifican USB
el hardware puede ser de interés:
[4.545190] usbcore: nuevo controlador de interfaz registrado usbfs
[4.545338] usbcore: nuevo concentrador de controladores de interfaz registrado
[4.545451] usbcore: nuevo controlador de dispositivo registrado usb
[4.548021] ehci_hcd: Controlador de controlador de host USB 2.0 'mejorado' (EHCI)
Estas líneas continúan, identificando detalles de USB. Las computadoras modernas suelen tener varios
Buses USB, por lo que es probable que vea bastantes líneas como estas.
Identificación de sistemas de archivos
Tarde o temprano, es probable que el búfer de anillo del kernel proporcione información sobre los sistemas de archivos que
montajes de kernel:
[18.854153] REISERFS (dispositivo dm-9): se encontró el formato de reiserfs "3.6" con
diario estándar
[18.854167] REISERFS (dispositivo dm-9): usando el modo de datos ordenados
[18.889285] REISERFS (dispositivo dm-9): parámetros de diario: dispositivo dm-9, tamaño
8192, primer bloque 18 del diario, longitud máxima de transmisión 1024, lote máximo 900, máximo
cometer 30 años, máxima edad trans 30
[18.890260] REISERFS (dispositivo dm-9): comprobación del registro de transacciones (dm-9)
[18.924766] REISERFS (dispositivo dm-9): uso de hash r5 para ordenar nombres
Solución de problemas varios
529

Página 572
530
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
Los detalles, por supuesto, variarán con su computadora. Si informa problemas, esto podría
ser la causa de la imposibilidad de acceder a determinados sistemas de archivos. Quizás una verificación de disco usando fsck
(como se describe en el Capítulo 3, "Gestión básica del sistema de archivos") superaría tal
dificultades.
Adiciones al búfer de anillo de kernel
A medida que la computadora continúa funcionando, puede ver adiciones de rutina al búfer de anillo del kernel.
Por ejemplo, si inserta una unidad flash USB, verá mensajes sobre la detección del
Dispositivo USB, la detección de sus particiones y quizás la identificación de un sistema de archivos si
montas uno. También puede ver mensajes de error de varios tipos, como este:
[178288.607343] xscreensaver-gl [8366]: segfault en 4 ip 00007f7859ef60be
sp 00007ffffc9389c0 error 4 en [Link].1.2 [7f7859e9b000 + ae000]
Este mensaje indica que el programa xscreensaver - gl creó una segmentación
falla, es decir, se bloqueó porque intentó acceder a la memoria que no debería tener. Esta
el mensaje registra algunos detalles clave sobre el error; sin embargo, a menos que sea un programador
con acceso al código fuente, es probable que estos detalles no le sirvan de mucho.
No obstante, están disponibles si los necesita.
Otro tipo de error se relaciona con problemas de entrada / salida:
[238931.384129] Error de E / S del búfer en el dispositivo sdb10, bloque lógico 93016
[238931.384132] se perdió la escritura de página debido a un error de E / S en sdb10
Tal error puede ocurrir debido a un disco defectuoso, un cable que se ha desconectado o
varios otros problemas. Si tiene dificultades con un disco (o cualquier otro dispositivo, un
impresora, un mouse o cualquier otra cosa), puede verificar el búfer de anillo del kernel para
mensajes. Si ve estos errores, generalmente indican una falla de hardware, lo que puede ayudarlo
reducir el alcance de sus investigaciones.
Los mensajes de búfer de anillo del núcleo varían mucho de una computadora a otra. Yo altamente
Recomendamos que compruebe los mensajes del búfer de anillo del kernel en al menos una computadora.
Lo más probable es que no comprenda la mayoría de las entradas, pero debería poder interpretar
al menos algunos de ellos. Si se familiariza con los mensajes normales, podrá
para identificar informes de problemas cuando sea necesario.
Identificación del hardware
Si no puede utilizar un dispositivo de hardware en particular, su primer paso en el análisis suele ser identificar
el hardware. Esta tarea puede ser más difícil de lo que podría parecer a primera vista, ya que el fabricante
el nombre en el cuadro puede no ser importante; en cambio, los controladores de Linux generalmente están escritos para
el conjunto de chips de un dispositivo , que es uno o más chips que proporcionan la funcionalidad principal del dispositivo.
El chipset a menudo lo fabrica una empresa cuya identidad puede no ser evidente.
No obstante, varias herramientas de diagnóstico son útiles para rastrear esta información.
Describo cómo identificar su CPU, el hardware integrado de la placa base, los dispositivos PCI,
y dispositivos USB.

Página 573
Identificación de la CPU
La identificación de la CPU puede ser fundamental para resolver ciertos problemas. Dos cuestiones son particularmente
importante:
Arquitectura de la CPU La mayoría de las computadoras de escritorio y servidores que ejecutan Linux usan un x 86 o
x 86 - 64 CPU; sin embargo, algunas de estas computadoras ejecutan PowerPC u otras CPU. Coincidiendo con el
el software que ejecuta en la CPU es fundamental; una distribución de Linux para una CPU no se ejecutará en
otro, con un par de excepciones. Uno de ellos es si ejecuta un emulador. Otro
es que x 86 - 64 CPU pueden ejecutar software x 86. Si un disco de instalación de Linux arranca en su
computadora, tiene la arquitectura correcta, con la salvedad de que una distribución x 86 - 64 es
generalmente preferible a una x distribución 86 en x 86-64 hardware. Si un disco de instalación no arranca,
es posible que esté utilizando la arquitectura incorrecta. Si la computadora tiene un sistema operativo Linux
distribución y desea actualizar, puede utilizar los procedimientos descritos aquí para identificar
su CPU.
Número de CPU o núcleos La mayoría de las computadoras modernas tienen al menos dos núcleos de CPU: CPU
componentes que actúan como CPU independientes. Una CPU de doble núcleo actúa como dos CPU. Linux
Puede usar múltiples núcleos para ejecutar dos programas de una manera que minimice la interferencia.
entre ellos, y los programas escritos para aprovechar múltiples núcleos pueden ejecutarse más rápido
utilizando ambos núcleos de lo que podrían hacerlo en una CPU de un solo núcleo. Para aprovechar estas funciones,
sin embargo, debe activar el tipo de procesador y las características de multiprocesamiento simétrico
Opción de soporte en el kernel, como se describe en el Capítulo 2. Si esta opción no está presente,
Linux utilizará su CPU de varios núcleos como si fuera una CPU de un solo núcleo, reduciendo en gran medida su
la velocidad de la computadora. Si cree que esto ha sucedido, debe asegurarse de que su computadora
realmente tiene múltiples núcleos (o múltiples CPU físicas, como algunas tienen).
El comando uname , descrito en detalle en el Capítulo 2, identifica el kernel de Linux
versión y modelo de CPU. Las opciones - m , - i , y - p son particularmente relevantes; idealmente, estos
Las opciones identifican la arquitectura (como x86 o x86 - 64 ), una identificación del fabricante.
cadena (como AuthenticAMD ) y el modelo de CPU completo (como AMD Athlon (tm) 64
Procesador X2 Dual Core 5400+ ). Desafortunadamente, a veces vuelven las dos últimas opciones
desconocido o la misma información que - m , por lo que esta información puede no ser tan útil como podría
estar en la búsqueda de problemas.
El comando lscpu proporciona más detalles sobre su CPU, incluido el número de
núcleos que proporciona, su número de modelo, su velocidad de reloj y las funciones de virtualización que admite:
Arquitectura:
x86_64
Modo (s) de operación de CPU:
64 bits
CPU (s):
2
Hilo (s) por núcleo: 1
Núcleo (s) por enchufe: 2
Socket (s) de CPU:
1
ID de proveedor:
AuthenticAMD
Familia de CPU:
15
Solución de problemas varios
531

Página 574
532
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
Modelo:
107
Paso a paso:
2
CPU MHz:
2800.153
Virtualización:
AMD-V
Caché L1d:
64K
Caché L1i:
64K
Caché L2:
512K
Puede adquirir aún más información sobre su CPU examinando / proc /
pseudoarchivo cpuinfo . Los contenidos típicos se parecen a los siguientes:
procesador: 0
vendor_id: AuthenticAMD
familia de cpu: 15
modelo
: 107
nombre del modelo: AMD Athlon (tm) 64 X2 Dual Core Processor 5400+
paso
:2
cpu MHz
: 2800.153
tamaño de caché: 512 KB
identificación física: 0
hermanos
:2
ID de núcleo
:0
núcleos de cpu: 2
apicid
:0
apicid inicial: 0
fpu
: si
fpu_exception: sí
nivel de cpuid: 1
wp
: si
banderas
: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt
rdtscp lm 3dnowext 3dnow rep_bueno extd_apicid pni cx16 lahf_lm cmp_legacy
svm extapic cr8_legacy 3dnowprefetch lbrv
bogomips
: 5600.30
Tamaño TLB
: 1024 páginas 4K
tamaño clflush: 64
cache_alignment: 64
tamaños de dirección: 40 bits físicos, 48 bits virtuales
gestión de energía: ts fid vid ttp tm stc 100mhzsteps
En una CPU de varios núcleos, esta información se repite para cada núcleo de la CPU, excepto para
el valor de la primera línea ( procesador ), que se incrementa para cada CPU. Algunos de esta

Página 575
La información es extremadamente técnica, como el valor de cache_alignment . El elemento de los núcleos de la CPU
identifica el número de núcleos en la CPU. También puede ir a la página del fabricante de su CPU.
Sitio web para verificar las capacidades de la CPU. La línea del nombre del modelo le proporciona la CPU
el nombre del modelo y la familia de la CPU , el modelo y la información de pasos pueden ser útiles en
detallando la CPU precisa que tienes.
Usando información de uname , lscpu , / proc / cpuinfo , o el fabricante de su CPU,
puede determinar si necesita realizar cambios en la distribución que está utilizando o
las opciones de compilación de su núcleo. Si tiene varios núcleos (o varias CPU) pero solo
uno aparece en la salida / proc / cpuinfo , debe verificar que el tipo de procesador y
Características La opción de soporte de multiprocesamiento simétrico en el kernel está activa. (Activando
esta opción en CPU de un solo núcleo hace poco daño, por lo que generalmente es mejor activarla como
procedimiento estándar.)
Identificación del hardware integrado
Las placas base modernas incluyen invariablemente una amplia gama de dispositivos e interfaces de hardware.
Estos suelen incluir interfaces de teclado y mouse PS / 2, disquete y disco duro
controladores, un puerto Ethernet, interfaces USB, puertos seriales RS-232, un puerto paralelo y
hardware de sonido. Algunas computadoras incluyen otras interfaces, como IEEE - 1394 (también conocida como
Puertos FireWire); y algunas computadoras eliminan algunas de las interfaces más antiguas, como PS / 2 y
interfaces de disquete.
En cualquier caso, la mayoría de estos dispositivos se controlan mediante el chipset de la placa base. los
El kernel de Linux proporciona controladores para todos los principales conjuntos de chips de la placa base, pero identifica cuáles
los dispositivos que necesita pueden ser complicados. (El soporte de Linux para los últimos chipsets a veces
Sin embargo, se retrasa en la introducción del hardware unas semanas o meses).
para tener un manual para la placa base de la computadora, puede usarlo para identificar el chipset
la computadora usa. La mayoría de las computadoras fabricadas en los últimos años utilizan conjuntos de chips de Intel,
AMD, VIA o nVidia. Desafortunadamente, los números de modelo que figuran en los manuales del chipset a menudo
Se parecen poco a los números de modelo utilizados para identificar los conjuntos de chips en el kernel de Linux.
área de configuración. En caso de duda, incluya todos los controladores de su fabricante; el extra
los controladores tardarán unos segundos en compilarse y consumirán una pequeña cantidad de espacio en disco y,
si se compila en el kernel en lugar de como módulos, memory. Este es un pequeño precio a pagar
asegúrese de que su hardware sea compatible con su kernel.
Si no puede identificar su chipset leyendo un manual, es posible que deba recurrir a
herramientas de software para hacer el trabajo. La mayoría de los dispositivos de placa base se muestran como dispositivos PCI desde
una perspectiva de software, por lo que los procedimientos descritos en la siguiente sección, "Identificación de PCI
Dispositivos ”, funcionan para los componentes de la placa base.
Algunos dispositivos de placa base son manejados por conjuntos de chips secundarios. Esto es particularmente
común en hardware de gama alta que incluye dispositivos adicionales, como más de cuatro SATA
puertos o dos puertos Ethernet. Su manual debe identificar el chipset secundario utilizado para
estas funciones extra. Si usa software para identificar su hardware, debe estar seguro
reconocer el hecho de que puede tener dos conjuntos de chips diferentes y, por lo tanto, necesita dos
diferentes controladores, para manejar todos los puertos de un tipo determinado.
Solución de problemas varios
533

Página 576
534
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
A veces, puede solucionar problemas cambiando el puerto al que
hay un dispositivo conectado. Por ejemplo, es posible que no pueda iniciar su
computadora con su disco duro conectado a un puerto SATA, pero moviéndolo
a otro puerto permitirá que la computadora arranque. Esto puede suceder porque
de las limitaciones de BIOS o controladores con respecto a conjuntos de chips particulares y, por lo tanto,
los puertos que utiliza cada chipset. Si tiene suerte, el puerto problemático funcionará
lo suficientemente bien como para ser útil una vez que la computadora ha arrancado o para algún otro
dispositivo (un disco óptico en lugar de un disco duro, por ejemplo).
Identificación de dispositivos PCI
El estándar PCI define un conjunto de parámetros físicos y lógicos que permiten que las tarjetas enchufables
ser utilizado en cualquier computadora compatible con PCI. Los dispositivos PCI se conectan a la placa base de la computadora o
están integrados en la placa base directamente. En Linux, el comando lspci muestra información
en dispositivos PCI. La Tabla 11.4 resume las opciones de este comando.
TABLA 11.4 Opciones para lspci
Opción
Efecto
-v
Aumenta la verbosidad de la salida. Esta opción se puede duplicar
( - vv ) o triplicado ( - vvv ) para producir aún más salida.
-n
Muestra información en códigos numéricos en lugar de
traducir los códigos a los nombres del fabricante y del dispositivo.
- nn
Muestra los nombres del fabricante y del dispositivo y
sus códigos numéricos asociados.
-X
Muestra el espacio de configuración PCI para cada dispositivo como un
volcado hexadecimal. Esta es una opción extremadamente avanzada.
Triplicando ( - xxx ) o cuadruplicando ( - xxxx ) esta opción muestra
información sobre más dispositivos.
-b
Muestra números de IRQ y otros datos como los ven los dispositivos
en lugar de como lo ve el kernel.
-t
Muestra una vista de árbol que describe la relación entre
dispositivos.
- s [[[[ dominio ]:] bus ]:]
[ ranura ] [. [ func ]]
Muestra solo los dispositivos que coinciden con las especificaciones enumeradas.

Página 577
Usado sin ninguna opción, lspci produce información resumida sobre cada uno de los
dispositivos PCI de la computadora:
$ lspci
00: 00.0 Puente de host: Advanced Micro Devices [AMD] Puente de host RS780
00: 01.0 Puente PCI: Advanced Micro Devices [AMD] RS780 Puente PCI a PCI
(int gfx)
00: 07.0 Puente PCI: Advanced Micro Devices [AMD] RS780 Puente PCI a PCI
(Puerto PCIE 3)
00: 11.0 Controlador SATA: Controlador SATA ATI Technologies Inc SB700 / SB800
[Modo AHCI]
01: 05.0 Controlador compatible con VGA: ATI Technologies Inc Radeon HD 3200 Graphics
03: 06.0 Controlador Ethernet: Intel Corporation 82559 InBusiness 10/100 (rev 08)
Esta salida se ha editado por brevedad; la salida lspci en la mayoría
Es probable que las computadoras excedan las dos docenas de líneas.
Opción
Efecto
- d [ proveedor ]: [ dispositivo ]
Muestra datos en el dispositivo especificado.
- yo archivo
Utiliza el archivo especificado para asignar los ID de dispositivo y proveedor a
nombres. (El valor predeterminado es /usr/share/misc/[Link] ).
-m
Vuelca datos en un formato legible por máquina, destinado a
uso por scripts. Un single -m utiliza un compatible con versiones anteriores
formato, mientras que duplicar ( - mm ) utiliza un formato más nuevo.
-D
Muestra los números de dominio PCI. Estos números normalmente
no se muestran.
-M
Realiza una exploración en modo de mapeo de bus, que puede revelar
dispositivos ocultos detrás de un puente PCI mal configurado. Esto es
una opción avanzada que solo puede usar root .
- - versión
Muestra información sobre la versión.
Solución de problemas varios
535

Página 578
536
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
Puede utilizar esta salida para identificar sus dispositivos PCI, incluso si los controladores de Linux no están
gestionar correctamente el hardware. Por ejemplo, la salida anterior indica que el
La placa base utiliza un puente host AMD RS780 y un puente PCI a PCI, un ATI SB700 /
Controlador SB800 SATA, un chipset de gráficos ATI Radeon HD 3200 y un Intel 82559
Controlador de Ethernet. Puede utilizar esta información para buscar el soporte de controlador adecuado en
los menús de configuración del kernel de Linux, como se describe en el Capítulo 2. (Algunos dispositivos, como
como puente de PCI a PCI, puede que no requiera una configuración explícita; Identificación de dispositivo PCI
es más útil si ya sabe que un componente en particular, como un Ethernet
adaptador, no funciona correctamente).
En teoría, los dispositivos PCI se conectan a un tipo particular de tarjeta en la placa base. Como se ha señalado
Sin embargo, antes, muchos componentes que están integrados en la placa base parecen estar
Dispositivos PCI al software, incluido el comando lspci . En la salida anterior, el host
El puente, el puente PCI a PCI, el controlador SATA y el chipset de gráficos Radeon están integrados
en la placa base. El adaptador Intel Ethernet es una tarjeta enchufable. Algunas tarjetas enchufables
utilizan estándares distintos de PCI, pero siguen apareciendo en la salida lspci . Ejemplos comunes
incluyen los estándares del puerto de gráficos acelerado (AGP) y PCI Express (PCIe o PCI-E),
que se utilizan con mayor frecuencia para tarjetas de video. (PCIe se utiliza cada vez más para otros
con fines también.) Las tecnologías de tarjetas enchufables más antiguas, como la arquitectura estándar de la industria
(ISA) y Video Standards Electronics Association (VESA) Local Bus (VL - Bus), no son
detectado por lspci ; sin embargo, esos autobuses comenzaron a desaparecer alrededor del año 2000, por lo que
Es poco probable que los encuentre hoy.
Identificación de dispositivos USB
Los dispositivos USB normalmente se conectan externamente a la computadora. Puede comprobar para ver qué USB
los dispositivos se conectan mediante el comando lsusb , que es similar en muchos aspectos a lspci .
La tabla 11.5 resume las opciones de lsusb .
TABLA 11.5 Opciones para lsusb
Opción
Efecto
-v
Aumenta la verbosidad de la salida
-t
Muestra una vista de árbol que describe la relación entre dispositivos.
- s [[ bus ]:] [ devnum ]
Muestra solo los dispositivos que coinciden con las especificaciones enumeradas
- d [ proveedor ]: [ dispositivo ]
Muestra datos en el dispositivo especificado
- dispositivo D
Muestra información sobre el dispositivo especificado , que es un dispositivo
archivo en el árbol de directorios / dev
- - versión o - V
Muestra información sobre la versión.

Página 579
Tenga en cuenta que lsusb muestra información sobre ambos dispositivos conectados a su
computadora y en el controlador USB en la propia computadora. Usado sin opciones,
lsusb produce una salida como la siguiente:
$ lsusb
Bus 001 Dispositivo 001: ID 1d6b: 0001 Concentrador raíz de Linux Foundation 1.1
Bus 002 Dispositivo 001: ID 1d6b: concentrador raíz 0002 Linux Foundation 2.0
Bus 002 Dispositivo 002: ID 04b8: 0119 Seiko Epson Corp. Perfection 4490 Photo
Bus 002 Dispositivo 008: ID 04e8: 681d Samsung Electronics Co., Ltd
Este ejemplo muestra cuatro dispositivos. Los dos primeros, identificados como concentradores raíz, representan el
Controladores USB en la propia computadora. Estos controladores manejan dispositivos USB 1.1 y 2.0,
respectivamente. Las siguientes dos entradas son para dos dispositivos USB que están conectados a la computadora:
un escáner Epson Perfection 4490 y un teléfono celular Samsung. Puede obtener adicionales
información mediante el uso de la opción - v (tenga en cuenta que es una - v minúscula ; la mayúscula - V tiene una
efecto, como describe la Tabla 11.5). Utilice - s , - d o - D para restringir esta salida a un dispositivo específico.
El número de identificación, como 04b8: 0119 para el escáner Epson, puede ser útil para crear
reglas de udev , como se describe en el Capítulo 3. Puede usar estos números con idVendor y
idProduct atributos, como sigue:
ATTR {idVendor} == ”04b8”, ATTR {idProduct} == ”0119”, SYMLINK + = ”escáner”
MODE = ”0660”, OWNER = ”lisa”, GROUP = ”escáner”
Este ejemplo crea un enlace simbólico, / dev / scanner , que apunta a Epson
escáner. Este ejemplo también establece los permisos (modo), propietario y grupo del dispositivo.
Si puede acceder a un dispositivo de hardware como root pero no como un usuario normal,
lo más probable es que el problema sea de permisos en el nodo de su dispositivo. Tú
puede superar estos problemas temporalmente mediante el uso de chown o chmod en el
nodo de dispositivo; sin embargo, para solucionar el problema de forma permanente, debe crear
una regla udev que establece la propiedad o el modo del archivo del dispositivo en algo
apropiado. Este consejo es válido para USB, PCI y otros tipos de hardware.
Identificación del uso de recursos del hardware
El capítulo 4 describe cómo el hardware del disco utiliza ciertos recursos de hardware, interrupciones y
líneas de acceso a memoria (DMA). Los discos no son los únicos dispositivos de hardware que utilizan estos recursos,
aunque. Puede obtener una descripción general de cómo lsdev utiliza sus recursos
comando, que no toma argumentos. Su salida es similar a la siguiente (editada por brevedad):
$ lsdev
Dispositivo
Puertos de E / S DMA IRQ
------------------------------------------------
0000: 00: 11.0
7000-700f 8000-8003 9000-9007 a000-a003
b000-b007
Solución de problemas varios
537

Página 580
538
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
0000: 03: 06.0
e800-e83f
acpi
9
ACPI
0800-0803 0804-0805 0808-080b
0810-0815 0820-0827 08ff-08ff
dma
0080-008f
dma1
0000-001f
dma2
00c0-00df
e100
e800-e83f
eth0
21
eth1
40
La utilidad lsdev a menudo no se instala de forma predeterminada. Puede que necesite instalar un
paquete llamado procinfo para obtener esta utilidad.
Esta salida resume las líneas DMA, interrupciones ( IRQ ) y puertos de E / S utilizados por
cada dispositivo. Los dispositivos pueden identificarse de varias formas, como por un dispositivo PCI (como
0000: 00: 11.0 en este ejemplo), como se muestra en la salida lspci ; por un nombre de componente (como
como acpi o eth0 en este ejemplo); o por un nombre de controlador (como e100 en este ejemplo). Tú
puede que necesite saber lo suficiente sobre su hardware para vincular varios identificadores usted mismo. por
Por ejemplo, en este ejemplo, e100 es un controlador de dispositivo Ethernet, maneja el dispositivo eth0 ,
y es el dispositivo PCI 03: 06.0. Por lo tanto, tres líneas de la salida anterior se aplican a este
dispositivo. Dos de estas líneas, 0000: 03: 06.0 y e100 , identifican el mismo uso de recursos (E / S
puertos e800 - e83f), pero el tercero, eth0 , identifica otro tipo de uso de recursos (IRQ 21).
Utilizado como herramienta de depuración, lsdev puede ayudarlo a rastrear el hardware que compite por
uso de los mismos recursos. Tal competencia puede resultar en un rendimiento lento, sistema
fallas o hardware inaccesible. Si encuentra tal competencia, puede intentar deshabilitar un
dispositivo no utilizado descargando su módulo de kernel o deshabilitándolo en el BIOS, o puede usar
opciones del cargador de arranque o del módulo del kernel para cambiar el uso de recursos del dispositivo. (Tendrás que
consulte la documentación del conductor para conocer las opciones relevantes).
Es poco probable que las IRQ sean un problema en el hardware moderno.
EJERCICIO 11.1
Identificación de su propio hardware
En este ejercicio, utilizará los métodos que se acaban de describir para identificar algunas de las claves
componentes de hardware en su propia computadora. Debe comenzar por iniciar sesión y, si
utiliza un entorno GUI, abriendo una consola en modo texto, como xterm o Terminal
programa. En este shell, siga estos pasos:
1. Escriba uname - mip . El resultado debe ser información básica sobre su CPU: la máquina
tipo de hardware ( - m ), la plataforma de hardware ( - i ) y la identificación del procesador
tipo ( - p ). Tenga en cuenta que algunas computadoras producen información más completa que otras.

Página 581
2. Escriba cat / proc / cpuinfo . Verá información más detallada sobre su CPU, incluyendo
informes más fiables de los elementos que uname también produce.
3. Escriba lspci . El resultado será una lista de los dispositivos PCI de la computadora, incluidos muchos dispositivos
que están integrados en la placa base. Estudie esta lista e intente analizarla para obtener
información, como el fabricante y el número de modelo del chipset de vídeo, el disco
el chipset del controlador, el chipset Ethernet, el chipset USB, el chipset de audio y cualquier otro
dispositivos interesantes que pueda haber instalado.
4. Si tiene un manual para su computadora o placa base, verifique sus especificaciones
(generalmente impreso en las primeras páginas) para intentar hacer coincidir los dispositivos que identificó en
paso 3 con lo que especifica el fabricante. Tenga en cuenta que los números de modelo pueden diferir
porque los mismos dispositivos suelen tener varios nombres.
5. Escriba lsusb . El resultado debería ser una lista de dispositivos USB. Si no hay dispositivos USB conectados
computadora, esta lista puede contener nada más que el controlador USB de la placa base. Si
tiene más dispositivos, intente hacer coincidir cada uno con el hardware físico que ve frente a usted.
6. Conecte o encienda un nuevo dispositivo USB; o si un dispositivo que no es crítico, como una impresora
o escáner, ya está enchufado, apáguelo o desconéctelo.
7.
Escriba lsusb de nuevo. Observe cómo ha cambiado la lista de dispositivos.
8. Escriba lsdev . Estudie esta salida en busca de dispositivos que compartan canales DMA, IRQ o E / S
puertos Si encuentra tales recursos compartidos, use lspci u otros medios para intentar determinar
si se trata realmente de un conflicto o simplemente se identifica el mismo dispositivo con varios nombres.
Habiendo realizado este ejercicio, debería tener una mejor idea de qué hardware
la computadora está usando. Realmente tomando decisiones y resolviendo problemas basados en tales
Sin embargo, la información requiere más conocimiento y experiencia. Por ejemplo, no puedes
saber si su CPU es un casco antiguo, una CPU moderna aburrida o la última
tecnología sin saber dónde encaja ese modelo en la constelación de CPU disponibles
hoy (y quizás en el pasado). Puede realizar una investigación adicional sobre cualquiera o todos los
componentes que ha identificado al hacer búsquedas en la Web, leer manuales y verificar
sitios web de los fabricantes.

Identificación de módulos de kernel cargados


El Capítulo 2 describe tres herramientas que pueden ser útiles para rastrear y solucionar problemas.
relacionados con los módulos del kernel: lsmod , insmod y modprobe . La utilidad lsmod enumera los módulos
que están cargados, insmod carga un solo módulo y modprobe carga un módulo y todos esos
de la que depende. Idealmente, no necesitará utilizar estas utilidades, ya que Linux normalmente
carga los módulos correctos automáticamente; sin embargo, a veces esta función automática falla,
en cuyo caso estas herramientas son útiles.
Si parte de su hardware no funciona, puede intentar determinar si el
El módulo del kernel se carga mediante lsmod . Si no ve la entrada adecuada, es posible
que usar insmod o modprobe para cargar el módulo solucionará el problema. Debieras
Solución de problemas varios
539

Página 582
540
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
recuerde, sin embargo, que los controladores a veces están integrados en el archivo principal del kernel en lugar de
existentes como módulos cargables. La utilidad lsmod ignora los controladores integrados en el kernel; lo harás
necesita usar dmesg o revisar la configuración de su kernel para identificar controladores y otras características
que están integrados directamente en el kernel.
Los archivos del módulo del kernel se almacenan en el árbol de directorios / lib / modules , normalmente
en un subdirectorio que lleva el nombre de la versión del kernel a la que los módulos
pertenecer a. La utilidad insmod requiere una ruta completa al módulo para ser
cargado, pero modprobe no.
Parte del problema con el uso de lsmod para determinar si un controlador se está cargando correctamente
es averiguar qué controlador es el adecuado para su hardware. El primer paso para responder
esta pregunta es para identificar correctamente su hardware, como se describe anteriormente en "Identificación
Hardware. ”Hecho esto, puede utilizar varias técnicas para identificar el controlador correcto:
Buscando en la Web Una búsqueda en la Web a menudo puede dar como resultado la respuesta; buscar en el hardware
fabricante y modelo junto con cadenas como Linux o kernel de Linux .
Examinar las opciones del kernel Puede iniciar una herramienta de configuración del kernel y escanear manualmente
para el nombre del hardware. El nombre del módulo del kernel aparece en mayúsculas en el
área de descripción. Por ejemplo, la Figura 11.1 muestra la opción de configuración para JMicron
Controladores de disco PATA; el controlador del kernel aparece como PATA_JMICRON . El nombre del módulo
ser el mismo que este valor pero convertido a minúsculas - pata_jmicron en este ejemplo.
FIGURA 11.1 La herramienta de configuración del kernel de Linux proporciona el nombre de cada kernel
opción en el panel de descripción.

Página 583
Escaneo del archivo de configuración del kernel El archivo .config en el árbol de fuentes del kernel
proporciona nombres de controladores pero con la cadena CONFIG_ adjunta, como en CONFIG_PATA_JMICRON
para el controlador pata_jmicron . Si el controlador está configurado para compilarse, este valor se establecerá en y
(para compilación en el kernel) om (para compilación como módulo), como en CONFIG_PATA_
JMICRON = m . Intente usar grep o la función de búsqueda de un editor de texto para localizar líneas que contienen
el nombre del fabricante o el número de modelo del dispositivo. Tenga en cuenta, sin embargo, que los nombres
y los números de modelo a veces se pueden truncar o alterar, y los controladores para un modelo
De hecho, puede funcionar para toda una familia de dispositivos. Ocasionalmente fabricantes de dispositivos
fusionar o cambiar sus nombres, lo que puede hacer que la búsqueda de dichos nombres sea complicada o
confuso.
Consultar la documentación del kernel Archivos de documentación del kernel en la documentación
El árbol de directorios del directorio fuente del kernel de Linux puede proporcionar nombres para los controladores. Tú
puede usar grep , tal vez con su opción -r para realizar una búsqueda recursiva, para buscar en el
el nombre del fabricante o el número de modelo del dispositivo.
Uso de controladores del fabricante
Si está familiarizado con el mundo de Windows, es posible que esté acostumbrado a buscar
controladores de dispositivos en los sitios web de los fabricantes. Esta práctica a veces puede funcionar en Linux;
sin embargo, el nivel de soporte de Linux de los fabricantes de hardware es bastante variable.
Es posible que no encuentre ningún controlador de Linux en absoluto, o puede encontrar algo que resuelva
cualquier problema que esté experimentando.
Algunos fabricantes aportan controladores de código abierto al kernel de Linux, así como
ponerlos a disposición en sus sitios web o tomar los controladores estándar de Linux y hacer
ellos disponibles en su sitio web. En tales casos, los controladores proporcionados por el fabricante
Es poco probable que funcionen mejor que los controladores del último kernel de Linux.
Otros fabricantes proporcionan controladores propietarios en sus sitios web, o lanzan
controladores en sus sitios web mucho antes de que ingresen al kernel de Linux.
En tales casos, el uso de controladores proporcionados por el fabricante puede ayudarlo a obtener su dispositivo
trabajando.
Determinar en cuál de estas categorías cae un conductor determinado puede ser complicado. Su mejor apuesta
es a menudo descargar el controlador y probarlo. Cuando lo haga, siga las instrucciones proporcionadas
con el conductor. Es posible que deba tener disponible su propio código fuente del kernel de Linux,
y en algunos casos puede que necesite parchear y recompilar su propio kernel. (Capitulo 2
describe cómo hacer estas cosas).
Solución de problemas varios
541

Página 584
542
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel

Comprobación de archivos de registro


Los archivos de registro son herramientas muy útiles en la resolución de problemas: depuración de servidores que no se comportan
como espera, localizar evidencia de intrusiones en el sistema, etc. Primero debes saber
qué archivos de registro examinar en una situación determinada. Comprensión del problema: identificación
Las capacidades de los archivos de registro le ayudarán a utilizarlos de forma eficaz. Algunas herramientas también pueden ayudar en
esta tarea;
Estas herramientas pueden ayudarlo a escanear archivos de registro en busca de información, resumir el (a veces demasiado
detallado) información del archivo de registro, y así sucesivamente.
¿Qué archivos de registro son importantes?
Al usar archivos de registro, primero debe decidir cuáles son importantes. Desafortunadamente, el
Los nombres de los archivos de registro no están completamente estandarizados en todas las distribuciones, por lo que es posible que
deba
hurgar en los archivos de configuración de syslog , y tal vez en los archivos de registro,
para descubrir qué archivos son importantes. La tabla 11.6 resume algunos archivos de registro comunes (todos
los nombres de archivo son relativos a / var / log ).
Si un dispositivo funciona correctamente y se encuentra con el controlador de un fabricante, mi
El consejo es seguir el viejo adagio “Si no está roto, no lo arregles. "Reemplazo de un controlador que funciona
con uno de calidad desconocida podría funcionar, pero en el mejor de los casos, perderá parte de su tiempo. De
Por supuesto, si la documentación del conductor promete un rendimiento superior u ofrece seguridad
u otras correcciones de errores, es posible que desee probarlo incluso si su controlador actual parece
estar funcionando bien. Sin embargo, preste atención a las fechas; si el expediente tiene cinco años y advierte de
errores graves en el controlador del kernel estándar "actual", es probable que las correcciones hayan
desde que se ha incorporado al controlador que ya está utilizando.
TABLA 11.6 Archivos de registro comunes
Archivo de registro
Propósito
cron
Este archivo contiene información sobre la actividad relacionada con cron.
dmesg o arranque
.Iniciar sesión
Algunas distribuciones colocan el contenido del búfer de anillo del kernel en un registro
archivo con este nombre inmediatamente después del arranque. Esto asegura que el arranque -
El contenido del búfer de anillo del kernel será accesible incluso después de que el sistema
ha estado funcionando durante mucho tiempo.
lastlog
Este es un archivo de registro inusual; contiene, en forma binaria, datos sobre el último inicio de sesión
tiempos para todos los usuarios del sistema. Escriba lastlog para ver los datos de este archivo de registro
en forma legible por humanos.

Página 585
El archivo /etc/[Link] configura las funciones de registro del sistema, por lo que puede consultar
este archivo para saber dónde ubica su sistema los distintos tipos de datos registrados. Algunos servidores
registrar datos sin la ayuda de syslogd , por lo que es posible que deba consultar la configuración
archivos y documentación de los programas que desee supervisar. Por ejemplo, Samba
registra datos con frecuencia independientemente de syslogd , almacenando archivos en / var / log / samba o un
directorio similar.
Si no está seguro del propósito o la importancia de un archivo de registro, no dude en examinarlo. los
Las herramientas que se describen brevemente en “Uso de herramientas para ayudar a escanear archivos de registro” pueden resultar
útiles en esta tarea.
Para la identificación básica, es probable que less sea muy útil, como en less / var / log / messages . Esta
El comando muestra el archivo pantalla por pantalla, lo que debería darle alguna pista sobre el
contenido del archivo.
Uso de archivos de registro para identificar problemas
Puede usar archivos de registro para monitorear las cargas del sistema (por ejemplo, para determinar cuántos
documentos que ha entregado un servidor web), para comprobar si hay intentos de intrusión, para verificar la
correcto funcionamiento de un sistema, y anotar errores generados por ciertos tipos de programas.
De una forma u otra, todas estas funciones se pueden utilizar para identificar problemas. Ejemplos
de información que puede ser útil cuando está solucionando problemas incluyen lo siguiente:
Verificación de cargas pesadas Si un servidor funciona con lentitud, los archivos de registro pueden contener pistas en el
forma de una gran cantidad de entradas del servidor. Si un servidor ha experimentado una
aumentar la cantidad de clientes que maneja o el tamaño de los archivos que transfiere, es posible que necesite
para aumentar la capacidad de la computadora servidor para restaurar un buen rendimiento. La mayoría no servidor
Sin embargo, los programas no registran sus actividades, por lo que probablemente no podrá diagnosticar
problemas de carga similares causados por el aumento de la demanda de estaciones de trabajo de esta manera. Es probable que
Sin embargo, tengo la idea de que la carga de la estación de trabajo ha aumentado de una manera más directa, porque
los usuarios de la estación de trabajo deben saber que están ejecutando más programas o más recursos -
programas intensivos.
Archivo de registro
Propósito
mensajes
Este archivo de registro a veces contiene datos de registro de uso general, pero en muchos
sistemas enfatiza los datos de registro del kernel.
registro electrónico
Como puede adivinar por el nombre, este archivo contiene mensajes relacionados con el
sistema de correo electrónico.
seguro
Este archivo de registro contiene información relacionada con la seguridad.
syslog
Los datos de registro del sistema de uso general normalmente terminan en este archivo.
[Link]
Este archivo contiene información del servidor X sobre su ejecución más reciente.
Normalmente, se inicia un nuevo registro cada vez que se reinicia el servidor X.
Solución de problemas varios
543

Página 586
544
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
A veces, la acción de tala en sí misma puede contribuir sustancialmente
a los requisitos de entrada / salida de disco y CPU de un servidor. Si un servidor es
comportarse con lentitud, intente reducir su nivel de registro (para que registre menos
información).
Detección de intrusos Algunos problemas del sistema están relacionados con la presencia de un intruso.
Los intrusos modifican con frecuencia los archivos o las utilidades de su sistema, lo que afecta la
rendimiento o fiabilidad. A veces, sus acciones se reflejan en archivos de registro. Incluso el
La ausencia de entradas a veces puede ser una pista: los intrusos a menudo eliminan los archivos de registro, o al menos
eliminar entradas durante un período. Es posible que no note tales discrepancias en los archivos de registro a menos que
Sin embargo, examine los archivos de registro poco después de que se produzca un robo.
Funcionamiento normal del sistema Si un sistema se está comportando mal, la presencia y la información
en las entradas de rutina del archivo de registro a veces puede ayudarlo a precisar el problema, o al menos
eliminar posibilidades. Por ejemplo, suponga que su sistema funciona como un host dinámico
Servidor de protocolo de configuración (DHCP) para su red, distribuyendo direcciones IP a otros
sistemas, como se describe en el Capítulo 7, “Configuración de red avanzada. "Si sus clientes
no está recibiendo direcciones IP, puede consultar el archivo de registro en el servidor. Si ese archivo indica
que el servidor DHCP ha recibido solicitudes y otorgado concesiones en respuesta, puede concentrarse
su problema - esfuerzos de resolución de los clientes.
Entradas que faltan Si sabe que un programa debería estar registrando información pero
no puede localizarlo, esto puede ser una prueba de que el programa está mal configurado o no se está iniciando
correctamente. En algunos casos, las entradas que faltan pueden indicar problemas fuera de la computadora que está
examinando. Por ejemplo, suponga que configura Samba para registrar los intentos de acceso. Si no puedes
acceder al servidor Samba desde otro sistema, puede comprobar las entradas del archivo de registro de Samba. Si
esas entradas no están presentes, podría significar que Samba no se está ejecutando, que está mal configurado,
o que un problema de red (como un enrutador o firewall mal configurado) está bloqueando el acceso.
Mensajes de error La evidencia más directa de un problema en un archivo de registro suele ser un error
mensaje. Una entrada en el archivo de registro que dice error de autenticación o INICIO DE SESIÓN FALLIDO indica
una falla de autenticación, por ejemplo, que debería ayudarlo a enfocar su solución de problemas
esfuerzos. (Los usuarios a menudo ven mensajes diferentes a los que aparecen en los archivos de registro, o incluso ninguno
en absoluto.) Para mejorar esta capacidad, puede configurar muchos servidores y utilidades para registrar más
información de lo habitual; consulte la documentación del programa para más detalles. Sé consciente de
diferentes subsistemas producen mensajes de error que varían mucho en forma, por lo que un programa
Los mensajes de error se verán bastante diferentes a los de otros.
Los archivos de registro son más útiles cuando diagnostica problemas de software con el kernel,
servidores, herramientas de inicio de sesión de usuario y diversas otras utilidades de bajo nivel. Información de forma rutinaria
registrado en los archivos de registro incluye mensajes de inicio del kernel, operaciones del módulo del kernel, usuario
inicios de sesión, acciones cron, montaje y desmontaje del sistema de archivos, y acciones realizadas por muchos
servidores. Esta información puede reflejar hardware, kernel, aplicación, configuración e incluso
problemas del usuario.

Página 587
Uso de herramientas para ayudar a escanear archivos de registro
Los archivos de registro a veces pueden ser difíciles de usar porque a menudo acumulan datos a un ritmo rápido.
Esto es particularmente cierto cuando los registros de muchos programas se envían a un solo archivo o cuando ha
aumentó el nivel de registro en un programa en un esfuerzo por ayudar a identificar problemas. Por lo tanto,
Las herramientas para ayudar a escanear archivos de registro en busca de información importante son muy útiles. Tu puedes pensar
de estas herramientas en una de tres categorías: las que examinan los inicios de los archivos,
los que examinan los extremos de los archivos y los que se pueden utilizar para buscar archivos. Algunas herramientas
se puede utilizar para dos o incluso las tres de estas tareas.
La mayoría de los archivos de registro son propiedad de root y muchos solo pueden ser leídos por root .
Por lo tanto, es posible que deba adquirir privilegios de root antes de usar cualquiera de estos
herramientas, aunque las herramientas mismas pueden ser utilizadas por otros usuarios en
archivos que no son de registro.
Comprobación de los inicios de los archivos de registro
A veces sabe que la información que necesita aparece al comienzo de un archivo de registro. por
Por ejemplo, es posible que desee estudiar las primeras etapas del proceso de arranque, como se registra en / var /
log / dmesg o un archivo similar. Puede obtener dicha información en cualquiera de varios
formas. Una herramienta que tiene como objetivo específico mostrar el comienzo de un archivo es head . Usado
con solo un nombre de archivo como argumento, head muestra las primeras diez líneas de ese archivo. Usted puede
cambie el número de líneas con el argumento - n , como en head - n 20 [Link] para mostrar el
primeras 20 líneas de [Link] .
Si sabe que la información que desea revisar está cerca del comienzo de un archivo de registro, pero
no está seguro de su ubicación exacta, es posible que prefiera utilizar un programa de buscapersonas, como más
o menos . Cuanto más programa muestre un archivo una pantalla a la vez, sea cual sea el tamaño de su pantalla
es. Puede presionar la barra espaciadora para avanzar en el archivo una pantalla a la vez. la menor
el nombre del programa es un poco de broma, porque menos pretende ser mejor más ; lo hace
básicamente lo mismo pero admite más opciones dentro del programa, como buscar
(descrito brevemente en "Búsqueda de archivos de registro"). Ambos programas le permiten comprobar rápidamente
aunque las primeras líneas de un archivo.
Los editores de texto también pueden ser una buena forma de comprobar las primeras líneas de un archivo. La mayoría de los editores
de texto
abra el archivo y muestre sus primeras líneas cuando pase un nombre de archivo en la línea de comando.
Sin embargo, los editores de texto tienen algunos inconvenientes. Una es que podrías alterar accidentalmente
el archivo de registro, que no es deseable. Otro inconveniente es que abrir un archivo de registro en un texto
Es probable que el editor tarde más que usar head o menos para mostrar las primeras líneas. Esto es
particularmente cierto si el editor de texto o el archivo de registro es inusualmente grande.
Comprobación del final de los archivos de registro
La información se agrega al final de los archivos de registro. Por lo tanto, cuando esté realizando alguna operación
en una computadora y desea ver si sucedió como pretendía, esa información
es probable que aparezca al final de un archivo de registro, en lugar de al principio o en algún lugar del
medio. Por ejemplo, cuando inicia un nuevo servidor, las entradas que confirman la
Solución de problemas varios
545

Página 588
546
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
inicio exitoso (o mensajes de error relacionados con su falla en el inicio) es probable que aparezcan en
el final del archivo. Por lo tanto, la capacidad de verificar el final de un archivo de registro es muy útil.
El programa de cola es digno de mención a este respecto porque está diseñado para mostrar el último
pocas líneas (10 por defecto) de un archivo. Este programa es muy similar a head en muchos aspectos, excepto
por supuesto que muestra el final de un archivo en lugar del comienzo. La acción predeterminada es
suficiente para muchos propósitos si ejecuta el programa en un archivo de registro inmediatamente después
se ha registrado información. A veces, sin embargo, es posible que deba mostrar una serie de
líneas distintas a la predeterminada de 10. Para hacer esto, use la opción - n , como en tail - n 15 / var /
log / messages para mostrar las últimas 15 líneas de / var / log / messages .
Otra característica de la cola es el monitoreo en tiempo real: puede usar el programa para mantener un
Observe las adiciones a los archivos de registro a medida que ocurren. Es posible que desee hacer esto justo antes de realizar
alguna acción que desea monitorear; podrá ver las entradas de registro relevantes como
se agregan al archivo de registro. Para ello, pase el - f o - - seguimiento opción de cola , como en la cola
- f / var / log / messages . El resultado es una visualización inicial de las últimas entradas del registro, como es habitual;
sin embargo, la cola no termina inmediatamente. En cambio, sigue monitoreando el archivo de registro y
hace eco de nuevas entradas en la pantalla. Cuando haya terminado, presione Ctrl + C para matar la cola y recuperar
control de su caparazón.
Aunque no es tan conveniente como tail para mostrar un número fijo de líneas, el
less pager puede resultar útil para comprobar el final de un archivo de registro. Escriba menos nombre de archivo para mostrar
nombre de archivo ; luego escriba G o presione la tecla Esc seguida del símbolo mayor que ( > ). Esta
lo llevará al final del archivo. Si desea desplazarse hacia arriba en el archivo, escriba b o
presione Esc seguido de [Link] desplazarse hacia abajo escribiendo f , presionando la barra espaciadora, o
presionando Ctrl + V. Con estos comandos, puede examinar rápidamente las líneas finales de cualquier archivo,
incluidos los archivos de registro.
El comando less puede tardar un tiempo en procesar un comando grande o que cambia rápidamente.
archivo de registro. Si parece que no responde, espere un poco. Si el tamaño de un tronco
archivo está causando problemas, puede buscar en la configuración de rotación del archivo de registro,
como se describe en el Capítulo 12, “Solución de problemas del sistema II: Recursos del sistema
y el entorno de usuario. "
Al igual que al examinar el inicio de un archivo, se puede utilizar un editor de texto para examinar su final. Carga
un archivo de registro en un editor de texto y desplácese hasta el final del archivo de la forma que sea apropiada.
Sin embargo, al igual que con el examen del inicio de un archivo, este enfoque tiene el inconveniente de que podría
dar como resultado cambios accidentales en el archivo que se guarda. También puede ser lento, especialmente en
archivos de registro grandes o con grandes editores. Por otro lado, algunos editores notan cuando el archivo de registro
cambios y le permite cargar rápidamente los cambios. Esta función puede ser útil si lo desea
para monitorear los cambios a medida que ocurren.
Búsqueda de archivos de registro
A veces es necesario buscar información en archivos de registro. Por ejemplo, es posible que desee ver
todas las entradas creadas por Postfix o entradas en las que sabe que aparece la cadena eth0 . Usted puede
use cualquiera de las varias herramientas de búsqueda de texto para ayudar con dichas tareas. Estas herramientas pueden buscar

Página 589
uno o más archivos de texto y muestran líneas coincidentes, o pueden llevarlo a líneas coincidentes en
estos archivos para que pueda examinarlos en contexto.
El comando grep es la más básica de las herramientas de búsqueda de texto. Escriba el comando, un
una serie de opciones (incluida la cadena de búsqueda) y una especificación de archivo (que normalmente
incluye un comodín) para que busque en esos archivos la cadena especificada. Por ejemplo, para
encontrar todas las entradas de registro creadas por el servidor de correo Postfix, puede escribir grep postfix / var /
log / * . El resultado es una serie de líneas de salida, cada una de las cuales comienza con el nombre del archivo.
del cual se toma y concluye con la línea en cuestión. (Si la cadena se encuentra en un
binario, grep se lo dice, pero no intenta mostrar la cadena en contexto).
El comando grep es más útil cuando se buscan entradas en varios archivos de registro
simultáneamente, digamos, si no sabe en qué archivo está registrando información un servidor.
También puede ser útil si desea mostrar las entradas de registro de un servidor en particular o
aquellos que involucran a un solo usuario o por algún otro criterio que puede expresar fácilmente como un
cadena de búsqueda.
Si usa grep para buscar una cadena que es muy común, la salida es
es probable que se salga de la parte superior de la pantalla y posiblemente exceda el búfer
de una ventana de terminal GUI desplazable. Esto puede evitar que tome
un censo completo de archivos en los que aparece la cadena. Puedes canalizar el
salida a través de less , como en grep postfix / var / log / * | menos , para permitirte
para escanear la salida grep de una manera más controlada.
Otra forma de buscar archivos de registro es usando menos . Puede utilizar esta utilidad para ver una sola
archivo de registro. Una vez que esté viendo un archivo, presione la tecla de barra ( / ) seguida de una cadena de búsqueda, como en
/ postfix para localizar la primera aparición del sufijo de cadena en el archivo de registro. Si esa cuerda
está presente en el archivo, less lo lleva a ese punto y resalta la cadena. Pulsando el
La tecla de barra inclinada se mueve nuevamente a la siguiente línea que contiene la cadena de búsqueda. Esta característica puede
sea útil si necesita ver el contexto completo de la línea en cuestión. Si quieres ubicar
la última aparición de una cadena, presione Esc seguido del símbolo mayor que ( > ) para mover
hasta el final del búfer, y luego busque hacia atrás usando un signo de interrogación ( ? ; es decir, el
barra inclinada con un modificador Shift), como en ? postfix . Puede utilizar un editor de texto para realizar similares
búsquedas, pero con las mismas advertencias descritas anteriormente en "Comprobación de los inicios del registro
Archivos ”: los editores de texto pueden ser más lentos que herramientas como less , y puede alterar accidentalmente
el archivo de registro.
Uso de herramientas adicionales de análisis de archivos de registro
Examinar manualmente los archivos de registro con tail , less y herramientas similares puede ser informativo, pero
existen otras herramientas para ayudarlo a analizar sus archivos de registro. Uno de ellos es Logcheck, que forma parte
del paquete Sentry Tools ( [Link] ). Esta
El paquete viene con algunas distribuciones, como Debian. Desafortunadamente, requiere una feria
cantidad de personalización para su propio sistema, por lo que es más fácil de implementar si viene
con su distribución, preconfigurado para su formato de archivo de registro. Si quieres usarlo en otro
distribución, debe editar el archivo [Link] que está en el corazón del paquete. Esta
Solución de problemas varios
547
Página 590
548
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
file llama a la utilidad logtail que verifica el contenido del archivo de registro, por lo que debe configurar el script
para comprobar los archivos de registro que desea supervisar. También puede ajustar funciones como el usuario
quién debe recibir los informes de infracción y la ubicación de los archivos que contienen cadenas para las que
la utilidad debería buscar en los archivos de registro. Una vez que está configurado, llama a [Link] en un trabajo cron.
Logcheck luego envía por correo electrónico un informe sobre cualquier registro del sistema sospechoso al usuario definido en
[Link] ( root , por defecto).

Seguimiento de problemas de software


Los problemas potenciales no se limitan a problemas de hardware y controladores. El software también puede crear
dolores de cabeza para un administrador de sistemas. Por supuesto, muchos problemas de software son específicos del
paquetes particulares que los crean; sin embargo, se pueden utilizar algunas herramientas y técnicas para ayudar
resolver problemas que pueden ocurrir con una variedad de paquetes de software. Estos incluyen herramientas que
puede ayudar a rastrear las actividades de un programa de trabajo, identificando los módulos requeridos por un programa,
encontrar archivos abiertos y localizar cadenas en archivos binarios.
Seguimiento de las actividades de un programa
Lanzas un programa, y te molesta que se cuelgue, sin presentar una sola
mensaje de error que ayuda en el diagnóstico, solo falla de segmentación o algo similar
mensaje inútil. Este escenario es, lamentablemente, común.
Si está ejecutando un programa de GUI desde un elemento de menú de GUI, el primer paso a seguir es ejecutar
un programa de terminal y ejecute el programa que funciona mal desde el shell en modo texto. Incluso GUI
los programas a veces muestran mensajes de error en la salida estándar (también conocida como stdout) o error estándar
(stderr), que se muestra en un programa de consola si inicia el programa GUI de esa manera.
Los mensajes stdout y stderr se pierden si inicia el programa desde un icono o menú
artículo, sin embargo. Puede encontrar alguna pista útil si inicia el programa escribiendo su nombre.
Si eso falla, una forma de obtener algunas pistas sobre lo que va mal es rastrear el
las operaciones del programa usando el programa strace , que monitorea las llamadas al sistema
hace un programa. Para usarlo, ejecute strace y pásele el nombre del programa que está probando
usar, junto con las opciones que normalmente pasaría. El resultado será un copioso
cantidad de productos relacionados con las actividades del programa:
$ strace nedit [Link]
execve (“/ usr / bin / nedit”, [“nedit”, “[Link]”], [/ * 66 vars * /]) = 0
brk (0)
= 0x838000
mmap (NULL, 4096, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0) =
0x7f7ba4b94000
acceso ("/ etc / [Link]", R_OK) = -1 ENOENT (No existe tal archivo o directorio)
open (“/ usr / local / lib / tls / x86_64 / [Link].4”, O_RDONLY) = -1 ENOENT (No existe
archivo o directorio)
stat ("/ usr / local / lib / tls / x86_64", 0x7fff4df2a890) = -1 ENOENT (No existe tal archivo
o directorio)
open (“/ usr / local / lib / tls / [Link].4”, O_RDONLY) = -1 ENOENT (No existe tal archivo o
directorio)

Página 591
La salida continuará durante bastante tiempo; Solo he mostrado las primeras líneas de este
ejemplo. Cuando el programa falla, la salida, por supuesto, cesará. Puedes examinar
la salida en busca de pistas sobre lo que salió mal. Es probable que el problema se manifieste en una docena
o más líneas desde el final, por lo que es posible que deba desplazarse hacia atrás antes de encontrar algo.
Es posible que no se haya encontrado un archivo (varios ejemplos de este tipo aparecen en esta salida de muestra,
aunque no fueron problemas reales en este caso, ya que el programa finalmente encontró el
archivos en otro lugar), que el programa intentó una operación ilegal (como un intento de
dividir un número entre 0), o algo más.
Con la causa de la falla en la mano, es posible que pueda solucionarla o corregirla
total. Por ejemplo, si el programa estaba buscando un archivo que no pudo encontrar, tal vez
puede localizar e instalar el archivo que falta; tal vez sea un archivo de configuración, una biblioteca o un
archivo de fuente. Si el programa intenta dividir por 0, tal vez pueda determinar por qué
al hacerlo, podría ser un valor ilegal en un archivo de configuración o entrada de usuario, por ejemplo.
El comando ltrace es similar a strace , pero en lugar de monitorear las llamadas al sistema,
ltrace supervisa las llamadas a bibliotecas dinámicas. Si el programa falla debido a un problema con
las bibliotecas de soporte instaladas en la computadora, ltrace podría ayudarlo a localizar el
biblioteca para que pueda reemplazarlo. Alternativamente, puede actualizar o recompilar el
programa para que utilice las bibliotecas que ha instalado en su computadora. Como ejemplo,
compare las primeras líneas de salida de ltrace en el programa nedit con las de strace ,
mostrado anteriormente:
$ ltrace nedit [Link]
__libc_start_main (0x409d70, 2, 0x7fffd00baaf8, 0x4a2340, 0x4a2330 <sin terminar
...>
XtSetLanguageProc (0, 0x40b210, 0, 0, 0x7fc364fa9300) = 0x7fc3659bb980
XtToolkitInitialize (0, 0x40b210, 0, 0, 0x7fc364fa9300) = 0x7fc365bf71ac
XtCreateApplicationContext (16, 0xffffffff, 256, 0, 0x7fc3659e58b0) = 0x83b0c0
XtSetWarningHandler (0x49cc60, 32, 0, 0x83c350, 0x7fc364fa9ed8) = 0
XtAppSetFallbackResources (0x83b0c0, 0x720cc0, 0, 0x83c350, 0x7fc364fa9ed8) = 0
XmRepTypeInstallTearOffModelConverter (0x83b0c0, 0x720cc0, 0, 0x83c350,
0x7fc364fa9ed8) = 0
getenv ("NEDIT_HOME")
= NULO
getenv ("INICIO")
= "/ Casa / rodsmith"
strncpy (0x7398a0, "/ home / rodsmith", 4095)
= 0x7398a0
Identificación de bibliotecas necesarias
En teoría, las herramientas de administración de paquetes de Linux, como RPM Package Manager (RPM)
y las herramientas del paquete Debian, garantizan que todo el software en el que un programa determinado
relies está instalado. En la práctica, esta garantía a veces se viola: puede instalar
software fuera del sistema de paquetes, las dependencias se pueden enumerar incorrectamente en el paquete
archivos, los archivos se pueden eliminar accidentalmente sin la ayuda del sistema de paquetes, etc.
Solución de problemas varios
549

Página 592
550
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
El programa ldd a veces puede ser útil para identificar archivos de biblioteca que faltan, es decir,
código de programa complementario en el que se basa un programa binario para hacer su trabajo. Para usar ldd ,
pasarle la ruta completa a un programa ejecutable:
$ ldd / usr / bin / zip
[Link].1 => (0x00007fffbd5c5000)
[Link].1 => /lib/[Link].1 (0x00007f5fe625c000)
[Link].6 => /lib/[Link].6 (0x00007f5fe5f03000)
/lib64/[Link].2 (0x00007f5fe646d000)
Este binario de ejemplo tiene solo cuatro dependencias. El primero de ellos, linux - [Link].1 , es
el objeto compartido dinámico virtual (VDSO), que es parte del programa en sí y no necesita
le preocupan más. Las tres bibliotecas restantes se han encontrado en este sistema. los
los dos primeros, [Link].1 y [Link].6 , se denominan por su nombre sin una ruta completa
en el binario, y el sistema los ha ubicado en la ruta de la biblioteca. El tercero, / lib64 / ld -
linux - x86 - [Link].2 , se conoce por la ruta completa en el archivo binario del programa; debería
existen en esa ubicación exacta para trabajar.
Si una biblioteca que requiere un programa no está presente, la cadena no encontrada reemplaza la
ruta completa del programa a la derecha de la cadena => . Tal programa no se ejecutará correctamente;
es probable que vea un mensaje de error sobre la biblioteca que falta, y luego el programa
Terminar.
A veces, puede corregir los problemas de la biblioteca creando enlaces simbólicos. Por ejemplo,
si un binario se refiere a [Link].1 y este archivo no existe, pero si encuentra un archivo llamado
[Link].1.0 o [Link].1.2 , creando un enlace simbólico a este archivo bajo el
el nombre puede satisfacer el programa. No cree un vínculo con un número de versión diferente,
aunque, por ejemplo, si tiene [Link].2 , no cree un enlace desde ese a libfoo
.so.1 . En tales casos, debe rastrear la biblioteca de la versión correcta
o reemplace el programa para que use la biblioteca que tiene. El capítulo 12 cubre la biblioteca
gestión con más detalle.
Las bibliotecas pueden depender de otras bibliotecas. Así, un programa cuyo
las dependencias inmediatas de la biblioteca se cumplen todas pueden fallar al ejecutarse si una de sus
no se cumplen las dependencias de las bibliotecas. Puede ejecutar ldd en los archivos de la biblioteca
ellos mismos de una manera recursiva para verificar que todas las bibliotecas requeridas
están presentes.
Encontrar archivos abiertos
Algunos problemas pueden deberse a archivos abiertos de forma inconveniente. Los archivos abiertos pueden impedirte
de desmontar un sistema de archivos, por ejemplo. Puede identificar todos sus archivos abiertos con el
comando lsof , que se describió con referencia a sus características de red en el Capítulo 5,
“Configuración de redes. "Utilizado por sí mismo, este comando genera una lista de todos los
archivos en la computadora, junto con los usuarios que abrieron los archivos y otra información.

Página 593
Es probable que desee canalizar los resultados a través de grep para buscar una salida que incluya el
cadena especificada o utilizar el - u usuario1 [, usuario2 ...] opción de salida de límite a esos archivos abiertos
por el usuario o usuarios especificados. Por ejemplo, suponga que no puede desmontar / mnt / cdrom porque
un archivo está en uso en ese dispositivo. A continuación, puede escribir esto:
$ lsof | grep cdrom
bash 20139 paul cwd DIR 11,0 6144 1728 / mnt / cdrom
Esta salida revela que el usuario paul tiene un shell bash abierto que usa / mnt / cdrom
directorio. Si eres paul , puedes buscar este shell y cambiar a otro directorio para
habilitar el desmontaje del disco. De lo contrario, puede ponerse en contacto con este usuario para hacerlo o, utilizando root
privilegios, elimine el proceso infractor utilizando su número de ID de proceso (PID) (la segunda columna
de salida - 20139 en este ejemplo). Por supuesto, matar tales procesos puede molestar al usuario.
quién los posee, pero a veces tales acciones son necesarias.
Localización de cadenas en archivos binarios
A veces es útil poder ubicar cadenas en archivos binarios. Es posible que deba identificar
cuál de varios archivos de programa generó un mensaje en particular, por ejemplo; o tal vez tu
Necesita escanear un archivo de procesador de texto, pero no tiene un programa que pueda leer el
formato. La utilidad de cadenas a menudo puede ayudar en tales situaciones. Este programa busca
a través de un archivo binario para texto ASCII, o texto en otras codificaciones conocidas, y muestra el
cadenas resultantes en la pantalla. La salida se parece a esto:
$ cadenas capí[Link]
bjbjU
Capítulo 11: Solución de problemas del sistema I: Problemas de arranque y kernel
Los siguientes objetivos de Linux Professional Institute se tratan en este
capítulo:
213.1 Identificación de etapas de arranque y solución de problemas de cargadores de arranque (peso: 4)
213.2 Solución de problemas generales (peso: 5)
¡Por supuesto, el texto de este ejemplo continúa durante bastante tiempo! En la práctica, es posible que necesite
para canalizar los resultados a través de less o redirigirlos a un archivo. Algunas de las cadenas son falsas
alarmas - la primera línea de salida en este ejemplo, por ejemplo ( bjbjU ), no es parte del
documento. Encontrará muchas de estas falsas alarmas si aplica cadenas a un programa de Linux
expediente. Otras líneas de salida pueden ser de interés, según sus necesidades.
Algunos formatos de archivos binarios transforman los datos de tal manera que las cadenas
no ayudará. La suite ofimática [Link], por ejemplo, comprime su
archivos con formato ZIP, lo que significa que las cadenas no se pueden extraer de
sin primero descomprimir el archivo. El contenido de los archivos cifrados también incluirá
sin cadenas útiles.
Solución de problemas varios
551
Página 594
552
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
La tabla 11.7 resume algunas de las opciones comunes para el programa de cadenas .
Existen opciones adicionales, pero son relativamente exóticas; consulte la página de manual para cadenas de
detalles.
TABLA 11.7 Opciones comunes de cadenas
Nombre de opción largo
Nombre corto de la opción Descripción
- - todas
- una
Analiza todo el archivo. De forma predeterminada, cadenas
limita su búsqueda a secciones de archivos de programa
que se inicializan y cargan en la memoria.
Esta opción no tiene ningún efecto para los
archivos.
- - imprimir - archivo - nombre
-f
Muestra el nombre del archivo antes de cada
cuerda; útil cuando se pasan cadenas
múltiples nombres de archivo o comodines.
- - ayuda
N/A
Muestra un resumen de las opciones del programa.
- - bytes = #
-n#o-#
Muestra todas las cadenas que tienen # caracteres
o más largo. El valor predeterminado es 4 .
- - codificación = tipo
- tipo e
Busca cadenas con el tipo especificado
de codificación. Los valores legales para el tipo son s (7 bits
ASCII, el predeterminado), S (caracteres de 8 bits), b
(16 bits big - endian), l (16 bits little - endian),
B (32 bits grande - endian) y L (32 bits pequeño -
endian). Se aplican valores distintos de s (ASCII)
a codificaciones Unicode.

Resumen
La resolución de problemas es una habilidad que se aprende con el tiempo y por experiencia directa. Sin embargo,
puede obtener una ventaja en esta importante habilidad si comprende algunos principios básicos y
conociendo algunas de las utilidades que se utilizan con más frecuencia en la resolución de problemas. Este capítulo
presentó parte de esta información, comenzando con la resolución de problemas de arranque. Bota
Los cargadores presentan mensajes de error que pueden ser crípticos y que requieren acciones específicas para
correcto. Los problemas de arranque también pueden ser el resultado de un disco RAM inicial incorrecto o dañado
o dificultades en los scripts de inicio de SysV o Upstart. Cuanto más tarde en el proceso, un problema de arranque
miente, es más probable que pueda iniciar la computadora lo suficiente para corregir el
problema al utilizar sus herramientas habituales. Si hay un problema muy temprano en el proceso de arranque, puede
necesita depender de un disco de recuperación de emergencia u otra herramienta especializada para corregir el problema.

Página 595
Muchas clases de problemas de hardware y software generales pueden causar dificultades.
El diagnóstico de problemas de hardware requiere que pueda identificar correctamente su hardware,
Localice el controlador o módulo del kernel relevante y recompile o reconfigure el software para solucionarlo.
el problema. Es posible que deba examinar el búfer circular del kernel o los archivos de registro. Los archivos de registro también
pueden
Ser crítico en la resolución de problemas de software y particularmente problemas con software de servidor.
Otros problemas de software se pueden resolver con la ayuda de herramientas que rastrean los
operación o que le permitan ver el contenido de los archivos binarios de software o los datos binarios
archivos que produce el software.
Examen esencial
Resuma dónde reside el código del cargador de arranque. El código del cargador de arranque puede residir en el Master
Boot Record (MBR) del disco duro, en los sectores oficialmente no asignados inmediatamente
siguiendo el MBR, en una partición de arranque BIOS en un disco GPT, en el sector de arranque de un
partición o disquete, en archivos en una partición del sistema EFI en una computadora basada en EFI, y
en archivos en el árbol de directorios de Linux / boot . Además, utilidades para manipular el cargador de arranque
puede existir en las ubicaciones normales para archivos ejecutables en un sistema Linux. Arranque sin Linux
Los cargadores también pueden almacenar código en otras ubicaciones.
Explique cómo interactúan el cargador de arranque, el kernel y el disco RAM inicial. La bota
Loader lee el kernel y los archivos del disco RAM inicial del disco duro y almacena ambos
ellos en la memoria. El cargador de arranque luego ejecuta el kernel, pasándole la ubicación del
disco RAM inicial en la memoria, así como cualquier otra opción especificada en el cargador de arranque
archivo de configuración. A partir de entonces, el kernel usa el disco RAM inicial para cargar módulos y ejecutar
utilidades necesarias para montar el sistema de archivos raíz ( / ) de Linux normal .
Resuma las características de los tres principales cargadores de arranque basados en disco de Linux en
ordenadores. LILO es el más antiguo de los cargadores de arranque de BIOS más populares. Es un simple cargador de arranque
que puede cargar un kernel o una cadena de Linux: cargue un cargador de arranque para otros sistemas operativos. Aunque LILO
sigue siendo un cargador de arranque viable, ha sido reemplazado en gran medida por GRUB Legacy, que puede
cargar directamente una gama más amplia de kernels de SO. GRUB Legacy también puede cargar su configuración
en el momento del arranque, simplificando la reconfiguración. GRUB Legacy está siendo reemplazado por
GRUB 2, que es más sofisticado y admite módulos cargables para el sistema de archivos
soporte y otras características.
Describe cómo se inician los servicios del sistema Linux. La mayoría de los servicios se lanzan a través de SysV
guiones o por Upstart. Los scripts de SysV se encuentran en /etc/init.d o /etc/rc.d/init.d ;
Los archivos de configuración de Upstart se almacenan en / etc / init . El sistema de arranque correspondiente ejecuta el
scripts relevantes o inicia los servicios bajo la dirección del archivo de configuración, comenzando así
cada subsistema por turno.
Compare el búfer de anillo del kernel y los archivos de registro del sistema. El búfer de anillo del núcleo mantiene un
registro temporal de mensajes generados por el kernel. Estos mensajes se relacionan con el hardware
y acciones de kernel de bajo nivel. Los archivos de registro del sistema a veces pueden contener mensajes similares, pero
Examen esencial
553

Página 596
554
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
también contienen mensajes de servidores y otros demonios. Estos mensajes de registro del sistema podrían
proporcionar información sobre fallos del servidor, inicios de sesión normales de usuarios, intentos fallidos de inicio de sesión, etc.
Tanto el búfer de anillo del kernel como los archivos de registro del sistema pueden registrar información tanto
operaciones anormales.
Resuma las herramientas para aprender sobre hardware. La utilidad uname proporciona información básica
sobre la CPU, mientras que el archivo / proc / cpuinfo proporciona información más detallada sobre
la CPU. Las utilidades lspci y lsusb proporcionan información sobre dispositivos PCI y USB,
respectivamente. Esta información le permite verificar que el dispositivo sea visible para el sistema,
pero no que exista ningún controlador para acceder a él. La utilidad lsdev resume información sobre
cómo los dispositivos utilizan los recursos de hardware (interrupciones, canales DMA y puertos de E / S).
Explique cómo se administran los módulos del kernel en Linux. Los módulos del kernel son controladores y
otras características del kernel que se pueden cargar y descargar después de que el kernel se haya iniciado. los
La utilidad insmod carga un solo módulo del kernel, mientras que modprobe carga un módulo y todos esos
de la que depende. Puede aprender qué módulos se cargan con el programa lsmod .
Normalmente, Linux carga los módulos del kernel cuando son necesarios, pero es posible que deba
intervenir manualmente si estos mecanismos automáticos se averían.
Resuma las herramientas que pueden ayudar a rastrear las actividades de un programa. Puedes usar el strace
programa para rastrear las llamadas al sistema de un programa, lo que puede ayudarlo a identificar la causa de ciertos
choques. De manera similar, ltrace rastreará las llamadas a la biblioteca de un programa. El programa ldd identifica
todas las bibliotecas en las que se basa un programa.
Página 597
Preguntas de revisión
1. ¿Dónde podría encontrar el BIOS un cargador de arranque?
A. RAM
B. / dev / boot
C. MBR
D. / dev / kmem
2. ¿Cuál de los siguientes archivos podría editar para configurar GRUB Legacy? (Elige todo eso
aplicar.)
A. /boot/grub/[Link]
B. /etc/[Link]
C. /boot/grub/[Link]
D. /boot/[Link]
3. ¿Qué acción debe tomar después de editar el archivo /etc/[Link], asumiendo que este archivo es
relevante para su instalación?
A. Escriba lilo - instalar como root.
B. Edite /boot/grub/[Link] como root.
C. Edite /boot/lilo/[Link] como root.
D. Escriba lilo como raíz.
4. ¿Qué herramienta puede usar para deshabilitar completamente el hardware que está integrado en la computadora?
¿tarjeta madre?
A. La utilidad insmod
B. La utilidad de configuración del firmware
C. Comando hwdel de GRUB 2
D. El comando initrd
5. ¿Qué dos componentes de software es probable que GRUB 2 cargue en un sistema basado en EFI? (Seleccione
dos.)
A. Módulos de controlador EFI
B. Un kernel de Linux
C. El contenido de / etc / passwd
D. Un disco RAM inicial
Preguntas de revisión
555

Página 598
556
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
6. Intentas arrancar tu computadora pero solo obtienes un indicador grub>. Luego escribe el
siguiente comando y recibir la respuesta que se muestra:
grub> ls
(hd0) (hd0,1)
¿Dónde es más probable que se encuentre su kernel de Linux?
A. En / dev / hda0
B. En / dev / hd0
C. En / dev / sd0
D. Encendido (hd0,1)
7.
¿Qué reside normalmente en /etc/init.d, si está presente en la computadora Linux?
A. Archivos de configuración advenedizos
B. Archivos de configuración del cargador de arranque
C. Scripts de inicio de SysV
D. La utilidad de configuración del BIOS
8. Ha compilado un nuevo kernel y ha creado una nueva configuración de GRUB 2 para él. Justo después de
reinicia, sin embargo, se da cuenta de que escribió mal el nombre de archivo del nuevo kernel en el
Archivo de configuración de GRUB. ¿Cómo puede arrancar el nuevo kernel a pesar de este error?
A. Seleccione la entrada casi correcta en el menú de GRUB y escriba E para editarla.
B. Seleccione la opción Crear entrada del menú de GRUB para crear una nueva entrada.
C. Seleccione la entrada Auto - Detect OSs del menú de GRUB para detectar su nuevo kernel.
D. No puedes.
9. Instalas Linux en una computadora con un solo disco SATA y usaste GRUB 2 para arrancarlo. En
Al experimentar con las utilidades de disco, accidentalmente sobrescribe la entrada MBR de GRUB. Tu usas
Super GRUB Disk para iniciar su instalación normal de Linux. ¿Cómo se puede volver a instalar?
GRUB al MBR para que pueda arrancar normalmente sin usar Super GRUB Disk en el
¿futuro?
A. Edite / boot / mbr / contents como root.
B. Escriba mbr - restore / dev / sda como root.
C. Escriba grub - install / dev / sda como root.
D. Edite /boot/grub/[Link] como root.
10. Desea examinar el búfer de anillo del kernel para depurar un problema de hardware. Como harias
¿hacer esto?
A. Escriba ringbuffer en un símbolo del sistema.
B. Escriba dmesg en el símbolo del sistema.
C. Reinicie y agregue el anillo de cadena a la línea del kernel en GRUB.
D. Instale un dispositivo Token Ring y examine su salida.

Página 599
11. Ha instalado una nueva tarjeta PCI Ethernet, pero parece que no funciona. Que puedes
Qué hacer para verificar que el hardware sea visible para Linux?
A. Escriba ping [Link] para verificar la conectividad.
B. Compruebe que el cable Ethernet esté bien conectado.
C. Escriba cat / proc / ethernet en un símbolo del sistema.
D. Escriba lspci en el símbolo del sistema.
12. Un administrador escribe lsusb en un símbolo del sistema de Linux. ¿Qué tipo de información
¿Aparecer?
A. Información de identificación básica en dispositivos USB, incluidos los controladores USB y todos
dispositivos adjuntos
B. Información sobre los controladores y las capacidades detalladas de todos los dispositivos USB conectados al
computadora
C. Un informe sobre el éxito o el fracaso al cargar la pila de controladores USB
D. Un resumen de la cantidad de datos que se han transferido hacia y desde dispositivos USB
desde que arrancó la computadora
13. ¿Cuál de los siguientes comandos carga un módulo del kernel? (Elija todas las que correspondan).
A. rmmod
B. modprobe
C. lsmod
D. insmod
14. Utiliza una unidad flash USB y, mientras la unidad aún está montada, escriba lsmod , pero no verá
entradas para los módulos del kernel que sabe que son necesarios para acceder a una unidad flash USB. Por qué
podría ser esto?
A. El comando lsmod muestra información solo sobre los controladores que utiliza el usuario
quien tecleó el comando.
B. El comando lsmod muestra información solo sobre los controladores que están trabajando en el
momento en el que se escribe el comando.
C. El comando lsmod muestra información solo sobre los controladores que se crean como módulos,
no los que están integrados directamente en el kernel.
D. El comando lsmod muestra información solo sobre los controladores que utiliza el hardware
dispositivos internos a la computadora.
15. Una computadora ha estado funcionando ininterrumpidamente durante seis meses y desea examinar su
búfer de anillo del núcleo para determinar cómo detectó inicialmente sus tarjetas Ethernet. Tu encuentras eso
esta información no está presente, sin embargo, debido a numerosos mensajes del kernel hechos desde
luego. ¿Dónde podría buscar esta información en este momento?
A. / proc / dmesg
B. / var / log / eth n , donde n es el número de dispositivo Ethernet
C. / var / log / dmesg
D. / tmp / ringbuffer
Preguntas de revisión
557

Página 600
558
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
16. ¿Cómo puede encontrar detalles técnicos sobre la CPU de su computadora, como su velocidad de reloj y
¿numero de nucleos?
A. cat / proc / cpuinfo
B. menos / var / log / cpu
C. uname - yo
D. lspci - - cpu
17. Sospecha que dos dispositivos pueden estar compartiendo por error el mismo espacio de E / S. Como puedo
pruebas esta hipótesis?
A. Escriba cat / proc / interrupts
B. Escriba cat / proc / dma
C. Escriba lsmod
D. Escriba lsdev
18. Un programa se bloquea misteriosamente y no deja mensajes de error útiles. De los cuales
Las siguientes utilidades pueden proporcionar algunas pistas sobre el origen del problema. (Seleccione dos.)
A. strace
B. cuerdas
C. uname
D. ltrace
19. Un servidor NFS, smallserver, tiene solo una computadora cliente, smallclient. Quieres callar
servidor pequeño para mantenimiento, pero antes de hacerlo, debe asegurarse de que nadie
está accediendo a sus archivos en este momento. ¿Qué comando puede escribir en smallclient para hacer
¿esta? (Los recursos compartidos del servidor pequeño están todos montados en / sharedfiles en el cliente).
A. arriba | grep archivos compartidos
B. lsof | grep archivos compartidos
C. lsdev | grep archivos compartidos
D. lsmod | grep archivos compartidos
20. ¿ Para cuál de los siguientes tipos de archivo las cadenas no devolverán datos que podrían
¿significativo?
A. Un archivo de registro del sistema (/ var / log / messages) comprimido con gzip
B. Un conjunto de archivos de texto sin formato archivados (pero no comprimidos) con tar
[Link] archivo de programa binario (para un ejecutable de PowerPC), cuando las cadenas se ejecutan en un x 86
computadora
D. Un archivo PostScript (para imprimir) creado en 1989

Página 601
Respuestas a las preguntas de repaso
1. C. El Master Boot Record (MBR) puede contener un pequeño cargador de arranque, lo que hace que la opción C sea correcta.
Si se requiere más espacio, el cargador de arranque debe cargar un cargador de arranque secundario. Aunque el
El cargador de arranque se carga en la RAM, no se almacena allí permanentemente porque la RAM es volátil
almacenamiento, por lo que la opción A es incorrecta. Tanto / dev / boot como / dev / kmem son referencias a archivos en
Sistemas de archivos Linux; son significativos solo después de que el BIOS haya encontrado un cargador de arranque y lo haya ejecutado
y se han producido muchos otros procesos de arranque, por lo que las opciones B y D son incorrectas.
2. A, C. El nombre del archivo de configuración oficial de GRUB Legacy es /boot/grub/[Link];
sin embargo, algunas distribuciones usan /boot/grub/[Link] en su lugar. Por tanto, las opciones A y C
ambos son correctos. Las opciones B y C son ficticias.
3. D. LILO se basa en la utilidad lilo para leer /etc/[Link] y escribir código binario
que refleja el archivo de configuración en ubicaciones que el cargador de arranque puede leer. Así,
después de editar /etc/[Link], debe escribir lilo para reinstalar el cargador de arranque, como opción
D especifica. El comando lilo - install de la opción A es ficticio (aunque hay un grub -
instalar comando para instalar GRUB). El archivo /boot/grub/[Link] es un GRUB 2
archivo de configuración, por lo que es irrelevante para la configuración de LILO y la opción B es incorrecta. Ahí
no es un archivo /boot/lilo/[Link], por lo que la opción C es incorrecta.
4. B. Las computadoras vienen con herramientas de configuración de firmware que pueden, entre otras cosas,
deshabilite completamente algunos de los dispositivos de hardware que están integrados en la computadora. Así,
la opción B es correcta. La utilidad insmod de Linux puede cargar un módulo del kernel. Esta acción no
deshabilitar el hardware, pero podría hacerlo disponible en Linux, por lo que la opción A tiene, en todo caso,
lo contrario del efecto especificado. La opción C describe un comando ficticio. No hay
comando initrd estándar, aunque este es un término que se refiere a un disco RAM inicial,
que se usa para contener módulos del kernel y utilidades de configuración que el kernel de Linux puede usar
antes de que haya montado su último sistema de archivos raíz (/).
5. B, D. Ya sea que se ejecute en una computadora basada en BIOS o en una computadora basada en EFI, cuando se inicia
Linux, GRUB 2 carga un kernel de Linux y (generalmente) un disco RAM inicial, por lo que las opciones B y D
son correctos. Los módulos del controlador EFI pueden ser cargados por EFI antes de iniciar GRUB 2, pero
GRUB 2 no los carga, por lo que la opción A es incorrecta. Linux lee el contenido de
/ etc / passwd mucho después de que GRUB 2 haya terminado su trabajo, por lo que la opción C es incorrecta.
6. D. La salida del comando GRUB ls revela que GRUB puede ver un disco duro completo,
que identifica como (hd0), y que este disco tiene una partición, que GRUB identifica como
(hd0,1). Por tanto, existe una ubicación posible para el kernel de Linux: (hd0,1). Esta partición
probablemente corresponde a / dev / sda1 de Linux, pero podría ser / dev / hda1 o algún otro
dispositivo. Las opciones A, B y C describen descriptores de dispositivos Linux no estándar, por lo que ninguno de
ellos es una ubicación probable para el kernel. El problema que hizo que GRUB mostrara su grub>
El indicador podría ser lo suficientemente grave como para que GRUB no detecte un disco duro; así, el kernel
podría residir en otro lugar. Sin embargo, dada la información proporcionada, la opción D es la más
ubicación probable y es la única ubicación posible entre las especificadas.
Respuestas a las preguntas de repaso
559

Página 602
560
Capítulo 11 ■
Solución de problemas del sistema I: problemas de arranque y kernel
7.
[Link] mayoría de las distribuciones de Linux colocan los scripts de inicio de SysV en /etc/init.d o /etc/rc.d/
init.d, entonces la opción C es correcta. Los archivos de configuración advenedizos normalmente residen en / etc / init,
entonces la opción A es incorrecta. Los archivos de configuración del cargador de arranque de Linux normalmente residen en / etc /
[Link], / boot / grub o / boot / grub2, dependiendo del cargador de arranque en uso, así que la opción
B es incorrecto. La utilidad de configuración del BIOS está integrada en el hardware de la computadora, por lo que es
no es accesible desde el sistema de archivos de Linux, lo que hace que la opción D sea incorrecta.
8. A. Puede editar una entrada del menú de GRUB 2 seleccionándola y escribiendo E, como se describe en la opción
R. Sin embargo, tendrá que saber exactamente cuál fue su error o poder utilizar el
Shell de GRUB para localizar el nombre de archivo exacto. El menú interactivo de GRUB no tiene un Crear
Entrada o opción de detección automática de sistemas operativos, lo que hace que las opciones B y C sean incorrectas. Dado que la opción A es
correcta, la opción D no puede ser correcta.
9. C. La utilidad grub - install instala GRUB en el MBR o en otras ubicaciones especificadas en
el archivo de configuración de GRUB o en la línea de comando, por lo que la opción C es correcta. No hay
/ boot / mbr / contents o mbr - utilidad de restauración, por lo que las opciones A y B son incorrectas.
Aunque /boot/grub/[Link] es el archivo de configuración de GRUB 2, el hecho de que Super GRUB
El disco pudo arrancar la computadora significa que este archivo está lo suficientemente intacto como para arrancar Linux, por lo que
no necesita ser editado. Además, la edición de este archivo no corregiría el daño al
MBR, por lo que la opción D es incorrecta.
10. B. El comando dmesg muestra el contenido del búfer de anillo del kernel, que contiene el kernel
mensajes, por lo que la opción B es correcta. No hay un comando de ringbuffer estándar, por lo que la opción
A es incorrecta. Agregar un anillo a las opciones del kernel al arrancar no tendrá el valor deseado.
efecto, por lo que la opción C es incorrecta. Token Ring es un estándar de hardware de red, no una forma de
examine el búfer de anillo del núcleo, por lo que la opción D es incorrecta.
11. D. El comando lspci enumera todos los dispositivos PCI detectados, por lo que si la tarjeta está instalada
correctamente y funcionando, debería aparecer en la salida de lspci. Por tanto, la opción D es correcta.
Aunque ping puede ser una herramienta útil de diagnóstico de red, el uso de la opción A no
pruebe las tarjetas Ethernet, por lo que la opción es incorrecta. La opción B proporciona una red básica de sonido
consejos de depuración, pero no ayudará a verificar que la tarjeta sea visible para Linux. No hay
/ proc / ethernet, por lo que la opción C no ayudará.
12. A. El comando lsusb resume los dispositivos USB que están disponibles para la computadora, como
la opción A dice. Las opciones B, C y D son todas ficticias.
13. B, D. El comando modprobe carga un módulo y, si es necesario, todos aquellos en los que
depende. El comando insmod carga un módulo, pero solo si se cumplen todas sus dependencias.
Por tanto, las opciones B y D son correctas. El comando rmmod elimina un módulo y lsmod enumera
los módulos cargados, por lo que las opciones A y C son incorrectas.
14. C. Si un controlador está integrado en el archivo principal del kernel, lsmod no mostrará información sobre él. Así,
si los controladores relevantes están integrados en el kernel, el comportamiento observado se produciría porque
la opción C es una declaración correcta. El comando lsmod muestra información sobre los controladores que
se utilizan para atender las necesidades de otros usuarios, en controladores que están cargados pero que no funcionan activamente, y
en algunos tipos de dispositivos de hardware externos, al contrario de las opciones A, B y D, respectivamente.

Página 603
15. C. Muchas distribuciones almacenan una copia de la salida del búfer de anillo del kernel en / var / log / dmesg
justo después de que se inicie el sistema, por lo que la opción C es una ubicación probable. A veces, el archivo se llama
/var/log/[Link], y algunas distribuciones no almacenan estos datos en absoluto, por lo que encontrar el
la información no es segura. Las opciones A, B y D describen archivos ficticios.
16. A. El pseudoarchivo / proc / cpuinfo contiene la información solicitada, por lo que ver este archivo
con gato (o menos o varias otras herramientas) recuperará la información solicitada, haciendo
opción A correcta. No hay un archivo estándar / var / log / cpu, por lo que la opción B es incorrecta.
Aunque la utilidad uname devolverá alguna información técnica sobre la CPU, el - i
La opción restringe la salida a la plataforma de hardware (normalmente una identificación del fabricante),
entonces la opción C es incorrecta. La utilidad lspci devuelve información sobre dispositivos PCI, no
CPU, y no tiene opción - - cpu, por lo que la opción D es incorrecta. (El comando lscpu es válido,
pero este comando es distinto de lspci.)
17. D. La utilidad ldev resume los recursos utilizados por varios dispositivos, incluida su E / S
direcciones de puerto. Por lo tanto, la opción D probará la hipótesis. (Debe estar alerta al hecho de que
Sin embargo, el mismo dispositivo puede identificarse más de una vez en la salida.) El / proc /
interrupciones y pseudo / proc / dma - informes de archivos en interrupciones y canales DMA utilizados por
varios dispositivos, no puertos de E / S; por lo tanto, estas opciones no funcionarán. (Puede escribir cat / proc /
ioports , sin embargo; esto funcionaría tan bien como la opción D.) La utilidad lsmod de la opción C muestra
información sobre los módulos del kernel cargados, no sobre el espacio de E / S, por lo que es incorrecta.
18. A, D. La utilidad strace ejecuta un programa y rastrea sus llamadas al sistema, lo que puede ser útil
diagnóstico en este ejemplo. De manera similar, la utilidad ltrace ejecuta un programa y rastrea su
llamadas a la biblioteca, que también pueden ser un diagnóstico útil. Por tanto, las opciones A y D son correctas.
El programa de cadenas escanea un archivo binario en busca de cadenas y las muestra. Esto puede ser útil
para algunas tareas, pero es poco probable que proporcione información útil sobre por qué un programa es
estrellándose. La utilidad uname muestra información sobre el kernel y la CPU, pero a menos que
sabe que el programa es incompatible con ciertos núcleos o CPU, esta información es
probablemente sea inútil.
19. B. La opción B usa la utilidad lsof para enumerar todos los archivos abiertos y buscar en la lista cualquier salida
que incluye la cadena sharedfiles. Esto logrará el objetivo especificado. Opción A
El comando top muestra una lista de procesos ordenados según su uso de CPU (o varios
otros parámetros que se pueden configurar). Lsdev de la opción C muestra información sobre el uso del hardware.
El lsmod de la opción D muestra información sobre los módulos que están cargados actualmente.
20. A. La mayoría de las técnicas de compresión reemplazan las cadenas de texto sin formato con formas más compactas que
no se puede extraer de forma útil mediante cadenas, por lo que la opción A es correcta: las cadenas devolverán, en el mejor de los casos,
cadenas cortas que no serán significativas ni útiles. La utilidad tar archiva archivos juntos y
no los comprime a menos que se le indique explícitamente que lo haga, por lo que las cadenas extraerán el original
archivos de texto sin formato descritos en la opción B. No importa cuál sea el formato ejecutable original,
cadenas extraerán cadenas asociadas con las indicaciones del programa, y quizás nombres de variables
y otros datos, de archivos de programas binarios, por lo que la opción C es incorrecta. Aunque un PostScript
archivo podría representar un archivo de gráficos, contendrá comandos PostScript de texto sin formato, que
las cadenas se extraerán, por lo que la opción D es incorrecta. (La fecha en que se creó el archivo es irrelevante).
Respuestas a las preguntas de repaso
561

Página 604

Página 605

Sistema
Solución de problemas II:
Los recursos del sistema
y el usuario
Ambiente
EL SIGUIENTE PROFESIONAL DE LINUX
LOS OBJETIVOS DEL INSTITUTO ESTÁN CUBIERTOS EN
ESTE CAPÍTULO:
213.3 Recursos del sistema de resolución de problemas (peso: 5)
213.4 Configuración del entorno de resolución de problemas
(peso: 5)

Capítulo

12
Página 606
Este capítulo continúa el examen de la solución de problemas
herramientas y técnicas que comenzaron en el Capítulo 11, “Sistema
Solución de problemas I: problemas de arranque y kernel. " Este capítulo
cubre problemas de nivel superior, incluidos problemas de inicialización del sistema, tiempo de ejecución del kernel
problemas, dificultades con las cuentas, bash y otros problemas de shell, problemas con los procesos
que se están ejecutando actualmente (o que no lo están pero deberían estarlo), y problemas relacionados con
Procesos programados.
Se aplican las técnicas generales de resolución de problemas descritas al principio del Capítulo 11.
tanto a estos problemas como a los descritos en el Capítulo 11. Los problemas cubiertos
en este capítulo simplemente se aplican a un conjunto diferente de síntomas y causas.

Solución de problemas de inicialización del sistema


El capítulo 11 incluía información sobre la resolución de problemas de los primeros pasos del proceso de arranque,
incluido el cargador de arranque y partes del sistema de inicio de Linux. Este capítulo cubre
problemas adicionales de inicialización del sistema, incluido el proceso de inicio , los scripts de inicio locales y
dificultades en el proceso de inicio de sesión.
Gestión del proceso de inicialización
Si Linux no se está inicializando correctamente, lo primero que debe verificar es qué sistema de inicialización
usos. Como se describe en el Capítulo 1, "Inicio del sistema y administración avanzada del sistema", dos
Los sistemas de inicio son comunes en Linux hoy en día: scripts de inicio System V (SysV) y Upstart.
Upstart incluye una capa de compatibilidad SysV, por lo que algunos problemas de SysV se aplican a Upstart. Variantes
en estos sistemas, y particularmente en scripts SysV, son comunes, por lo que puede encontrarse con
distribución - problemas específicos.
Gestión de problemas de SysV
Pueden existir problemas de SysV debido a problemas en / etc / inittab , que establece el nivel de ejecución
e inicia algunos procesos muy básicos, o en los scripts de inicio de SysV, que inician la mayoría
servicios del sistema.

Página 607
La fijación de / etc / inittab Problemas
Un problema común con / etc / inittab es una configuración incorrecta del nivel de ejecución. Esto se establece mediante
la línea de identificación , que normalmente se encuentra cerca del inicio del archivo:
id: 3: initdefault:
Este ejemplo establece el nivel de ejecución en 3. En Red Hat, Fedora, Mandriva, OpenSUSE y
varias otras distribuciones, el nivel de ejecución 3 inicia un modo multiusuario en modo texto, por lo que X no se ejecutará
en el nivel de ejecución 3. Si X no se está ejecutando cuando lo desea, es posible que haya un nivel de ejecución predeterminado
incorrecto.
el problema. (Debian, Ubuntu, Gentoo y varias otras distribuciones inician X usando
Scripts de inicio de SysV o Upstart, por lo que si X no se inicia, es posible que el nivel de ejecución no sea un problema
para ellos.)
Los equipos que utilizan Upstart con frecuencia carecen de un archivo / etc / inittab ; sin embargo,
puede agregar uno para establecer el nivel de ejecución predeterminado. Configúrelo con una línea de identificación , pero
establezca el nivel de ejecución predeterminado que desee utilizar.
La Tabla 1.1 del Capítulo 1 describe la función convencional de todos los niveles de ejecución. Si el
la computadora se apaga o se reinicia tan pronto como se inicia, es posible que haya
establezca el nivel de ejecución en el nivel de ejecución 0 o 6. Un nivel de ejecución predeterminado de 1 iniciará el sistema en un
solo -
modo de usuario, que normalmente no es deseable.
Puede comprobar su nivel de ejecución actual mediante el comando runlevel , que devuelve el
niveles de ejecución anteriores y actuales:
$ nivel de ejecución
N5
Este ejemplo muestra que la computadora se encuentra actualmente en el nivel de ejecución 5. La N significa que tiene
no ha estado en otro nivel de ejecución desde el arranque. Si el sistema hubiera cambiado los niveles de ejecución, N sería
reemplazado por otro número de nivel de ejecución, como 3 . Como se describe en el Capítulo 1, puede cambiar
niveles de ejecución utilizando el comando telinit , como en telinit 3 para cambiar al nivel de ejecución 3.
Las líneas posteriores de / etc / inittab inician varios procesos, incluido el script rc que
lanza scripts de inicio SysV, procesos getty que manejan la consola y el puerto serie RS - 232
inicios de sesión y más. Algunas distribuciones usan / etc / inittab para iniciar X, ya sea por sí mismo o en
junto con un script de inicio de SysV:
x: 5: respawn: / etc / X11 / prefdm -nodaemon
Este ejemplo, tomado de un sistema CentOS, comienza con el carácter x solo en el
primer campo, y en este ejemplo, solo funciona en el nivel de ejecución 5 y usa / etc / X11 / prefdm
script para iniciar X y un programa X Display Manager (XDM). Si X no comienza, un
la mala configuración de esta línea podría ser la culpable; sin embargo, los sistemas basados en Upstart y
incluso algunos sistemas SysV usan scripts de inicio SysV para iniciar X. Por lo tanto, tendrá que verificar
Solución de problemas de inicialización del sistema
565

Página 608
566
Capítulo 12 ■
Solución de problemas del sistema II
distribución: documentación específica o una copia de seguridad de / etc / inittab de una época en que X era
comenzando a determinar si necesita cambiar esta línea.
Solucionar problemas con el script de inicio
A medida que la computadora se inicia, muestra mensajes de inicio relacionados con el éxito o el fracaso del inicio
Servicios SysV:
Iniciando Apache ...
[ HA FALLADO ]
Este ejemplo indica que el servidor web Apache no se pudo iniciar. La mayoría de esos problemas
debe tratarse de manera específica para el servicio que no se inició, por lo que debe consultar
capítulos relevantes de este libro, cualquier archivo de registro que pueda ser relevante, documentación en línea,
o libros específicos del servidor o subsistema en cuestión para ayudar a resolver el
problema.
Si un servidor no se inicia y no ve mensajes de inicio al respecto, podría configurarse
para no comenzar en el nivel de ejecución actual. Primero debe verificar su nivel de ejecución actual y verificar
que es correcto. Si no es así, cambie los niveles de ejecución y quizás cambie / etc / inittab para asegurarse de que
su sistema arranca en el nivel de ejecución correcto en el futuro.
Una vez que haya determinado que está en el nivel de ejecución correcto y que el servicio no
en ejecución, debe verificar el enlace simbólico del script de inicio en el inicio de SysV apropiado
directorio. Estos directorios se denominan normalmente / etc / rc ? .d , /etc/rc.d/rc ? .d , o / etc /
init.d / rc ? .d , ¿ dónde ? es el número de nivel de ejecución. (Gentoo usa un nivel de ejecución inusual llamado
sistema y coloca sus enlaces de script de inicio en / etc / runlevels / name , donde name es el
nombre del nivel de ejecución.)
Los scripts de inicio de nivel de ejecución se denominan S ## name o K ## name , donde ## es un número de dos dígitos
y el nombre es el nombre del script vinculado. Los enlaces con nombres que comienzan con S denotan
scripts que se ejecutan con el parámetro de inicio y aquellos con nombres que comienzan con
K denota scripts que se ejecutan con el parámetro stop . Por lo tanto, si un script en el nivel de ejecución
directorio tiene un nombre que comienza con K , no comenzará. Si debe comenzar, cambie su nombre
de modo que comience con S en su lugar. (Gentoo usa solo nombres; scripts en un directorio de nivel de ejecución
siempre se inician en ese directorio). Una advertencia importante es que debe establecer los dos:
número de secuencia de dígitos correctamente. Los scripts de algunas distribuciones incluyen comentarios que especifican
números adecuados. Con otros, los números de secuencia de inicio y parada deben sumar 99,
por lo que puede restar el número de parada de 99 para obtener el número de inicio. Por ejemplo, si
el enlace actual es K37someserver , el valor de inicio correcto sería 99 - 37 62, y usted
debería cambiar el nombre del enlace a S62someserver .
Si se está iniciando un servicio y no desea que se inicie, puede revertir este proceso,
cambiar el nombre del enlace simbólico para que se inicie con K en lugar de con S . La eliminación de la
El enlace simbólico (por ejemplo, con rm ) evitará que el servicio se inicie si inicia directamente en
el nivel de ejecución, pero esto no garantizará que el servicio se cerrará si ingresa al
runlevel desde otro nivel de ejecución en el que se inició el servicio. Por lo tanto, debe cambiar el nombre
Enlaces simbólicos SysV en lugar de eliminarlos si desea que sus servicios correspondientes
apagarse de forma fiable.

Página 609
Si existe un script de inicio de SysV en /etc/init.d o /etc/rc.d pero no hay ningún
script en el directorio específico del nivel de ejecución, puede crear un enlace simbólico con ln :
# ln -s /etc/rc.d/init.d/someserver /etc/rc.d/rc3.d/S20someserver
Este ejemplo crea un enlace para iniciar el servidor en el nivel de ejecución 3, dándole un número de secuencia
de 20. Por supuesto, debe consultar el guión en busca de comentarios o determinar de otro modo qué
el número de secuencia apropiado es.
Otra forma de manejar los scripts de inicio de SysV es usar herramientas como chkconfig , ntsysv ,
update - rc.d y rc - update . El Capítulo 1 describe algunas de estas herramientas en detalle, y
Por supuesto se puede comprobar sus hombre páginas para obtener más información.
Manejo de problemas advenedizos
Upstart es un sistema de inicio más nuevo que los scripts SysV, por lo que no está tan bien documentado, y
hay menos utilidades que pueden ayudarlo a administrar los scripts Upstart. Distribuciones principales que
use Upstart emplee una capa de compatibilidad SysV, por lo que puede usar métodos SysV para administrar
al menos algunos servicios. Como se describió anteriormente, esto incluye configurar el nivel de ejecución predeterminado a través de
/ etc / inittab .
Sin embargo, a medida que las distribuciones migren a Upstart (métodos de inicio nativos), deberá comenzar
administrar los archivos de configuración Upstart en el directorio / etc / init o /etc/event.d en
para ajustar los servicios que comienzan en niveles de ejecución específicos o en respuesta a otro sistema
eventos. El Capítulo 1 describe las características básicas del archivo de configuración Upstart, por lo que debe
consúltelo para saber cómo gestionar los servicios Upstart. En particular, si un servicio no se inicia
y lo desea o si está comenzando y no lo desea, es posible que deba buscar
el nivel de ejecución de la cadena y ajuste la lista de niveles de ejecución. Por ejemplo, un archivo de configuración
incluir las siguientes líneas:
comenzar en el nivel de ejecución [2345]
detener en el nivel de ejecución [! 2345]
Estas líneas le dicen a Upstart que inicie el servicio en los niveles de ejecución 2 a 5 y que lo detenga en todos
niveles de ejecución excepto del 2 al 5. (El signo de exclamación, ! , es un carácter de negación común
que se puede leer como "no"; por lo tanto, la segunda línea se refiere a niveles de ejecución que "no son 2, 3, 4,
o 5. ”) Si no desea que el servicio se inicie en el nivel de ejecución 5, debe eliminar 5 de
ambas listas.
Si está acostumbrado a trabajar con scripts de inicio de SysV, puede convertirse en
confundido o frustrado cuando las técnicas habituales para habilitar, deshabilitar,
o alterar de otro modo un servicio no funciona en un sistema basado en Upstart. Si
tiene tales problemas, asegúrese de buscar un archivo de configuración Upstart.
Estúdialo y trata de determinar cómo lograr tus objetivos deseados con
ese archivo.
Solución de problemas de inicialización del sistema
567

Página 610
568
Capítulo 12 ■
Solución de problemas del sistema II
Tratar con scripts de inicio locales
Ocasionalmente, es deseable iniciar un servicio a través de algún medio que no sea un script SysV.
o el sistema Upstart. Este es el caso más frecuente cuando ha compilado un servidor
usted mismo o lo instaló desde un archivo de paquete destinado a una distribución distinta a la
uno que esté usando. En tales casos, es posible que el programa no venga con un script de inicio de SysV o
Es posible que el archivo de configuración advenedizo o el archivo o script proporcionado no funcionen correctamente en
tu sistema.
Muchas distribuciones de Linux incluyen un script de inicio que se ejecuta después del otro SysV
guiones de inicio. Este script generalmente se llama /etc/[Link] , /etc/rc.d/[Link] , / etc /
rc.d / [Link] , o algo similar. (Las versiones anteriores de Debian usaban archivos en un directorio
llamado /etc/[Link] , pero este uso ha quedado obsoleto.) El primer desafío con tal
scripts es determinar el nombre correcto del script, que es muy específico de la distribución. Tratar
escribiendo find / etc - name "* local *" para ubicar los archivos candidatos, o consulte su distribución
documentación.
Cualquiera que sea su nombre, puede iniciar un servidor u otro programa desde un script de inicio local
ingresando el comando que usaría para iniciar el programa manualmente, como se describe en
la documentación del programa. Por ejemplo, puede incluir la siguiente línea para iniciar
un servidor FTP:
/ usr / sbin / vsftpd y
Un problema común con los scripts de inicio locales se relaciona con la presencia (o falta de
del mismo) de un ampersand final ( & ). Si este símbolo no está presente y si el programa
no devuelve el control al programa de llamada hasta que finaliza, entonces el script
detener la ejecución hasta que finalice el programa. En el caso de un servidor u otro demonio,
esto podría ser un tiempo muy largo, por lo que las líneas siguientes en el script podrían no ejecutarse a menos que
el demonio se inicia en segundo plano usando un ampersand, como en el anterior
ejemplo. Sin embargo, algunos daemons están diseñados para ejecutarse siempre en segundo plano,
ampersand es innecesario. Otros programas deberían ejecutarse y finalizar inmediatamente.
Por ejemplo, el programa iptables (descrito en el Capítulo 7, "Red avanzada
Configuration ”) se ejecuta rápidamente y finaliza, por lo que normalmente no se llama con un
ampersand. La conclusión es que debe verificar la documentación de sus programas para
aprenda a llamarlos. En caso de duda, experimente.
Una cosa a tener en cuenta al ejecutar un servidor a través del script de inicio local es que
este método no proporciona ningún medio para apagar un servidor, como puede hacer pasando la parada
parámetro a un script de inicio de SysV. Si desea detener un servidor de este tipo, deberá utilizar el
Comando kill o killall de Linux , posiblemente después de localizar el número de identificación del proceso del servidor
vía ps . Por ejemplo, la siguiente secuencia puede detener el servidor vsftpd :
# ps ax | grep ftp
6382?
S 0:00 vsftpd
# matar 6382

Página 611
Gestión de procesos de inicio de sesión
Los procesos de inicio de sesión son de tres tipos principales, aunque algunos métodos de inicio de sesión abarcan categorías:
inicios de sesión en modo texto local, inicios de sesión de GUI e inicios de sesión de red. Cada método tiene el suyo
desafíos, aunque también existen ciertos puntos en común.
Gestión de texto: inicios de sesión en modo
Cuando inicia sesión en una consola en modo texto, está utilizando una terminal virtual . Comprender
terminales virtuales, recuerde que Linux fue diseñado como un clon de Unix, que es un
SO multiusuario. Tradicionalmente, los sistemas Unix han admitido muchos usuarios simultáneos,
cada uno trabajando desde un terminal físico : un dispositivo que consta de un teclado, un monitor,
y quizás un mouse, que permite al usuario acceder a una computadora de forma remota. Puedes usar
terminales con Linux, pero una PC estándar tiene un teclado y un monitor principales. A
mejorar la usabilidad, Linux admite la configuración del sistema para que estos dispositivos puedan actuar como
varios terminales físicos, es decir, son virtuales. Cada terminal virtual puede ejecutar una
programa o incluso admite inicios de sesión con diferentes nombres de usuario. Esta función le permite ejecutar
muchos programas y cambiar fácilmente entre ellos.
La mayoría de las instalaciones estándar definen seis terminales virtuales en modo texto, a los que se accede presionando
Alt + F1 a Alt + F6. En un sistema basado en SysV, estos terminales se definen en el archivo / etc /
archivo de configuración inittab , usando líneas como las siguientes:
1: 2345: reaparición: / sbin / mingetty tty1
2: 2345: reaparición: / sbin / mingetty tty2
3: 2345: reaparición: / sbin / mingetty tty3
4: 2345: reaparición: / sbin / mingetty tty4
5: 2345: reaparición: / sbin / mingetty tty5
6: 2345: reaparición: / sbin / mingetty tty6
Estas líneas le dicen al sistema que ejecute mingetty en tty1 a tty6 , es decir, los primeros seis
terminales virtuales. Un sistema basado en Upstart generalmente incluye configuraciones equivalentes
en los archivos tty n .conf , donde n es el número de terminal, en / etc / init o /etc/event.d ;
sin embargo, es probable que la configuración de un solo terminal se divida en varias líneas:
iniciar en rc2 detenido
iniciar en rc3 detenido
iniciar en rc4 detenido
detener en el nivel de ejecución 0
parar en el nivel de ejecución 1
parar en el nivel de ejecución 6
reaparecer
exec / sbin / mingetty tty1
Solución de problemas de inicialización del sistema
569

Página 612
570
Capítulo 12 ■
Solución de problemas del sistema II
El programa mingetty es uno de varios programas conocidos colectivamente como getty
programas. Estos programas gestionan las interacciones entre un terminal (ya sea real o
virtual) y el programa de inicio de sesión , que acepta inicios de sesión de usuarios. Varios programas getty están
disponible, y diferentes distribuciones favorecen diferentes getty s.
Los problemas graves con los procesos de inicio de sesión en modo texto son raros; sin embargo, si el relevante
archivo de configuración se daña, es posible que deba volver a crearlo a partir de una copia de seguridad o
muestra. ¡Asegúrese de utilizar una muestra para su distribución! Este detalle de configuración varía un
mucho entre distribuciones, por lo que es muy probable que el uso de la muestra incorrecta falle.
Es posible que desee ajustar la cantidad de terminales virtuales compatibles con su sistema. Si es así,
puede agregar o eliminar líneas de / etc / inittab o agregar o eliminar archivos de / etc / init o
/etc/event.d . Asegúrese de editar las líneas o archivos para hacer referencia al número de terminal correcto ( tty1 ,
tty2 , y así sucesivamente). Si realiza un cambio de este tipo, es posible que deba modificar su configuración X,
también; X ocupa una terminal virtual al igual que los inicios de sesión en modo texto.
Una variante de esta configuración se aplica a los inicios de sesión a través de módems o puertos serie RS-232.
Estas configuraciones se parecen mucho a las configuraciones de inicio de sesión del terminal virtual, pero utilizan
diferentes referencias de dispositivo, normalmente ttyS n en lugar de tty n . También pueden usar diferentes
Programas de getty . En particular, mingetty solo admite terminales virtuales locales, no RS - 232
puertos serie o módems. Si necesita configurar su computadora para que admita tales inicios de sesión,
debe consultar la documentación del programa getty que desea utilizar.
Los inicios de sesión a través de puertos serie RS-232 y módems solían ser muy comunes como
un medio de apoyo a las salas de los usuarios en "terminales tontos" o mediante acceso telefónico
módems. Hoy en día, es más probable que estos usuarios utilicen métodos de inicio de sesión en la red.
Los inicios de sesión locales a veces pueden fallar debido a problemas de autenticación. Normalmente, el
El programa getty se basa en el programa de inicio de sesión para presentar el mensaje login:, para solicitar
la contraseña y para autenticar al usuario. A veces esto no funciona correctamente, normalmente
debido a daños en la configuración de los Módulos de autenticación conectables (PAM).
El Capítulo 10, “Seguridad”, describe la configuración de PAM con más detalle. Si sospechas
daño a su configuración de PAM, su mejor opción es restaurar la configuración de PAM
archivos, particularmente los de inicio de sesión y cualquier archivo al que haga referencia, a su configuración predeterminada. Si
necesario, puede usar su administrador de paquetes para buscar el paquete al que / etc / pam
.d / login pertenece y vuelva a instalarlo, ¡si puede iniciar sesión! Si no es así, es posible que deba copiar el archivo.
desde una instalación en funcionamiento con la ayuda de un disco de recuperación de emergencia. Asegúrese de utilizar el
Sin embargo, el archivo de la misma distribución que se ejecuta el sistema problemático; como se indica en el Capítulo 10,
Las configuraciones de PAM varían mucho de una distribución a otra.
Administrar inicios de sesión de GUI
Los inicios de sesión de la GUI de Linux son manejados por un programa que usa el control X Display Manager
Protocolo (XDMCP). Tres programas XDMCP son comunes: el XDM original, el
Administrador de pantalla de GNOME (GDM) y Administrador de pantalla de KDE (KDM). GDM y
KDM son los programas XDMCP más comunes para Linux. Estos programas permiten a los usuarios

Página 613
para seleccionar su entorno de escritorio, apagar la computadora y configurar varios otros
opciones. XDM, por el contrario, es bastante básico; solo acepta un nombre de usuario y una contraseña.
Algunos problemas de inicio de sesión de la GUI se relacionan con la configuración de PAM, y estos problemas requieren
arreglar los archivos de inicio de sesión de PAM, como se describe para los problemas de PAM con el inicio de sesión . La principal
diferencia
es que el archivo de configuración de PAM es diferente, generalmente gdm o kdm en /etc/pam.d .
Algunos problemas de inicio de sesión de la GUI se relacionan con los scripts de inicio de sesión de la GUI, como ~ / .xinitrc . Tal
Los problemas son similares a los que pueden ocurrir con los scripts de inicio de sesión de bash , como se describe más adelante en
“Investigando los scripts de inicio de sesión de bash . "
Administrar inicios de sesión en la red
Los inicios de sesión habilitados para la red plantean sus propios desafíos. Se utilizan habitualmente varios protocolos
para este propósito, incluidos los siguientes:
Telnet El protocolo Telnet es un antiguo protocolo de inicio de sesión en modo texto. Como regla general,
no debe usarse hoy, ya que pasa datos, incluidas contraseñas, a través de la red en un
forma no cifrada. El programa cliente telnet , sin embargo, puede resultar útil para diagnosticar
problemas de red; puede usarlo para conectarse a muchos otros servidores y emitir problemas específicos del servidor
comandos. Este uso requiere que comprenda el protocolo de red en cuestión,
aunque.
SSH El protocolo Secure Shell (SSH) sustituye a Telnet. SSH cifra todos los datos,
por lo que es relativamente seguro de usar incluso en una red que no es de confianza, como Internet. SSH también
admite opciones como tunelización y transferencia de archivos, lo que amplía su utilidad. Capítulo 7
describe SSH con más detalle.
XDMCP Aunque XDMCP se usa a menudo solo en computadoras locales, se puede configurar
para aceptar inicios de sesión remotos. Sin embargo, este protocolo no cifra los datos de inicio de sesión, por lo que generalmente
se utiliza solo en redes locales bien protegidas. XDMCP es solo una parte de un inicio de sesión de red
solución; maneja inicios de sesión en la red pero no transferencias de datos posteriores. Para eso, se usa X.
X El sistema X Window, o X para abreviar, es una GUI habilitada para la red. Usado en conjunto
con XDMCP, Telnet, SSH o algún otro método de inicio de sesión de red, X permite a los usuarios sentarse
en una computadora para usar aplicaciones en otra computadora. Por sí mismo, X no cifra los datos;
debe hacer un túnel a través de SSH o usar alguna otra herramienta para asegurar sus transferencias de datos.
VNC Virtual Network Computing (VNC) es una herramienta de inicio de sesión remoto GUI multiplataforma. Eso
se puede utilizar en Linux para proporcionar acceso a una sesión X que ya se está mostrando o para
proporcione un inicio de sesión remoto a una sesión única, más parecido a lo que proporcionan XDMCP y X. Me gusta
la mayoría del otro protocolo de inicio de sesión remoto, VNC no cifra la mayoría de los datos, aunque puede
cifrar contraseñas.
Algunos problemas del protocolo de inicio de sesión de la red se relacionan con la autenticación y deben abordarse
al igual que los problemas de PAM descritos anteriormente en “Administración de inicios de sesión en modo de texto. "Otro
los problemas se relacionan con el inicio de los servidores relevantes; es posible que deba profundizar en SysV,
Upstart u otros scripts de inicio. Cortafuegos, ya sea en la computadora que ejecuta el servidor
o en el enrutador de una red, a veces puede bloquear el acceso, por lo que debe verificar su firewall
configuración si no puede conectarse. Otros problemas son muy específicos del servidor.
Solución de problemas de inicialización del sistema
571

Página 614
572
Capítulo 12 ■
Solución de problemas del sistema II

Ajustar las opciones del kernel


El Capítulo 2, “Configuración del kernel de Linux”, describe cómo configurar las opciones del kernel en tiempo de compilación y
compila el kernel. Sin embargo, algunas opciones del kernel pueden ajustarse a medida que se ejecuta la computadora. los
El sistema de archivos / proc y la utilidad sysctl hacen este trabajo. El sistema de archivos / proc es un pseudo - sistema de archivos
que le permite ver y modificar varios parámetros del kernel como si fueran archivos. Por ejemplo,
/ proc / scsi contiene datos en el subsistema de disco de la Interfaz de sistemas informáticos pequeños (SCSI). Usted puede
escriba cat / proc / scsi / scsi para ver información sobre todos los dispositivos SCSI de su sistema.
Desde la perspectiva del software, incluido el contenido de / proc / scsi , cualquier
dispositivo manejado por el subsistema SCSI es SCSI, incluso si el hardware
en sí mismo no es hardware SCSI. La mayoría de los accesorios de tecnología avanzada en serie
Los discos (SATA) son manejados por el subsistema SCSI de Linux, aunque
técnicamente no son dispositivos SCSI.
Varios capítulos de este libro se han referido a archivos específicos en el árbol de directorios / proc .
Es posible que desee tomarse un tiempo para leer detenidamente este árbol de directorios para saber qué contiene.
Ver archivos en este árbol no puede causar ningún daño, pero debe tener cuidado al escribir
valores a estos archivos. Aunque escribir en archivos en / proc a menudo no logrará nada, algunos
de estos archivos controlan características como la capacidad de Linux para funcionar como un enrutador, por lo que se modifica
Los archivos / proc pueden tener consecuencias no deseadas. Si cree que accidentalmente ha hecho tal
un cambio pero no sé cómo deshacerlo, reinicie; el árbol de directorios / proc , siendo virtual, es
se vuelve a crear cada vez que se inicia la computadora, por lo que al reiniciar se restablecerá.
El sysctl programa le permite ver y defina las opciones en el directorio / proc / sys directorio
árbol usando una clave , que es una variable con nombre, y un valor , que es la configuración asociada
con la llave. Las teclas vienen en varias partes, separadas por puntos ( . ) O barras ( / ). Estas partes
corresponden a los subdirectorios y archivos en el árbol de directorios / proc / sys . Por ejemplo, el
La clave [Link] (o kernel / ostype ) se refiere al archivo / proc / sys / kernel / ostype . Esta
key (o archivo) normalmente contiene el valor Linux en un sistema Linux.
La sintaxis de sysctl es la siguiente:
sysctl [ opciones ] [ clave | clave = valor | nombre de archivo ]
La tabla 12.1 resume las opciones disponibles para sysctl .
TABLA 12.1 Opciones de sysctl comunes
Nombre de opción
Sentido
- una
Esta opción muestra todas las claves y sus valores asociados. Es usado
sin clave o nombre de archivo.
- UNA
Esta opción funciona de manera muy similar a la opción - a . La página de manual especifica un
forma de tabla.

Página 615
La mayoría de las opciones de la Tabla 12.1 se refieren a la actividad de lectura. Si pasa - a como el primero
parámetro, puede ver todas las claves, valores o ambos. Si no usa - a , normalmente
pasar un nombre de clave para ver el valor asociado o usar la opción - w o - p para cambiar uno o un conjunto
de valores. Por ejemplo, suponga que desea verificar y luego restablecer el nombre de host de la computadora
y restablecer varias opciones a sus valores iniciales. Puede escribir esto:
# sysctl [Link]
[Link] = [Link]
# sysctl -w [Link] = [Link]
[Link] = [Link]
# sysctl -p /etc/[Link]
El comando final en este ejemplo será seguido por líneas que hacen eco de las teclas y
valores que se establecen desde el archivo especificado. De hecho, el archivo /etc/[Link] es el
nombre de un archivo que contiene las opciones del kernel de inicio de la computadora. Puedes leer y editar
este archivo si desea realizar cambios permanentes en la configuración de su computadora.
La mayoría de las opciones que se pueden configurar con sysctl también se pueden configurar con más
herramientas especializadas. La principal ventaja de sysctl o / etc / sysctl
.conf es que puede configurar una variedad de opciones usando una herramienta o desde
una ubicación.
Nombre de opción
Sentido
-n
Puede deshabilitar la visualización de nombres de teclas con esta opción.
-N
Esta opción desactiva la visualización de valores.
-q
Esta opción es muy parecida a - N , pero solo afecta a la salida estándar.
-e
Esta opción desactiva la visualización de errores en caso de que sysctl encuentre
una clave desconocida.
-w
Puede cambiar una configuración con esta opción. Entonces debes pasar
clave = valor , donde clave es un nombre de clave y valor es el valor que desea
para configurar.
- pags
Puede cambiar varias configuraciones a la vez especificándolas en un archivo,
cuyo nombre debe pasar a sysctl .
Ajustar las opciones del kernel
573

Página 616
574
Capítulo 12 ■
Solución de problemas del sistema II

Solucionar problemas de cuenta


Muchos problemas pueden afectar a las cuentas de Linux. Los usuarios pueden perder sus contraseñas, contraseñas
y otros datos pueden corromperse, los shells pueden configurarse incorrectamente, las asociaciones entre
los usuarios y los grupos pueden confundirse, los valores de ID de usuario (UID) y de ID de grupo (GID) pueden necesitar
cambiando, y así sucesivamente. Lo más probable es que deba ocuparse de estos problemas de vez en cuando,
así que las próximas páginas los cubren.
Esta sección asume que comprende los conceptos básicos de la cuenta local
gestión mediante utilidades como useradd , userdel , usermod y
passwd . Estas utilidades están cubiertas en la certificación LPIC-1.
Manejo de problemas de contraseña
Algunos problemas de contraseña son realmente problemas con la configuración de PAM, como se describió anteriormente
en “Gestión de inicios de sesión en modo de texto. "Los síntomas suelen incluir la incapacidad de cualquier usuario
para iniciar sesión, o problemas con todos los usuarios que utilizan un método de autenticación en particular, como
como Protocolo ligero de acceso a directorios (LDAP). Asimismo, si los problemas afectan solo a uno
servidor o método de inicio de sesión (como inicios de sesión en modo texto pero no inicios de sesión de GUI), el problema no es
Es probable que esté con la configuración de la cuenta pero con PAM o el servidor que tiene problemas.
Los problemas descritos aquí se relacionan con el almacenamiento de información de cuenta y contraseña.
En una instalación estándar de Linux, puede encontrar los datos de la cuenta en tres archivos, como se describe en
Cuadro 12.2. Algunas instalaciones dependen de datos en otras ubicaciones, como en un servidor LDAP.
Si surgen problemas con tales ubicaciones alternativas, es posible que deba utilizar métodos no descritos
aquí para solucionar las dificultades.
TABLA 12.2 Archivos de base de datos de cuentas de Linux
Expediente
Propósito
/ etc / passwd
Contiene información básica de la cuenta: nombre de usuario, contraseña o (más
comúnmente) valor x , número UID, número GID del grupo predeterminado,
información de usuario de formato libre, directorio de inicio y shell predeterminado.
/ etc / shadow
Contiene la contraseña hash (cifrada unidireccional) del usuario y
información de cuenta ampliada, principalmente relacionada con la antigüedad de la contraseña -
cuando expira la contraseña e información relacionada.
/ etc / group
Contiene datos de grupo, incluidos nombres de grupo, valores de GID y los usuarios
que pertenecen a cada grupo.

Página 617
Cada uno de los archivos descritos en la Tabla 12.2 consta de campos delimitados por dos puntos:
maryann: x: 1010: 100 :: / inicio / maryann: / bin / bash
Este ejemplo se toma de un archivo / etc / passwd . Consta de siete campos, uno de los cuales
(información de usuario) está vacío en este ejemplo. Con respecto a los problemas de contraseña específicamente,
el segundo campo ( x en este ejemplo) es relevante. En los primeros días de Unix, las contraseñas se
almacenado en el segundo campo de / etc / passwd ; pero esta práctica generó problemas de seguridad porque
/ etc / passwd tenía que ser mundial - legible, por lo que las galletas pueden descargar el archivo / etc / passwd archivo
e intentar descifrar las contraseñas de los usuarios a su gusto. Para solucionar este problema, hoy
Los sistemas utilizan contraseñas ocultas , en las que las contraseñas se almacenan en / etc / shadow , que pueden
(y debería) tener permisos para evitar que nadie excepto root lo lea. Esto hace
El trabajo de los crackers es más difícil, ya que no pueden acceder a las contraseñas de los usuarios, ni siquiera en formato hash.
Si una cuenta usa contraseñas ocultas, el segundo campo de la entrada de la cuenta en / etc /
passwd contendrá una x . Si no es así, lo más probable es que sea un error. (Incluso cuentas que prohíben
los inicios de sesión suelen utilizar una x en este campo). Puede corregir este problema para una sola cuenta si
reemplazando el valor errante en / etc / passwd con xy luego usando la utilidad passwd como root
para establecer una nueva contraseña para la cuenta.
Los problemas de contraseña más comunes aparecen en / etc / shadow , que tiene entradas que parecen
Me gusta esto:
maryann: $ 6 $ .6BBM.3h $ vvkpItHgUAC / KWfrT: 14976: 0: 99999: 7 :::
El segundo campo, que en este ejemplo comienza con $ 6 $ , contiene la contraseña hash.
(En este ejemplo, la contraseña hash se ha truncado para que quepa en una línea; es demasiado corta,
y por lo tanto no funcionará como se esperaba.) Si encuentra que una contraseña ha sido dañada, modificada,
u olvidado por un usuario, la solución más sencilla suele ser utilizar passwd como root para corregir el
problema:
# passwd maryann
Nueva contraseña:
Reescriba nueva contraseña:
passwd: contraseña actualizada correctamente
Cuando ejecuta passwd como root , no necesita escribir la contraseña anterior, por lo que el hecho de que
ha sido dañado u olvidado es irrelevante. Deberá comunicar la nueva contraseña
al usuario o deje que el usuario escriba la contraseña directamente, si es práctico. (Tenga cuidado de no
revelar la contraseña de root , ¡por supuesto!)
Si un campo de contraseña cifrada comienza con un signo de exclamación ( ! ),
la cuenta ha sido bloqueada. Puede desbloquear la cuenta usando la - U
opción a usermod , como en usermod - U houdini para desbloquear la cuenta houdini ,
o eliminando el signo de exclamación en un editor de texto.
Solucionar problemas de cuenta
575

Página 618
576
Capítulo 12 ■
Solución de problemas del sistema II
Ajustar las carcasas de usuario
La información del shell de usuario aparece en el campo final de / etc / passwd . En Linux, el shell predeterminado
suele ser / bin / bash ; sin embargo, esto se puede establecer en cualquier valor usando usermod :
$ usermod -s / bin / false maryann
Este comando establece el shell predeterminado de maryann en / bin / false . Esta es una configuración útil
para las cuentas que no son de inicio de sesión utilizadas por los servidores, pero es inapropiado si el usuario debe poder
para iniciar sesión, ya que el resultado será que el proceso de inicio de sesión u otra herramienta de inicio de sesión en modo texto o
La ventana ejecutará / bin / false , que devolverá inmediatamente un código de falla. El resultado será
sea que el usuario no podrá iniciar sesión.
También pueden ocurrir problemas si un shell se configuró en un valor razonable que de repente se convierte en
irrazonable porque se eliminó el software. Es posible que un usuario desee utilizar un
shell, como tcsh o zsh ; pero si este shell se elimina posteriormente, el usuario de repente
no podrá iniciar sesión utilizando herramientas en modo texto.
Por supuesto, puede corregir el problema usando usermod para cambiar el shell a algo
válido; use la opción - s , como en el ejemplo anterior, pero páselo / bin / bash o alguna
otro shell válido en su computadora. Alternativamente, si se eliminó un shell anteriormente válido,
puede volver a instalarlo. Este cambio también se puede realizar utilizando su editor de texto favorito en el
/ etc / passwd en sí, pero tenga mucho cuidado, no sea que realice cambios accidentalmente que
causar más problemas, como dañar la entrada de otra cuenta.
Solucionar problemas de asociación de usuarios / grupos
Los usuarios se pueden asignar a grupos de dos formas o ambas:
Un grupo predeterminado establecido en el archivo de configuración de usuario Como se señaló anteriormente, / etc / passwd
incluye un valor GID para el grupo predeterminado del usuario. El usuario pertenece a este grupo sin importar
lo que indica el archivo / etc / group , y cuando el usuario inicia sesión, los archivos que crea el usuario
pertenecen al grupo cuyo GID aparece en / etc / passwd a menos que y hasta que el usuario utilice el
comando newgrp para cambiar la asociación de grupo actual.
Asociaciones adicionales en el archivo de configuración de grupo El archivo / etc / group incluye un
lista de usuarios que pertenecen a cada grupo, en una lista delimitada por comas al final de cada grupo
entrada. Esta lista, sin embargo, está incompleta; no necesita incluir usuarios cuyo grupo principal
la asociación es el grupo. En otras palabras, si maryann 's / etc / passwd de entrada especifica que su
El grupo principal es GID 100 ( usuarios ), entonces la entrada de usuarios en / etc / group no necesita
incluir maryann en su lista de usuarios.
Las asociaciones de grupo pueden romperse de diversas formas, especialmente si los grupos
se agregan y eliminan regularmente de una computadora. Si se elimina un grupo y su número
no se reutiliza, los usuarios pueden terminar "huérfanos", con números GID predeterminados que se refieren a no
grupo. Si se elimina un grupo y se reutiliza su número, los GID predeterminados de los usuarios pueden terminar
apuntando a grupos inapropiados.
Puede usar el comando usermod y su opción -g para cambiar la asociación de grupo de un usuario:
# usermod -g 100 maryann

Página 619
GID 100 generalmente se asocia con el grupo de usuarios , que muchos
los administradores utilizan como un grupo de propósito general. Algunas distribuciones usan esto
como una asignación de grupo predeterminada. Otras distribuciones crean automáticamente un
nuevo grupo para cada usuario, asignando usuarios a sus propios grupos únicos.

Ajuste de UID y GID


Los valores UID y GID a veces pueden confundirse o mezclarse. Esto puede suceder como
se crean y destruyen cuentas. Puede terminar con una configuración en la que dos
los usuarios comparten un UID o en los que dos grupos comparten un GID. Es posible que también deba ajustar el UID
y valores de GID para mantenerlos sincronizados en varias computadoras, por ejemplo, porque está
utilizando el protocolo de intercambio de archivos Network File System (NFS), que funciona mejor cuando UID
y los valores de GID son equivalentes en todas las computadoras.
Puede cambiar los valores de UID y GID utilizando usermod 's - T y G - opciones, respectivamente.
La sección anterior mostró un ejemplo de uso de - g ; - u es similar:
# usermod -u 1010 maryann
Este ejemplo establece el valor de UID de maryann en 1010. Desafortunadamente, no es probable
al final del trabajo, especialmente al ajustar los valores de UID. El problema es que el usuario
los archivos no se ajustarán con este comando; debe cambiarlos manualmente, usando chown .
En algunos casos, puede cambiar la gran mayoría de los archivos del usuario aplicando chown
de forma recursiva al directorio de inicio del usuario. Si su sistema mantiene una cola de correo entrante,
es posible que deba modificar la propiedad del archivo de correo del usuario. Es posible que también deba usar find
para ubicar los archivos restantes del usuario en ubicaciones como / tmp o cualquier otro mundo: se puede escribir
directorios que mantiene su sistema. El ejercicio 12.1 lo guía a través de este proceso.
EJERCICIO 12.1
Cambiar el valor de UID de una cuenta
Cambiar el valor de UID de una cuenta implica el uso de varias utilidades diferentes. Tenga en cuenta que en un real -
situación mundial, el usuario debe cerrar la sesión mientras realiza estos pasos. Este ejercicio
lo guía a través del proceso en dos etapas. La primera etapa es la configuración; debes crear un
cuenta de prueba para usar en la segunda etapa del ejercicio:
1. Inicie sesión como root o adquiera privilegios de root a través de su .
2. Escriba useradd - m maryann . (Cambie maryann a otro nombre de usuario si su sistema ya
tiene una cuenta con este nombre.) Este comando crea la cuenta maryann , incluida una
directorio de inicio (normalmente / home / maryann ).
3. Escriba touch / home / maryann / afile para crear un archivo en el directorio de inicio de maryann .
4. Escriba chown maryann: / home / maryann / afile para otorgar la propiedad del archivo creado en el paso 3
a maryann .
Solucionar problemas de cuenta
577

Página 620
578
Capítulo 12 ■
Solución de problemas del sistema II
EJERCICIO 12.1 (continuación)
5. Repita los pasos 3 y 4, pero use / tmp / maryannfile en lugar de / home / maryann / afile .
6. Si su sistema mantiene los archivos de correo entrante en / var / spool / mail o / var / mail , consulte
ver si se creó uno. Si no, repita los pasos 3 y 4 para hacerlo, pero use / var / spool /
mail / maryann o / var / mail / maryann como nombre de archivo.
Con la cuenta maryann configurada, es el momento de cambiar su valor de UID. Tu puedes hacerlo
como sigue:
1. Determine el valor UID actual de la cuenta. Puede hacer esto escribiendo grep maryann / etc /
passwd y anotando el valor en el tercer campo delimitado por dos puntos. Este ejercicio supondrá
el antiguo valor de UID es 1009.
2. Determine un nuevo valor de UID para la cuenta. Elija uno que no esté en uso y verifíquelo
buscando / etc / passwd para el valor. Este ejercicio utiliza un UID de 1010 para este propósito.
Escribir grep 1010 / etc / passwd no devuelve nada, lo que verifica que este valor no esté en uso.
3. Escriba usermod - u 1010 maryann para cambiar el UID de maryann a 1010.
4. Compruebe la propiedad del directorio de inicio del usuario escribiendo ls - ld / home / maryann . Tipo
ls - l / home / maryann para verificar la propiedad del archivo que creaste en la casa de maryann
directorio. El comando usermod puede cambiar la propiedad de estos archivos en los que
caso de que aparezca como propiedad de maryann . Si el directorio de inicio o sus archivos parecen estar
propiedad de un valor numérico, escriba chown - R maryann: / home / maryann para devolver la propiedad a
maryann usando el nuevo valor de UID de la cuenta.
5. Verifique la propiedad del archivo de cola de correo del usuario escribiendo ls - l / var / spool / mail /
maryann (cambiando la ruta, si es necesario). Si pertenece al antiguo valor de UID de la cuenta,
escriba chown maryann: / var / spool / mail / maryann para corregirlo.
6. Utilice buscar para localizar archivos adicionales propiedad del usuario en cuestión escribiendo buscar /
- uid 1009 . (Cambie 1009 a cualquier valor que sea apropiado para su sistema, por supuesto).
Este comando tardará mucho en completarse, pero debería devolver precisamente un archivo:
/ tmp / maryannfile , que creó en el paso 5 del procedimiento anterior. Si usted fuera
realizando este procedimiento en un entorno del mundo real, puede encontrar cualquier número
de archivos.
7.
Para cada archivo encontrado en el paso 6, escriba chown maryann: filename .
En este punto, el cambio en el valor de UID para maryann está completo. El usuario puede iniciar sesión y utilizar
la cuenta normalmente. Si el usuario no estaba experimentando dificultades obvias, debería
No habrá cambios obvios en la cuenta desde la perspectiva del usuario. Por supuesto, las posibilidades son
ha realizado este cambio, porque no eran dificultad!
Página 621
Ajustar las variables de inicio de sesión
Muchas herramientas que se ocupan de las cuentas de usuario, incluidos los programas de inicio de sesión, el programa useradd ,
y otros, necesitan conocer ciertas cosas clave sobre cómo funcionan las cuentas y el proceso de inicio de sesión.
Por ejemplo, los sistemas Linux normalmente reservan los números de UID numerados más bajos para el sistema.
cuentas, pero ¿cuál es el número de UID más bajo que se puede utilizar para las cuentas de usuario? Qué
¿Debería utilizarse un método de cifrado para cifrar las contraseñas en / etc / shadow ? Cuantas veces
¿Debe el inicio de sesión solicitar al usuario una contraseña si el usuario ingresa una contraseña incorrecta? Estas
y otras funciones de la cuenta de todo el sistema se establecen en el archivo /etc/[Link] .
Los valores de este archivo a veces varían de una distribución o instalación a otra.
Por ejemplo, algunas distribuciones establecen el valor de UID mínimo para usuarios normales ( UID_MIN )
en 500 , pero otros usan 1000 . Es posible que tenga motivos para cambiar este valor si está trabajando
en un entorno que usa múltiples distribuciones de Linux y necesita mantener los valores de UID
sincronizado en diferentes computadoras. En su mayor parte, sin embargo, no debería necesitar
ajuste los valores de este archivo, ya que los valores predeterminados suelen ser razonables. Es posible que desee examinar el archivo,
aunque. La mayoría de los nombres de las opciones son descriptivos y la mayoría de las distribuciones incluyen comentarios.
que explican con más detalle las opciones, por lo que debería poder averiguar qué hace cada opción.
El efecto de establecer un valor /etc/[Link] de forma incorrecta varía según la opción,
por supuesto. Algunas opciones pueden afectar la capacidad de iniciar sesión o al menos retrasar los inicios de sesión en algunos
circunstancias. Por ejemplo, FAIL_DELAY afecta el retraso impuesto después de un intento fallido de inicio de sesión;
establecer este valor demasiado alto puede hacer que el sistema parezca no responder después de un intento fallido de inicio de sesión.

Solución de problemas de shells


Los inicios de sesión en modo texto dependen en gran medida de los shells , que son programas que aceptan comandos escritos
y, en respuesta, ejecutar programas o ejecutar comandos. Como se señaló anteriormente, bash es el
shell más común en Linux. Como muchos programas, los shells se basan en archivos de configuración,
tantos problemas relacionados con la operación en modo texto son causados por problemas con estos
Archivos de configuración. Por lo tanto, debe estar familiarizado con los archivos de configuración de bash , que en
De hecho, son scripts que se ejecutan al iniciar sesión. También debería saber un poco sobre shells que no son bash .
Investigación de scripts de inicio de sesión de bash
Cuando se inicia, bash ejecuta una serie de scripts. Estos scripts establecen variables de entorno, crean
comando alias, ejecutar programas y, de lo contrario, preparar el shell para aceptar sus comandos.
La parte confusa de esto es comprender con precisión cuál de varios archivos se ejecuta en
qué situaciones. En términos generales, los scripts de inicio de sesión de bash se pueden clasificar en dos
formas: como scripts globales vs. de usuario y como scripts de inicio de sesión vs. sin inicio de sesión . La Tabla 12.3 identifica el
guiones más comunes en cada categoría. Es probable que no encuentre todos estos scripts en
tu computadora; y de hecho, con la excepción de / etc / profile y scripts separados en
el directorio /etc/profile.d , es probable que encuentre como máximo uno por categoría.
Solución de problemas de shells
579

Página 622
580
Capítulo 12 ■
Solución de problemas del sistema II
Las reglas sobre cuándo se ejecuta cada script son complejas. Están descritos en la página de manual .
para bash en la sección "Invocación". Sin embargo, en resumen, cuando se lanza bash como
proceso de inicio de sesión (por el programa de inicio de sesión o por un servidor de inicio de sesión remoto como SSH), primero se
ejecuta
/ etc / profile . La mayoría de las distribuciones de Linux incluyen dentro de este archivo llamadas para ejecutar
scripts en el directorio /etc/profile.d y uno de los archivos globales que no son de inicio de sesión, el nombre de
que varía de una distribución a otra. Después de ejecutar / etc / profile , bash busca
los archivos de inicio de sesión del usuario ( ~ / .bash_profile , ~ / .bash_login y ~ / .profile ) y ejecuta el primer
uno que encuentre (si alguno de ellos existe).
Cuando bash se inicia como un shell sin inicio de sesión (por ejemplo, dentro de una terminal basada en X
ventana), busca y ejecuta el archivo ~ / .bashrc . Este archivo normalmente se crea como parte
del proceso de creación de la cuenta, y normalmente ejecuta el mismo archivo global de no inicio de sesión que
Se ejecuta el script / etc / profile de la distribución .
Cuando termina un shell de inicio de sesión, bash ejecuta el script ~ / .bash_logout . No hay
script de cierre de sesión equivalente para shells sin inicio de sesión.
Los archivos que usa bash se pueden modificar ejecutándolos con una línea de comando particular
opciones, como - - login (para forzar el comportamiento de inicio de sesión), - - norc (para inhibir la lectura del usuario
no - archivo de inicio de sesión), o - - rcfile nombre de archivo (para leer el nombre del archivo en lugar de ~ / .bashrc ).
Este confuso conjunto de scripts de inicio de sesión, especialmente cuando se combina con el hecho de que
Los nombres de archivo precisos pueden variar de una distribución o incluso de una cuenta a otra, crea
oportunidades para que surjan problemas. Es posible que desee rastrear el orden en que varios
Los scripts de inicio se están ejecutando para garantizar que los scripts deseados se ejecuten realmente para todos.
las condiciones deseadas.
Crear un vínculo simbólico entre ~ / .bashrc y ~ / .bash_profile puede
resolver muchos problemas que puedan tener los usuarios. Esto asegurará que el
Las mismas secuencias de comandos de inicio de usuario se ejecutan tanto para las sesiones de inicio de sesión como para las que no lo son.
Un problema común con los scripts de inicio surge debido a una configuración incorrecta de PATH
variable de entorno, que debe constar de un conjunto de directorios delimitados por dos puntos en los que
TABLA 12.3 Una clasificación de los scripts de inicio de shell
Archivos de inicio de sesión
Archivos que no son de inicio de sesión
Archivos globales
/ etc / profile ; archivos en / etc /
perfil.d
/etc/[Link] , / etc / bash /
bashrc , / etc / bashrc
Archivos de usuario
~ / .bash_profile , ~ / .bash_
iniciar sesión , ~ / .profile
~ / .bashrc

Página 623
el shell busca comandos. Esta variable de entorno a menudo se crea en varios
guiones de inicio. Sin embargo, para hacerlo, todos menos el primer script que establece esta variable deben incluir
una referencia a PATH en su PATH - línea de configuración:
RUTA = ”$ {RUTA}: / usr / local / bin: / opt / bin: / bin”
Este ejemplo establece el valor de PATH en su valor anterior, pero agrega dos directorios nuevos. Si el
se omite la referencia inicial a PATH , el resultado será que PATH omitirá su original
directorios. Pueden ocurrir problemas similares con algunas otras variables de entorno, como
LIBPATH .

Usando conchas inusuales


Aunque bash es el shell predeterminado en Linux, es posible que usted o algunos de sus usuarios
quiere usar otro caparazón. Si es así, tendrá que investigar los scripts de inicio de ese shell. Es
Es probable que admita las mismas distinciones entre archivos de usuario y archivos globales e inicio de sesión y no inicio de sesión
sesiones, por lo que puede terminar teniendo que investigar varios scripts de inicio, al igual que con bash .
Algunas de las muchas shells disponibles en Linux incluyen
bash El Bourne Again Shell ( bash ) es el shell predeterminado para la mayoría de las instalaciones y
cuentas. Es una extensión de código abierto del shell Bourne original ( sh ), que es popular
en muchas plataformas similares a Unix. Las distribuciones de Linux hacen que sh sea un enlace a bash para que los scripts
destinado a sh run en bash .
tcsh Este shell es una variante mejorada de un shell Unix "clásico", el C Shell ( csh ). Ambos
csh y tcsh usan un lenguaje de scripting que se parece al lenguaje de programación C,
aunque los scripts csh / tcsh no son programas en C.
pdksh El shell Korn de dominio público ( pdksh ) es una implementación del shell Korn. Es
similar al shell Bourne, pero también toma prestadas algunas características del shell C.
zsh El Z Shell ( zsh ) se basa en el modelo de Korn, pero agrega algunas características adicionales.
sash El Stand Alone Shell ( sash ) es un pequeño caparazón que incorpora muchos programas, como
como ls , que normalmente son externos, en el ejecutable de la hoja principal . El objetivo es tener un caparazón
que funciona incluso en un sistema que de otro modo estaría muy dañado.
La mayoría de los scripts de inicio de los shells tienen nombres que están al menos vagamente relacionados con los del shell
nombre, como ~ / .tcshrc y /etc/[Link] para tcsh . Consulte la página de manual del shell si
necesita ayuda.
Debido a que la mayoría de los archivos de configuración de los shells son scripts escritos en el propio idioma de los shells,
los detalles pueden variar entre proyectiles. Por ejemplo, tcsh establece variables de manera diferente a bash .
Si solo necesita realizar una pequeña modificación en una configuración existente, dichos cambios
probablemente no cause problemas. Sin embargo, si necesita realizar cambios importantes, puede
necesita consultar documentación específica de shell.
Solución de problemas de shells
581

Página 624
582
Capítulo 12 ■
Solución de problemas del sistema II

Investigación de procesos en ejecución


Los procesos en ejecución a veces causan problemas: pueden fallar al iniciarse, fallar una vez iniciados,
no se detienen cuando deberían, o consumen recursos excesivos del sistema. Algunas habilidades y
Las herramientas le ayudarán a lidiar con estos problemas. Primero, debe saber cómo identificar la ejecución
procesos, particularmente para demonios, que normalmente no interactúan con los usuarios en la consola
o con una GUI. En segundo lugar, debe comprender cómo modificar las opciones de registro, por lo tanto
permitiéndole decirle a ciertos programas (nuevamente, particularmente demonios) cómo comunicarse
contigo sobre sus problemas. Por último, debe saber cómo identificar las bibliotecas que
Los programas utilizan y corrigen algunos problemas comunes de la biblioteca.
Encontrar procesos en ejecución
El primer desafío al tratar con un demonio errante es identificar su proceso. En Linux,
Los procesos se identifican mediante números de ID de proceso (PID). Cada proceso también tiene un PID padre
(PPID), que identifica el proceso que lo creó (o generó ). En definitiva, cada
El proceso puede rastrear su ascendencia hasta init , que a su vez fue lanzado por el kernel
durante el proceso de arranque. Si un proceso termina y deja procesos secundarios, esos niños
son "adoptados" por init . La figura 12.1 ilustra esta disposición.
en eso
sshd
cron
syslogd
iniciar sesión
tcsh
Menos
intento
intento
gato
emacs
FIGURA 12.1 Los procesos de Linux se organizan en una jerarquía que conduce de nuevo a init
Usando el programa ps
Puede determinar qué procesos se están ejecutando utilizando el programa ps , que toma
una gran cantidad de opciones. (Los objetivos LPIC - 1 incluyen ps , por lo que ya debería estar
familiarizado con su funcionamiento básico.) Puede utilizar ps para localizar procesos en ejecución mediante un
ps opción que muestra todos los procesos, en lugar de solo los asociados con el suyo

Página 625
cuenta y, a continuación, busque el resultado del proceso que le interesa. Opciones que
mostrar todos los procesos incluyen - A , - e , y la combinación de a y x ( ax ). Los detalles de
lo que muestran estas opciones en términos de información auxiliar varía, pero cualquiera de ellas
mostrarle todos los procesos que se ejecutan en el sistema.
Si está interesado en un proceso en particular, puede canalizar la salida de ps a través de grep
para localizarlo:
$ ps ax | grep apache
3053?
SS 0:00 / usr / sbin / apache2 -k inicio
4753?
S 0:00 / usr / sbin / apache2 -k inicio
4754?
S 0:00 / usr / sbin / apache2 -k inicio
4755?
S 0:00 / usr / sbin / apache2 -k inicio
4756?
S 0:00 / usr / sbin / apache2 -k inicio
4757?
S 0:00 / usr / sbin / apache2 -k inicio
5044 ptos / 1 R + 0:00 grep apache
Este ejemplo muestra seis instancias del servidor apache2 en ejecución, más el comando grep
que ubicó el servidor. Si sospechaba que Apache no se estaba ejecutando, esta salida
poner fin a esas sospechas; sin embargo, si la salida estaba vacía o contenía solo el grep
comando u otros comandos que contengan la cadena apache , sabría que
Apache no se estaba ejecutando; tal vez nunca se había iniciado, o tal vez comenzó a ejecutarse
pero se estrelló.
Este ejemplo ilustra una característica de algunos demonios y otros procesos:
Pueden generar múltiples copias de sí mismos. Apache hace esto mejor
servir a los clientes; cada copia puede manejar un solo cliente, en lugar de tener un
un solo proceso intenta manejar varios clientes. A veces verás
varias copias de un programa porque uno o más usuarios están ejecutando
copias independientes. Tenga cuidado al finalizar dichos procesos con
matar ; ¡no desea eliminar la instancia incorrecta de un programa!
En algunos casos, puede usar ps repetidamente para monitorear un proceso. Puedes consultar cada
de vez en cuando para verificar que un proceso se está ejecutando, o buscar cambios en el valor PID
(la primera columna en la salida anterior) si sospecha que el proceso puede fallar y
reiniciando. Sin embargo, tenga en cuenta que algunos programas terminan y luego se reinician como parte de
su funcionamiento normal, por lo que un valor PID cambiante puede no ser un signo de problema.
Usando el programa superior
Una variante de ps que es muy útil para diagnosticar algunos problemas es la mejor . Este programa
genera una visualización de procesos, ordenados por uso de CPU, y actualiza la lista cada pocos
segundos. El resultado es una pantalla similar a la de la Figura 12.2, que puede utilizar para
identificar qué procesos consumen grandes cantidades de tiempo de CPU. En la Figura 12.2, el
El proceso FahCore_78.exe está consumiendo el 98 por ciento del tiempo de CPU, glxgears está consumiendo
Investigación de procesos en ejecución
583

Página 626
584
Capítulo 12 ■
Solución de problemas del sistema II
91 por ciento, X está usando el 8 por ciento, y todos los procesos restantes están usando sustancialmente
menos tiempo de CPU. (La cantidad total de tiempo de CPU consumido puede exceder el 100 por ciento porque
La computadora utilizada para este ejemplo tiene una CPU de doble núcleo, que en la parte superior interpreta que tiene un
máximo de 200 por ciento de tiempo de CPU disponible).
FIGURA 12.2 La utilidad superior proporciona una visualización dinámica de los procesos en ejecución
Además de monitorear el uso de la CPU, top puede mostrar los principales usuarios de memoria. Tipo M
mientras se está ejecutando para hacer esto, y escriba P para volver a una pantalla ordenada por tiempo de CPU.
(Escribir T ordena por tiempo de CPU acumulado). Tenga en cuenta que debe escribir letras mayúsculas ; el
las versiones en minúsculas tienen efectos diferentes.
Una dificultad con el uso de top para identificar programas que consumen demasiado
El tiempo de CPU o la memoria es que no se puede decir solo desde la salida superior lo que constituye
consumo excesivo de recursos. Tome el resultado de la figura 12.2 como ejemplo. Es verdad
que FahCore_78.exe consume una gran cantidad de tiempo de CPU; sin embargo, este programa es
un cliente de Folding @ home ( [Link] ), que es una forma de donar su
tiempo de CPU no utilizado para un proyecto de investigación científica. En otras palabras, el proceso debe ser
consumiendo mucho tiempo de CPU, pero el tiempo de CPU consumido no se utilizaría de otro modo.
El programa glxgears es una herramienta de demostración de gráficos. También suele consumir mucho
de tiempo de CPU, pero probablemente no querrá dejarlo funcionando por mucho tiempo. Haciendo estos

Página 627
Las determinaciones requieren comprender el propósito y las características operativas normales.
de sus programas, particularmente de aquellos que flotan en la parte superior de la salida superior .
Comprobación de las opciones de registro
Linux mantiene archivos de registro que registran varios detalles clave sobre el funcionamiento del sistema. Tú
es posible que pueda comenzar a usar archivos de registro de inmediato, pero saber cómo cambiar el archivo de registro
La configuración también puede ser importante. Para ello, configure el demonio syslogd .
Algunos servidores y otros programas realizan su propio registro y, por lo tanto, deben configurarse
independientemente de syslogd . Incluso puede configurar una computadora para enviar su
archivos de registro en otro sistema como medida de seguridad. También debe estar al tanto de los problemas
la rotación del archivo de registro circundante; si su computadora no administra adecuadamente los archivos de registro existentes,
pueden crecer para consumir todo el espacio disponible en disco, al menos en la partición en
que están almacenados. Además de configurar el registro, debe poder utilizar el registro
archivos que genera el sistema.
Entendiendo syslogd
La mayoría de los sistemas Linux emplean un demonio especial para manejar el mantenimiento de registros de una manera unificada.
El registrador del sistema Linux tradicional es syslogd , que a menudo se instala desde un paquete
llamado sysklogd . El demonio syslogd maneja mensajes de servidores y otros modos de usuario
programas. Por lo general, está emparejado con un demonio llamado klogd , que generalmente se instala desde el
mismo paquete sysklogd que syslogd . El demonio klogd gestiona el registro de mensajes del kernel.
Existen otras opciones para los registradores del sistema. Por ejemplo, syslog - ng es un
reemplazo que admite opciones de filtrado avanzadas, y metalog es
otra opción. Las versiones recientes de Fedora y Ubuntu usan rsyslogd . Esta
El capítulo describe el registrador syslogd tradicional . Otros son similares en
principio, e incluso en algunas características específicas, pero difieren en muchos detalles.
La idea básica detrás de un registrador de sistema es proporcionar un medio unificado de manejo de registros
archivos. El demonio se ejecuta en segundo plano y acepta datos entregados desde servidores y
otros programas que están configurados para utilizar el demonio de registro. El demonio puede usar
información proporcionada por el servidor para clasificar el mensaje y dirigirlo a un
archivo de registro. Esta configuración le permite consolidar mensajes de varios servidores en un
un puñado de archivos de registro estándar, que pueden ser mucho más fáciles de usar y administrar que potencialmente
docenas de archivos de registro de los distintos servidores que se ejecutan en el sistema.
Para que funcione, por supuesto, el demonio de registro debe estar configurado. En el caso de syslogd ,
esto se hace a través del archivo /etc/[Link] . (El archivo de configuración rsyslogd es / etc /
[Link] y es similar a [Link] .) La siguiente sección describe [Link]
el formato del archivo con más detalle.
Investigación de procesos en ejecución
585

Página 628
586
Capítulo 12 ■
Solución de problemas del sistema II
Configuración de opciones de registro
El formato del archivo /etc/[Link] es conceptualmente simple pero proporciona una gran cantidad de
poder. Las líneas de comentario, como en muchos archivos de configuración de Linux, se indican con una marca de almohadilla
( # ). Las líneas sin comentarios tienen la siguiente forma:
instalación . acción prioritaria
En esta línea, la facilidad es una palabra clave para el tipo de programa o herramienta que generó
el mensaje que se registrará; la prioridad es una palabra clave para la importancia de este mensaje;
y la acción es un archivo, una computadora remota u otra ubicación para aceptar el mensaje.
La facilidad y la prioridad a menudo se denominan colectivamente selector .
Los códigos válidos para la instalación son auth , authpriv , cron , daemon , kern , lpr , mail , mark ,
news , security , syslog , user , uucp y local0 a local7 . Muchos de estos nombres
se refieren a servidores específicos o clases de programas. Por ejemplo, servidores de correo y otro correo:
las herramientas de procesamiento normalmente se registran utilizando la función de correo . La mayoría de los servidores que no
están cubiertos por
los códigos más específicos utilizan la función de demonio . La función de seguridad es idéntica a la autenticación , pero
auth es el nombre preferido. La función de marca está reservada para uso interno. Un asterisco ( * )
se refiere a todas las instalaciones. Puede especificar varias instalaciones en un selector separando las
instalaciones con comas ( , ).
Los códigos válidos para la prioridad son debug , info , notice , warning , warn , error , err , crit ,
alerta , emergencia y pánico . La prioridad de advertencia es idéntica a advertir , el error es idéntico a err ,
y emerg es idéntico al pánico . Los nombres de prioridad de error , advertencia y pánico están en desuso;
debería utilizar sus equivalentes en su lugar. Aparte de estos pares idénticos, estas prioridades
representan niveles ascendentes de importancia. El nivel de depuración registra la mayor parte de la información; es
destinado, como su nombre lo indica, a depurar programas que se comportan mal. El emerg
Prioridad registra los mensajes más importantes, que indican problemas muy graves. Cuando una
el programa envía un mensaje al registrador del sistema, incluye un código de prioridad; los registros del registrador
el mensaje a un archivo si lo ha configurado para registrar mensajes de ese nivel o superior. Así,
si especifica un código de prioridad de alerta , el sistema registrará los mensajes que están clasificados
como alerta o emergente pero no mensajes de crítico o inferior. Una excepción a esta regla es si
preceder al código de prioridad por un signo igual ( = ), como en = crit , que describe qué hacer con
mensajes de prioridad crítica solamente. Un signo de exclamación ( ! ) Invierte el significado de una coincidencia.
Por ejemplo ,! Crit hace que se registren mensajes por debajo de la prioridad crítica . Una prioridad de *
se refiere a todas las prioridades.
Puede especificar varios selectores para una sola acción separando los selectores por un
punto y coma ( ; ). Tenga en cuenta que las comas se utilizan para separar varias instalaciones dentro de una sola
selector, mientras que los puntos y comas se utilizan para separar varios selectores como un todo. Ejemplos de
En breve aparecerán selectores completos.
Normalmente , la acción es un nombre de archivo, normalmente en el árbol del directorio / var / log . los
mensajes , syslog y archivos seguros en este directorio son tres registros comunes e importantes
archivos, aunque no todas las distribuciones utilizan todos estos archivos. Otras posibles ubicaciones de registro
incluir un nombre de archivo de dispositivo para una consola (como / dev / console ) para mostrar datos en el
pantalla, un nombre de máquina remota precedido por un signo arroba ( @ ) para registrar datos en el

Página 629
sistema, y una lista de nombres de usuario de las personas que deberían ver el mensaje si están registrados
in. Para la última de estas opciones, un asterisco ( * ) significa todos los usuarios conectados.
Algunos ejemplos deberían ayudar a aclarar estas reglas. Primero es una entrada bastante ordinaria y simple:
correo.*
/ var / log / mail
Esta línea envía todas las entradas de registro identificadas por el programa de origen como relacionadas con el correo a
el archivo / var / log / mail . La mayoría de las entradas en un archivo /etc/[Link] predeterminado se parecen a esto
uno. Juntos, generalmente cubren todas las instalaciones mencionadas anteriormente. Algunos mensajes
puede ser manejado por múltiples reglas. Por ejemplo, otra regla podría verse así:
* .emerg *
Esta línea envía todos los mensajes de nivel emergente a las consolas de todos los usuarios que están registrados
en la computadora usando herramientas en modo texto. Si esta línea y el selector mail. * Anterior son
Ambos mensajes de nivel emergente relacionados con el correo se registrarán en / var / log / mail y
que se muestra en las consolas de los usuarios.
Un ejemplo más complejo registra los mensajes del kernel de varias formas, según su
prioridades:
kern. *
/ var / log / kernel
[Link]
@ [Link]
[Link]
/ dev / console
[Link]; kern.! err / var / log / kernel-info
La primera de estas reglas registra todos los mensajes del kernel en / var / log / kernel . La segunda linea
envía mensajes críticos a [Link] . (Este sistema debe estar configurado para aceptar
registros remotos, que es un tema que no se trata en este libro.) La tercera línea envía una copia de
mensajes críticos a / dev / console , lo que hace que se muestren en la computadora
pantalla principal de la consola en modo texto. Finalmente, la última línea envía mensajes que están entre
info y err en prioridad a / var / log / kernel - info . Porque err es la prioridad inmediatamente
por encima de crítico y debido a que la información es la prioridad más baja, estas cuatro líneas hacen que todos los kernel
los mensajes se registrarán dos o tres veces: una vez en / var / log / kernel , así como en el
sistema remoto y la consola o en / var / log / kernel - info .
La mayoría de las distribuciones se envían con configuraciones razonables del registrador del sistema, pero es posible que desee
examinar estos ajustes y quizás ajustarlos. Si los cambia, tenga en cuenta que
puede que necesite cambiar algunas otras herramientas. Por ejemplo, todas las distribuciones principales se envían con herramientas
que ayudan a rotar archivos de registro. Si cambia los archivos en los que syslogd registra mensajes,
Es posible que también deba cambiar los scripts de rotación de archivos de registro. Este tema se trata en el
Siguiente sección.
Además de las opciones del registrador del sistema, es posible que pueda configurar las opciones de registro en
programas individuales. Por ejemplo, puede decirle a los programas que registren más o menos información.
o para registrar información de rutina en diferentes prioridades. Algunos programas también proporcionan los medios
para iniciar sesión con el demonio de registro del sistema o con sus propios mecanismos. Los detalles varían mucho de
un programa a otro, por lo que debe consultar la documentación del programa para obtener más detalles.
Investigación de procesos en ejecución
587

Página 630
588
Capítulo 12 ■
Solución de problemas del sistema II
La mayoría de los programas que utilizan los demonios de registro del sistema son servidores y otros
herramientas de sistema. Los programas que las personas ejecutan localmente rara vez registran datos
el demonio de registro del sistema, aunque hay algunas excepciones a esta regla,
como el programa Fetchmail para recuperar correo electrónico de servidores remotos.
Rotar archivos de registro
Los archivos de registro están destinados a retener información sobre las actividades del sistema durante un período razonable.
de tiempo, pero los demonios de registro del sistema no proporcionan ningún medio para controlar el tamaño de los archivos de
registro. Izquierda
sin marcar, los archivos de registro pueden crecer hasta consumir todo el espacio disponible en la partición
en el que residen. Para evitar este problema, los sistemas Linux emplean herramientas de rotación de archivos de registro .
Estas herramientas cambian el nombre y, opcionalmente, comprimen los archivos de registro actuales, eliminan los archivos de
registro antiguos y
obligar al sistema de registro a comenzar a utilizar nuevos archivos de registro.
La herramienta de rotación de registros más común es un paquete llamado logrotate . Este programa es
normalmente se llama de forma regular a través de un trabajo cron . El programa logrotate consulta un
archivo de configuración llamado /etc/[Link] , que incluye varias configuraciones predeterminadas y
normalmente se refiere a archivos en /etc/logrotate.d para manejar archivos de registro específicos. Un típico / etc /
El archivo [Link] incluye varias líneas de comentarios, indicadas por marcas de almohadilla ( # ), así como
líneas para establecer varias opciones, como se ilustra en el Listado 12.1.
Listing 12.1: Muestra /etc/[Link] archivo
# Rotar registros semanalmente
semanal
# Mantenga 4 semanas de registros antiguos
rotar 4
# Crea nuevos archivos de registro después de la rotación
crear
# Comprimir archivos de registro antiguos
comprimir
# Consulte archivos para paquetes individuales
incluir /etc/logrotate.d
# Establecer opciones diversas
notifempty
nomail
noolddir
# Rotar wtmp, que no es manejado por un programa específico

Página 631
/ var / log / wtmp {
mensual
crear 0664 root utmp
rotar 1
}
La mayoría de las líneas del Listado 12.1 establecen opciones que son bastante autoexplicativas o que son
bien explicado por los comentarios que los preceden inmediatamente, por ejemplo, el semanario
line establece el intervalo de rotación de registro predeterminado en una vez por semana. Si ve una opción en su archivo
que no entiende, consulte la página de manual de logrotate .
Porque la rotación de archivos de registro es manejada por trabajos cron que normalmente se ejecutan tarde
por la noche, no sucederá si una computadora se apaga rutinariamente al final
del día. Esta práctica es común en las estaciones de trabajo con Windows, pero
poco común con los servidores. Cualquiera de las estaciones de trabajo Linux debe dejarse funcionando
de la noche a la mañana como práctica general o se deben tomar algunos pasos explícitos para
asegúrese de que la rotación de registros ocurra a pesar de los cierres de rutina. El anacrón
La utilidad es particularmente adecuada para esta tarea.
Las últimas líneas del Listado 12.1 demuestran el formato para la definición de un
archivo de registro. Estas definiciones comienzan con el nombre de archivo del archivo (varios nombres de archivo pueden ser
enumerados, separados por espacios), seguido de una llave abierta ( { ). Terminan en un rizado cerrado
llave ( } ). Las líneas intermedias establecen opciones que pueden anular los valores predeterminados. Por ejemplo, el
La definición de / var / log / wtmp en el Listado 12.1 establece la opción mensual , que le dice al sistema
para rotar este archivo de registro una vez al mes, anulando la opción semanal predeterminada . Tales definiciones
son comunes en los archivos individuales en /etc/logrotate.d , que normalmente son propiedad del
paquetes cuyos archivos de registro rotan.
En la mayoría de los casos, los servidores y otros programas que registran datos lo hacen a través del sistema
daemon de registro o se envía con un archivo de configuración que va en /etc/logrotate.d para manejar
los archivos de registro del servidor. Estos archivos suelen hacer un trabajo razonable, pero es posible que desee duplicar:
revisalos. Por ejemplo, puede descubrir que su sistema está configurado para mantener también
muchos o muy pocos archivos de registro antiguos para su gusto, en cuyo caso ajustar la opción de rotación está en
orden. También debe verificar el directorio / var / log y sus subdirectorios de vez en cuando
luego. Si ve una gran cantidad de archivos que se acumulan o si los archivos se están volviendo inaceptables
tamaño, es posible que desee comprobar los archivos de configuración de logrotate correspondientes . Si una
el archivo apropiado no existe, cree uno. Utilice un archivo de trabajo como plantilla, modificándolo para
el nuevo archivo. Preste especial atención a los scripts de prerotación y postrotación ; puedes
necesita consultar la documentación del programa que está creando el archivo de registro para aprender cómo
para forzar a ese programa a comenzar a usar un nuevo archivo de registro.
En la mayoría de los casos, los archivos de registro permanecen en la computadora que los registró. A veces, sin embargo,
es posible que desee copiar dichos archivos fuera del sitio. La forma más sencilla de hacer esto puede ser reconfigurar
el demonio de registro para enviar los mensajes que desea archivar a otro sistema, como se describe
anteriormente en "Configuración de las opciones de registro". "Otra posibilidad es crear un trabajo cron
Investigación de procesos en ejecución
589

Página 632
590
Capítulo 12 ■
Solución de problemas del sistema II
(como se describe más adelante, en "Manejo de procesos programados") para copiar archivos a otro sistema
utilizando un recurso compartido de red, ssh o alguna otra herramienta de red. También puede copiar manualmente
registrar archivos en discos extraíbles, si lo desea. Hay algunas razones técnicas para archivar el registro
archivos durante más de unas pocas semanas; solo si un problema escapa a su conocimiento durante mucho tiempo
serán útiles. Es posible que los gerentes o abogados deseen mantenerlos a largo plazo durante
sin embargo, por razones comerciales o legales. Por lo tanto, debe preguntar sobre las políticas relativas al archivo de registro
retención al administrar la computadora de un empleador o cliente.
Manejo de problemas relacionados con la biblioteca
En términos informáticos, una biblioteca es un conjunto de funciones que probablemente sean útiles para múltiples
programas y que, por lo tanto, están diseñados para permitir que muchos programas los utilicen. por
Por ejemplo, muchos programas diferentes necesitan funciones para ayudar a colocar el texto en un modo de texto.
consola o terminal: los editores de texto, el menos buscapersonas y varios otros programas tienen
necesidades similares. En lugar de obligar a cada programa a reinventar esta rueda en particular, las bibliotecas
para manejar la colocación de texto en la pantalla, como libncurses , existen. Muchos programas
puede usar libncurses , lo que simplifica la vida de los usuarios de dichas bibliotecas.
Muchas bibliotecas se pueden utilizar de forma estática o dinámica . El código de una biblioteca estática es
integrado en el archivo ejecutable principal del programa final, mientras que una biblioteca dinámica existe como un
archivo separado al que hace referencia el archivo ejecutable principal del programa final. Bibliotecas dinámicas
tienen la ventaja de reducir el uso de recursos, tanto en términos de requisitos de espacio en disco como
uso de memoria. (Sin embargo, estas ventajas solo se aplican si varios programas usan la biblioteca).
El inconveniente de las bibliotecas dinámicas es que invitan a problemas, si las interfaces de la biblioteca
cambiar o si se introduce un error en una nueva versión, la actualización de la biblioteca puede introducir errores
en los programas que lo utilizan. Si se desinstala una biblioteca, los programas que dependen de ella
descanso. Diagnosticar y corregir tales problemas requiere comprender las herramientas utilizadas para
administrar bibliotecas.
Puede identificar algunos problemas de la biblioteca con la ayuda de la utilidad ldd , como se describe en
Capítulo 11. Este programa identifica las bibliotecas utilizadas por cualquier programa binario dado:
$ ldd / usr / bin / zip
[Link].1 => (0x00007fffbd5c5000)
[Link].1 => no encontrado
[Link].6 => /lib/[Link].6 (0x00007f5fe5f03000)
/lib64/[Link].2 (0x00007f5fe646d000)
Si no se puede encontrar una biblioteca, no aparecerá a la derecha del símbolo => ; en cambio, ldd
informes no encontrados , como ocurre con [Link].1 en este ejemplo. Si intentas lanzar un
programa, recibe un mensaje de error:
$ zip
zip: error al cargar bibliotecas compartidas: [Link].1: no se puede abrir compartido
archivo de objeto: no existe tal archivo o directorio

Página 633
La solución al problema depende de la naturaleza del problema. A veces el
la biblioteca correcta está instalada, pero el programa binario la está buscando con el nombre incorrecto
o ubicación. En tal caso, la creación de un enlace simbólico puede solucionar el problema:
# ln -s /lib/[Link].1.2 /lib/[Link].1
En otras ocasiones, es posible que deba actualizar la ruta de la biblioteca de la computadora: el conjunto de directorios
en el que la computadora busca bibliotecas. La ruta de la biblioteca se almacena en /etc/[Link]
Archivo .conf , que contiene un directorio por línea. Si sabe que existe una biblioteca en un
directorio inusual, puede agregar ese directorio a /etc/[Link] . Después de hacer esto,
sin embargo, debe escribir ldconfig como root para crear el enlazador del sistema (el software que vincula
programas junto con sus bibliotecas) reconocen las bibliotecas en la nueva ruta. Puedes
También es necesario escribir ldconfig después de instalar nuevas bibliotecas, aunque los scripts posteriores a la instalación en
Los archivos de paquetes binarios suelen hacer esto cuando instala una biblioteca en un paquete.
Algunas distribuciones construyen /etc/[Link] a partir de archivos en /etc/[Link].d
directorio, ya sea dinámicamente a través de una declaración de inclusión en [Link] o mediante un
mando. Por lo tanto, si desea agregar directorios a este archivo, a menudo es mejor agregar un
nuevo archivo a /etc/[Link].d . Si el archivo principal incluye un comentario que indica que debe ser
regenerado escribiendo algún comando, como env - update , debe hacerlo después de realizar
cambia a /etc/[Link].d .
Otra forma de ajustar la ruta de la biblioteca es utilizar el entorno LD_LIBRARY_PATH
variable. Establezca esta variable en una lista delimitada por dos puntos de directorios que contienen bibliotecas que
no están en la ruta de la biblioteca del sistema:
$ export LD_LIBRARY_PATH = / opt / someprog / lib: / opt / otro / lib
Este ejemplo agrega dos directorios a la ruta de la biblioteca. Esta función puede resultar útil si
necesidad de agregar temporalmente a la ruta de la biblioteca con fines de prueba o si una persona necesita
para realizar un cambio permanente que otros usuarios no necesitan. Si se debe hacer un cambio
En todo el sistema, sin embargo, editar /etc/[Link] o los archivos en /etc/[Link].d es más
apropiado.
Uso de binarios de 32 y 64 bits
Si ejecuta una versión de Linux de 64 bits x 86-64 (también conocida como AMD64 o EM64T), probablemente tenga la
capacidad para ejecutar binarios de 32 bits ( x 86), así como binarios de 64 bits. Esta habilidad puede ser útil
si necesita ejecutar programas antiguos solo binarios o programas que no se compilan y ejecutan
correctamente en modo de 64 bits. Desafortunadamente, un problema con esta función es que requiere
debe mantener las versiones de 64 y 32 bits de al menos algunas bibliotecas.
Investigación de procesos en ejecución
591

Página 634
592
Capítulo 12 ■
Solución de problemas del sistema II

Manejo de procesos programados


Linux proporciona varios mecanismos para ejecutar procesos en el futuro. Esta facilidad es útil
para programar el mantenimiento de rutina automático (como la rotación de archivos de registro), para realizar
tareas repetitivas (como recuperar correo electrónico de forma regular) o para realizar tareas puntuales
Existen diferentes enfoques para administrar bibliotecas de 64 y 32 bits. En la mayoría de los casos,
encontrará directorios de bibliotecas separados para bibliotecas de 64 y 32 bits, como / lib64 y
/ lib32 . También es probable que haya un directorio / lib ; ya sea / lib es un enlace simbólico a / lib64
o / lib64 es un enlace simbólico a / lib . (Estos arreglos se reflejan en / usr , como en
/ usr / lib32 y así sucesivamente.) Este método de organización de bibliotecas enfatiza la
(64 bits), ya que las bibliotecas normalmente se encuentran en / lib , / usr / lib y de manera similar
directorios con nombre.
Algunas distribuciones hacen las cosas de manera un poco diferente; tienen / lib y / lib64 separados
directorios pero no directorio / lib32 . Esta configuración es peculiar de los estándares de Linux.
punto de vista, pero tiene la ventaja de que los paquetes destinados a sistemas x 86 pueden instalar
sin modificación; en el primer tipo de sistema, tales paquetes, si incluyen bibliotecas,
soltaría las bibliotecas de 32 bits en el directorio de bibliotecas de 64 bits, sobrescribiendo potencialmente
Bibliotecas de 64 bits y causando caos.
Con cualquiera de estos sistemas, debe ser consciente de la presencia y la necesidad de ambos
Bibliotecas de 64 y 32 bits. Es fácil pasar por alto esta distinción y confundirse o confundirse.
frustrado cuando un programa no funciona porque informa que no puede encontrar una biblioteca cuando
uno de los nombres exactos solicitados existe claramente en su disco duro. Puedes identificar
el tipo de biblioteca (y de un programa que lo necesita) usando archivo :
$ archivo / bin / cp
/ bin / cp: ELF ejecutable LSB de 64 bits, x86-64, versión 1 (SYSV), dinámicamente
vinculado (usa bibliotecas compartidas), para GNU / Linux 2.6.15, despojado
$ archivo /lib/[Link].1.1.0
/lib/[Link].1.1.0: Objeto compartido LSB ELF de 64 bits, x86-64, versión 1
(SYSV), vinculado dinámicamente, despojado
$ archivo /lib32/[Link].1.1.0
/lib32/[Link].1.1.0: Objeto compartido LSB ELF de 32 bits, Intel 80386, versión 1
(SYSV), vinculado dinámicamente, despojado
Este ejemplo indica que / bin / cp es un ejecutable de 64 bits, que /lib/[Link].1.1.0
es una biblioteca de 64 bits y /lib32/[Link].1.1.0 es una biblioteca de 32 bits. Si un programa
indica que no puede cargar una biblioteca que ve que está presente, verificando tanto el programa
y la biblioteca con el archivo puede ayudarlo a determinar si no coinciden.

Página 635
(como mostrar un recordatorio sobre una cita en su pantalla). La principal herramienta para
realizar tales tareas es cron , por lo que comprender un poco cómo funciona y dónde puede ir
incorrecto: puede ayudarlo a diagnosticar problemas relacionados con esta herramienta.
Aunque esta sección enfatiza cron , otras dos herramientas relacionadas merecen
mencionar. El primero de ellos es en , que ejecuta trabajos de forma única, como
opuesto a la programación repetida que maneja cron . La segunda herramienta es
anacron , que a veces complementa cron en sistemas que no se ejecutan
continuamente; anacron se puede utilizar para garantizar que trabajos como la rotación de registros
ocurrir incluso si la computadora se apaga con frecuencia en los momentos en que
estos trabajos normalmente ocurrirían.
Gestión de procesos programados
Existen dos tipos de trabajos cron : trabajos cron del sistema , que manejan tareas para el sistema operativo como un todo,
como la rotación de archivos de registro; y trabajos cron de usuario , que las personas pueden usar para ejecutar sus propios
trabajos en horarios programados. Los dos se crean y gestionan de forma similar, aunque existen
son algunas diferencias críticas.
Creación de trabajos cron del sistema
El archivo / etc / crontab controla los trabajos cron del sistema . Este archivo normalmente comienza con varios
líneas que establecen variables de entorno, como $ PATH y $ MAILTO (la primera establece la ruta,
y esta última es la dirección a la que se envía la salida de los programas). El archivo entonces contiene
varias líneas que se asemejan a las siguientes:
02 4 * * * partes de ejecución raíz /etc/[Link]
Esta línea comienza con cinco campos que especifican la hora. Los campos son, en orden, el minuto
(0 - 59), la hora (0 - 23), el día del mes (1 - 31), el mes (1 - 12) y el día del
semana (0 - 7; tanto 0 como 7 corresponden al domingo). Para los valores de mes y día de la semana,
puede utilizar las primeras tres letras del nombre en lugar de un número, si lo desea.
En todos los casos, puede especificar varios valores de varias formas:
Un asterisco ( * ) coincide con todos los valores posibles.
Una lista separada por comas (como 0,6,12,18 ) coincide con cualquiera de los valores especificados.
Dos valores separados por un guión ( - ) indican un rango, incluidos los puntos finales. por
ejemplo, de 9 a 17 en el campo de la hora especifica un tiempo de 9 a.m. a 5 p.m. (tenga en cuenta que,
según el valor del campo de minutos, los trabajos podrían ejecutarse hasta las 5:59 p.m. en este
ejemplo.)
Una barra, cuando se usa junto con alguna otra opción de valor múltiple, especifica
valores escalonados: un rango en el que se omiten algunos miembros. Por ejemplo, * / 10 en el
El campo de minuto indica un trabajo que se ejecuta cada 10 minutos.




Manejo de procesos programados
593

Página 636
594
Capítulo 12 ■
Solución de problemas del sistema II
Después de los primeros cinco campos, las entradas de / etc / crontab continúan con el nombre de la cuenta
utilizado al ejecutar el programa ( root en el ejemplo anterior) y el comando para
ser ejecutado ( run - parts /etc/[Link] en este ejemplo). Las entradas predeterminadas de / etc / crontab
generalmente use run - parts , cronloop o una utilidad similar que ejecute cualquier script ejecutable
dentro de un directorio. Por lo tanto, el ejemplo anterior ejecuta todos los scripts en /etc/[Link] en
4:02 AM todos los días. La mayoría de las distribuciones incluyen sistemas mensuales, diarios, semanales y por horas.
trabajos cron , cada uno correspondiente a scripts en un directorio llamado / etc / cron. intervalo , donde
intervalo es una palabra asociada con la frecuencia de ejecución. Otros colocan estos scripts en / etc /
directorios cron.d / intervalo .
Los tiempos exactos elegidos para ejecutar los trabajos cron del sistema varían de uno
distribución a otro. Normalmente, sin embargo, diario y más largo: cron de intervalo
las tareas se ejecutan temprano en la mañana - entre la medianoche y las 6 A . M . Revisar su
/ etc / crontab para determinar cuándo se ejecutan los trabajos cron del sistema .
Para crear un nuevo trabajo cron del sistema , puede crear un script para realizar la tarea que desee
ejecutado y copie ese script en el / etc / cron apropiado . directorio de intervalo . Cuando el
El tiempo de ejecución se ejecuta a continuación , cron ejecutará el script.
Antes de enviar un script como trabajo cron , pruébelo a fondo. Esto es
particularmente importante si el trabajo cron se ejecutará cuando usted no esté presente. Tú
no quiero que un error en el script de su trabajo cron cause problemas al completar el
disco duro con archivos inútiles o produciendo miles de mensajes de correo electrónico
cuando no esté presente para corregir rápidamente el problema.
Si necesita ejecutar un trabajo cron a una hora o intervalo que no es compatible con el estándar
/ etc / crontab , puede modificar ese archivo para cambiar o agregar el tiempo de ejecución del trabajo cron o
cree un trabajo cron de usuario , como se describe brevemente. Si elige modificar el trabajo cron del sistema
instalación, modele sus cambios a partir de una entrada existente, cambiando las horas y el almacenamiento del script
directorio según sea necesario.
Los directorios de almacenamiento de trabajos cron del sistema deben ser propiedad de root , y
solo root debería poder escribirles. Si los usuarios normales pueden escribir a
un directorio cron del sistema , los usuarios sin escrúpulos pueden escribir scripts para dar
ellos mismos privilegios de superusuario y colocarlos en el cron del sistema
directorio. La próxima vez que cron ejecute esos scripts, los usuarios tendrán
acceso administrativo al sistema.
Creación de trabajos cron de usuario
Para crear un trabajo cron de usuario , utilice la utilidad crontab , que no debe confundirse con / etc /
archivo de configuración crontab . La sintaxis de crontab es la siguiente:
crontab [-u usuario ] [-l | -e | -r] [ archivo ]

Página 637
Si se les da sin la - u usuario parámetro, crontab modifica el cron trabajo asociado con
el usuario actual. (Los trabajos cron de usuario a menudo se denominan crontabs ; pero debido a que la palabra ya está
utilizado en referencia al archivo de configuración de todo el sistema y la propia utilidad, este uso puede
ser desconcertante.) La utilidad crontab puede confundirse con el uso de su para cambiar la
la identidad del usuario actual, por lo que si usa este comando, es más seguro usar también - u user , incluso cuando
está modificando su propio trabajo cron .
Si desea trabajar directamente en un trabajo cron , use la opción - l , - r o - e . La opción - l
hace que crontab muestre el trabajo cron actual ; - r elimina el trabajo cron actual ; y - e
abre un editor para que pueda editar el trabajo cron actual . (Vi es el editor predeterminado, pero
puede cambiar esto configurando la variable de entorno VISUAL o EDITOR , como se describe en
Capítulo 1.)
Alternativamente, puede crear un archivo de configuración de trabajo cron y pasar el nombre del archivo a
crontab usando el parámetro de archivo . Por ejemplo, crontab - u tbaker my - cron provoca crontab
usar mi - cron para tbaker 's cron puestos de trabajo.
Ya sea que cree el trabajo cron y lo envíe a través del parámetro de archivo o lo edite a través de - e ,
el formato del archivo cron es similar al descrito anteriormente. Puede configurar el entorno
variables utilizando la forma VARIABLE = valor , o puede especificar un comando precedido por
cinco números o comodines para indicar cuándo se ejecutará el trabajo. En un trabajo cron de usuario , lo hace
no especifique el nombre de usuario utilizado para ejecutar el trabajo, como lo hace con los trabajos cron del sistema . Ese
la información se deriva del propietario del trabajo cron . El listado 12.2 muestra un cron de muestra
archivo de trabajo. Este archivo ejecuta dos programas a intervalos diferentes: El programa fetchmail se ejecuta
cada 30 minutos (en la hora y media hora), y limpio - un doble se ejecuta los lunes a las
2:00 AM Ambos programas se especifican a través de rutas completas, pero puede incluir una PATH
variable de entorno y omita las especificaciones de ruta completas.
Listado 12.2: Un archivo de trabajo cron de usuario de muestra
SHELL = / bin / bash
MAILTO = tbaker
INICIO = / inicio / tbaker
0,30 * * * * / usr / bin / fetchmail -s
0 2 * * mon / usr / local / bin / clean-adouble $ HOME
En última instancia, los archivos de trabajo cron del usuario se almacenan en / var / spool / cron , / var / spool / cron /
pestañas o el directorio / var / spool / cron / crontabs . Cada archivo de este directorio lleva el nombre
el usuario bajo cuyo nombre se ejecuta; por ejemplo, el archivo de tbaker podría llamarse / var / spool /
cron / tabs / tbaker . No debe editar directamente los archivos de este directorio; en su lugar, usa
crontab para realizar cambios.
El acceso a la función cron puede estar restringido de varias formas:
Permisos ejecutables Los permisos en los programas cron y crontab pueden ser
restringido mediante mecanismos de permisos estándar de Linux. No todas las distribuciones configuran
ellos mismos de esta manera, pero para aquellos que lo hacen, los usuarios que deberían poder programar trabajos
el uso de cron debe agregarse al grupo apropiado. Este grupo a menudo se llama cron , pero
Manejo de procesos programados
595

Página 638
596
Capítulo 12 ■
Solución de problemas del sistema II
debe verificar el propietario del grupo y los permisos en / usr / sbin / cron y / usr / bin /
archivos de programa crontab para estar seguro.
Lista de usuarios permitidos El archivo /etc/[Link] contiene una lista de usuarios que deben
acceso permitido a cron . Si este archivo está presente, solo los usuarios cuyos nombres aparecen en el archivo
puede usar cron ; a todos los demás se les niega el acceso. Si este archivo no está presente, cualquiera puede usar cron ,
asumiendo que el acceso no está restringido por permisos ejecutables o una lista de usuarios no permitidos.
Lista de usuarios no permitidos El archivo /etc/[Link] contiene una lista de usuarios que deben
se le negará el acceso a cron . Si este archivo está presente, cualquier usuario cuyo nombre aparezca en el archivo es
denegado el acceso a cron , pero todos los demás pueden usarlo, asumiendo permisos ejecutables y
La lista de usuarios permitidos no restringe el acceso.
Investigación de problemas
Un tipo de problema cron se relaciona con las restricciones de acceso que se acaban de describir: si un
El usuario no puede crear trabajos cron , debe verificar los permisos ejecutables y el contenido del
Archivos /etc/[Link] y /etc/[Link] (si están presentes). Tenga cuidado al modificar
estas características, sin embargo; no quiere derribar las medidas de seguridad que podrían haber
puesto en su lugar por una razón. Si es necesario, consulte con otros administradores para saber por qué
existe una restricción.
Si los trabajos cron del sistema no se están ejecutando, compruebe sus archivos de registro para ver si hay indicaciones de que
archivo fue ejecutado. Idealmente, debería ver líneas que indiquen lo que se ejecutó:
3 de enero 08:17:01 buscador CRON [4885]: (root) CMD (cd / & & run-parts --report
/etc/[Link])
Los detalles varían de una distribución a otra (este ejemplo está tomado de un Ubuntu
instalación), pero las entradas deben indicar el comando ejecutar - cd / & & ejecutar - partes - -
informe /etc/[Link] en este ejemplo. Si no puede encontrar evidencia de que cron se esté ejecutando
sus trabajos, tal vez el demonio no se está iniciando o se está bloqueando. Use ps para ver si está funcionando,
como se describe anteriormente en “Búsqueda de procesos en ejecución. "Es posible que también desee revisar su
Configuración SysV o Upstart, ya que cron normalmente se inicia de esta manera.
A veces, crear un trabajo cron "ficticio" puede ser una buena forma de investigar problemas. UNA
comando como date> /tmp/[Link] , usado como trabajo cron , puede decirle si un trabajo es
ejecutando simplemente verifique /tmp/[Link] , y verifique que contenga la hora que debería
si el trabajo se está ejecutando correctamente.
Puede crear trabajos cron que se ejecuten cuando desee que se ejecuten para ayudar
diagnosticar problemas. Sin embargo, tenga cuidado cuando haga esto. Si estas teniendo
problemas con, digamos, la ejecución mensual cron regular , puede programarlo para
corre de inmediato; pero si esta ejecución normalmente requiere algo de tiempo o
tarea sensible al tiempo como, por ejemplo, una copia de seguridad mensual del sistema, es posible que desee
elimine o deshabilite el script que hace esto mientras prueba (a menos que, por supuesto,
ese es el proceso mensual que no funciona).

Página 639
Siempre debe tener en cuenta los permisos cuando se trata de cron . Algunas veces
un trabajo no funcionará porque se está ejecutando como usuario incorrecto. Un trabajo que se ejecuta
inapropiadamente como root puede ser un gran problema. Esto no solo crea una
riesgo de seguridad, pero si el trabajo crea archivos, probablemente serán propiedad de root , lo que podría
causar problemas si los usuarios normales o los procesos no root deberían poder manipular (o
a veces incluso lee) estos archivos.

Resumen
Este capítulo cubre una variedad de sistemas diversos y resolución de problemas ambientales.
temas. El primero de ellos fue la inicialización del sistema: asegurarse de que el nivel de ejecución
alcanzado, que los scripts de inicio se ejecutan correctamente y que hay disponible un proceso de inicio de sesión adecuado
para usuarios (o administradores). También debería poder comprobar y cambiar el kernel
configuraciones usando sysctl ; tales configuraciones a veces pueden ser de vital importancia para los
operación del sistema.
Las cuentas de usuario plantean desafíos únicos para la resolución de problemas. Las cuentas pueden dañarse o
necesitan atención debido a un entorno de cuenta cambiante o porque los usuarios simplemente olvidan
sus contraseñas. Afortunadamente, las herramientas ordinarias de mantenimiento de cuentas ( passwd , usermod ,
y así sucesivamente) puede corregir la mayoría de estos problemas. Algunos problemas de los usuarios se relacionan con sus shells.
Dependiendo de cómo se inicie, bash puede usar cualquiera de varios archivos de configuración diferentes,
que son de hecho scripts. Si faltan archivos de usuario críticos como ~ / .bashrc o están dañados,
Es posible que no se establezcan las variables de entorno críticas de bash y otras características. Asimismo, global
Los archivos de configuración pueden dañarse y pueden necesitar reparación o reemplazo.
Los programas en ejecución plantean problemas genéricos. Debe poder identificar procesos específicos
utilizando ps . Con la información de ps en la mano, es posible que pueda eliminar un proceso errante
o comience a aprender por qué un proceso que debería estar ejecutándose no lo es. La mayoría de los programas de Linux se basan en
bibliotecas, por lo que es importante poder identificar esas bibliotecas y solucionar los problemas de la biblioteca.
A veces, desea ejecutar programas en el futuro. La utilidad cron proporciona esto
capacidad en Linux, por lo que es importante comprender cómo usar cron . Solución de problemas cron puede
a veces puede ser complicado porque está diseñado para ejecutar trabajos en momentos específicos. Reprogramando cron
trabajos, verificar archivos de registro y prestar atención a cron : los detalles específicos pueden ayudarlo a diagnosticar
problemas de cron .

Examen esencial
Explique cómo cambiar el nivel de ejecución predeterminado. El archivo / etc / inittab contiene una línea que
comienza con id que establece el nivel de ejecución predeterminado. Cambie el número en esta línea para reflejar su
nivel de ejecución predeterminado deseado. Por ejemplo, editando esta línea para leer id: 3: initdefault: sets
el nivel de ejecución predeterminado es 3.
Examen esencial
597

Página 640
598
Capítulo 12 ■
Solución de problemas del sistema II
Resuma algunas herramientas y métodos de inicio de sesión comunes. Los métodos de inicio de sesión pueden ser en modo texto
o GUI y local o habilitado para red. El método tradicional de inicio de sesión local en modo texto es el
programa de inicio de sesión , que se ejecuta en una consola local a través de un programa getty . Red: habilitado
Las herramientas en modo texto incluyen Telnet, ahora obsoleto en gran medida, y SSH más reciente. El XDMCP
El protocolo media los inicios de sesión de GUI locales y de red. Los inicios de sesión de la GUI de red también pueden
manejado por VNC o tunelizado a través de SSH.
Describa las herramientas para ajustar las opciones del kernel una vez que se haya iniciado la computadora. Algo de kernel
Las opciones se pueden configurar modificando archivos en el árbol de directorios / proc . Otra forma de hacer esto
es utilizar el programa sysctl . Puede editar estas opciones para que se establezcan cuando el sistema
arranca editando /etc/[Link] .
Resuma los archivos en los que se almacena la información de la cuenta de usuario. El etc / / passwd archivo
contiene nombres de usuario, valores UID, valores GID predeterminados, información de usuario de formato libre, la ubicación
de los directorios de inicio de los usuarios y los nombres de los shells predeterminados de los usuarios. En el pasado, también celebró
contraseñas hash, pero esta información ahora se guarda en el archivo / etc / shadow , que también
contiene información de antigüedad de la contraseña. El archivo / etc / group contiene información sobre grupos,
incluidos los nombres de los grupos, los valores de GID y los usuarios que pertenecen a los grupos.
Resuma algunas de las herramientas que se utilizan para ajustar la información de la cuenta. La utilidad usermod
modifica muchas de las características clave de la cuenta, como el valor de UID, el directorio de inicio y
shell predeterminado. Puede usar passwd para restablecer una contraseña olvidada o dañada. Puedes usar
su editor de texto favorito para editar directamente cualquiera de los archivos clave de la cuenta.
Describe los scripts de inicio clave de bash . Los scripts de inicio para bash se pueden clasificar como
ya sea con o sin inicio de sesión y como global o como usuario. El archivo de inicio de sesión global clave es / etc /
profile , pero a menudo también incluye archivos en /etc/profile.d . El ~ / .bash_profile ,
Los archivos ~ / .bash_login y ~ / .profile son archivos de inicio de sesión del usuario. Oficialmente, el único bash sin inicio de sesión
El script de inicio es ~ / .bashrc (un archivo de usuario); sin embargo, tanto este archivo como / etc / profile normalmente
llamar a / etc / bashrc , / etc / bash / bashrc , o /etc/[Link] , por lo que estos archivos son generalmente
considerados archivos de no inicio de sesión globales.
Explique cómo asegurarse de que se utilizarán las bibliotecas dinámicas almacenadas en una ubicación inusual.
El archivo /etc/[Link] contiene los nombres de los directorios que se buscarán para
Bibliotecas. Puede editar este archivo, ya sea directamente o creando un archivo personalizado en /etc/[Link]
.conf.d , y luego escriba ldconfig como root para que el sistema escanee las bibliotecas para que pueda
localice rápidamente archivos de biblioteca específicos.
Describe cómo ajustar las opciones de syslogd . Puede controlar los archivos a los que se registran los mensajes
se envían editando /etc/[Link] . (Algunos sistemas usan otros registradores del sistema, por lo que
puede que necesite ajustar un archivo diferente, como /etc/[Link] .) Utiliza varios códigos
para asignar archivos u otros objetivos a instalaciones específicas (como kern , correo y seguridad )
y prioridades (como info , err y emerg ). Los servidores y algunos otros programas generan
mensajes con facilidades y prioridades particulares de acuerdo con sus propias reglas; el sistema
logger los clasifica y registra de acuerdo con las reglas que usted especifique.

Página 641
Explique la diferencia entre los trabajos cron del sistema y del usuario . Se crean trabajos cron de usuario
por usuarios normales (potencialmente incluyendo root ) para manejar sus propias tareas de forma regular
base programada. Los usuarios crean archivos que especifican estos trabajos, que luego son almacenados por el sistema
en / var / spool / cron o una ubicación similar. Los trabajos cron del sistema manejan las tareas del sistema. Ellos son
definido en / etc / crontab , que normalmente ejecuta scripts almacenados en varios otros subdirectorios
llamado / etc / cron. intervalo , donde intervalo es una unidad de tiempo.
Resuma algunos métodos que puede utilizar para resolver problemas cron . Puede verificar el usuario
restricciones para asegurarse de que los usuarios tengan derecho a ejecutar trabajos cron . Puede comprobar los archivos de registro
para
ver si cron está intentando ejecutar un proceso en el momento adecuado. Puedes usar ps para
Verifique que el demonio cron se esté ejecutando. Puede crear un trabajo cron "ficticio" que se ejecute
con lo que sea que esté causando problemas, pero eso crea un rastro útil de sus operaciones para ayudar
diagnosticar el problema.
Examen esencial
599

Página 642
600
Capítulo 12 ■
Solución de problemas del sistema II

Preguntas de revisión
1. ¿Cuál es el propósito del archivo /etc/[Link]?
A. Tiene varias opciones de configuración del sistema que se establecen a través de la utilidad sysctl
cuando se inicia el sistema.
B. Especifica el orden en el que se inician los servicios del sistema cuando se inicia la computadora.
C. Se especifica los sistemas de archivos que están montados en el arranque o que pueden estar montados
manualmente por usuarios normales.
D. Identifica los servicios del sistema que son iniciados directamente por el proceso init cuando el
botas de computadora.
2. ¿En qué se diferencian / etc / profile y / etc / bashrc?
A. / etc / profile es un script de cierre de sesión tcsh; / etc / bashrc contiene variables de entorno bash.
B. / etc / profile contiene estadísticas de inicio de sesión del usuario; / etc / bashrc contiene las preferencias de shell del usuario.
C. / etc / profile es un script de inicio de sesión; / etc / bashrc no es un script de inicio de sesión.
D. / etc / profile contiene datos de cuentas de usuario; / etc / bashrc es un script de inicio de bash.
3. ¿Cuáles son los contenidos importantes (sin comentarios) de /etc/[Link]?
A. Variables ambientales
B. Un programa de script de shell
C. Nombres de usuario
D. Nombres de directorio
4. Un enlace simbólico se llama /etc/rc.d/rc3.d/S80sendmail. Suponiendo que este enlace simbólico es
colocado correctamente y funciona de la manera esperada, ¿qué hará?
A. Inicie el servidor de sendmail en el nivel de ejecución 3.
B. Apunte el servidor de sendmail a su archivo de configuración.
C. Inicialice sendmail para que se ejecute a través de inetd.
D. Detenga el servidor de sendmail cuando se inicie manualmente sin opciones.
5. ¿Cuál de los siguientes es un script de inicio global de bash sin inicio de sesión?
A. / etc / profile
B. / etc / bashrc
C. /root/.profile
D. /root/.bashrc

Página 643
6. ¿Qué comando debe escribir como root para que el sistema vuelva a escanear los directorios en el
ruta de la biblioteca para permitir que los programas encuentren bibliotecas dinámicas en estos directorios?
A. sysctl
B. ldconfig
C. sombra
D. init - libs
7.
Ha determinado que el servidor SSH lo está iniciando el inicio /etc/rc2.d/S16ssh
script (o un enlace con ese nombre). Quiere evitar que este servidor se ejecute en el nivel de ejecución 2.
¿Cuál es la forma más confiable de hacer esto?
A. Cambie el nombre de la secuencia de comandos o el enlace para que comience con K en lugar de S.
B. Elimine el directorio /etc/rc2.d.
C. Elimine el archivo o enlace /etc/rc2.d/S16ssh.
D. Localice el archivo de configuración Upstart correspondiente y elimínelo.
8. ¿Cuál de los siguientes no es un archivo de script de inicio de bash común?
A. ~ / .bash_logout
B. /etc/[Link]
C. / etc / bashrc
D. ~ / .profile
9. type Usted sysctl - un sistema como root. ¿Qué puede esperar que suceda?
A. La computadora se reiniciará inmediatamente.
B. Todos los procesos con valores PPID no válidos finalizarán.
C. Verá una lista de claves del kernel y sus valores.
D. Verá un mensaje de error que describe el uso correcto de sysctl.
10. ¿Qué directorio se usa comúnmente como ubicación complementaria para scripts adicionales llamados
por el script de inicio de sesión global de bash?
A. /etc/bashrc.d
B. /etc/[Link]
C. /etc/profile.d
D. / etc / scripts
11. ¿Cuál de las siguientes líneas, si se usa en un trabajo cron de usuario, ejecutará / usr / local / bin / cleanup?
¿dos veces al día?
A. 15 7,19 * * * tbaker / usr / local / bin / limpieza
B. 15 7,19 * * * / usr / local / bin / limpieza
C. 15 * / 2 * * * tbaker / usr / local / bin / cleanup
D. 15 * / 2 * * * / usr / local / bin / cleanup
Preguntas de revisión
601

Página 644
602
Capítulo 12 ■
Solución de problemas del sistema II
12. Para alterar el nivel de ejecución predeterminado de un sistema Linux, ¿qué haría?
A. Emita el comando telinit x , donde x es el nivel de ejecución deseado.
B. Edite /etc/[Link] e ingrese el nivel de ejecución como una opción para el módulo de nivel de ejecución.
C. Emita el comando telinit Q para que el sistema le pregunte por un nuevo nivel de ejecución.
D. Edite / etc / inittab e ingrese el nivel de ejecución correcto en la línea de identificación.
13. Utilice top para examinar el tiempo de CPU consumido por varios procesos en su
sistema. Descubre que un proceso, dfcomp, consume más del 90 por ciento de su
tiempo de CPU del sistema. ¿Qué puedes concluir?
A. Muy poco; dfcomp podría estar consumiendo legítimamente tanto tiempo de CPU, o podría ser
un programa no autorizado o que funciona mal.
B. Ningún programa debería consumir el 90 por ciento del tiempo de CPU disponible; dfcomp es claramente
funciona mal y debe ser terminado.
C. Esto es normal; dfcomp es el proceso de programación principal del kernel y consume cualquier
tiempo de CPU no utilizado.
D. Este comportamiento es normal si su CPU es menos potente que un Pentium EM64T de 2,5 GHz;
pero en los sistemas más nuevos, ningún programa debería consumir el 90 por ciento del tiempo de CPU.
14. ¿Qué está mal con la siguiente entrada de trabajo cron del sistema (en / etc / crontab)?
17 * * * * ejecutar-partes /etc/[Link]
A. Este comando debe ejecutarse cada hora, pero solo se ejecutará a las 5:00 p.m.
B. No existe el comando run - parts en Linux.
C. La especificación de tiempo está incompleta.
D. Falta una especificación de usuario.
15. El usuario fred crea un trabajo cron para recuperar el correo electrónico de un servidor remoto utilizando el
programa fetchmail. ¿Qué ocurre con este trabajo cron, si está configurado correctamente?
R. El proceso de fetchmail se ejecuta con el UID fred.
B. El proceso de fetchmail se ejecuta con el UID raíz.
C. El proceso fetchmail se ejecuta con el UID crontab.
D. El proceso fetchmail se ejecuta con el UID de nadie.
16. Usted inicia sesión en un sistema Linux utilizando un terminal virtual en modo texto en la consola de la computadora.
¿Qué programa puede manejar el procedimiento de inicio de sesión?
A. bash
B. SSH
C. GDM
D. iniciar sesión

Página 645
17. ¿Cuál de las siguientes funciones de la cuenta puede cambiar editando la entrada de un usuario en / etc /
passwd? (Seleccione todas las que correspondan.)
A. La fecha de vencimiento de la cuenta
B. El directorio de inicio de la cuenta
C. El shell predeterminado de la cuenta
D. El entorno de escritorio GUI predeterminado de la cuenta
18. ¿En qué archivo están asociados los GID con sus nombres asignados?
A. / etc / passwd
B. / etc / shadow
C. / etc / group
D. /etc/grub.d
19. ¿En qué archivo de configuración puede encontrar características de todo el sistema, como el UID mínimo?
valor que se debe utilizar para las cuentas de usuario y el período que debe esperar el inicio de sesión después de un
¿Error de inicio de sesión antes de permitir otro intento?
A. /etc/[Link]
B. /etc/[Link]
C. /etc/[Link]
D. /etc/[Link]
20. ¿Qué permisos son los más apropiados para el archivo / etc / shadow?
A. 0666 (- rw - rw - rw -)
B. 0644 (- rw - r - - r - -)
C. 0640 (- rw - r - - - - -)
D. 0600 (- rw - - - - - - -)
Preguntas de revisión
603

Página 646
604
Capítulo 12 ■
Solución de problemas del sistema II

Respuestas a las preguntas de repaso


1. A. La opción A describe correctamente el propósito de /etc/[Link]. La opción B es parcial
descripción del propósito de los scripts de inicio de SysV. La opción C describe la función de / etc /
archivo fstab. La opción D describe el propósito del archivo / etc / inittab.
2. C. La opción C proporciona descripciones breves pero correctas de ambos archivos, por lo que es correcta.
La descripción de la opción A de / etc / profile es completamente ficticia, aunque su descripción
de / etc / bashrc es al menos potencial y parcialmente correcto, ya que los scripts de
Variables de entorno. Las descripciones de la opción B de ambos archivos son completamente ficticias.
La descripción de la opción D de / etc / profile es ficticia (se aplica a / etc / passwd), pero
la descripción de / etc / bashrc es correcta.
3. D. El archivo /etc/[Link] contiene los nombres de los directorios que el sistema busca
bibliotecas dinámicas, por lo que la opción D es correcta. Este archivo no contiene variables de entorno,
programas de script de shell, o nombres de usuario, por lo que las opciones A, B y C son incorrectas.
4. A. /etc/rc.d/rc3.d es una de varias ubicaciones posibles para los enlaces al inicio de SysV
scripts que se ejecutarán al ingresar al nivel de ejecución 3. Porque este nombre de enlace comienza
con S, este enlace hace que el servicio se inicie al ingresar al nivel de ejecución 3, por lo que la opción A es
correcto. Esta ubicación no se utiliza para apuntar servidores a archivos de configuración o para ejecutar servidores a través de
el super servidor inetd, por lo que las opciones B y C son incorrectas. Cuando un script de inicio de SysV
se inicia sin opciones, muestra un mensaje de error, por lo que la opción D es incorrecta.
5. B. / etc / bashrc es un nombre común para un script de inicio global de bash sin inicio de sesión, por lo que la opción
B es correcto. / etc / profile es un nombre común para un script de inicio de inicio de sesión global, por lo que
la opción A es incorrecta. /root/.profile es el script de inicio de inicio de sesión del usuario root, por lo que la opción
C es incorrecta. /root/.bashrc es el script de inicio de bash sin inicio de sesión del usuario root, por lo que la opción D
Es incorrecto.
6. B. La utilidad ldconfig lee /etc/[Link] y almacena en caché información sobre las bibliotecas
en los directorios referenciados, por lo que la opción B es correcta. El programa sysctl se usa para ajustar
características del kernel en tiempo de ejecución, pero no administra bibliotecas, por lo que la opción A es incorrecta. Ahi esta
no hay programa de sombra estándar, aunque / etc / shadow contiene contraseñas de cuenta y
información, por lo que la opción C es incorrecta. El proceso de inicio es el primer proceso que ejecuta el kernel;
no se usa (incluso con opciones) como se describe en la pregunta, por lo que la opción D es incorrecta.
7.
A. Scripts de inicio (o, más comúnmente, enlaces simbólicos que apuntan a ellos) que comienzan
con la letra S son llamados de tal manera que inician el servicio en cuestión; los que
comienzan con la letra K se llaman de tal manera que detienen el servicio en cuestión. Así,
la opción A tendrá el efecto deseado. Las opciones B y C evitarán que el servidor
iniciando, pero el servidor puede continuar ejecutándose si cambia de otro nivel de ejecución. Más
lo que es más importante, la opción B evitará que la computadora inicie muchos otros elementos potencialmente vitales.
servicios en el nivel de ejecución 2. La pregunta establece claramente que el servidor está siendo iniciado por un SysV
script de inicio, por lo que no es necesario buscar un archivo de configuración Upstart de la competencia.

Página 647
8. A. El archivo /.bash_logout es un archivo de cierre de sesión de bash común ; no se ejecuta cuando se inicia bash,
por lo que no es un archivo de script de inicio de bash y la opción A es correcta. Las opciones B y C son dos
nombres comunes para scripts de inicio globales de bash sin inicio de sesión, y la opción D es un nombre estándar
para un script de inicio de inicio de sesión de usuario para bash.
9. C. La utilidad sysctl le permite configurar o ver las variables (claves) del kernel en tiempo de ejecución, y su -
la opción los muestra todos; por tanto, la opción C es correcta. La opción A describe el efecto de escribir
shutdown - r ahora o reiniciar como root. La opción B no describe el efecto de ningún comando.
Dado que el comando especificado es legal, sysctl no mostrará un mensaje de error y la opción D
Es incorrecto.
10. C. El script estándar / etc / profile proporcionado con la mayoría de las búsquedas de distribuciones de Linux
/etc/profile.d y ejecuta cualquier script que encuentre allí; por lo tanto, la opción C es correcta. Opciones
A, B y D describen ubicaciones ficticias.
11. B. Los trabajos cron de usuario no incluyen una especificación de nombre de usuario (tbaker en las opciones A y C).
La especificación * / 2 para la hora en las opciones C y D hace que el trabajo se ejecute cada dos
hora; la especificación 7,19 en las opciones A y B hace que se ejecute dos veces al día, el día 7
y 19 horas (junto con la especificación de 15 minutos, eso significa a las 7:15 a. m. y
7:15 PM).
12. D. El archivo / etc / inittab controla el nivel de ejecución predeterminado y la línea que comienza con
id establece el nivel de ejecución predeterminado, por lo que la opción D es correcta. Aunque telinit se puede utilizar para
cambiar temporalmente el nivel de ejecución, este cambio no será permanente, por lo que la opción A es
incorrecto. El archivo /etc/[Link] no tiene nada que ver con los niveles de ejecución y no
módulo de nivel de ejecución estándar, por lo que la opción B es incorrecta. El comando telinit Q le dice al
sistema para volver a leer / etc / inittab, por lo que podría usarse para implementar un cambio predeterminado después
ha editado el archivo, pero no tendrá ningún efecto antes de editar este archivo, por lo que la opción
C es incorrecta.
13. A. Los programas con uso intensivo de la CPU consumen habitualmente el 90 por ciento o más del tiempo de CPU disponible,
pero no todos los sistemas ejecutan estos programas. Además, algunos tipos de errores del programa pueden
crear tales cargas de CPU. Por lo tanto, debe investigar más el asunto. ¿Qué es dfcomp? Lo es
diseñado como un programa intensivo en CPU? ¿Está consumiendo tanto tiempo de CPU de forma constante,
¿O fue un breve estallido de actividad? Debido a que quedan tantas preguntas sin respuesta,
la opción A es correcta. Dependiendo del sistema, puede que sea razonable o no para un
proceso único para consumir el 90 por ciento del tiempo de CPU, por lo que la opción B es incorrecta. Opción C
La descripción de dfcomp es completamente ficticia. Resumen de la opción D de cargas de CPU en diferentes
tipos de CPU es completamente ficticio.
Respuestas a las preguntas de repaso
605

Página 648
606
Capítulo 12 ■
Solución de problemas del sistema II
14. D. Los trabajos cron del sistema requieren una especificación de usuario después de la especificación de tiempo y antes
comando que se ejecutará, y esta entrada falta en esta especificación, por lo que la opción D
es correcto. (Sin embargo, esta entrada sería legal para un trabajo cron de usuario, suponiendo que el usuario
podría ejecutar el comando.) La opción A es incorrecta porque la especificación de tiempo ejecuta el
trabajo a los 17 minutos después de la hora, cada hora; e incluso si se ejecutó a las 5:00 p.m., la entrada
sería legal, si se nombra confusamente. La opción B es incorrecta porque ejecutar - partes, aunque
no está presente en todas las distribuciones de Linux, se utiliza en varias distribuciones. cron también es capaz
de ejecutar scripts y programas escritos por el usuario, por lo que incluso si se ejecutaban, las partes no eran estándar
Utilidad Linux, la entrada aún funcionaría si hubiera escrito su propio script de ejecución de partes.
La opción C es incorrecta porque la especificación de tiempo está completa; incluye un valor de minuto
(17) y asteriscos (*) que indican una ejecución a cada hora, día del mes, mes y día de
la semana.
15. A. Los trabajos cron de usuario se ejecutan como el usuario que los creó, por lo que la opción A es correcta y las opciones B,
C y D son necesariamente incorrectos.
16. D. El programa de inicio de sesión es lanzado por getty que maneja un terminal virtual para
manejar el procedimiento de inicio de sesión en consolas en modo texto; por tanto, la opción D es correcta. Aunque el
El efecto del inicio de sesión puede ser el inicio de bash, este programa no maneja el inicio de sesión.
procedimiento en sí, por lo que la opción A es incorrecta. Secure Shell (SSH) es una red orientada
protocolo de inicio de sesión; no maneja inicios de sesión locales, por lo que la opción B es incorrecta. La pantalla GNOME
Manager (GDM) es uno de varios programas de inicio de sesión de GUI; ya que la pregunta especificaba un texto -
modo de inicio de sesión, la opción C es incorrecta.
17. B, C. El archivo / etc / passwd contiene el nombre de usuario, un campo de contraseña (sin usar hoy),
el valor de ID de usuario (UID), el valor de ID de grupo (GID) para el grupo predeterminado, un formato libre
descripción, el directorio de inicio y el shell predeterminado. Las opciones B y C están en esta lista
y así son correctos. La fecha de vencimiento de la cuenta se almacena en el archivo / etc / shadow, no en
/ etc / passwd, entonces la opción A es incorrecta. El entorno de escritorio GUI predeterminado de la cuenta
(GNOME, KDE, Xfce, etc.) es administrado por el servidor XDMCP de una manera específica
para cada servidor de inicio de sesión XDMCP, por lo que la opción D es incorrecta.
18. C. Los valores de ID de grupo (GID) están asociados con los nombres de grupo en / etc / group, por lo que la opción C
es correcto. Los archivos / etc / passwd y / etc / shadow definen la información del usuario, no el grupo
información, por lo que las opciones A y B son incorrectas. (Aparece el valor GID predeterminado de cada usuario
en / etc / passwd, pero esto asocia usuarios a grupos, no GID a sus propios nombres).
El directorio /etc/grub.d contiene scripts que ayudan a configurar Grand Unified Bootloader
(GRUB) 2; no vincula los GID con sus nombres, y es un directorio, no un archivo. Por lo tanto, opción
D es incorrecta.
19. D. El archivo /etc/[Link] contiene la información especificada, por lo que la opción D es correcta. los
las opciones restantes son todos archivos ficticios.

Página 649
20. D. El archivo / etc / shadow contiene contraseñas de usuario con hash, que son confidenciales y, por lo tanto, deberían
no ser legible por usuarios normales. Por lo tanto, todos los permisos mundiales definitivamente deberían denegarse
en este archivo, lo que hace que las opciones A y B sean incorrectas. Aunque este archivo normalmente se entrega al
grupo raíz, permitir el acceso de lectura de grupo a él generalmente se considera una mala idea, por lo que la opción C
Es incorrecto. La opción D es el conjunto de permisos más restrictivo entre todas las opciones,
y, de hecho, el usuario root, que posee este archivo, debe tener acceso de lectura y escritura, por lo que
la opción D es correcta.
Respuestas a las preguntas de repaso
607

Página 650

Página 651

Acerca de
CD complementario
EN ESTE APÉNDICE:
Qué encontrarás en el CD
Requisitos del sistema
Usando el CD
Solución de problemas

Apéndice
Página 652
Qué encontrará en el CD
Las siguientes secciones están ordenadas por categoría y
resuma el software y otras ventajas que encontrará en el CD. Si necesita ayuda con
instalar los elementos proporcionados en el CD, consulte las instrucciones de instalación en el
el CD ”de este apéndice.
Algunos programas del CD pueden pertenecer a una de estas categorías:
Los programas shareware son versiones de prueba gratuitas y completamente funcionales de programas con derechos de autor.
Si le gustan los programas en particular, regístrese con sus autores por una tarifa nominal y
recibir licencias, versiones mejoradas y soporte técnico.
Los programas freeware son juegos, aplicaciones y utilidades libres de derechos de autor. Usted puede
cópielos en todos los equipos que desee, de forma gratuita, pero no ofrecen
apoyo.
El software GNU se rige por su propia licencia, que se incluye dentro de la carpeta de
el software GNU. No existen restricciones sobre la distribución de software GNU. Ver el
Licencia GNU en la raíz del CD para más detalles.
Las versiones de prueba , demostración o evaluación del software suelen estar limitadas por tiempo o por
funcionalidad (como no permitirle guardar un proyecto después de crearlo).
Motor de prueba Sybex
El CD contiene el motor de pruebas Sybex, que incluye todas las pruebas de evaluación y el capítulo
preguntas de repaso en formato electrónico, así como dos exámenes adicionales que se encuentran solo en el CD.
Tarjetas electrónicas
Estas prácticas tarjetas didácticas electrónicas son exactamente lo que parecen. Un lado contiene un
pregunta, y el otro lado muestra la respuesta.
PDF del Glosario
Hemos incluido una versión electrónica del Glosario en formato .pdf . Puede ver el
versión electrónica del libro con Adobe Reader.
Página 653
Adobe Reader
También hemos incluido una copia de Adobe Reader para que pueda ver los archivos PDF que acompañan al
contenido del libro. Para obtener más información sobre Adobe Reader o para buscar una versión más reciente,
visite el sitio web de Adobe en [Link] .

Requisitos del sistema


Asegúrese de que su computadora cumpla con los requisitos mínimos del sistema que se muestran a continuación.
lista. Si su computadora no cumple con la mayoría de estos requisitos, es posible que tenga
problemas al utilizar el software y los archivos del CD complementario. Para lo último y lo mejor
información, consulte el archivo Léame ubicado en la raíz del CD.
Ventanas
Una PC con Microsoft Windows 98, Windows 2000, Windows NT4 (con SP4 o
posterior), Windows Me, Windows XP, Windows Vista o Windows 7
Una conexión a internet
Una unidad de CD-ROM
Linux
Procesador moderno (800 MHz o más rápido)
512 MB de RAM y 128 MB de memoria gráfica
Red Hat Enterprise Linux (RHEL), openSUSE 11, Ubuntu 7.10 o más reciente
Firefox 2. x , Firefox 3. x , o SeaMonkey 1.11

Usando el CD
Para los usuarios de Windows, para instalar los elementos del CD en su disco duro, siga estos pasos:
1. Inserte el CD en la unidad de CD-ROM de su computadora. Aparece el acuerdo de licencia.
Usuarios de Windows : la interfaz no se iniciará si ha desactivado la ejecución automática.
En ese caso, haga clic en Inicio Ejecutar (para Windows Vista y Windows 7, Inicio
Todos los programas y accesorios se ejecutan). En el cuadro de diálogo que aparece, escriba
D: \ [Link] . (Reemplace D con la letra adecuada si su unidad de CD usa una
letra diferente. Si no conoce la letra, vea cómo aparece su unidad de CD
en Mi PC.) Haga clic en Aceptar.







Usando el CD
611

Página 654
612
Apéndice ■
Acerca del CD complementario
2. Lea el acuerdo de licencia y luego haga clic en el botón Aceptar si desea utilizar
el CD.
Aparece la interfaz del CD. La interfaz le permite acceder al contenido con solo una
o dos clics.
Para los usuarios de Linux, utilice un navegador web para abrir el archivo [Link] . Este CD requiere un
navegador con el complemento Flash de Adobe instalado. Para instalar este complemento, siga uno de
estos pasos:
Usuarios de Ubuntu: en la terminal, ingrese sudo apt - get install flashplugin - nonfree .
Usuarios de Debian: consulte las instrucciones en [Link] .
Usuarios de Fedora: consulte las instrucciones en [Link] .
El complemento Flash de Adobe no funciona bien para los usuarios de Linux en un entorno de 64 bits. Si
está ejecutando este CD en una computadora de 64 bits y encuentra algún problema, intente ejecutarlo
en una computadora de 32 bits.

Solución de problemas
Wiley ha intentado proporcionar programas que funcionen en la mayoría de las computadoras con el mínimo
Requisitos del sistema. Lamentablemente, su computadora puede diferir y algunos programas pueden no funcionar
correctamente por alguna razón.
Los dos problemas más probables son que no tiene suficiente memoria (RAM) para
los programas que desea utilizar o tiene otros programas en ejecución que afectan
instalación o ejecución de un programa. Si recibe un mensaje de error como "No hay suficiente
memoria "o" La instalación no puede continuar ", pruebe una o más de las siguientes sugerencias y
luego intente usar el software nuevamente:
Apague cualquier software antivirus que se esté ejecutando en su computadora. Programas de instalación
a veces imitan la actividad del virus y pueden hacer que su computadora crea incorrectamente que
está siendo infectado por un virus.
Cierre todos los programas en ejecución. Cuantos más programas tenga en ejecución, menos
la memoria está disponible para otros programas. Los programas de instalación suelen actualizar archivos
y programas; por lo que si mantiene otros programas en ejecución, es posible que la instalación no funcione
correctamente.
Haga que su tienda de computadoras local agregue más RAM a su computadora. Esto es,
sin duda, un paso drástico y algo caro. Sin embargo, agregar más memoria
realmente puede ayudar a la velocidad de su computadora y permitir que más programas se ejecuten en el
Mismo tiempo.


Página 655
Atención al cliente
Si tiene problemas con el CD complementario del libro, llame al producto Wiley.
Número de teléfono de soporte técnico: (800) 762 - 2974. Fuera de los Estados Unidos,
llame al +1 (317) 572 - 3994. También puede comunicarse con el Soporte técnico de productos de Wiley al
[Link] . John Wiley & Sons proporcionará asistencia técnica únicamente
para instalación y otros elementos generales de control de calidad. Para soporte técnico en el
aplicaciones en sí mismas, consulte al proveedor o al autor del programa.
Para realizar pedidos adicionales o solicitar información sobre otros productos Wiley,
por favor llame al (877) 762-2974.
Solución de problemas
613

Página 656

Página 657

Glosario
Página 658
616
Glosario
Números
8.3 nombre de archivo Un nombre de archivo que consta de no más de ocho caracteres más un punto opcional
( . ) y extensión de tres caracteres. Este archivo: el límite de nombres existe en DOS y el archivo original
El sistema de archivos de tabla de asignación (FAT) que utiliza.

UNA
Puerto de gráficos acelerado (AGP) Un bus de expansión de uso común durante aproximadamente una década
a partir de 1997. Como su nombre lo indica, AGP se utilizó principalmente para tarjetas de video. Alrededor
2004, la interfaz Peripheral Component Interconnect Express (PCIe o PCI-E) comenzó a
reemplazar AGP. Los dispositivos AGP se parecen mucho a los dispositivos PCI para el hardware de Linux: utilidades de sondeo.
Protocolo de resolución de direcciones (ARP) Protocolo que se utiliza para aprender una dirección de hardware de red.
basado en una dirección IPv4. Consulte también el Protocolo de descubrimiento de vecinos (NDP) .
Accesorio de tecnología avanzada (ATA) Un tipo de interfaz para discos duros, CD - ROM
unidades, unidades de cinta y otros dispositivos de almacenamiento masivo. También conocido como EIDE.
AGP Consulte Puerto de gráficos acelerado (AGP) .
Código estándar americano para el intercambio de información (ASCII) Un método de codificación para
datos alfanuméricos que se utilizan comúnmente para archivos de texto. ASCII es un código común, pero debido a que
carece de caracteres utilizados por muchos idiomas distintos del inglés, otros métodos de codificación, como
UTF-8, lo están suplantando lentamente.
Apache El paquete de servidor web más utilizado para Linux.
ARP Consulte Protocolo de resolución de direcciones (ARP) .
ASCII Consulte el Código estándar americano para el intercambio de información (ASCII) .
ATA Consulte el Anexo de tecnología avanzada (ATA) .
automounter Un programa que escanea los dispositivos de disco y monta automáticamente los nuevos
media o que monta medios asociados con directorios cuando se accede a esos directorios.
Los montadores automáticos son particularmente útiles para medios extraíbles como discos ópticos y USB
unidades de disco, así como para sistemas de archivos de red que deberían estar disponibles permanentemente pero no
montado permanentemente.

si
Sistema básico de entrada / salida (BIOS) Un componente de software de bajo nivel incluido en un
placa base de la computadora en formato de memoria de sólo lectura (ROM). La CPU ejecuta el código del BIOS cuando
se inicia primero y el BIOS es responsable de ubicar y arrancar un sistema operativo o un cargador de sistema operativo. Ver
también Interfaz de firmware extensible (EFI) e Interfaz de firmware extensible unificada (UEFI) .
Dominio de nombres de Internet de Berkeley (BIND) Un servidor común del Sistema de nombres de dominio (DNS)
para Linux.

Página 659
Glosario
617
BIND Consulte Dominio de nombres de Internet de Berkeley (BIND) .
BIOS Consulte Sistema básico de entrada / salida (BIOS).
cargador de arranque Un programa que dirige el proceso de arranque. El BIOS llama al cargador de arranque,
que carga el kernel de Linux o redirige el proceso de arranque a otro cargador de arranque. Ver también
administrador de arranque .
gestor de arranque A veces se utiliza como sinónimo de cargador de arranque , pero a veces se refiere a un
cargador de arranque que presenta opciones de kernel o sistema operativo al usuario en el momento del arranque.
difusión Un tipo de comunicación de red en la que una computadora envía un mensaje a
muchas computadoras (generalmente todas las computadoras en el segmento de red local del remitente).

C
Biblioteca C (libc) Rutinas de programación estándar utilizadas por muchos programas escritos en C
lenguaje de programación. La biblioteca C de Linux más común también se conoce como GNU libc
(glibc).
unidad central de procesamiento (CPU) El chip principal de una computadora; maneja la mayor parte de su
tareas computacionales.
jail chroot Un método para ejecutar un programa (particularmente un servidor) para que su acceso al
computadora está limitada a un árbol de directorios particular. Una cárcel chroot es una medida de seguridad útil
para ciertos tipos de servidores.
Direccionamiento CHS Ver direccionamiento cilindro / culata / sector (CHS).
CIDR Consulte el enrutamiento entre dominios sin clases (CIDR).
Enrutamiento entre dominios sin clases (CIDR) Un método para dividir direcciones IP en subredes para
propósitos de enrutamiento que no se basan en las distinciones tradicionales de Clase A / B / C. CIDR es más
flexible que el sistema de clase, pero requiere que ciertos enrutadores de Internet tengan un enrutamiento más grande
mesas.
cliente 1. Un programa que inicia solicitudes de transferencia de datos utilizando protocolos de red. 2. A
computadora que ejecuta uno o más programas cliente.
Common Unix Printing System (CUPS) Un sistema de impresión para Linux y otros sistemas similares a Unix
sistemas. CUPS agrega varias características que faltan en BSD LPD y LPRng anteriores
sistemas de impresión.
CPU Ver unidad central de procesamiento (CPU).
cracker Un individuo que irrumpe en computadoras. Los crackers pueden hacer esto por curiosidad,
por malicia, con fines de lucro o por otras razones. Véase también hacker .

Página 660
618
Glosario
trabajo cron Programa o secuencia de comandos que el demonio cron ejecuta a intervalos regulares . Ver también
trabajo cron del sistema y trabajo cron del usuario .
CUPS Consulte Sistema de impresión común Unix (CUPS) .
direccionamiento de cilindro / culata / sector (CHS) Un método de direccionamiento del disco duro en el que
El triplete de números (un cilindro, una cabeza y un sector) se utiliza para identificar un sector específico. CHS
el direccionamiento contrasta con el direccionamiento de bloques lógicos (LBA) .

re
daemon Un programa que se ejecuta constantemente, proporcionando servicios en segundo plano. Servidores Linux
normalmente se implementan como demonios, aunque también hay demonios que no son de servidor, como
crond , el demonio cron .
ruta predeterminada La ruta que toman los paquetes de red si una ruta más específica no dirige
ellos de alguna otra manera. La ruta predeterminada generalmente involucra una puerta de enlace o un sistema de enrutador que
puede redirigir aún más los paquetes.
dependencia Un requisito de un paquete de software para que se instale otro. por
Por ejemplo, la mayoría de los programas de Linux incluyen una dependencia en la biblioteca C.
biblioteca de desarrollo Un conjunto de archivos de soporte que permite que el software que utiliza una biblioteca sea
compilado en una computadora.
DHCP Consulte Protocolo de configuración dinámica de host (DHCP).
Arrendamiento DHCP Una asignación temporal de una dirección IP a un cliente DHCP por un servidor DHCP.
Los clientes deben renovar periódicamente sus arrendamientos DHCP o se arriesgan a perder el derecho a usar la dirección.
directorio 1. Una estructura de sistema de archivos en la que se almacenan archivos y otros directorios. 2. Un tipo
de base de datos con una estructura jerárquica y optimizada para más accesos de lectura que de escritura.
DNS Consulte Sistema de nombres de dominio (DNS).
nombre de dominio Un nombre asignado a un grupo de equipos, como [Link] . Individual
las computadoras tienen nombres de host que incluyen el nombre de dominio, como [Link] .
Sistema de nombres de dominio (DNS) Un conjunto distribuido de computadoras que ejecutan servidores
convertir entre nombres de computadora (como [Link] ) y direcciones IP (como
[Link]). Los servidores DNS están organizados jerárquicamente y remiten las solicitudes a los sistemas.
responsable de dominios sucesivamente más específicos.
Protocolo de configuración dinámica de host (DHCP) Un protocolo utilizado en redes locales para
difusión de la información de configuración de la red. Un solo servidor DHCP puede mantener
información para muchos clientes DHCP, lo que reduce el esfuerzo de configuración general.
biblioteca dinámica Un tipo de biblioteca que se almacena como un archivo separado de un ejecutable.
programa, pero se carga junto con el archivo del programa principal. Las bibliotecas dinámicas ahorran disco
espacio y RAM en comparación con las bibliotecas estáticas. Consulte también biblioteca y biblioteca estática.
Página 661
Glosario
619

mi
EFI Consulte Interfaz de firmware extensible (EFI).
EIDE Consulte Electrónica de dispositivos integrados mejorados (EIDE) y Tecnología avanzada
Adjunto (ATA).
clave de cifrado Un número que se utiliza junto con un algoritmo para codificar datos en
una forma que se puede descifrar solo con el uso del mismo número o uno relacionado.
Electrónica de dispositivo integrada mejorada (EIDE) Otro nombre para el avanzado
Interfaz Technology Attachment (ATA) .
exportar 1. Como sustantivo, un directorio que se comparte a través del servidor Network File System (NFS).
2. Como verbo, el acto de compartir un directorio a través de NFS.
ext2 Consulte Segundo sistema de archivos extendido (ext2fs o ext2).
ext2fs Consulte Segundo sistema de archivos extendido (ext2fs o ext2).
ext3 Consulte el tercer sistema de archivos extendido (ext3fs o ext3).
ext3fs Consulte el tercer sistema de archivos extendido (ext3fs o ext3).
ext4 Consulte Cuarto sistema de archivos extendido (ext4fs o ext4).
ext4fs Consulte Cuarto sistema de archivos extendido (ext4fs o ext4).
partición extendida Un tipo de partición de disco que se usa en discos MBR. Las particiones extendidas son
marcadores de posición para una o más particiones lógicas .
Interfaz de firmware extensible (EFI) Firmware destinado a reemplazar el BIOS antiguo x 86.
EFI proporciona numerosas mejoras destinadas a ayudar a las computadoras a hacer frente a los
hardware. El sistema de particiones GPT es parte de la especificación EFI, aunque GPT puede
también se puede utilizar en sistemas que no sean de EFI.
Extents File System (XFS) Uno de varios sistemas de archivos de diario para Linux. XFS era
desarrollado por Silicon Graphics (SGI) para su sistema operativo IRIX y luego portado a Linux.

F
RAID falso Un tipo de software RAID que se implementa con la mínima ayuda del
chipset de disco de la placa base. Generalmente, es mejor evitar RAID falso en Linux; usar hardware verdadero
En su lugar, RAID o la variedad de software RAID de Linux.
FAT Consulte la tabla de asignación de archivos (FAT).
Tabla de asignación de archivos (FAT) 1. Un tipo de sistema de archivos utilizado de forma nativa por DOS y Windows
y también es compatible como un sistema de archivos no nativo por Linux y la mayoría de los demás sistemas operativos. 2. Sobre el
FAT
sistema de archivos, una estructura de datos que da nombre al sistema de archivos.

Página 662
620
Glosario
servidor de archivos Una computadora o programa que envía archivos a otras computadoras a través de la red
protocolos a pedido. Ejemplos de programas de servidor de archivos incluyen NFS, Samba y
numerosos programas FTP.
sistema de archivos 1. Una estructura de datos de bajo nivel, normalmente almacenada en discos, que permite el acceso a
archivos por nombre. Linux admite muchos sistemas de archivos de bajo nivel, incluidos más de media docena
sistemas de archivos nativos de Linux y muchos más sistemas de archivos que no son de Linux. 2. La estructura de los archivos
y directorios en una computadora, desde el directorio raíz ( / ) hasta todos sus archivos y
subdirectorios. Un sistema de archivos de alto nivel puede almacenarse en un sistema de archivos de bajo nivel o dividirse
en varios de ellos.
firewall 1. Un programa o configuración del kernel que bloquea el acceso a puertos específicos o
programas de red en una computadora. 2. Una computadora configurada como enrutador y que
incluye software de firewall que puede restringir el acceso entre las redes que administra.
firmware Software que gestiona un dispositivo a bajo nivel. El firmware suele estar integrado en
chips en el dispositivo, aunque a veces el sistema operativo debe descargar el firmware al dispositivo
antes de que pueda usarse.
Cuarto sistema de archivos extendido (ext4fs o ext4) La cuarta versión del popular Linux
sistema de archivos. Ext4fs agrega la capacidad de manejar archivos y sistemas de archivos más grandes, así como varios
mejoras de rendimiento, al conjunto de funciones ext3fs.
hacia adelante zona DNS Una zona que permite a los servidores DNS para devolver las direcciones IP cuando se administra
nombres de host.
software libre Software que se distribuye bajo una licencia, como la GPL , que permite
copia y modificación en términos liberales. Consulte también código abierto .
Free Software Foundation (FSF) Una organización sin fines de lucro con sede en Cambridge
Massachusetts se dedica a la promoción de lo que llama software libre .
FSF Véase Free Software Foundation (FSF) .

GRAMO
Licencia pública general (GPL) Una licencia de software libre común creada y favorecida por
Fundación de Software Libre.
GID Ver ID de grupo (GID).
Identificador único global (GUID) Un número de 16 bytes que pretende ser único cuando
generado a través de ciertos algoritmos. Idéntico a un identificador único universal (UUID) excepto
en algunos detalles de representación.
GNOME Consulte Entorno de modelo de objetos de red GNU (GNOME).
GNU Consulte GNU's Not Unix (GNU) .

Página 663
Glosario
621
Entorno de modelo de objetos de red GNU (GNOME) Un entorno de escritorio común
para Linux, con sede en [Link] .
GNU's Not Unix (GNU) Un proyecto patrocinado por la Free Software Foundation para crear un
implementación gratuita de Unix. Linux depende en gran medida del software GNU, tanto que algunos
la gente prefiere el término GNU / Linux a Linux .
GPL Consulte Licencia pública general (GPL) .
GPT Consulte la tabla de particiones GUID (GPT) .
Grand Unified Boot Loader (GRUB) Un popular cargador de arranque para Linux. GRUB puede arrancar un
Kernel de Linux o redirigir el proceso de arranque a otro cargador de arranque en una partición que no sea de Linux,
arrancando así otros sistemas operativos. Similar al cargador de Linux de la competencia (LILO) . Dos versiones son
disponible, el antiguo GRUB Legacy y el nuevo GRUB 2. Consulte también gestor de arranque.
interfaz gráfica de usuario (GUI) Un método de interacción persona / computadora caracterizado por
una pantalla gráfica, un mouse para mover un puntero por la pantalla y la capacidad de realizar
acciones apuntando a objetos en la pantalla y haciendo clic en un botón del mouse.
grupo Una colección de usuarios. Los archivos son propiedad de un usuario, un grupo y miembros del grupo
se le puede dar acceso a archivos independientemente del propietario y de todos los demás usuarios. Esta característica puede
ser utilizado para mejorar las habilidades colaborativas dando a los miembros de un grupo acceso de lectura / escritura a
archivos particulares sin dejar de excluir a aquellos que no son miembros del grupo. También puede ser
utilizado por los administradores del sistema para controlar el acceso a los archivos y recursos del sistema.
ID de grupo (GID) Un número asociado con un grupo en particular. Similar a un ID de usuario (UID) .
GRUB Consulte Grand Unified Boot Loader (GRUB) .
GUI Consulte la interfaz gráfica de usuario (GUI).
GUID Consulte Identificador único global (GUID) .
Tabla de particiones GUID (GPT) Un tipo de tabla de particiones que se utiliza en algunas computadoras modernas,
como los Macintosh basados en Intel. GPT supera algunas limitaciones del Master Boot anterior
Esquema de particionamiento de registros (MBR) .

H
pirata informático 1. Un individuo que es experto en el uso o la programación de computadoras y que
disfruta usando estas habilidades de manera constructiva. Muchos programadores de Linux se consideran
hackers en este sentido del término. 2. Una galleta . Este uso del término es frecuente en la masa
media, pero está mal visto en la comunidad Linux.
dirección de hardware Un código que identifica de forma exclusiva una única interfaz de red. Esta dirección
está integrado en el dispositivo mismo en lugar de asignado en Linux. También conocido como acceso a los medios
dirección de control (MAC) .

Página 664
622
Glosario
hash Un método de cifrado unidireccional; los datos hash no se pueden descifrar. Se utilizan hashes
para almacenar contraseñas y algunos otros datos sensibles. La idea es que cuando un usuario escribe un
contraseña, un hash de la contraseña debe coincidir con un hash almacenado de la misma contraseña; pero si
el archivo de contraseña es robado, el ladrón no puede descifrar la contraseña. (Un ladrón así podría intentar
un ataque de fuerza bruta mediante el hash de cada palabra en un diccionario hasta que una coincida).
Archivo de encabezado Archivo que contiene definiciones de interfaz para rutinas de software contenidas en un
biblioteca. El código fuente del programa que utiliza una biblioteca debe hacer referencia a los archivos de encabezado asociados.
HFS Consulte Sistema de archivos jerárquico (HFS).
Sistema de archivos jerárquico (HFS) Un sistema de archivos que se utiliza en Mac OS.
hostname El nombre legible por humanos de una computadora, como [Link] .
Hot spare Un disco en una matriz RAID que no se utiliza pero que está disponible para su uso en caso de que otro disco
en la matriz falla. También se denomina disco de espera activa.
espera en caliente Consulte repuesto en caliente .
HTTP Consulte Protocolo de transferencia de hipertexto (HTTP).
Protocolo de transferencia de hipertexto (HTTP) Protocolo que se utiliza para transferir páginas web desde un
Servidor web a un navegador web.

yo
ICMP Consulte Protocolo de mensajes de control de Internet (ICMP) .
IDS Ver sistema de detección de intrusos (IDS) .
IEEE 802.11 El estándar técnico que define el tipo de conexión inalámbrica más popular ( Wi-Fi )
redes. Existen varias variantes, como IEEE 802.11a, IEEE 802.11b, IEEE 802.11g y
IEEE 802.11n, que varían en velocidad y características.
copia de seguridad incremental Un tipo de copia de seguridad en la que solo los archivos que han cambiado desde la última
copia de seguridad está respaldada. Esto se utiliza para reducir el tiempo necesario para realizar una copia de seguridad de una
computadora,
costo de la complejidad de la restauración potencialmente mayor.
inodo Una estructura de datos del sistema de archivos que contiene información crítica sobre el archivo, como
su tamaño y ubicación en el disco.
Protocolo de mensajes de control de Internet (ICMP) Un tipo de paquete de red que se
utilizado para señalar condiciones de error, como paquetes corruptos.
Protocolo de acceso a mensajes de Internet (IMAP) Un popular protocolo de correo electrónico de extracción (en el que
el destinatario inicia las transferencias). Los usuarios suelen emplear IMAP para recuperar el correo electrónico para leer
sus computadoras de escritorio o estaciones de trabajo, pero almacenadas en el servidor IMAP. Véase también Oficina de correos
Protocolo (POP) .

Página 665
Glosario
623
Protocolo de Internet (IP) Un protocolo de la capa de Internet que es una parte importante de TCP / IP.
pila de red porque maneja el intercambio de paquetes de datos basado en direccionamiento de bajo nivel.
sistema de detección de intrusiones (IDS) Una computadora o paquete de software que puede identificar
actividad de red sospechosa y alertar a los administradores de la red sobre esta actividad. Snort es un
paquete de IDS popular que se ejecuta en Linux.
IP Consulte Protocolo de Internet (IP) .
Dirección IP La dirección TCP / IP numérica de una computadora, como [Link].
Enmascaramiento de IP Consulte Traducción de direcciones de red (NAT) .
IPv6 El protocolo de Internet de “próxima generación”. Esta actualización a TCP / IP permite una
máximo teórico de aproximadamente 3,4 3 10 38 direcciones, frente a los 4 mil millones
direcciones posibles con el IPv4 que es de uso común en 2011.
ISO-9660 El sistema de archivos más común en CD-ROM y medios ópticos relacionados. ISO - 9660
a menudo se combina con extensiones Rock Ridge o un sistema de archivos Joliet para admitir
nombres de archivo y otras características. Consulte también Formato de disco universal (UDF) .

J
JFS Consulte Sistema de archivos con registro (JFS).
Joliet Un sistema de archivos comúnmente utilizado en CD - ROM y medios ópticos relacionados. Joliet
admite nombres de archivo largos al estilo de Microsoft y casi siempre se usa junto con un
Sistema de archivos ISO-9660 .
journal Una característica avanzada del sistema de archivos que registra datos sobre las operaciones pendientes del disco.
Consulte también sistema de archivos de diario.
Sistema de archivos de diario (JFS) Uno de los varios sistemas de archivos de diario para Linux. JFS fue
desarrollado por IBM para su sistema operativo AIX. Se creó una implementación posterior para OS / 2, y
El JFS de Linux se deriva de este código.
sistema de archivos de diario Un tipo de sistema de archivos que mantiene un registro de sus operaciones. Tal
Los sistemas de archivos normalmente pueden recuperarse rápidamente después de un corte de energía o un fallo del sistema. Común
Los sistemas de archivos de registro por diario de Linux son ext3fs, ext4fs, ReiserFS, JFS y XFS. Consulte también sistema de
archivos.

K
Entorno de escritorio K (KDE) Un entorno de escritorio común para Linux, con sede
en [Link] .
KDE Consulte Entorno de escritorio K (KDE).

Página 666
624
Glosario
kernel Un componente de software en el corazón de cualquier sistema operativo moderno, que accede directamente
hardware en nombre de otro software, distribuye memoria y tiempo de CPU para ejecutar
programas, gestiona sistemas de archivos y controla de otro modo el funcionamiento general del
computadora. Técnicamente, Linux es un kernel y nada más; herramientas adicionales en Linux
system no son parte del kernel de Linux.
módulo del kernel Una parte del kernel que se puede cargar o descargar a voluntad. Módulos de kernel
implementar muchos controladores y otras características del kernel. Implementarlos como módulos puede
Reducir el tamaño de un sistema Linux en ejecución conservando el código para el hardware que no tiene o
funciones que no utiliza sin memoria.
búfer de anillo del kernel Un registro de mensajes recientes generados por el kernel de Linux. Inmediatamente
después de que un sistema Linux arranca, este búfer contiene los mensajes de arranque generados por los controladores y
subsistemas principales del kernel. Este búfer se puede ver con el comando dmesg .

L
LBA Ver direccionamiento de bloques lógicos (LBA).
LDAP Consulte Protocolo ligero de acceso a directorios (LDAP) .
Formato de intercambio de datos LDAP (LDIF) Un formato de archivo utilizado por LDAP para describir el directorio
entradas.
LDIF Consulte Formato de intercambio de datos LDAP (LDIF) .
biblioteca Un componente de software que proporciona funciones de soporte para otros programas.
Protocolo ligero de acceso a directorios (LDAP) Un directorio habilitado para la red (es decir
2) protocolo que se usa para almacenar muchos tipos de información. De mayor relevancia para este libro,
LDAP puede contener datos de cuentas de usuario, lo que permite la administración centralizada de cuentas de usuario en un
red.
LILO Consulte Cargador de Linux (LILO).
direccionamiento de bloque lineal (LBA) Ver direccionamiento de bloque lógico (LBA).
enlace Una forma de proporcionar varios nombres para hacer referencia a un solo archivo. Los enlaces se crean con el
Al mando.
Linux 1. El kernel del sistema operativo de código abierto desarrollado originalmente por Linus Torvalds y desde entonces
mantenido y ampliado por un gran equipo de programadores. 2. Un sistema operativo basado en Linux
kernel, particularmente si sigue el modelo Unix. La mayoría de los sistemas operativos Linux dependen en gran medida del software
del proyecto GNU, por lo que algunas personas prefieren el término GNU / Linux .
Cargador de Linux (LILO) Un popular cargador de arranque de Linux. Puede arrancar un kernel de Linux o redirigir
el proceso de arranque a otro cargador de arranque en una partición que no sea Linux, arrancando así otros sistemas operativos.
Similar al Grand Unified Boot Loader (GRUB) de la competencia . Consulte también cargador de arranque.

Página 667
Glosario
625
Base de estándares de Linux (LSB) Un conjunto de estándares acordados por los mantenedores de distribución en
para mantener cierto grado de compatibilidad entre las distribuciones de Linux.
promedio de carga Una medida de las demandas de tiempo de CPU al ejecutar programas. Una carga
promedio de 0 significa que no hay demanda de tiempo de CPU, 1 representa un solo programa colocando constante
demanda en la CPU, y los valores superiores a 1 representan múltiples programas que compiten por
Tiempo de CPU. Los comandos top y uptime proporcionan información sobre el promedio de carga.
localhost Un nombre para la computadora local.
archivo de registro Un archivo de texto, mantenido por el sistema como un todo o por un servidor individual, en el que
Se registran los eventos importantes del sistema. Los archivos de registro suelen incluir información sobre el usuario
inicios de sesión, intentos de acceso al servidor y mantenimiento de rutina automático.
rotación de archivos de registro Un proceso de mantenimiento de rutina en el que la computadora suspende la grabación
datos en archivos de registro, les cambia el nombre y abre nuevos archivos de registro. Este proceso mantiene los archivos de registro
disponibles
por un tiempo, pero finalmente los borra, evitando que crezcan para consumir todos
espacio disponible en disco. También se llama rotación de troncos .
rotación de registros Consulte la rotación de archivos de registro.
direccionamiento de bloque lógico (LBA) Un método para acceder a datos en un disco que usa un solo
número de sector para recuperar datos de ese sector. LBA contrasta con cilindro / culata / sector
(CHS) direccionamiento . Algunas fuentes se refieren a LBA como direccionamiento de bloque lineal .
partición lógica Un tipo de partición de disco duro MBR que no tiene ninguna entrada en el
tabla de partición. En cambio, las particiones lógicas se llevan dentro de una partición extendida.
volumen lógico En una configuración LVM, un volumen lógico es un contenedor para un sistema de archivos
o espacio de intercambio, similar en función a una partición. Los volúmenes lógicos se asignan desde el volumen
grupos , que son colecciones de volúmenes físicos .
Administrador de volumen lógico (LVM) Un sistema de asignación de disco que se usa en lugar de o encima
de tabiques tradicionales. LVM permite una mayor flexibilidad en la gestión del sistema de archivos al crear
contenedores ( volúmenes lógicos ) que se pueden agregar, eliminar y cambiar de tamaño sin preocuparse por
números de sector inicial y final.
LSB Consulte la Base de estándares de Linux (LSB) .
LVM Consulte Administrador de volúmenes lógicos (LVM) .

METRO
Dirección MAC Consulte la dirección de control de acceso a medios (MAC) o la dirección de hardware .
nombre de la máquina La parte de un nombre de host que identifica una computadora en una red, como
opuesto a la red como un todo (por ejemplo, ginkgo es la parte del nombre de la máquina
de [Link] ). El nombre de la máquina a veces se utiliza en referencia a todo el
nombre de host.

Página 668
626
Glosario
Master Boot Record (MBR) El primer sector de un disco duro. El MBR contiene el primario
tabla de particiones y código que ejecuta el BIOS durante el proceso de arranque.
MBR Consulte Registro de arranque maestro (MBR).
dirección de control de acceso a medios (MAC) Consulte la dirección de hardware .
modo Los permisos de un archivo. Junto con el propietario y el grupo del archivo, el modo
determina quién puede acceder a un archivo y de qué manera.
módulo Una pieza de software que se puede cargar y descargar de un paquete más grande en
para reducir la carga de memoria en un sistema en ejecución. Consulte también el módulo del kernel .
pila de módulos Un conjunto de módulos que se acumulan para proporcionar un conjunto de características. Por ejemplo,
para entregar sonido, es posible que deba cargar varios módulos de controlador de sonido que componen un módulo
apilar.
montar La acción de hacer que un sistema de archivos de bajo nivel esté disponible para un sistema Linux en ejecución.
Esto se hace asociando el sistema de archivos de bajo nivel con un punto de montaje .
punto de montaje Un directorio (normalmente vacío) en el que se monta un sistema de archivos. Archivos y
Los directorios en el sistema de archivos de bajo nivel están disponibles como archivos y subdirectorios dentro
el directorio del punto de montaje.

norte
Cambio de servicio de nombres (NSS) Parte del sistema de administración de cuentas de Linux que asigna
nombres de usuario a números de ID de usuario (UID), identifica los directorios de inicio de los usuarios y realiza
tareas que no son de autenticación. Consulte también Módulos de autenticación conectables (PAM) .
NAT Consulte Traducción de direcciones de red (NAT) .
NDP Consulte Protocolo de descubrimiento de vecinos (NDP) .
Protocolo de descubrimiento de vecinos (NDP) Protocolo que se utiliza para aprender una dirección de hardware de red.
basado en una dirección IPv6. Consulte también Protocolo de resolución de direcciones (ARP) .
netmask Ver máscara de red.
Traducción de direcciones de red (NAT) Una configuración de enrutador en la que el enrutador reescribe
paquetes de red de una red de modo que todos parezcan originarse en sí mismo y luego
invierte el proceso de devolución de paquetes. El efecto es que el mundo exterior solo ve el NAT
enrutador, no la red que protege; pero la red protegida ve una conexión normal a
la red exterior. También conocido como enmascaramiento de IP .
Sistema de archivos de red (NFS) Un protocolo para compartir archivos y un software de servidor del mismo nombre,
comúnmente utilizado entre los sistemas Unix y Linux.

Página 669
Glosario
627
máscara de red Un patrón de bits que identifica la parte de una dirección IP que es una
red y la parte que identifica una computadora en esa red. El patrón puede ser
expresado en notación cuádruple de puntos (como en [Link]) o como el número de bits de red
siguiendo una dirección IP y una barra (como en [Link]/24). La máscara de red también es
denominada máscara de red o máscara de subred .
pila de red Consulte pila de protocolos.
Sistema de archivos de nueva tecnología (NTFS) El sistema de archivos preferido en Windows NT / 200 x / XP /
Sistemas Vista / 7. Linux admite NTFS, pero este soporte es limitado.
NFS Consulte Sistema de archivos de red (NFS) .
NSS Consulte Cambio de servicio de nombres (NSS) .
NTFS Consulte Sistema de archivos de nueva tecnología (NTFS).

O
retransmisión abierta Un servidor de correo SMTP que está configurado para retransmitir correo desde cualquier lugar a cualquier
lugar.
Los spammers abusan con frecuencia de las retransmisiones abiertas para ocultar el verdadero origen de sus mensajes.
código abierto Un amplio conjunto de licencias de software, o el software que las usa, que permite
redistribución y copia en términos liberales. La definición de código abierto es algo
más amplio que el del software libre .

PAGS
paquete Una colección de archivos almacenados en un solo archivo portador, listos para la instalación usando un
sistema de gestión de paquetes como RPM o el sistema de paquetes Debian.
paquete Una cantidad limitada de datos recopilados junto con la información de direcciones y enviados
a través de una red.
cortafuegos de filtro de paquetes Un tipo de cortafuegos que opera en paquetes de datos de red individuales,
pasar o rechazar paquetes en función de información como el origen y el destino
direcciones y puertos.
rastreador de paquetes Un programa que monitorea el tráfico de la red a un nivel bajo, lo que permite el diagnóstico
de problemas y captura de datos. Los rastreadores de paquetes se pueden utilizar tanto para redes legítimas
diagnóstico y robo de datos.
PAM Consulte Módulos de autenticación conectables (PAM) .
paralelo ATA (PATA) La forma tradicional de interfaz ATA, en la que varios bits se
transferido de una vez. Consulte también serial ATA (SATA).

Página 670
628
Glosario
PATA Consulte ATA paralelo (PATA) .
ruta Una lista de directorios delimitada por dos puntos en los que se pueden encontrar archivos de programa. (Similar
Las listas definen las ubicaciones de directorios, fuentes y otros tipos de archivos).
PCI Consulte Interconexión de componentes periféricos (PCI).
PCIe o PCI-E Consulte Interconexión Express de componentes periféricos (PCIe o PCI-E) .
Interconexión de componentes periféricos (PCI) Un bus de expansión, introducido a principios de
1990, capaz de velocidades mucho más altas que el bus ISA más antiguo. Las computadoras modernas generalmente
incluyen varias ranuras PCI, aunque PCI está comenzando a dar paso a PCIe.
Peripheral Component Interconnect Express (PCIe o PCI - E) Un bus de expansión,
introducido en 2003, capaz de alcanzar velocidades superiores a las del bus PCI común. Inicialmente
utilizado principalmente para tarjetas de video, PCIe ahora se usa para muchos otros tipos de dispositivos. Miradas PCIe
al igual que el software PCI a Linux.
volumen físico En una configuración LVM, un volumen físico es una sola partición o
ocasionalmente, un disco sin particiones o un dispositivo RAID. Los volúmenes físicos se combinan en
grupos de volúmenes , que luego se subdividen nuevamente en volúmenes lógicos .
Módulos de autenticación conectables (PAM) Un conjunto de herramientas que ayudan a administrar
autenticación y gestión de cuentas. PAM utiliza módulos que se pueden agregar o
eliminado de las reglas de autenticación para servicios particulares, permitiendo así cambios en cómo
Linux autentica a los usuarios.
POP Consulte Protocolo de oficina postal (POP) .
puerto Ver número de puerto.
número de puerto Un número que identifica el programa del que proviene un paquete de datos o al
al que está dirigido. Cuando un programa inicia una conexión de red, se asocia con
uno o más puertos, lo que permite a otras computadoras abordar el programa de manera única.
Protocolo de oficina postal (POP) Un protocolo popular de extracción de correo electrónico (en el que el destinatario inicia
transferencias). Los usuarios suelen emplear POP para recuperar el correo electrónico para leerlo y almacenarlo en su
computadoras de escritorio o estaciones de trabajo. Consulte también Protocolo de acceso a mensajes de Internet (IMAP) .
PostScript Un lenguaje de programación que se usa en muchas impresoras de alta gama. PostScript es
optimizado para mostrar texto y gráficos en la página impresa. El programa Linux
Ghostscript convierte de PostScript a formatos de mapa de bits entendidos por muchos
e impresoras de gama media.
partición primaria Un tipo de partición MBR que se define en una estructura de datos contenida
en la tabla de particiones del disco duro en el MBR. Un disco MBR puede contener solo cuatro
particiones.

Página 671
Glosario
629
clave privada Una de las dos claves que se utilizan en determinados tipos de criptografía. La clave privada debe
estar cuidadosamente protegido contra el robo. Consulte también clave de cifrado y clave pública.
puerto privilegiado Un puerto (ver número de puerto ) que tiene un número menor que 1024. Linux restringe
acceso a dichos puertos para root . En los primeros días de la creación de redes, cualquier programa que se ejecute en un
El puerto privilegiado podría considerarse confiable porque solo los programas configurados por
los administradores de sistemas profesionales podrían ejecutarse en dichos puertos. Hoy, ese ya no es el
caso. Consulte también puerto sin privilegios.
proceso Un fragmento de código mantenido y ejecutado por el kernel de Linux por separado de
otras piezas de código. La mayoría de los procesos corresponden a programas en ejecución. Un programa
se puede ejecutar varias veces, lo que da como resultado varios procesos.
pila de protocolos Una colección de controladores, procedimientos del kernel y otro software que
implementa un medio estándar de comunicación a través de una red. Dos computadoras deben
Admite pilas de protocolos compatibles para comunicarse. La pila de protocolos más popular en la actualidad
es TCP / IP. También se llama pila de red.
servidor proxy Un programa de servidor que reenvía las solicitudes que recibe a otra computadora
y luego devuelve respuestas al sistema original. Se pueden utilizar servidores proxy para crear
"Agujeros" en los cortafuegos, para almacenar en caché y acelerar el acceso a la red, para bloquear contenido no deseado, o
por otras razones.
clave pública Una de las dos claves utilizadas en ciertos tipos de criptografía. La clave pública es
dado con frecuencia al otro lado en un enlace de comunicación. Consulte también clave de cifrado y
llave privada.

R
RAID Consulte Matriz redundante de discos independientes (RAID) .
acceso aleatorio Un método de acceso a un dispositivo de almacenamiento (RAM, disco duro, etc.) por
qué información se puede almacenar o recuperar en un orden arbitrario con poca o ninguna velocidad
multa. Consulte también acceso secuencial.
RAM Ver memoria de acceso aleatorio (RAM).
memoria de acceso aleatorio (RAM) Memoria a la que se puede acceder aleatoriamente. Más específicamente,
La RAM se puede leer y escribir con facilidad y constituye la mayor parte de la memoria en los
ordenadores.
búsqueda recursiva Un método de resolución de nombres en el que un servidor DNS consulta una serie
de servidores DNS, cada uno de los cuales tiene información sobre redes cada vez más específicas, en
para localizar la dirección IP asociada con un nombre de host.

Página 672
630
Glosario
Matriz redundante de discos independientes (RAID) Un sistema de gestión de discos que permite
combinar varios discos en dispositivos de orden superior para crear un solo disco más grande
espacio, mejorar la confiabilidad, mejorar la velocidad del disco o una combinación de estas cosas.
ReiserFS Uno de varios sistemas de archivos de diario para Linux. Desarrollado desde cero para Linux.
zona inversa Un DNS zona que permite a los servidores DNS para devolver nombres de host cuando se administra IP
direcciones.
RIP Consulte Protocolo de información de enrutamiento (RIP) .
Extensiones de Rock Ridge Un conjunto de extensiones del sistema de archivos ISO - 9660 que permiten el almacenamiento
de nombres de archivo largos de estilo Unix, propiedad, permisos y otras características del sistema de archivos en un
Sistema de archivos ISO-9660. Consulte también ISO-9660 y Joliet.
directorio raíz El directorio que forma la base de un sistema de archivos de Linux (es decir, 2). Todas
otros directorios son accesibles desde el directorio raíz, ya sea directamente o a través de un intermediario
directorios.
sistema de archivos raíz Consulte el directorio raíz.
servidores raíz Un conjunto de servidores DNS que entregan información a otros servidores DNS sobre
dominios de nivel superior ( .com , .net , .us , etc.). Los servidores DNS consultan los servidores DNS raíz
primero al realizar búsquedas DNS recursivas completas.
Protocolo de información de enrutamiento (RIP) Un protocolo de red que permite a los enrutadores intercambiar
información sobre la distancia entre varias redes a las que sirve cada una. RIP permite a los enrutadores
optimizar sus tablas de enrutamiento y solucionar automáticamente las interrupciones.
nivel de ejecución Un número asociado con un conjunto particular de servicios que se están ejecutando. Cambiando
runlevels cambia los servicios o puede apagar o reiniciar la computadora.

S
Samba Un paquete de software de servidor que implementa el protocolo SMB / CIFS, comúnmente
utilizado por computadoras con Windows para compartir archivos e impresoras.
SAS Consulte SCSI conectado en serie (SAS).
SATA Consulte Serial ATA (SATA) .
SCSI Consulte Interfaz de sistemas informáticos pequeños (SCSI) .
Segundo sistema de archivos extendido (ext2fs o ext2) El sistema de archivos nativo de Linux más común
(es decir, 1) desde mediados de la década de 1990 hasta aproximadamente 2001.

Página 673
Glosario
631
Secure Shell (SSH) Un protocolo y programa de inicio de sesión remoto que utiliza cifrado para garantizar
que los paquetes de datos interceptados no pueden ser utilizados por un intruso. Generalmente considerado como el
sucesor de Telnet en sistemas Linux.
Tecnología de autocontrol, análisis e informes (SMART) Una característica de las
discos duros que les permite detectar hardware defectuoso antes de que cause la pérdida de datos. Linux
Las utilidades SMART como smartctl y GSmartControl le permiten supervisar el SMART
estado de una unidad o programar pruebas SMART avanzadas.
sendmail Un servidor de correo SMTP popular para Linux y Unix.
acceso secuencial Método para acceder a un medio de almacenamiento. Requiere lectura o escritura
datos en un orden específico. El ejemplo más común es una cinta; para leer datos al final de un
cinta, debe pasar los datos intermedios. Consulte también acceso aleatorio.
Serial ATA (SATA) Un tipo de interfaz ATA que utiliza transferencia de datos en serie en lugar de
transferencias de datos paralelas utilizadas en formas más antiguas de ATA. Consulte también ATA paralelo (PATA).
Serial Attached SCSI (SAS) Un tipo de interfaz SCSI que utiliza transferencia de datos en serie en lugar de
que las transferencias de datos paralelas utilizadas en formas más antiguas de SCSI.
Bloque de mensajes del servidor / Sistema común de archivos de Internet (SMB / CIFS) Un protocolo para archivos y
uso compartido de impresoras, comúnmente utilizado por computadoras con Windows. En Linux, Samba es un SMB / CIFS
servidor, y tanto el kernel como los programas auxiliares de Samba son compatibles con las funciones de cliente SMB / CIFS.
Identificador de conjunto de servicios (SSID) El nombre que se le da a una red inalámbrica (Wi-Fi) para distinguir
de otras redes que pueden funcionar con la misma frecuencia en la misma zona.
biblioteca compartida Ver biblioteca dinámica.
shell Un programa que proporciona a los usuarios la capacidad de ejecutar programas, manipular archivos,
y así.
shell script Un programa escrito en un lenguaje integrado en un shell.
señal En referencia a procesos, un código que usa el núcleo para controlar la terminación de
el proceso o decirle que realice alguna tarea. Las señales se pueden utilizar para matar procesos.
Protocolo simple de transferencia de correo (SMTP) El protocolo de correo push más común en el
Internet. SMTP se implementa en Linux mediante servidores como sendmail, Postfix, Exim y
qmail.
Small Computer System Interface (SCSI) Un estándar de interfaz para discos duros, CD - ROM
unidades, unidades de cinta, escáneres y otros dispositivos.
SMART Consulte Tecnología de autocontrol, análisis e informes (SMART) .
relé inteligente Una configuración de servidor de correo que implica el envío de todo el correo saliente a un
servidor de correo ascendente en lugar de directamente al sistema de destino. Tales configuraciones son

Página 674
632
Glosario
común en redes pequeñas en las que el ISP bloquea las conexiones SMTP directas a cualquier
propio servidor de correo como medida antispam o cuando desee que uno de sus equipos
manejar todo el correo saliente de una red como medida de seguimiento.
SMTP Consulte Protocolo simple de transferencia de correo (SMTP).
SMB / CIFS Consulte Bloque de mensajes del servidor / Sistema común de archivos de Internet (SMB / CIFS) .
código fuente La versión de un programa escrito por un humano y normalmente almacenado en formato
formato de archivo de texto (ASCII). Un programa compilador convierte el código fuente a una forma binaria que un
la computadora puede funcionar.
DNS dividido Una configuración de DNS en la que una zona es manejada por dos servidores con diferentes
configuraciones. Un servidor proporciona búsquedas más completas o búsquedas en una dirección diferente
espacio que el otro. El DNS dividido permite que las computadoras locales busquen las direcciones IP de las demás
manteniendo esta información oculta de Internet en general.
directorio de cola Un directorio en el que los trabajos de impresión, el correo u otros archivos esperan ser procesados.
Los directorios de spool se mantienen mediante programas específicos, como el sistema de impresión o SMTP
servidor de correo.
aplastamiento En el contexto del servidor de archivos NFS, esto se refiere a cambiar el UID efectivo o
GID de una solicitud de acceso para limitar la vulnerabilidad del sistema. La cuenta root del cliente es
a menudo aplastado a la cuenta de nadie en el servidor.
SSH Consulte Secure Shell (SSH).
SSID Consulte Identificador de conjunto de servicios (SSID) .
inspección de paquetes con estado Una herramienta de firewall en la que el estado de un paquete (es decir, si es
marcado para comenzar una transacción, para continuar un intercambio existente, etc.) se considera en
el proceso de filtrado.
biblioteca estática Un tipo de biblioteca que se copia en el archivo ejecutable principal de un programa cuando
se crea ese archivo. En comparación con las bibliotecas dinámicas , las bibliotecas estáticas aumentan el disco y la memoria
consumo, pero asegúrese de que el programa seguirá siendo utilizable incluso si los archivos originales de la biblioteca
se eliminan de la computadora.
subdominio Una subdivisión de un dominio. Un subdominio puede contener computadoras o
subdominios propios.
máscara de subred Ver máscara de red.
super servidor Un servidor que escucha las conexiones de red destinadas a otros servidores y
lanza esos servidores. Algunos ejemplos en Linux son inetd y xinetd .
superusuario Un usuario con derechos extraordinarios para manipular archivos críticos en la computadora.
El nombre de usuario del superusuario es normalmente root .
archivo de intercambio Un archivo de disco configurado para usarse como espacio de intercambio .
partición de intercambio Una partición de disco configurada para usarse como espacio de intercambio .

Página 675
Glosario
633
swap space Espacio en disco utilizado como una extensión de la RAM de una computadora. El espacio de intercambio habilita
Un sistema para ejecutar más programas o procesar conjuntos de datos más grandes de lo que sería
posible.
trabajo cron del sistema Un trabajo cron que maneja tareas de mantenimiento en todo el sistema, como
rotación o eliminación de archivos no utilizados de / tmp . Véase también trabajo cron del usuario .
System V (SysV) Una forma de AT&T Unix que definía muchos de los estándares utilizados en
sistemas Unix modernos y clones de Unix, como Linux.
SysV Consulte Sistema V (SysV).
Secuencia de comandos de inicio de SysV Un tipo de secuencia de comandos de inicio que sigue los estándares de inicio de System V.
Dicho script inicia un servicio o un conjunto de servicios relacionados.

T
tarball Un formato de archivo de paquete basado en la utilidad tar . Las bolas de alquitrán son fáciles de crear y
son legibles en cualquier versión de Linux y en la mayoría de los sistemas que no son Linux. No contienen
la información de dependencia y los archivos que contienen no son fáciles de eliminar una vez instalados.
TCP Consulte Protocolo de control de transmisión (TCP).
Envoltorios TCP Un conjunto de herramientas que pueden restringir el acceso a un servidor en función de la
nombre de host o dirección IP o, a veces, según el nombre de usuario. A veces se llama TCP Wrapper .
TCP / IP Consulte Protocolo de control de transmisión / Protocolo de Internet (TCP / IP).
Telnet Un protocolo que puede proporcionar inicio de sesión en modo texto a una computadora. Aunque Telnet
La naturaleza no cifrada lo convierte en una mala elección hoy en día (se debe usar SSH en su lugar), Telnet
El programa cliente ( telnet ) puede ser una útil herramienta de diagnóstico de red porque puede conectarse a
varios otros servidores y le permiten emitir comandos de protocolo de bajo nivel para probar el servidor.
programa de terminal 1. Un programa en un entorno GUI que se utiliza para ejecutar el modo texto
programas. Los ejemplos incluyen xterm y varios programas llamados Terminal que están asociados
con entornos de escritorio específicos. 2. Un programa que se usa para iniciar un modo de texto simple
conexión entre dos ordenadores, especialmente a través de un módem o conexión serie RS-232.
Tercer sistema de archivos extendido (ext3fs o ext3) Una variante del segundo sistema de archivos extendido
(ext2 o ext2fs) que agrega un diario para reducir los tiempos de inicio después de una falla de energía o del sistema
choque. Consulte también sistema de archivos de diario.
Protocolo de control de transmisión (TCP) Un tipo de protocolo de capa de transporte importante en
redes. TCP admite la corrección de errores y otras características que son útiles para mantener
un enlace entre dos computadoras.
Protocolo de control de transmisión / Protocolo de Internet (TCP / IP) El protocolo más importante
pila de uso común hoy en día, y la base de Internet.

Página 676
634
Glosario
hosts confiables Un sistema de seguridad en el que el servidor confía en un conjunto específico de clientes para
gestionar los aspectos clave de la seguridad. El modelo de hosts de confianza es utilizado por NFS y algunos otros
Servidores Linux, pero es riesgoso en Internet en general.
túnel El proceso de utilizar un protocolo para transportar el tráfico de otro protocolo. Tunelización
le permite obtener las ventajas del protocolo de operador cuando utiliza otro. Por ejemplo,
el Secure Shell (SSH) se puede utilizar para túnel diversos otros protocolos, lo que añade el cifrado
a un protocolo no cifrado.

U
UDF Consulte Formato de disco universal (UDF).
UDP Consulte Protocolo de datagramas de usuario (UDP).
UEFI Consulte Interfaz de firmware extensible unificada (UEFI) .
Interfaz de firmware extensible unificada (UEFI) Una implementación moderna de Extensible
Interfaz de firmware (EFI) , utilizada en algunas computadoras x 86 y x 86 - 64.
Formato de disco universal (UDF) Un sistema de archivos de disco óptico de próxima generación, de uso frecuente en
DVD-ROM.
Bus serie universal (USB) Un tipo de interfaz para dispositivos externos de velocidad baja a media (y
ocasionalmente internos), como teclados, ratones, cámaras, módems, impresoras, escáneres,
y unidades de disco extraíbles. El USB viene en variedades numeradas, de 1.0 a 3.0. Superior -
las variedades numeradas proporcionan una velocidad superior.
Identificador único universal (UUID) Un número de 16 bytes que pretende ser único cuando
generado utilizando ciertos algoritmos. UUID, o GUID similares , se utilizan como identificación
números de serie para particiones y sistemas de archivos, para ayudar a las bases de datos a superar las
problemas, y en otras capacidades.
puerto sin privilegios Un puerto (consulte el número de puerto ) que tiene un número superior a 1024. Dichos puertos
cualquier usuario puede acceder a ellos y, por lo tanto, los programas cliente y algunos
servidores que pueden ser legítimamente ejecutados por usuarios normales. Consulte también puerto privilegiado.
Upstart Un sistema de inicio de Linux destinado a reemplazar el sistema de script de inicio de SysV .
USB Consulte Bus serie universal (USB).
Concentrador USB Una pieza de hardware que permite conectar varios dispositivos USB a un solo
Conector USB en una computadora.
trabajo cron del usuario Un trabajo cron creado por un usuario individual para manejar tareas para ese usuario, como
como ejecutar un trabajo con uso intensivo de la CPU a altas horas de la noche cuando otros usuarios no se verán molestados por el
trabajo
Demandas de la CPU. Consulte también trabajo cron del sistema .

Página 677
Glosario
635
Protocolo de datagramas de usuario (UDP) Un protocolo de capa de transporte que se utiliza en la pila TCP / IP. UDP
es un protocolo simple y eficiente, pero carece de verificación de errores y otras funciones avanzadas
que puede ser útil para mantener una conexión.
ID de usuario (UID) Un número asociado con una cuenta en particular. Linux usa el UID internamente
para la mayoría de las operaciones, y se convierte al nombre de usuario asociado solo cuando interactúa con
personas.
nombre de usuario El nombre asociado con una cuenta, como theo o emilyn . Nombres de usuario de Linux
distinguen entre mayúsculas y minúsculas y pueden tener entre 1 y 32 caracteres de longitud, aunque normalmente
completamente en minúsculas y no más de 8 caracteres.
UUID Consulte Identificador único universal (UUID) .

V
sistema de archivos virtual Un tipo de sistema de archivos que no accede a archivos ordinarios; en cambio, un virtual
El sistema de archivos proporciona un medio para interactuar con datos que no son archivos, como la configuración del kernel.
configuraciones o dispositivos de hardware. Los ejemplos en Linux incluyen / dev , / proc y / sys .
red privada virtual (VPN) Un método para vincular dos redes separadas físicamente
a través de una tercera red insegura de manera segura. Las VPN emplean cifrado y
encapsulación para realizar esta tarea.
grupo de volúmenes En una configuración LVM, un grupo de volúmenes es una colección de volúmenes físicos
que forma un espacio de almacenamiento con nombre que luego se puede subdividir en volúmenes lógicos .
VPN Ver red privada virtual (VPN) .

W
WEP Consulte Privacidad equivalente por cable (WEP) .
Wi-Fi Un tipo de acceso a la red inalámbrica, comúnmente usado con computadoras portátiles o donde
el tendido de cables físicos no es práctico. El acceso inalámbrico requiere una configuración adicional en comparación
al acceso por cable debido a la necesidad de seleccionar una red Wi-Fi, administrar la seguridad, etc.
Conocido técnicamente como IEEE 802.11 .
Acceso protegido Wi-Fi (WPA) Un método de cifrado utilizado en IEEE 802.11 (Wi-Fi)
redes. WPA reemplaza al WEP más antiguo y menos seguro. WPA2 agrega funciones adicionales y es un
forma superior de cifrado sobre el WPA original.
Privacidad equivalente por cable (WEP) Un método de cifrado antiguo utilizado en IEEE 802.11
(Wi-Fi) redes. Se ha demostrado que WEP es inseguro y, por lo tanto, no debería utilizarse en la actualidad.
En su lugar, utilice WAP o WAP2.
WPA Consulte Acceso protegido a Wi-Fi (WAP) .

Página 678
636
Glosario

X
X Ver Sistema X Window.
X Display Manager Control Protocol (XDMCP) Un protocolo para administrar conexiones X
a través de una red. XDMCP también se utiliza para mostrar una pantalla de inicio de sesión de GUI local para Linux
estaciones de trabajo. Los servidores XDMCP comunes para Linux incluyen X Display Manager (XDM),
el Administrador de pantalla de GNOME (GDM) y el Administrador de pantalla de KDE (KDM).
Servidor X Un programa que implementa X para una computadora; especialmente el componente que
interactúa más directamente con el hardware de video.
Sistema X Window El entorno GUI para Linux. Una red, multiplataforma
GUI que se basa en varios componentes adicionales (como un administrador de ventanas y un widget
sets) para proporcionar una experiencia GUI completa. Consulte también servidor X , XFree86 y [Link] - X11.
[Link] - X11 El servidor X más común para Linux. Derivado de XFree86.
x 86 Una familia de CPU que incluye Intel 8086, 80186, 80286, 80386, 80486 y Pentium
CPU, así como modelos compatibles de AMD y otros. Las primeras x 86 CPU fueron
16 bits, pero las CPU desde el 80386 son diseños de 32 bits. Los modelos más recientes usan el más nuevo
x 86 - 64 arquitectura. La variedad de 32 bits también se conoce como Arquitectura Intel 32 (IA - 32) o i386.
x 86 - 64 Una actualización de la arquitectura x 86 que permite el funcionamiento de 64 bits. También conocido como
AMD64 o EM64T.
XDMCP Consulte X Display Manager Control Protocol (XDMCP).
XFree86 Un servidor X para Linux y otros sistemas operativos. XFree86 fue una vez el Linux X dominante
servidor, pero ha sido reemplazado en gran medida por [Link] - X11 .
XFS Consulte Sistema de archivos de extensiones (XFS).

Z
zona En el contexto de DNS, una parte de la jerarquía de DNS que se ha asignado a un
entidad particular para la administración. Puede ser un dominio (como [Link] ), un subdominio
(como demostració[Link] ), o una subred de dirección IP (como [Link]/24, o
[Link] - [Link] ). Los dominios de nivel superior (como .com o la zona raíz) se administran
por organizaciones dedicadas a este fin. Consulte también zona de avance y zona de retroceso .

Página 679
Índice
Nota para el lector: A lo largo de este índice , los números de página en negrita indican discusiones primarias de un
tema. Los números de página en cursiva indican ilustraciones.

UNA
Registros A (dirección), 271
Registros AAAA, 271
Puerto de gráficos acelerado (AGP)
estándar, 536
ACEPTAR la política de firewall,
324–326
acceso. Ver también seguridad
Servidores Apache, 408–409,
421–423
servidores proxy, 429–430
Samba, 368
Envoltorios de TCP para, 483–485
archivo [Link], 408–409
listas de control de acceso (ACL)
Servidores NFS, 381
servidores proxy, 429
Samba, 368
función access_db, 439–440
archivo [Link], 436
archivo [Link], 426
reglas de acceso, 429–430
función access_times, 489
cuentas, 574
LDAP. Ver ligero
Acceso al directorio
Protocolo (LDAP)
cuentas
variables de inicio de sesión, 579
PAM, 472–473
problemas de contraseña, 574–575
UID y GID, 577–578
problemas de asociación de usuarios / grupos,
576–577
conchas de usuario, 576
comando acl, 429
opción acl, 381
ACL (listas de control de acceso)
Servidores NFS, 381
servidores proxy, 429
Samba, 368
modo activo FTP, 392
Directivas AddModule, 408
Opción DIRECCIÓN en IMAP, 456
registros de dirección (A), 271
protocolo de resolucion de DIRECCION
(ARP), 223–225
direcciones
puerta de enlace, 213
IP. Ver direcciones IP
MAC, 306–308 , 307
web, 411–412
Directiva AddType, 417
Sonido Linux avanzado
Arquitectura (ALSA)
conductores, 528
AFP (Protocolo de archivo AppleShare),
359
AGP (puerto de gráficos acelerado)
estándar, 536
alertas
en registros, 586
apagado, 34
alias
correo electrónico, 446–447
IP, 213
archivo de alias, 446–447
archivo [Link], 436
opción all_squash, 381
allmodconfig target, 53–54
directiva de permitir transferencias, 281
listas de usuarios permitidos para cron
empleos, 596
Opción AllowTcpForwarding, 337
Opción AllowUsers, 337
ALSA (sonido avanzado de Linux
Arquitectura) controladores, 528
Programa AMANDA, 181
símbolos de unión (&) para inicio
guiones, 568
Programa AmphetaDesk, 498
herramienta anacron, 593
servidores proxy anonimizados, 428
acceso FTP anónimo, 390–391
medidas antispam
Postfix, 443
Reglas de Procmail, 452
comando apache, 408
archivo [Link], 407
archivo [Link], 408–409
Servidores Apache
acceso, 421–423
en cárceles chroot, 411
configurar, 423–426
página predeterminada, 409–410, 410
Proceso de búsqueda de DNS, 262
cifrado, 418–421
archivos de registro, 426–427
opciones, 407–409
guiones, 416–418
usuarios y grupos, 410
dominios virtuales, 414–416
direcciones web, 411–412
páginas web
cambios, 412–413
habilitación, 413–414
ubicaciones, 411
comando apache2, 408
archivo [Link], 407
herramienta apache2ctl, 423–424
herramienta apachectl, 423
Mapa de particiones de Apple (APM), 145
Protocolo de archivo AppleShare
(AFP), 359
Redes AppleTalk, 206
Protocolo AppleTalk, 359
herramienta apt-get, 47
arquitectura de la CPU, 531
Programa ARKEIA, 181
ARP (resolución de dirección
Protocolo), 223–225
utilidad arp, 223–224
opción ascii para FTP, 392
operadores de asignación en udev,
128-129
problemas de asociación para usuarios y
grupos, 576–577
opción asíncrona, 380
Interfaz de paquetes ATA (ATAPI),
171
comando auth_param, 429
autenticación
Servidores Apache, 422–423
PAM. Ver enchufable
Módulos de autenticación
(PAM)
servidores proxy, 429, 431, 431
SSH, 341
servidores autorizados, 261
archivo [Link], 104
montador automático autofs, 103-105
configuración de enrutamiento automático,
331–334 , 333
montadores de automóviles, 90, 101-105 , 102
opción disponible para Samba
servidores, 367
Herramienta AWStats, 427

si
demonios de fondo, 568
Opción de gráfico de fondo, 8
Programa de respaldo para PC, 181

Página 680
copias de seguridad
opción de sistema de archivos, 100
hardware, 179–181
recuperación, 192-194
horarios, 191-192
software, 181–182
cpio, 183–185 , 187–189
dd, 185-187
mt, 189-191
rsync, 187
alquitrán, 182–183 , 187–189
Programa Bacula, 181
programa badblocks, 108
directorios base en LDAP, 311
bash (Bourne Again Shell), 576,
579–581
Basic Input Output System
(BIOS)
Partición de arranque, 517
inicialización de hardware, 514
variaciones en, 5
inicios de los archivos de registro, 545
Demonio de nombres de Internet de Berkeley
(BIND) servidores, 262
archivo de configuración, 264–266
en cárceles, 282–283
servidores maestro y esclavo, 280
/ bin / bash shell, 576
archivos binarios
32 y 64 bits, 591–592
cargador de arranque, 518
encontrar cadenas en, 551–552
kernel, 49 , 60–61
código fuente, 23
opción binaria para FTP, 392
BIND (nombre de Internet de Berkeley
Servidores Daemon), 262
archivo de configuración, 264–266
en cárceles, 282–283
servidores maestro y esclavo, 280
BIOS (sistema básico de entrada / salida)
Partición de arranque, 517
inicialización de hardware, 514
variaciones en, 5
programa blkid, 99, 119
dispositivos de bloque, 126
bloqueo de puertos abiertos, 491
Programa BlogBridge, 498
Medida BogoMIPS, 526
/ directorio de arranque, 49, 60
directorio / boot / grub, 7, 517–518
directorio /boot/grub.d, 10–11
archivo /boot/grub/[Link], 7
/boot/grub/[Link] archivo, 9-11,
66–68, 518, 521
Archivo /boot/grub/[Link], 517
Archivo /boot/grub/[Link], 6–7, 517
directorio / boot / grub2, 517–518
Secuencia de comandos de información de arranque, 516–518
Archivo /boot/[Link], 520
cargadores de botas, 6
mensajes de error, 519–522
archivos y código, 516–519
COMIDA. Ver Grand Unified
Cargador de arranque (GRUB) 2;
Gran cargador de arranque unificado
(GRUB) Legado
identificación, 514–516
etapa 1, 4
archivo [Link], 542
/ partición de arranque, 6–8, 61
particiones de maletero, 517
proceso de arranque, 4–5
Configuración de GRUB 2, 9–11
Instalación de GRUB, 11
Interacción GRUB, 11-12
Configuración de GRUB Legacy,
5-9
mensajes en, 525
solución de problemas. Ver
solución de problemas
sectores de arranque, 517
discos ópticos de arranque, 123
Variable BOOTPROTO, 212
Protocolo Bootstrap (BOOTP), 300
Bourne Again Shell (bash), 576,
579–581
Cargador universal nuevo
(BURG), 515
enrutadores de banda ancha, 299
Programa BRU, 181
funcionamiento bsf, 190
Sistema de archivos Btrfs, 92
Lista de correo de Bugtraq, 498
núcleo de construcción, 59–60
hardware incorporado, identificación,
533–534
utilidad bunzip2, 25
BURG (nuevo Universal
Cargador), 515
Opciones de bus (PCI, etc.)
categoría, 56
autobuses, identificación, 527
bzImage file, 49, 60–61
utilidad bzip2, 25

C
cachés
Servidores DNS, 262
envenenamiento, 281
servidores DNS de solo almacenamiento en caché, 262–268
llamando a TCP Wrappers, 485–487
nombre canónico (CNAME)
registros, 271
CA (autoridades de certificación)
Servidores Apache, 419–420
VPN, 227–228
comando cdrecord, 121–122
servidores de inicio de sesión centrales en NFS,
390
CERT / CC (Computadora
Equipo de respuesta de Emergencia
Centro de Coordinación), 497
autoridades de certificación (CA)
Servidores Apache, 419–420
VPN, 227–228
certificados para servidores Apache,
418–421
programa cfdisk, 146
CGI (puerta de enlace común
Interfaz) scripts, 416–418
opción de cargador de cadena, 9
cadenas de reglas de firewall, 248
sumando, 326–328
configurar, 321–322, 321 ,
324–325
Archivo CHANGELOG, 26
dispositivos de carácter, 126
sumas de comprobación en RAID, 149
conjuntos de chips, 52, 530, 533
herramienta chkconfig
niveles de ejecución, 16-17
scripts de inicio, 567
comando chown, 577–578
directorio chroot, 282
cárceles de chroot, 282-283 , 411
CIAC (Aviso de incidentes cibernéticos
Capacidad), 497–498
comando de montaje cifs, 375–376
archivo [Link], 229
clientela
DHCP, 212, 306–307 , 307
reglas de firewall para, 329
NFS, 388–390
POP frente a IMAP, 454
servidores proxy, 430–431 ,
430–431
velocidad de reloj de las CPU, 526
Herramienta CloneZilla, 179
CNAME (nombre canónico)
registros, 271
código
cargador de arranque, 516–519
fuente. Ver código fuente
opción de comentario para Samba
servidores, 367
Interfaz de Entrada Común
(CGI) guiones, 416–418
claves udev comunes, 128-130
Sistema de impresión común Unix
(TAZAS), 53, 243
comparaciones para la resolución de problemas,
513
compiladores, 23-24
compilando
núcleo. Ver kernel
código fuente, 26–29
638
copias de seguridad - compilación
Página 681
compresión
dd, 186-187
mt, 190
SSH, 344
autobuses informáticos, identificación, 527
Respuesta de emergencia informática
Centro de coordinación de equipos
(CERT / CC), 497
opciones de firmware de computadora, 5
Vulnerabilidades informáticas y
Exposiciones (CVE), 498
condiciones para las reglas de Procmail, 450
Archivo .config, 541
destino de configuración, 53
comando configtest, 424
Archivos de configuración
bota, 517
redes, 212-214
configurar secuencia de comandos, 27–28
Cuadro de diálogo Configuración de conexión,
430, 430
conexiones
Servidores Apache, 421–422
redes
comprobación, 218–219
configurar, 219–220
cuestiones, 246–247
inalámbrica, 206–210 , 207 , 211
servidores proxy, 430, 430
VPN, 229–231
consultores para la resolución de problemas,
513
banderas de control en PAM, 473–474
Modo de copia en cpio, 184
copiar páginas man, 29
Modo cpio de copia de salida, 184
Modo cpio Copy-Pass, 184
COPIA de archivo, 26
copiando archivos, 339
núcleos en CPU, 531
discos corruptos, 106
Servidor de correo de mensajería, 455–456
comando cp, 29
utilidad cpio, 183–185 , 187–189 , 193
CPU
identificación, 531–533
información sobre, 526–527
opciones del kernel, 57
galletas, 483
opción de creación de máscara, 367–368
opción de credenciales, 101
archivo cron, 542
trabajos cron
archivos de registro, 588–589
sistema, 593–594
usuario, 594–596
utilidad crontab, 594–595
discos ópticos multiplataforma,
122-123
Categoría de API criptográfica, 56
CUPS (impresión común de Unix
Sistema), 53, 243
CVE (vulnerabilidades informáticas
y exposiciones), 498
Aviso de incidentes cibernéticos
Capacidad (CIAC), 497–498
Servidor IMAP Cyrus, 455
re
Ajuste DAEMON_OPTIONS, 437
demonios
antecedentes, 568
copias múltiples, 583
Comando DATA, 445
operación de compresión de datos, 190
fechas en trabajos cron, 593
utilidad dcfldd, 187
utilidad dd, 185–187
utilidad ddrescue, 187
Paquete Debian, 23, 64–65
niveles de depuración en registros, 586
opción de depuración, 478
programa debugfs, 117–118
depuración
sistemas de archivos, 117–118
grabación de depuración
información, 478
herramienta debugreiserfs, 113–114
declaraciones en [Link], 301
Redes DECnet, 206
parámetro de tiempo de arrendamiento predeterminado, 302
Opción de SO predeterminada, 8
valores predeterminados
códigos de acción, 18
Página del servidor Apache, 409–410,
410
sistema operativo de arranque, 8
políticas de firewall, 324–326
conjuntos de grupo, 576
rutas, 215
niveles de ejecución, 20-21
defconfig target, 53
eliminar cuentas LDAP, 317
Opción DenyUsers, 337
dependencias en módulos, 77
comando depmod, 62, 78
/ dev sistema de archivos, 125–126
/ dev / archivo hda, 11
archivo / dev / hda2, 6
Archivo / dev / hda5, 6
/ dev / archivo hda6, 6
/ dev / nodo nulo, 283
/ dev / nodo aleatorio, 283
/ dev / sda, 11
bibliotecas de desarrollo, 24
dispositivos
identificación, 528–529 , 538–539
ajustes de configuración del kernel, 56
monte, 99
gestión de udev de, 124-132
herramienta df, 105
cliente dhclient, 212
DHCP. Ver host dinámico
Protocolo de configuración
(DHCP)
Página dhcp-eval, 304
página de opciones dhcp, 304
paquete de relés dhcp3, 309
cliente dhcpcd, 212, 301
Archivo [Link], 301–303
comando dhcrelay, 309
comando dhcrelay3, 309
resolución de problemas de diagnóstico
herramientas, 513
utilidad de excavación, 268
descripción, 245
archivos de zona, 266, 277–279
Línea de abonado digital (DSL)
conexiones, 218
acceso directo a memoria (DMA),
174-175
directivas en Apache, 407–409
opción de máscara de directorio en Samba
servidores, 367–368
sistemas de directorio, 310–311
Directiva DirectoryIndex, 412,
417–418
deshabilitar código de acción, 18
listas de usuarios no permitidos para cron
empleos, 596
desastre, recuperación de respaldo para,
192-194
Opción DESCARTAR en sendmail,
439
discos, 143–144
hardware de respaldo, 179–181
software de copia de seguridad, 181-191
corrupto, 106
elementos esenciales del examen, 195-196
GRUB Legacy, 7
hardware, 171-173 , 171
LVM. Ver volumen lógico
Gerente (LVM)
monitoreo de fallas,
177-179 , 178
óptico. Ver discos ópticos
parámetros, 176-177
particiones, 144-148
rendimiento, 175
REDADA. Ver matriz redundante
de discos independientes
(REDADA)
uso de recursos, 173-175
preguntas de repaso, 197–204
resumen, 194-195
DMA (acceso directo a memoria),
174-175
compresión - DMA (acceso directo a memoria)
639

Página 682
Líneas DMA, listado, 538
comando dmesg, 243, 525, 542
DNS. Ver sistema de nombres de dominio
Servidores (DNS)
Extensiones de seguridad DNS
(DNSSEC), 281
servidor dnsmasq, 262, 301
comando dnssec-keygen, 281
comando dnssec-signzone, 281
documentación
núcleo, 48–49 , 541
código fuente, 26
para solucionar problemas, 513
Directiva DocumentRoot,
412–413
Sistema de nombres de dominio (DNS)
servidores, 217, 259–260
solo almacenamiento en caché, 263–268
correo electrónico, 433
examen esencial, 284–285
problemas de nombre de host, 244–246
consultas, 329
preguntas de repaso, 286–293
rol, 260–262 , 261
seguridad, 282–284
ajustes, 213
esclavo, 280-281
horizonte dividido, 283-284
resumen, 284
Zonas Ver zonas, DNS
nombres de dominio, 217, 484
dominios
configuración de correo, 433–434
obtención, 263
Opciones del servidor Samba,
364–365
virtual, 414–416
Cargador de arranque DOS / Windows, 515
Servidor Dovecot, 455–458
conductores
hallazgo, 540–541
fabricantes de 541–542
impresoras y escáneres, 53,
369–370
Política de firewall DROP, 324–326
DSL (línea de abonado digital)
conexiones, 218
CPU de doble núcleo, 531
DNS de doble horizonte, 283–284
utilidad de volcado, 100
Utilidad dumpe2fs, 112–113
Configuración dinámica de host
Protocolo (DHCP)
clientes, 212, 306–307 , 307
conexiones de red, 211–212
servidores, 298
entrega dinámica de direcciones,
305
entrega a domicilio fijo, 306
opciones de dirección fija, 308
instalación, 300–302 , 301
Direcciones MAC, 306–308 ,
307
opciones para toda la red,
302–304
agentes de retransmisión, 309
usos, 299
direcciones IP dinámicas, 298, 305
bibliotecas dinámicas, 590

mi
utilidad e2fsck, 110–111
comando de eco, 223
8.3 nombres de archivo, 92
EFI (firmware extensible
Interfaz), 5, 514
cargadores de botas, 515–516, 518
Tipo de partición GPT, 145
Soporte de partición EFI GUID
opción, 56
Estándar EIDE (IDE mejorado),
171
Estándar EISA (Extended ISA), 56
Especificación El Torito, 123, 519
Cargador de arranque ELILO, 515
servidores de correo electrónico y correo electrónico,
431–432 , 432
alias y reenvío,
446–447
configuración de dominio,
433–434
examen esencial, 459–460
archivos de registro, 447–448
POP e IMAP, 453–458
Postfix, 440–444
Procmail, 448–453
colas, 445–446
preguntas de repaso, 461–467
enviar correo. Ver servidor de sendmail
selección de servidor, 434–435
Prueba del servidor SMTP,
444–445
resumen, 458
prioridad emergente en registros, 586–587
sistemas de emergencia
en discos extraíbles, 193–194
en resolución de problemas, 513
directorios vacíos para montar
puntos, 96
habilitar código de acción, 18
Habilitar la compatibilidad con módulos cargables
opción, 57
Habilite la categoría Block Layer,
55
contraseñas cifradas, 575
cifrado
Servidores Apache, 418–421
Archivos LDIF, 312
Contraseñas de Samba, 362–363
SSH, 335, 338–339
VPN, 226–231
redes inalámbricas, 208–209
finales de archivos de registro, 545–546
Estándar IDE mejorado (EIDE),
171
Gestión de volumen empresarial
Sistema (EVMS), 157
buen funcionamiento, 190
operación de borrado, 190
archivo [Link], 426
error de mensajes
cargadores de botas, 519–522
recopilación, 59
archivos de registro, 544
sendmail, 439
Opción ERROR, 439
prioridad de error en registros, 586
errores, sistemas de archivos, 110-111
Interfaz eSATA, 171
Archivo / etc / aliases, 447
directorio / etc / apache, 407
directorio / etc / apache2, 407
/etc/[Link] archivo, 104–105
Archivo /etc/[Link], 105
Archivo /etc/[Link], 104–105
Archivo /etc/[Link], 104–105
Archivo /etc/[Link], 104–105
Archivo / etc / bashrc, 33
/etc/conf.d/[Link] script, 332
Archivo /etc/[Link], 78
/ etc / courier file, 456
Archivo /etc/[Link], 596
/etc/[Link] archivo, 594
Archivo /etc/[Link], 596
Archivo / etc / crontab, 593–594
/ etc / default / dhcp3-relay archivo, 309
/ etc / default / grub archivo, 10–11
/ etc / default / pure-ftpd-common
archivo, 393
Archivo / etc / dhcp3, 301
/etc/dovecot/[Link] archivo, 457
/etc/event.d directorio, 567,
569–570
Archivo / etc / export, 379, 382, 388
directorio / etc / fail2ban, 494
archivo /etc/fail2ban/[Link],
494–496
archivo / etc / fstab
visualización de contenidos, 516
archivos compartidos, 375–376
comprobaciones del sistema de archivos, 110
opciones de montaje, 5, 96
NFS, 377, 388
RAID, 155–156
para recuperación, 194
muestra, 98–99
espacio de intercambio, 119–120
soportes montables por el usuario, 100
/ etc / archivo de grupo, 574, 576
/etc/grub.d directorio, 517
640
Líneas DMA, listado - directorio /etc/grub.d

Página 683
/etc/grub.d/40_custom archivo,
67–68
directorio / etc / hal, 102
/ etc / archivo de nombre de host, 217, 245
Archivo / etc / hosts, 217, 245, 260
/etc/[Link] archivo, 248,
482–485
archivo /etc/[Link], 248,
482–483, 485
directorio / etc / httpd, 407
Directorio / etc / httpd / conf, 407
/etc/[Link] archivo, 482, 485, 487
/etc/inetd.d, 487
Directorio / etc / init, 19, 569–570
/etc/init.d directorio, 15–16,
524, 567
/etc/init.d/archivo con nombre, 267
/etc/init.d/rc script, 15
/etc/init.d/smb comando de inicio, 16
Secuencias de comandos /etc/init.d/sshd, 335
archivo / etc / inittab, 14
contenido, 18
edición, 15
proceso de inicio de sesión, 569–570
problemas en, 564–566
niveles de ejecución, 20-21
/ etc / issue file, 33–34
Archivo /etc/[Link], 33–34
Archivo /etc/[Link], 591
/etc/[Link].d directorio, 591
Archivo /etc/[Link], 517
Archivo /etc/[Link], 579
Archivo /etc/[Link], 588
/etc/logrotate.d archivo, 588–589
Directorio / etc / mail, 435–436
/ etc / mail / access file, 439–440
/ etc / mail / nombres-de-host-local
archivo, 438
Archivo /etc/mail/[Link], 435–436
Archivo /etc/mail/[Link], 436
Archivo /etc/[Link], 77–78
Archivo /etc/[Link], 77–78
Archivo / etc / mtab, 105
/etc/[Link] archivo, 267
archivo /etc/[Link], 264–268
BIND, 267
servidores esclavos, 280
zonas, 268-270
/ etc / archivo de red, 246
archivo / etc / network / interfaces,
212–214
Archivo /etc/[Link], 480
archivo /etc/openldap/[Link],
311, 314
Directorio / etc / openvpn, 228, 230
Archivo /etc/[Link], 471
/etc/pam.d directorio, 471–472,
479, 571
archivo / etc / passwd
cárceles chroot, 282
PAM, 470–471
problemas de contraseña, 574–575
Samba, 363
información de la cáscara, 576
/etc/postfix/[Link] archivo, 440, 442
Archivo / etc / procmailrc, 449, 453
/etc/profile.d directorio, 579–580
/ etc / profile script, 30, 579–580
Archivo / etc / pure-ftpd / conf, 393
/etc/rc.d directorio, 567
/etc/rc.d/init.d directorio, 16, 524
/etc/rc.d/rc script, 15
/etc/rc.d/[Link] script, 332, 568
/etc/[Link] script, 30, 332
archivo /etc/[Link], 213,
245–246, 389
Archivo /etc/[Link], 585
Directorio / etc / samba, 360
/etc/samba.d directorio, 360
archivo / etc / services
puertos, 233, 495
Envoltorios TCP, 482–483, 485
archivo / etc / shadow, 470–471,
574–575, 579
directorio / etc / snort, 493
/etc/snort/[Link] archivo, 493–494
Archivo /etc/squid/[Link], 428
Archivo / etc / ssh, 338
archivo / etc / ssh / sshd_config,
336–337 , 339, 343–344
archivo / etc / sysconfig / dhcrelay, 309
/ etc / sysconfig / archivo de red, 217
/ etc / sysconfig / network / routes
archivo, 213
/ etc / sysconfig / network-scripts
archivo, 246
/ etc / sysconfig / network-scripts /
archivo ifcfg-eth0, 212–214
archivo / etc / sysconfig / sysctl, 223
Archivo /etc/[Link], 223, 573
Archivo /etc/[Link], 543, 585–587
directorio /etc/udev/rules.d, 127,
130-131
Archivo /etc/[Link], 394–395
Archivo /etc/vsftpd/[Link], 394
/ etc / X11 / prefdm script, 565
Archivo /etc/[Link], 487–488
/etc/xinetd.d directorio, 488–489
Detector de paquetes etéreo, 235–236 ,
236
EVMS (volumen empresarial
Sistema de gestión), 157
Formato ejecutable y enlazable
(ELF) categoría de formato de archivo, 56
permisos ejecutables para cron
puestos de trabajo, 595–596
Servidor Exim, 434–435
Campo de tiempo de expiración, 272
programa exportfs, 382–383
exportaciones en NFS, 358
administración, 382–384
opciones, 379–382
/ exportaciones / archivo compartido, 367
Ext2fs, Ext3fs y Ext4fs
sistemas de archivos, 91
información sobre, 112–113
afinación, 114-115
Sistema de archivos extendido HFS (HFS +),
93
Estándar ISA extendido (EISA),
56
particiones extendidas, 145
Interfaz de firmware extensible
(EFI), 5, 514
cargadores de botas, 515–516, 518
Tipo de partición GPT, 145
Sistema de archivos de extensiones (XFS), 92
discos duros externos para copias de seguridad,
180
extraer archivos, 118

F
Programa Fail2Ban , 494–497
comando fail2ban-client, 495
RAID falso, 151
FAT (tabla de asignación de archivos)
sistema de archivos, 92
programa fdisk, 119, 146–148
Configuración de FUNCIÓN, 437–438, 440
Programa Fetchmail, 432
Tabla de asignación de archivos (FAT)
sistema de archivos, 92
Cuadro de diálogo Preferencias del Administrador de archivos
caja, 102
servidores de archivos, 357–358
examen esencial, 396–397
Servidores FTP, 390–396
NFS. Ver NFS
preguntas de repaso, 398–406
rol, 358–359
Samba. Ver servidores Samba
resumen, 396
configuración de archivos compartidos,
366–368
Categoría de sistemas de archivos, 56
Protocolo de transferencia de archivos (FTP), 359
servidores
básicos, 392–393
descripción general, 390–391
Pure-FTPd, 392–394
seleccionar, 391–392
vsftpd, 394–396
Envoltorios TCP, 485
nombres de archivo
GRASA, 92
ISO-9660, 123
en URI, 412
archivos
binario. Ver archivos binarios
cargador de arranque, 516–519
/etc/grub.d/40_custom file - archivos
641

Página 684
archivos ( continuación )
copiando, 339
extracción, 118
Iniciar sesión. Ver archivos de registro
abierto, 550–551
recuperar, 118
código de tipo de sistema de archivos, 99–100
sistemas de archivos, 89–90
disponibilidad, 90–91
creando, 107–109
depuración, 117–118
gestión de dispositivos,
124-132
errores, 110-111
elementos esenciales del examen, 133–134
identificación, 529–530
información sobre, 112–114
configuración del kernel, 56
montado, listado, 105
montaje
montadores de automóviles , 101-105 ,
102
una vez, 94–98
permanente, 98-101
discos ópticos, 120-124
en matrices RAID, 155–156
preguntas de repaso, 135–142
resumen, 132
espacio de intercambio, 118–120
tuning, 111 , 114-117
tipos, 91–94
desmontaje, 105-107
filtros en búsquedas LDAP, 318
hallazgo
información del archivo de registro, 546–547
archivos abiertos, 550–551
procesos en ejecución, 582–585 ,
582 , 584
cadenas en archivos binarios,
551–552
Firefox
Proceso de búsqueda de DNS, 262
ajustes, 430, 430
cortafuegos
descripción, 319
reglas, 320
sumando, 326–328
política predeterminada, 324–326
iptables, 320–324 ,
321–322
configuración de muestra,
328–330
opciones de firmware, 5
direcciones IP fijas, 298
entrega, 306
opciones, 308
banderas en envoltorios TCP, 486
disquetes
cargadores de botas, 519
GRUB Legacy, 7
forzar opción de usuario, 367–368
formatos, almacenamiento, 448–449
fortunas en mensajes de inicio de sesión, 33
Cadenas AVANZADAS, 248 , 321,
321 , 324–326
Archivo .forward, 447, 449
archivos de zona de avance, 269–273
reenvío
correo electrónico, 446–447
puerto, 330–331
servidores de solo reenvío, 264
Cuarto sistema de archivos extendido
(ext4fs o ext4), 91
FQDN (dominio completo
nombres), 217, 244, 270
Sitio de carne fresca, 25
utilidad fsck, 5, 100, 110–111
operación fsf, 190
opción fsid, 381
FTP. Ver Protocolo de transferencia de archivos
(FTP)
programa cliente ftp, 359
copias de seguridad completas, 192
búsquedas recursivas completas, 264
comando fullstatus, 424
nombres de dominio completos
(FQDN), 217, 244, 270
comando fusor, 107

GRAMO
direcciones de pasarela, 213
GCC (compilador GNU
Colección), 24, 29
destino gconfig, 53
herramienta gdisk, 146, 517
GDM (pantalla GNOME
Gerente)
Programa GUI, 471, 570
niveles de ejecución, 19
Categoría de configuración general, 55
programa genisofs, 121
herramienta genkernel, 62
Gentoo Linux
Servidores FTP, 391
niveles de ejecución, 13-14
parámetro get-lease-hostnames,
303
comando getent, 317
Programas getty, 570
Guión fantasma, 53
GID (ID de grupo)
ajuste, 574, 577–578
cárceles chroot, 282
asociaciones de grupos, 576–577
NFS, 389–390
opciones globales de GRUB Legacy, 8
guiones globales, 579–580
Identificador único global
(GUID) Tabla de particiones
(GPT), 145-148 , 517
programa glxgears, 583–584
Administrador de pantalla GNOME
(GDM)
Programa GUI, 471, 570
niveles de ejecución, 19
Editor de particiones GNOME, 146
Herramienta tostadora GNOME, 121
Colección de compiladores GNU
(CCG), 24, 29
Herramienta Partida GNU, 517
Sitio de Google Code, 25
Herramienta GParted, 146, 157-158
GPT (tabla de particiones GUID),
145-148 , 517
comando elegante, 424
comando de parada elegante, 424
Gran cargador de arranque unificado
(GRUB) 2
configurar, 9–11
descripción, 515
mensajes de error, 521–522
kernel, 66–68
Gran cargador de arranque unificado
(GRUB) Legado
tiempo de arranque, 11-12
configurar, 5–9
descripción, 514
mensajes de error, 520–521
instalación, 11
núcleo, 65–66
Opción de kernel de soporte de gráficos,
58
comando grep
archivos de registro, 547
Direcciones MAC, 308
Directiva de grupo, 410, 413
ID de grupo (GID)
ajuste, 574, 577–578
cárceles chroot, 282
asociaciones de grupos, 576–577
NFS, 389–390
grupos
Servidores Apache, 410
asociaciones de usuarios, 576–577
volumen, 158 , 162–164
programa growisofs, 121–122
GRUB 2. Ver Grand Unified
Cargador de arranque (GRUB) 2
herramienta de instalación de grub, 11, 518–519
GRUB Legacy. Ver Grand
Cargador de arranque unificado (GRUB)
Legado
comando grub-mkconfig,
67–68
Utilidad GSmartControl, 178, 178
Inicios de sesión de GUI, 570–571
Herramientas GUI
direcciones de hardware, 307, 307
redes, 216–217
X Display Manager, 471
Tabla de particiones GUID (GPT),
145-148 , 517
utilidad gunzip, 25
642
archivos - utilidad gunzip

Página 685
H
hackers, 483
HALD (abstracción de hardware
Daemon de capa (HAL)), 102
comando de parada, 22
hardware
copia de seguridad, 179–181
discos, 171-173 , 171
identificación, 530 , 538–539
incorporado, 533–534
CPU, 531–533
PCI, 534–536
uso de recursos, 537–538
subsistemas, 527–528
USB, 536–537
inicializando, 514
para kernel, 51–53
manuales, 52
Capa de abstracción de hardware
(HAL) Demonio (HALD),
102
direcciones de hardware, 306
RAID de hardware, 150–151
pegatinas de hardware para NIC, 306
contraseñas con hash, 575
utilidad hdparm, 175–176
comando de cabeza, 545
archivos de encabezado, 24
cargas pesadas, identificando, 543
Comando HELO, 444
ayuda en el sistema de archivos, 118
HFS (sistema de archivos jerárquico)
descripción, 93
soporte para discos ópticos, 123
HFS + (HFS extendido)
sistema de archivos, 93
modo de hibernación, 119
opción de ocultar para servidores NFS, 381
Sistema de archivos jerárquico (HFS)
descripción, 93
soporte para discos ópticos, 123
sistemas de archivos de alto nivel, 90
Opción de soporte de memoria alta, 57
Sistema de archivos de alto rendimiento
(HPFS), 147
/ exportación desde casa, 382
comando de host, 244, 268, 274–276
restricciones de host, 488–489
comando de nombre de host, 217, 244
nombres de host
configurar, 217
DNS, 261–262
NFS, 379
Postfix, 441–442
configuración de sendmail, 437
Envoltorios TCP, 483
resolución de problemas, 244–246
en URI, 412
hosts permiten opción, 361
hosts deny option, 361
hardware de conexión en caliente, 19
discos en espera calientes, 149
HPFS (alto rendimiento
Sistema de archivos), 147
Archivo .htaccess, 409, 422
HTML (marcado de hipertexto
Idioma), 406–407
comando htpasswd, 422–423
HTTP (transferencia de hipertexto
Protocolo), 406–407
Comando http_access, 429–430
comando httpd, 408
archivo [Link], 407
comando httpd2, 408
archivo [Link], 407
Lenguaje de marcado de hipertexto
(HTML), 406–407
Protocolo de Transferencia de Hipertexto
(HTTP), 406–407
hipótesis en la resolución de problemas, 512

yo
ICANN (Corporación de Internet
para Nombres asignados y
Números), 263
ICMP (mensaje de control de Internet
Protocolo) paquetes, 218
Mapeadores de ID, 389
IDE (dispositivo integrado
Electrónica) estándar, 171
programa ifconfig, 214 , 219–220,
306–307
comando ifdown, 216-217 , 219
comando ifup, 216–217 , 219
IMAP. Ver mensaje de Internet
Protocolo de acceso (IMAP)
servidores
Opción IMAP_CAPABILITY, 456
paquete imap, 455
Incluir directiva, 408, 473
correo entrante
Postfix, 442
sendmail, 437–438
copias de seguridad incrementales, 191-192
Industria estandar de arquitectura
(ISA) estándar, 56, 536
Configuración de inet_interfaces, 442
comando inetd, 482, 485, 487
archivo [Link], 487
comando info, 127
comando init, 4–5, 19
procesos, 582, 582
niveles de ejecución, 21
discos RAM iniciales
GRUB Legacy, 9
cuestiones, 523–524
soporte de kernel, 57
preparando, 62–64
inicialización
hardware, 514
sistema. Ver sistema
inicialización
opción initrd, 9
inodos, 112, 118
Cadenas de ENTRADA, 248 , 321–326, 321
utilidad insmod, 72, 539–540
comando de instalación, 29–30
INSTALAR archivo, 26
Archivo [Link], 32
discos de instalación, 193
instalando
código fuente compilado, 29–32
Servidores DHCP, 300–302 , 301
kernel, 46–48
binario del kernel, 60–61
módulos del kernel, 61–62
Snort, 492 , 493
Electrónica de dispositivos integrados
(IDE) estándar, 171
depuración interactiva del sistema de archivos,
117-118
restricciones de interfaz, red, 489
discos duros internos para copias de seguridad,
179
Protocolo de mensajes de control de Internet
(ICMP) paquetes, 218
Corporación de Internet para
Nombres asignados y
Números (ICANN), 263
Protocolo de acceso a mensajes de Internet
(IMAP) servidores, 432
Mensajero, 456
Dovecot, 457–458
paquetes, 454–456
vs. POP, 453–454
Envoltorios TCP, 487
Intercambio de paquetes de Internet /
Intercambio de paquetes secuenciado
(IPX / SPX), 206, 360
Consorcio de software de Internet
(ISC), 300
lenguajes informáticos interpretados, 23
solicitudes de interrupción (IRQ),
173-174, 538
detección de intrusos, registros de, 544
Puertos de E / S, listado, 538
Direcciones IP
ARP, 223–225
Servidores DHCP. Ver dinámico
Configuración de host
Protocolo (DHCP)
dinámico, 298
IPv6, 215–216
Servidores NFS, 380
archivos de zona inversa, 273
DNS de horizonte dividido, 283
estática, 212–215 , 298
Envoltorios TCP, 483
Alias de IP, 213
comando ip, 225–226
Enmascaramiento de IP, 232, 319
herramienta ipchains, 320
hackers - herramienta ipchains
643

Página 686
herramienta ipfwadm, 320
utilidad iptables
políticas predeterminadas, 325
configuración del firewall, 247–248,
320–324 , 321–322
Configuración de NAT, 330–331
servidores proxy, 431
guion de muestra, 328–330
trabajando con, 326–328
IPv6 (IP versión 6), 215–216
IPX / SPX (paquete de Internet
Paquete de intercambio / secuenciado
Exchange), 206, 360
comando iroute, 230
IRQ (solicitudes de interrupción),
173-174, 538
ISA (estándar industrial
Arquitectura) estándar,
56, 536
ISC (software de Internet
Consorcio), 300
Sistema de archivos ISO-9660, 93 , 123
Cargador de arranque ISOLINUX, 519
herramienta iwconfig, 210
herramienta iwlist, 208–210

J
cárceles, chroot, 282–283 , 411
Editor JED, 31
JFS (sistema de archivos con registro), 91–92
Sistema de archivos Joliet, 93 , 123
registros de sistemas de archivos, 91–92 , 111

K
Herramienta K3B, 121
Administrador de pantalla de KDE (KDM),
570
núcleo, 45–46
binarios, 49
compilación, 59
instalación binaria, 60–61
edificio, 59–60
opciones de configuración,
54–59
GRUB 2, 66–68
GRUB Legacy, 8, 65–66
paquetes, 64–65
Preparación del disco RAM,
62–64
documentación, 48–49 , 541
elementos esenciales del examen, 79–80
hardware para, 51–53
identificando, 526
información sobre, 68–70
hacer objetivos, 53–54
módulos
descripción, 46, 49
identificación, 539–541 , 540
información sobre, 71–72
instalación, 61–62
listado, 52
cargando, 72–74
mantener, 77–78
gestión, 68 , 76–77
pasar opciones a, 78
eliminación, 74–76
obtención e instalación,
46–48
opciones, 572–573
parches, 50–51
preguntas de repaso, 81–87
búferes de anillo, 243, 525–526 ,
530
resumen, 79
solución de problemas. Ver
solución de problemas
Categoría de piratería de kernel, 56
llaves
SSH, 338–339 , 345
udev, 128–130
VPN, 227–229
comando de matar, 267, 568
comando killall
BIND, 267
sendmail, 436–437
servidores, 568
Envoltorios TCP, 487
demonio klogd, 585
archivo known_hosts, 339
Administrador de archivos Konqueror, 103
Servidor KPOP, 455
Herramienta Ksplice, 47
Herramienta Kvpm, 167

L
Impresoras LaserWriter, 369
archivo lastlog, 542
LD_LIBRARY_PATH
variable de entorno, 591
LDAP. Ver directorio ligero
Protocolo de acceso (LDAP)
cuentas
Formato de intercambio de datos LDAP
(LDIF), 311–313 , 315–316
comando ldapadd, 314–315
comando ldapdelete, 317
Comando ldapmodify, 315–316
comando ldappasswd, 316–317
comando ldapsearch, 318
comando ldconfig, 591
utilidad ldd, 550, 590
LDIF (intercambio de datos LDAP
Formato), 311–313 , 315–316
arrendamientos en DHCP, 211, 307–308
menos comando, 543, 545–547
niveles
depuración, 586
RAID, 148–149
niveles de ejecución. Ver niveles de ejecución
directorio / lib, 592
directorio / lib / modules, 49, 540
directorio / lib32, 592
/ directorio lib64, 592
sistema libata, 528
herramientas libparted, 146
bibliotecas
problemas, 590–591
núcleo, 57
requerido, 549–550
biblioteca libwrap, 481
Acceso ligero al directorio
Cuentas de protocolo (LDAP),
310
sumando, 314–315
borrar, 317
Archivos LDIF, 311–313
migrar bases de datos de usuarios a,
313
modificando, 315–317
descripción general, 310–311
preparación para, 311
consultas, 317–318
Servidores Samba, 365
opción likeauth, PAM, 478
LILO (cargador de Linux), 6
archivos de configuración, 517–518
descripción, 515
mensajes de error, 519–520
comando lilo, 520
lilo archivo, 518
modo RAID lineal, 148
Enlaces
creando, 567, 580
discos ópticos, 123
Sitio de archivos del kernel de Linux,
46–47, 50
Cargador de Linux (LILO), 6
archivos de configuración, 517–518
descripción, 515
mensajes de error, 519–520
Sitio de seguridad de Linux, 498
Base de estándares de Linux (LSB), 14
Mapeo de nombre de usuario de Linux,
365–366
comando list_deleted_inodes, 118
Directiva de escucha, 420
opción de escuchar en Dovecot, 457
En comando, 567, 591
operación de carga, 190
opción de carga de impresoras, 361
carga de módulos del kernel, 72–74
cargador de arranque loadlin, 515
Directiva LoadModule, 408,
414, 422
644
Herramienta ipfwadm - Directiva LoadModule

Página 687
cargas, identificando, 543
nombres de host locales, 245
mensajes de inicio de sesión locales, 33–34
scripts locales de Samba, 365
tráfico del servidor SSH local, firewall
reglas para, 329
scripts de inicio locales, 568
Opción de kernel de versión local, 57
interfaz localhost, 327
archivos de registro, 542
herramientas de análisis, 547–548
Servidores Apache, 426–427
inicios de, 545
común, 542–543
correo electrónico, 447–448
fines de, 545–546
examinando, 243–244
opciones, 586–588
para la identificación de problemas,
543–544
giratorio, 588–590
Samba, 372
buscando, 546–547
syslogd, 585
archivo [Link], 372
archivo [Link], 372
archivo [Link], 547–548
Herramienta de comprobación de registros, 547–548
registro de opciones BIND, 266
particiones lógicas, 145
Administrador de volumen lógico (LVM),
157
descripción, 144
volúmenes lógicos, 164–169
panorama general, 157–159 , 157
volúmenes físicos, 159–161
instantáneas, 169-170
rayas con, 149
grupos de volumen, 162–164
Opciones de inicio de sesión en Dovecot, 457
servidores de inicio de sesión en NFS, 390
herramienta de inicio de sesión, 5, 471, 570
inicios de sesión
scripts bash, 579–580
GUI, 570–571
variables de inicio de sesión, 579
mensajes, 33–34
red, 571
SSH, 340–342
modo texto, 569–570
paquete logrotate, 588
herramienta logrotate, 588
utilidad logtail, 548
nombres de archivo largos ISO-9660, 123
interfaz de bucle invertido, 327–328
sistemas de archivos de bajo nivel, 90
comando ls, 26
LSB (base de estándares de Linux), 14
comando lscpu, 531–533
comando lsdel, 118
Comando lsdev, 537–538
Utilidad lsmod, 52, 71 , 539–540
lsof program, 107, 241–242 ,
550–551
Utilidad lspci, 52, 534–536
utilidad lsusb, 52, 536–537
comando ltrace, 549
comandos lv, 165–169
comando lvconvert, 170
comando lvcreate, 165, 169–170
comando lvdisplay, 166
comando lvextend, 166
LVM. Ver volumen lógico
Gerente (LVM)
comando lvremove, 167
comando lvrename, 167
comando lvresize, 167
comando lvs, 166

METRO
lenguaje de macros m4, 435–436
paquete m4, 435
MAC (control de acceso a medios)
direcciones, 306–308 , 307
Clientes DHCP de Mac OS, 307, 307
archivo mágico, 409
correo. Ver correo electrónico y servidores de correo electrónico
registros del intercambiador de correo (MX),
271 , 433–434
Comando CORREO DESDE, 444
opción mail_location, 457–458
carretes de correo, 448
agentes de transferencia de correo (MTA), 433
agentes de usuario de correo (MUA), 448
formato maildir, 448–449
Opción MAILDIRPATH, 456
listas de correo para seguridad, 498
archivo de maillog, 543
programa mailq, 446
hacer comando, 59
hacer todo el mando, 59
hacer el comando allmodconfig, 54
comando make bzImage, 59–60
hacer un comando limpio, 30
hacer comando de ayuda, 54
hacer el comando de instalación, 29, 32, 61
comando hacer módulos, 59
hacer module_install
comando, 61
hacer el comando mrproper, 54
hacer el comando oldconfig, 54
hacer el comando silentoldconfig,
54
hacer objetivos, 53–54
hacer el comando de desinstalación, 31
hacer el comando xconfig, 54
comando make zImage, 59
Archivo Makefile, 27-28, 31
comando makemap, 439
grupos de gestión en PAM,
471–472
manuales, hardware, 52
fabricantes, controladores de,
541–542
mapeo de Linux y Windows
nombres de usuario, 365–366
Mars_nwe, 360
máscaras, red, 213
Ajuste MASQUERADE_AS,
437
enmascaramiento, IP, 232
Registro de arranque maestro (MBR)
archivos de arranque, 517
cargadores de botas, 516
opciones de kernel, 56
particiones, 119, 145-146
servidores DNS maestros, 280
unidades maestras PATA, 171
navegadores maestros de Samba, 364
claves coincidentes en udev, 128-129
coincidencia de reglas de Procmail, 450
parámetro max-lease-time, 303
Configuración de MaxClients, 421–422
Opción MAXDAEMONS, 456
Opción MAXPERIP, 456
formato mbox, 448–449, 455
MBR (registro de arranque maestro)
archivos de arranque, 517
cargadores de botas, 516
opciones de kernel, 56
particiones, 119, 145-146
MCA (microcanal
Arquitectura) estándar, 56
herramienta mdadm, 152-155
Control de acceso a medios (MAC)
direcciones, 306–308 , 307
/ directorio de medios, 103
menuconfig target, 53–54
comando mesg, 34
mensaje del día (MOTD), 33
mensajes
error. Ver mensajes de error
inicio de sesión local, 33–34
tiempo real, 34
archivo de registro de mensajes, 543
Arquitectura de microcanal
(MCA) estándar, 56
archivo migrate_common.ph, 313
migrar bases de datos de usuarios a
LDAP, 313
MIME (Internet multipropósito
Extensión de correo) tipos,
408–409
archivo [Link], 408–409
parámetro min-lease-time, 303
programa mingetty, 569–570
Campo TTL mínimo, 272
duplicación en RAID, 149
herramienta mkdosfs, 108
programa mke2fs, 107
herramienta mkfs, 107, 155
herramienta [Link], 108
herramienta [Link], 108
cargas, identificación - herramienta [Link]
645

Página 688
utilidad mkinitramfs, 64 , 523
utilidad mkinitrd, 62–63 , 523
programa mkisofs, 121
secuencia de comandos mksmbpasswd, 363
secuencia de comandos [Link], 363
comando mkswap, 119
comando mkudffs, 124
módulo mod_auth, 422
scripts mod_perl, 418
comando modinfo, 71–72
utilidad modprobe, 72–74 , 539
directorio de mods-available, 408,
413
directorio habilitado para mods, 408
pilas de módulos, 76
módulos
núcleo. Ver kernel
PAM. Ver enchufable
Módulos de autenticación
(PAM)
archivo [Link], 77
comando de actualización de módulos, 78
supervisión
para falla de disco, 177-179 , 178
tráfico. Ver monitoreo de tráfico
actividad de udev, 131-132
más comando, 545–546
MOTD (mensaje del día), 33
placas base, hardware encendido, 533
comando de montaje, 5
NFS, 388
opciones, 94–98
RAID, 155
Acciones de SMB / CIFS, 375–376
puntos de montaje, 99
exportaciones montadas en NFS, 383,
388–389
sistemas de archivos montados,
determinante, 105
montaje
sistemas de archivos, 90
montadores de automóviles , 101-105 ,
102
una vez, 94–98
permanente, 98-101
Exportaciones NFS, 388–389
Acciones de SMB / CIFS, 375–376
objetivo adecuado, 53–54
programa mt, 181, 189–192
MTA (agentes de transferencia de correo), 433
MUA (agentes de usuario de correo), 448
Compatibilidad con controladores de varios dispositivos
opción, 58
Correo de Internet multipropósito
Tipos de extensión (MIME),
408–409
Registros MX (intercambiador de correo),
271 , 433–434
configuración mynetworks_style,
443–444

norte
opción de orden de resolución de nombre, 362
registros del servidor de nombres (NS), 271
servidores de nombres. Ver nombre de dominio
Servidores del sistema (DNS)
Herramienta Name Service Switch (NSS),
470, 480
niveles de ejecución con nombre, 14
nombres
dominio, 217
nombres de host. Ver nombres de host
proceso de estrechamiento en
resolución de problemas, 512–513
NAT (dirección de red
Traducción)
enrutadores de banda ancha, 299
configurar, 330–331
en enrutamiento, 319
Administrador de archivos Nautilus, 103
nc utility, 231–232 , 490
programa cliente ncftp, 359
NCP (Protocolo principal de NetWare),
360
anidar bloques en las reglas de Procmail,
451–452
comando de miembro de unión de red, 364
Usuario extendido NetBIOS
Interfaz (NetBEUI), 359
opción de nombre de netbios, 361
utilidad netcat, 231–232
herramienta netstat, 232–234 , 241, 490
Protocolo principal de NetWare (NCP),
360
Traducción de Direcciones de Red
(NAT)
enrutadores de banda ancha, 299
configurar, 330–331
en enrutamiento, 319
direcciones de red para NFS
servidores, 380
Herramienta de configuración de red, 216
Detalles de la conexión de red
cuadro de diálogo, 307, 307
Servicios de información de red
(NIS), 260, 310, 380, 484
tarjetas de interfaz de red (NIC),
306
inicios de sesión de red, 571
configuración de la máscara de red (máscara de red),
247
máscaras de red, 213
Opción de filtrado de paquetes de red,
58
escáneres de red, 237
opciones de DHCP en toda la red,
302–304
Categoría de soporte de red, 56
redes, 205–206, 297–298
restricciones de acceso, 488–489
ARP, 223–225
archivos de configuración, 212–214
conexiones
comprobación, 218–219
configurar, 219–220
cuestiones, 246–247
inalámbrica, 206–210 , 207 ,
211
DHCP. Ver host dinámico
Protocolo de configuración
(DHCP)
examen esencial, 249-250 ,
346–347
Herramientas de GUI, 216–217
nombres de host, 217
herramienta ip, 225–226
opciones de kernel, 56
Cuentas LDAP. Ver
Directorio ligero
Protocolo de acceso (LDAP)
cuentas
mensajes de inicio de sesión, 33
PPP, 218
preguntas de repaso, 251–257 ,
348–355
enrutadores. Ver enrutadores
SSH. Ver Secure Shell (SSH)
protocolo
direcciones IP estáticas, 212–215
resumen, 248–249 , 345
seguimiento del tráfico. Ver tráfico
supervisión
solución de problemas. Ver
solución de problemas
VPN, 226–231
Sistema de archivos de nueva tecnología
(NTFS), 92–93 , 147
comando newaliases, 447
Archivo NEWS, 26
grupos de noticias para la seguridad, 498
NFS, 358–359
clientes, 388–390
seguridad, 388
servidores, 377
comprobación de actividad,
385–386
mediciones de actividad,
384–385
gestión de exportaciones,
382–384
opciones de exportación, 379–382
administración, 385–386
prerrequisitos, 377–379 , 378
secuencia de comandos nfs-common, 17
utilidad nfsstat, 384–385
NIC (tarjetas de interfaz de red),
306
NIS (información de red
Servicios), 260, 310,
380, 484
646
Utilidad mkinitramfs - NIS (Servicios de información de red)

Página 689
Escáner Nmap, 237 , 490
programa nmbd, 370–371
utilidad nmblookup, 364, 371
opción no_acl, 381
opción no_all_squash, 381
opción no_root_squash, 381, 388
opción nohide, 381
scripts sin inicio de sesión, 579
Registros NS (servidor de nombres), 271
utilidad nslookup, 276–277
Herramienta NSS (Name Service Switch),
470, 480
Opción de soporte nt acl, 367
NTFS (archivo de nueva tecnología
System), 92–93 , 147
herramienta ntsysv, 567
opción nullok, 478

O
código objeto, 23
OES (servidor empresarial abierto),
360
funcionamiento fuera de línea, 190
Opción OK en sendmail, 439
destino oldconfig, 53–54
Servidor empresarial abierto (OES),
360
archivos abiertos, hallazgo, 550–551
puertos abiertos, 233, 490–492
Sistemas abiertos de interconexión
(OSI) modelo, 238, 239
Servidor OpenLDAP, 311
Servidor OpenSSH
Servidores Apache, 419
nombres de host, 339
llaves, 338
descripción general, 335
Programa OpenVAS, 490
Paquete OpenVPN, 226–228
comando openvpn, 229-230
/ opt export, 382
discos ópticos, 120–121
copias de seguridad, 180, 189
discos multiplataforma, 122-123
ejemplo, 121–122
herramientas, 121
UDF, 124
opción parámetros DHCP, 304
bandera de control opcional, 473
opciones, pasando al kernel
módulos, 78
OSI (sistemas abiertos
Interconexión) modelo,
238, 239
archivo others_vhosts_access.log, 426
SALIDA cadenas, 248 , 321, 321 ,
324–325

PAGS
paquetes, kernel, 64–65
cortafuegos de filtro de paquetes, 319,
322, 322
rastreadores de paquetes
permisos para, 489
tcpdump, 234–235
Wireshark, 235–236 , 236
escritura de paquetes, 124
PAM. Ver autenticación conectable
Módulos (PAM)
módulo pam_env.so, 479
módulo pam_ldap.so, 479–480
módulo pam_unix.so, 479–480
prioridad de pánico en los registros, 586
Tecnología avanzada paralela
Adjunto (PATA)
interfaz
conductores, 172
GRUB Legacy, 7
opción de kernel, 58
descripción general, 171 , 171
RAID, 152
parámetros en el archivo [Link],
301–303
padres PID (PPID), 582
herramienta partida, 109, 517
Herramienta PartedMagic, 513
reinstalaciones parciales, 194
opciones de recuperación parcial en POP
e IMAP, 454
tablas de partición, 144
particiones, 144
bota, 517
sector de arranque, 517
creando, 146–148
recuperación de emergencia, 194
GRUB 2, 10
LVM, 157-158
descripción general, 144–145
intercambio, 118-119, 144
pasar opciones al kernel
módulos, 78
FTP en modo pasivo, 392
programa passwd, 575
opción de servidor de contraseña, 362
Opción PasswordAuthentication,
336
contraseñas
cuentas, 574–575
Servidores Apache, 422–423
servidores de correo electrónico, 455
bueno, 481
Archivos LDIF, 312–313, 315–316
PAM, 473
servidores proxy, 431
Servidores Samba, 362–363
e inicios de sesión SSH, 336, 340–341
redes inalámbricas, 208–209
PATA. Ver Parallel Advanced
Accesorio tecnológico
(PATA) interfaz
parches, kernel, 50–51
Variable de entorno PATH,
580–581
caminos
Directorios del servidor Samba, 367
scripts de inicio, 580–581
BIOS de PC (partición MS-DOS
Tablas) Opción de soporte, 56
Dispositivos PCI
identificación, 534–536
listado, 52
PCI Express (PCIe o PCI-E)
normas, 536
pdksh (dominio público Korn
Concha), 581
Opciones heredadas de GRUB por imagen,
8–9
rendimiento de los discos, 175
permisos
ejecutable, 595–596
FTP, 391
Opción PermitRootLogin, 337
PHP: preprocesador de hipertexto
(PHP), 407, 416–418
archivo [Link], 418
volúmenes físicos
creando, 159–161
descripción, 158
PID (ID de proceso), 582–583
parámetro de verificación de ping, 303
comando ping, 218, 220, 240
Direcciones MAC, 308
Conexiones VPN, 230
Autenticación conectable
Módulos (PAM), 317, 470
ejemplos de configuración,
478–480
banderas de control, 473–474
proceso de inicio de sesión, 570
selección de módulos, 475–477
NSS, 480
contraseñas, 481 , 574
principios, 471–472
opciones de configuración, 477–478
pilas, 472–473
Protocolo punto a punto (PPP), 218
registros de puntero (PTR), 271,
273–274
políticas, firewall, 324–326
POPULAR. Ver protocolo de oficina postal
(POPULAR)
Opción PORT, 456
escáneres de puertos, 489
túneles portuarios en SSH, 342–344 , 342
programa portmap, 379
puertos, 489
cambiando, 534
Escáner Nmap - puertos
647

Página 690
puertos ( continuación )
FTP, 392
IMAP, 456
listado, 538
netstat para, 233
monitoreo del tráfico de la red,
492–497 , 493
abierto, 233, 490–492
redireccionamiento, 330–331
Protocolo de oficina de correos (POP), 432
servidores
Mensajero, 456
Dovecot, 457–458
frente a IMAP, 453–454
paquetes, 454–456
Envoltorios TCP, 485
Servidor Postfix, 435, 440
descripción, 434
nombres de host, 441–442
correo entrante, 442
opciones de relé, 442–444
secuencia de comandos postrotate, 589
Controladores PostScript, 369–370
Gestión de energía y ACPI
Categoría de opciones, 55
comando de apagado, 22
PPID (padres PID), 582
PPP (Protocolo punto a punto),
218
PPP sobre Ethernet (PPPoE), 218
secuencia de comandos de prerotación, 589
particiones primarias, 145
opción de nombre printcap, 361
impresoras
controladores del kernel, 53
Opciones de samba, 361
acciones, 368–370
opción de impresión, 361
códigos de prioridad en registros, 586
claves privadas
SSH, 338
VPN, 227
Servidor proxy Privoxy, 427
directorio / proc, 70, 572
/ proc / cpuinfo pseudoarchivo,
532–533
Archivo / proc / dma, 175
/ proc / interrumpe el pseudoarchivo,
173-174
/ proc / archivo mdstat, 156
/ proc / mounts archivo, 105
directorio / proc / sys, 572
/ proc / sys / net / ipv4 pseudo-
directorio, 320
/ proc / sys / net / ipv4 / ip_forward
archivo, 247, 320, 330
ID de proceso (PID), 582–583
procesos
corriendo. Ver correr
procesos
programado, 592–597
Opción de familia de procesadores, 57
Tipo de procesador y características
categoría, 55
Servidor procmail, 448
reglas, 449–451
formatos de almacenamiento, 448–449
trabajando con, 451–453
Archivo .procmailrc, 449
Servidor ProFTPd, 391
programas
copias de seguridad. Ver copias de seguridad
bibliotecas necesarias para,
549–550
código fuente. Ver código fuente
rastreo, 548–549
resolución de problemas, 548–552
opción promiscuous_relay, 440
Opción de protocolo, 336
pilas de protocolo, 206
protocolos
Palomar, 457
empujar y tirar, 431–432
SSH, 336
Encapsuladores TCP, 486–487
en URI, 412
opción de protocolos, 457
servidores proxy, 320, 427
reglas de acceso, 429–430
anonimización y tunelización,
428
configuración del cliente,
430–431 , 430–431
configurar, 428
seleccionar, 427
programa ps, 267, 582–583
Registros PTR (puntero), 271,
273–274
Opción PubkeyAuthentication, 337
Shell de Korn de dominio público
(pdksh), 581
criptografía de clave pública, 227
claves públicas
SSH, 338
VPN, 227
protocolos de extracción, 432
cliente de la bomba, 212
Servidor Pure-FTPd, 391–394
protocolos de empuje, 431
comandos pv, 159–161
comando pvcreate, 160
comando pvdisplay, 161
comando pvmove, 161
comando pvremove, 161
comando pvs, 161

Q
Herramienta QEMU, 23, 238
servidor qmail, 434, 448
QMS magicolor PostScript
conductores, 369
consultar cuentas LDAP, 317–318
colas, correo electrónico, 445–446
Comando SALIR, 445

R
REDADA. Ver matriz redundante de
Discos independientes (RAID)
Discos RAM, 62
GRUB Legacy, 9
cuestiones, 523–524
soporte de kernel, 57
preparando, 62–64
dispositivos de acceso aleatorio para
copias de seguridad, 179
programa rc, 15-16
herramienta de actualización rc, 567
Comando RCPT TO, 445
Feeds de resumen del sitio RDF (RSS),
498
Archivo README, 26
mensajes en tiempo real, 34
comando de reinicio, 22
recetas en Procmail, 449–451
recuperación, copias de seguridad de 192–194
redireccionamiento de puertos, 330–331
Matriz redundante de independientes
Discos (RAID), 144, 148-150
montaje, 152-155
revisión de la configuración, 156
preparación de disco para, 151-152
sistemas de archivos activados , 155-156
software frente a hardware, 150-151
subdivisión, 156
referencias para las reglas de Procmail, 450
cargador de arranque rEFIt, 515
Campo Actualizar hora, 272
expresiones regulares para Procmail
reglas, 450
Sistema de archivos ReiserFS
descripción, 91
información sobre, 113–114
afinación, 116-117
utilidad reiserfstune, 116-117
REJECT la política de firewall, 324–326
RECHAZAR la opción sendmail, 439
agentes de retransmisión en DHCP, 309
Opción RELÉ, 439
opción relay_domains, 444
opción de host de retransmisión, 443
relés
Postfix, 442–444
sendmail, 438–440
comando de recarga, 487
Llamada a procedimiento remoto (RPC)
mecanismo, 379
discos extraíbles
descripción, 103
sistemas de emergencia encendidos,
193-194
648
puertos - discos extraíbles

Página 691
medios extraíbles, 103
eliminar código de acción, 18
eliminar módulos del kernel, 74–76
bandera de control requerida, 473
bibliotecas necesarias, 549–550
bandera de control requerida, 473
direcciones reservadas, 306
comando resize2fs, 167
resolver problemas de nombre de host,
244–246
tipos de registros de recursos (RR),
271–272
recursos
uso de disco, 173-175
uso de hardware, 537–538
comando de reinicio
Servidores Apache, 424
Envoltorios TCP, 487
restaurar las reglas de enrutamiento, 331–332
operación de retensión, 190
Campo de tiempo de reintento, 272
archivos de zona inversa, 269, 273–274
operación de rebobinado, 190
operación rewoffl, 190
paquete rfs-kernel-server, 377
paquete rfs-user-server, 377
paquete rfs-utils, 377
búferes de anillo, 243, 525–526 , 530
RIP (información de enrutamiento
Protocolo), 333–334
comando rmmod, 74–75
utilidad rndc, 268
opción ro, 380
Extensiones Rock Ridge, 93, 123
raíz
Servidores Apache, 410
DNS, 261–262
Directorios LDAP, 311
servidores de nombres raíz, 261
particiones raíz, 7-8
opción root_squash, 381
opción rootnoverify, 9–10
archivos de registro rotativos, 588–590
comando de ruta, 215 , 219,
221, 302
comando agregar ruta, 214,
221, 301
comando enrutado, 332–334
enrutadores, 207, 207
enrutamiento automático
configuración, 331–334 ,
333
cortafuegos. Ver cortafuegos
Configuración de NAT, 330–331
opciones, 221–223 , 222
tipos de enrutamiento, 319–320
enrutamiento
activando, 320
configuración automática,
331–334 , 333
rastreo, 240–241
resolución de problemas, 247
tipos, 319–320
Protocolo de información de enrutamiento
(RIP), 333–334
RPC (llamada a procedimiento remoto)
mecanismo, 379
servidor [Link], 377
utilidad rpcinfo, 385–386
Administrador de paquetes RPM (RPM),
23, 64
utilidad rpmbuild, 25
Tipos RR (registro de recursos),
271–272
RSS (resumen del sitio RDF)
piensos, 498
utilidad rsync, 181, 187
archivo rsyslogd, 585
reglas
acceso, 429–430
cortafuegos. Ver cortafuegos
Procmail, 449–451
udev, 127-131
Archivo .rules en Snort, 493
comando de nivel de ejecución, 565
niveles de ejecución
cambiando, 21-22
comprobación, 20-21
descripción general, 13–14
servicios
identificando, 14-16
gestión, 16-19
problemas de inicio, 565–566
procesos en ejecución, 582
hallazgo, 582–585 , 582 , 584
ediciones de la biblioteca, 590–591
localización, 241–242
registro, 585–590
opción rw, 380
S
paquete de samba, 360
paquete samba-server, 360
Servidores Samba, 360
comprobación de la configuración,
370–372
opciones para compartir archivos,
366–368
opciones globales, 360–362
archivos de registro, 243, 372
mapeo de Linux y Windows
nombres de usuario, 365–366
opciones de contraseña, 362–363
la impresora comparte opciones,
368–370
Clientes SMB / CIFS, 372–376
grupo de trabajo y dominio
opciones, 364–365
Suite Samba, 358
SANE (acceso al escáner ahora
Easy) software, 53
SAN (redes de área de almacenamiento), 62
SAS (SCSI conectado en serie), 172
fajín (Stand Alone Shell), 581
SATA (serie avanzada
Accesorio tecnológico)
interfaz
GRUB Legacy, 7
opción de kernel, 58
descripción general, 171 , 171
RAID, 152
archivo / sbin / init, 4–5
Acceso al escáner ahora fácil
(SANE), 53
escáneres
controladores del kernel, 53
red, 237
procesos programados, 592–593
trabajos cron del sistema, 593–594
resolución de problemas, 596–597
trabajos cron de usuario, 594–596
programas para copias de seguridad, 191-192
comando scp, 339
Directiva ScriptAlias, 416–417
guiones
Servidores Apache, 416–418
inicio de sesión de bash, 579–580
fijación, 566–567
local, 568
mensajes, 525
niveles de ejecución, 14-16
Servidores Samba, 365
Inicio de sesión SSH, 342
SCSI (sistema informático pequeño
Interfaz) estándar
GRUB Legacy, 7
núcleo, 58
descripción general, 172
Opción de soporte de dispositivo SCSI, 58
utilidad sdparm, 177
buscando. Ver hallazgo
Segundo sistema de archivos extendido
(ext2fs o ext2), 91
información sobre, 112–113
afinación, 114-115
tamaño del sector, 145
opción de exportación segura, 380
HTTP seguro, 418–421
archivo de registro seguro, 543
Protocolo Secure Shell (SSH),
334
autenticación, 341
básicos, 334–335
servidores de correo electrónico, 455
configuración de características,
336–337
copia de archivos con, 339
llaves, 338–339 , 345
inicios de sesión
red, 571
medios extraíbles: protocolo Secure Shell (SSH)
649

Página 692
Protocolo Secure Shell (SSH)
( continuacion )
sin contraseñas,
340–341
guiones, 342
túneles portuarios, 342–344 , 342
Consideraciones de Seguridad,
344–345
redes inalámbricas, 209
Capa de sockets seguros (SSL),
419–421
seguridad, 469
Servidores Apache
acceso, 421–423
cifrado, 418–421
Servidores DNS, 282–284
servidores de correo electrónico, 455
elementos esenciales del examen, 500–501
FTP, 391
opciones de kernel, 56
redes, 247–248
NFS, 388
puertos y paquetes, 489
tráfico de red
supervisión,
492–497 , 493
abierto, 490–492
preguntas de repaso, 502–509
Samba, 362
SSH, 344–345
resumen, 499–500
Envoltorios TCP. Ver TCP
Envoltorios
actualización, 497–499
transferencias de zona, 281
opción de seguridad, 362
Categoría de opciones de seguridad, 56
SecurityFocus sitio, 498
Autocontrol, análisis y
Tecnología de informes
(INTELIGENTE), 177–179 ,
178
opción sender_canonical_maps,
442
archivo [Link], 435, 438–439
paquete sendmail-cf, 435
servidor de sendmail, 434–435
archivos de configuración, 435–436
configuración del nombre de host, 437
correo entrante, 437–438
opciones de relé, 438–440
Paquete de herramientas Sentry, 547
operación seod, 190
dispositivos de acceso secuencial para
copias de seguridad, 179
Tecnología avanzada en serie
Interfaz de adjunto (SATA)
GRUB Legacy, 7
opción de kernel, 58
descripción general, 171 , 171
RAID, 152
SCSI conectado en serie (SAS), 172
Campo de número de serie, 272
archivo [Link], 229
Bloque de mensajes del servidor / común
Sistema de archivos de Internet
(SMB / CIFS)
alternativas, 359–360
clientes, 372
programas de clientes dedicados,
372–375
rejas de montaje, 375–376
descripción general, 358–359
servidores
Apache. Ver servidores Apache
DHCP. Ver host dinámico
Protocolo de configuración
(DHCP)
DNS. Ver nombre de dominio
Servidores del sistema (DNS)
correo electrónico. Ver correo electrónico y correo electrónico
servidores
FTP, 390–396
NFS. Ver NFS
apoderado. Ver servidores proxy
Samba. Ver servidores Samba
Envoltorios TCP, 486
servicios, niveles de ejecución
identificando, 14-16
gestión, 16-19
sesiones en PAM, 473
Archivo [Link], 131
Archivo [Link], 131
programa sfdisk, 146
programa sgdisk, 146
contraseñas ocultas, 471, 478, 575
acciones, 358
archivo, 366–368
montaje, 375–376
impresora, 368–370
conchas, 579
secuencias de comandos de inicio de sesión de bash, 579–580
inusual, 581
usuario, 576
comando show_super_stats, 117
programa showmount, 383–384 ,
388
alertas de apagado, 34
comando de apagado, 22
objetivo silentoldconfig, 53–54
Protocolo simple de transferencia de correo
(SMTP) servidores. Ver también
servidores de correo electrónico y correo electrónico
comprobación de servidores, 241
nombres de host, 273
descripción general, 433–434
como protocolo push, 431, 432
enviar correo. Ver servidor de sendmail
pruebas, 444–445
tipos, 434–435
sitios disponibles / archivo predeterminado, 412
Binarios de 64 bits, 591–592
Talla
Particiones RAID, 152
sectores, 145
comando slappasswd, 312-313,
315–316
esclavos
Servidores DNS, 269, 280–281
Unidades PATA, 171
Interfaz de sistema informático pequeño
(SCSI) estándar
GRUB Legacy, 7
núcleo, 58
descripción general, 172
SMART (Autosupervisión,
Análisis e informes
Tecnología) característica,
177-179 , 178
herramienta smartctl, 178
SMB / CIFS (mensaje del servidor
Bloque / Internet común
Sistema de archivos)
alternativas, 359–360
clientes, 372
programas de clientes dedicados,
372–375
rejas de montaje, 375–376
descripción general, 358–359
Archivo [Link], 360, 370
opción de archivo smb passwd, 362
programa smbclient, 372–374
programa smbd, 370
comando smbfs, 375–376
utilidad smbpasswd, 363
utilidad smbstatus, 371–372
SMP (simétrico multi-
procesamiento) CPU, 26, 57
SMTP. Ver Transferencia de correo simple
Servidores de protocolo (SMTP)
instantáneas en LVM, 169-170
rastreadores, paquete, 235–236 , 236 , 489
Programa de rastreo de paquetes Snort,
492
instalación, 492 , 493
lanzamiento, 494
Registros SOA (inicio de autoridad),
272–273
enchufes en envoltorios TCP, 486
software. Ver programas
RAID de software, 150–151
dispositivo de estado sólido (SSD)
hardware, 173, 175
código fuente, 23
compilado
instalación, 29–32
desinstalar y
actualización, 30–31
compilación, 26-29
documentación, 26
problemas, 23-24
obteniendo, 24-25
desembalaje, 25-26
650
Protocolo Secure Shell (SSH): código fuente

Página 693
SourceForge sitio, 25
correo no deseado
Postfix, 443
Reglas de Procmail, 452
procesos generados, 582
pantallas de bienvenida, 523
DNS de horizonte dividido, 283–284
carretes, correo, 448
Servidor proxy Squid, 427
reglas de acceso, 429–430
configuración del cliente,
430–431 , 430–431
configurar, 428
archivos .[Link], 25
SSD (dispositivo de estado sólido)
hardware, 173, 175
SSH. Ver Secure Shell (SSH)
protocolo
programa ssh-agent, 341
comando ssh-keygen, 338, 340
Servidor SSH Tectia, 335
SSL (Capa de sockets seguros),
419–421
Directiva SSLCACertificatePath,
421
Directiva SSLCertificateFile, 421
Directiva SSLEngine, 420
Directiva SSLRequireSSL, 421
granos estables, 47
pilas
PAM, 76, 472–473
protocolo, 206
cargadores de maletero etapa 1, 4
Stand Alone Shell (faja), 581
iniciar código de acción, 18
comando de inicio para Apache
servidores, 424
registros de inicio de autoridad (SOA),
272–273
scripts de inicio
fijación, 566–567
local, 568
mensajes, 525
niveles de ejecución, 14-16
comando stat, 118
direcciones IP estáticas, 212–215 , 298
bibliotecas estáticas, 590
comando stats, 117
comando de estado
apache2ctl, 424
mt, 190
detener código de acción, 18
comando de parada, 424
redes de área de almacenamiento (SAN), 62
formatos de almacenamiento en Procmail,
448–449
programa strace, 548–549
utilidad de cadenas, 551–552
creación de bandas, RAID, 148–149
subdivisión de matrices RAID, 156
bandera de control suficiente, 473–474
Disco Super GRUB, 194, 519
información de superbloque, 117
archivos de soporte, arranque, 517
modo de suspensión a disco, 119
particiones de intercambio, 118-119, 144
espacio de intercambio, 90, 118–120
comando de intercambio, 120
comando swapon, 119-120
enlaces simbólicos
creando, 567, 580
discos ópticos, 123
Clave SYMLINK, 131
multiproceso simétrico
CPU (SMP), 26, 57
Herramienta sináptica, 28
comando de sincronización para cachés de disco,
106
opción de sincronización para servidores NFS,
380
sincronizar nombres de usuario,
389–390
Archivo [Link], 174
utilidad sysctl, 174–175, 572–573
paquete sysklogd, 585
Cargador de arranque Syslinux, 515
archivo syslog, 543
demonio syslogd, 585
comando system-config-firewall,
332
comando system-config-lvm,
167
trabajos cron del sistema, 593–594
inicialización del sistema
scripts de inicio locales, 568
procesos de inicio de sesión, 569–571
Problemas de SysV , 564–567
Problemas advenedizos, 567
CD de rescate del sistema, 513
inicio y gestión del sistema, 3
proceso de arranque. Ver bota
proceso
personalización, 12
elementos esenciales del examen, 35–36
mensajes, 33–34
preguntas de repaso, 37–44
niveles de ejecución, 13-14
cambiando, 21-22
comprobación, 20-21
identificando, 14-16
gestión, 16-19
código fuente. Ver código fuente
resumen, 35
Advenedizo, 19-20
Scripts de inicio de System V (SysV),
4-5
métodos de compatibilidad, 20
niveles de ejecución, 14-16
mensajes de secuencia de comandos de inicio, 525
problemas de inicialización del sistema,
564–567
Sistema SystemRescueCd, 115

T
mesas
para cadenas, 321
partición, 144
enrutador, 222
programa de cola, 243, 546
copias de seguridad en cinta, 179–181 , 189–191
utilidad de alquitrán
comandos y calificadores,
182-183
copias de seguridad programadas, 191-192
código fuente, 25
trabajando con, 187–189
tarballs, 25, 182–183
TCP / IP (control de transmisión
Protocolo / Protocolo de Internet),
57–58, 206
Envoltorios TCP, 248, 481–482
restricciones de acceso con,
483–485
llamando al 485–487
principios, 482–483
SSH, 345
xinetd, 487–489
herramienta tcpd, 481–482
utilidad tcpdump, 234–235 , 492
cáscara tcsh, 581
comando telinit, 21
Protocolo Telnet
inicios de sesión de red, 571
puertos abiertos, 490
Envoltorios TCP, 485
restricciones temporales sobre
servidores, 489
terminales, virtuales, 569
utilidad testparm, 370
editores de texto para archivos de registro, 545
inicios de sesión en modo texto, 569–570
Tercer sistema de archivos extendido
(ext3fs o ext3), 91
información sobre, 112–113
afinación, 114-115
cargadores de arranque de terceros, 515
parches de terceros, 50–51
Binarios de 32 bits, 591–592
Estrategia de respaldo 3-2-1, 181
Administrador de archivos Thunar, 102–103
Campos de tiempo en registros SOA, 272
tiempo en trabajos cron, 593
Opción de tiempo de espera, 8
Servidor proxy Tinyproxy, 427
ajuste de título
GRUB 2, 10
GRUB Legacy, 8
dominios de nivel superior (TLD),
261, 263
programa superior, 583–585 , 584
comando táctil, 577
comando traceroute, 240–241,
247
Sitio de SourceForge - comando traceroute
651

Página 694
rastreo
programas, 548–549
rutas, 240–241
monitoreo de tráfico
Fail2Ban, 494–497
nc, 231–232
netstat, 232–234
Nmap, 237
Snort, 492–494 , 493
tcpdump, 234–235
Wireshark, 235–236 , 236
puntos finales (.) en FQDN,
270–271
modos de transferencia en FTP, 392
transferencias, zona, 281
Protocolo de Control de Transmisión/
Protocolo de Internet (TCP / IP),
57–58, 206
solución de problemas, 511–512
problemas de arranque, 513–514
error del cargador de arranque
mensajes, 519–522
archivos y código del cargador de arranque,
516–519
identificación del cargador de arranque,
514–516
pantallas de arranque, 525
examen esencial, 553–554
inicialización de hardware,
514
Etapa de arranque del SO, 524
Problemas con el disco RAM, 523–524
preguntas de repaso, 555–562
resumen, 552–553
problemas del kernel
bus de computadora
identificación, 527
Información de CPU, 526–527
examen esencial, 553–554
identificación del sistema de archivos,
529–530
dispositivo de hardware
identificación,
528–529 , 538–539
identificación de hardware,
530–537
uso de recursos de hardware,
537–538
subsistema de hardware
identificación,
527–528
identificación del núcleo, 526
identificación del módulo,
539–541 , 540
preguntas de repaso, 555–562
búfer de anillo, 525–526 , 530
resumen, 552–553
archivos de registro para. Ver archivos de registro
redes, 238
conectividad, 246–247
nombres de host, 244–246
archivos de registro, 243–244
problema de localización,
238–240 , 239
seguimiento de ruta, 240–241
enrutamiento, 247
Procesos corriendo,
241–242
seguridad, 247–248
problemas de software, 548–552
estrategias, 512–513
sistema
problemas de cuenta,
574–579
examen esencial, 597–599
opciones del kernel, 572–573
preguntas de revisión,
600–607
Procesos corriendo. Ver
Procesos corriendo
procesos programados,
592–597
resumen programado, 597
conchas, 579–581
inicialización del sistema. Ver
inicialización del sistema
fideicomisos para relés Postfix, 443
opción try_first_pass, 478
comando tshark, 235–236
Campos TTL, 272–273
herramienta tune2fs, 103, 110, 114–115
tunelización
servidores de correo electrónico, 455
servidores proxy, 428
SSH, 335, 342–344 , 342
Registros TXT, 272

U
sistema de archivos udev, 124-125
seguimiento de la actividad, 131-132
descripción general, 125–127
reglas, 127-131
comando udevadm, 127-128,
130
comando udevinfo, 128
UDF (formato de disco universal)
sistema de archivos, 93
soporte para discos ópticos, 123
leer y escribir discos,
124
paquete udftools, 124
UEFI (EFI unificado), 5
UID (ID de usuario)
ajuste, 574, 577–578
cárceles chroot, 282
NFS, 389–390
comando umount, 105-107
sectores post-MBR no asignados,
517
comando uname, 26
CPU, 531, 533
información del kernel, 47, 68–70
comando recuperar, 118
recuperar archivos, 118
EFI unificado (UEFI), 5
Identificadores uniformes de recursos
(URI), 411–412
desinstalar software, 30–31
Computadora de Estados Unidos
Equipo de preparación para emergencias
(US-CERT), 497
Formato de disco universal (UDF)
sistema de archivos, 93
soporte para discos ópticos, 123
leer y escribir discos,
124
Bus serie universal (USB)
dispositivos
para copias de seguridad, 181
cargadores de botas, 519
identificación, 536–537
opción de kernel, 59
listado, 52
descripción general, 172
Identificadores universalmente únicos
(UUID), 99
desmontaje de sistemas de archivos, 105-107
desembalaje del código fuente, 25-26
granos inestables, 47
utilidad descomprimir, 25
comando update-grub, 11,
67–68
herramienta update-rc.d, 18-19 , 567
actualización de versiones de BIND, 267
actualización de software, 30–31
Sistema advenedizo, 4, 19-20
archivo / etc / inittab, 565
mensajes de secuencia de comandos de inicio, 525
problemas de inicialización del sistema,
567
URI (recurso uniforme
Identificadores), 411–412
US-CERT (Estados Unidos
Emergencia informática
Equipo de preparación), 497
USB. Ver bus serie universal
Dispositivos (USB)
Soporte de almacenamiento masivo USB
categoría, 59
opción use_authtok, 478
opción use_first_pass, 478
parámetro use-host-decl-names,
303
Directiva UseCanonicalNames,
415–416
Grupos de noticias de Usenet para la seguridad,
498
652
seguimiento: grupos de noticias de Usenet para la seguridad

Página 695
Opción UsePAM, 337
autenticación de usuario en Apache
servidores, 422–423
trabajos cron de usuario, 594–596
bases de datos de usuarios, migrando a
LDAP, 313
Directiva de usuario, 410
problemas de asociación de usuarios / grupos,
576–577
ID de usuario (UID)
ajuste, 574, 577–578
cárceles chroot, 282
NFS, 389–390
medios montables por el usuario,
100–101
secuencias de comandos de usuario, 579–580
conchas de usuario, 576
páginas web de usuario para Apache
servidores, 413–414
comando useradd, 577
Directiva UserDir, 413–414
herramienta usermod, 575–577
archivo [Link], 365–366
opción de mapa de nombre de usuario, 362
nombres de usuario
Servidores Apache, 410
mapeo, 365–366
Postfix, 442
servidores proxy, 431
sincronizando, 389–390
Envoltorios TCP, 484
directorio / usr / lib, 592
/ usr / directorio local, 28
directorio / usr / local / bin, 29
/ usr / sbin / archivo cron, 596
directorio / usr / share / doc / openvpn,
229
/ usr / share / doc / packages / openvpn
directorio, 228–229
/ usr / share / hal / fdi / policy /
Directorio de 10osvendor,
102
/ usr / share / openvpn / easy-rsa
directorio, 228
/ usr / share / sendmail / cf / cf / linux.
archivo [Link], 436
Directorio / usr / src, 26, 31, 65
directorio / usr / src / fs, 98
directorio / usr / src / kernels, 48
directorio / usr / src / linux, 48
/ usr / src / linux / Documentation /
directorio de sistemas de archivos, 98
/ usr / src / linux / archivo README, 48
directorio / usr / src / linux / scripts, 50
/ usr / src / linux / scripts / patch-
secuencia de comandos del kernel, 50
UUID (universalmente único
Identificadores), 99
Servidor IMAP de UW, 454–455
paquete uw-imapd, 455

V
opción de usuario válida, 367
/var/lib/dhcp/[Link] archivo, 307
directorio / var / log, 243, 447, 542,
586–587, 589
/ var / log / archivo apache2, 426
Archivo /var/log/[Link], 525
directorio / var / log / cups, 243
/ var / log / archivo dmesg, 243, 525, 545
/ var / log / archivo httpd, 426
/ var / log / archivo kernel, 587
archivo / var / log / kernel-info, 587
Archivo /var/log/[Link], 447
/ var / log / archivo de correo, 587
Archivo /var/log/[Link], 447
archivo / var / log / messages, 243, 268,
372, 447–448
directorio / var / log / samba, 243,
372, 543
/ var / log / snort archivo, 494
/ var / log / syslog archivo, 243, 372, 447
/ var / log / archivo wtmp, 589
directorio / var / named, 266,
269-270
directorio / var / spool / cron, 595
/ var / spool / cron / crontabs
directorio, 595
directorio / var / spool / mail, 448
variables, inicio de sesión, 579
VDSO (virtual dinámico compartido
objetos), 550
versiones, kernel, 50
VESA (estándares de video
Asociación de Electrónica)
Bus local (VL-Bus), 56, 536
comandos vg, 162–164
comando vgchange, 164
comando vgcreate, 163
comando vgdisplay, 163
comando vgextend, 164
comando vgremove, 164
comando vgs, 163
Estándares de video Electrónica
Asociación (VESA) Local
Autobús (VL-Bus), 56, 536
dominios virtuales, 414–416
objetos compartidos dinámicos virtuales
(VDSO), 550
Computación en red virtual
(VNC), 571
red privada virtual (VPN),
226–227
configurar, 229
conexiones, 229–231
llaves, 227–229
preparándose para, 227
enrutadores, 319
terminales virtuales, 569
Software VirtualBox, 238
Directiva VirtualDocumentRoot,
414–415
Directiva VirtualHost, 415–416
Categoría de virtualización, 57
VL-Bus (estándares de video
Asociación de Electrónica
(VESA) Bus local), 56, 536
núcleo de vmlinux, 49
núcleo de vmlinuz, 49
Software de VMware, 238
VNC (red virtual
Computación), 571
volúmenes. Ver volumen lógico
Gerente (LVM)
VPN. Ver privado virtual
red (VPN)
archivo [Link], 394–395
servidores vsftpd, 391, 394–396

W
comando de pared, 34
WAP (puntos de acceso inalámbricos),
207, 207 , 308
advertencias en registros, 586
direcciones web con Apache
servidores, 411–412
Maestros web, 413
servidores web, 405–406
Apache. Ver servidores Apache
examen esencial, 459–460
descripción general, 406–407
servidores proxy, 427–431 ,
430–431
preguntas de repaso, 461–467
resumen, 458
Herramienta Webalizer, 427
WEP (privacidad equivalente por cable),
208
Protocolos Wi-Fi, 206
Herramienta Wicd, 210–211 , 211
comodines
trabajos cron, 595
búsquedas de archivos de registro, 547
Servidores NFS, 380
Envoltorios TCP, 484
udev, 128
nombres de usuario, 366
Paquete Winbind, 365
Ventanas
Clientes DHCP, 306
asignación de nombre de usuario, 365–366
Servicio de nombres de Internet de Windows
(GANANCIAS), 260
Herramienta de vino, 23
Privacidad equivalente por cable (WEP),
208
Opción UsePAM - Privacidad equivalente por cable (WEP)
653

Página 696
puntos de acceso inalámbricos (WAP),
207, 207 , 308
redes inalámbricas, 206–211 ,
207 , 211
opción inalámbrica, 58
programa wirehark-gnome, 236
Rastreador de paquetes Wireshark,
235–236 , 236 , 492
opciones de grupo de trabajo en Samba,
361, 364–365
envoltorios, TCP. Ver TCP
Envoltorios
opción de escritura, 367–368
comando de escritura, 118
opción escribir ok, 367–368
opción de escritura, 367–368

X
Herramienta X-CD-Roast, 121
X Display Manager (XDM), 5,
471, 570–571
Control de X Display Manager
Protocolo (XDMCP),
570–571
Sistema de ventanas X
inicios de sesión de red, 571
tunelización, 343–344
X11 Opción de reenvío, 337
destino xconfig, 53
XDM (X Display Manager), 5,
471, 570–571
XDMCP (Administrador de pantalla X
Protocolo de control),
570–571
XFS (sistema de archivos de extensiones), 92
Comando xfs_admin, 115–116
utilidad xfs_check, 110
herramienta xfs_db, 118
Sistema de archivos XFS
información sobre, 113
afinación, 115-116
comando xfs_info, 113
programa xfs_metadump, 113
xinetd, 487–489
Archivo [Link], 543

Y
Herramienta YaST, 216
yum herramienta, 47
Herramienta Yumex, 28

Z
Concha Z (zsh), 581
Archivo 00-INDEX, 48
kernel de zImage, 49
archivos .zip, 25
zonas, DNS, 260, 266–268
sumando, 269
excavar, 277–279
adelante, 270-273
anfitrión para, 274–276
nslookup para, 276–277
reverso, 273-274
servidores esclavos, 280–281
zsh (caparazón Z), 581
654
puntos de acceso inalámbrico (WAP) - zsh (Z Shell)

Página 697
LEE ESTO. Debe leer atentamente estos términos y
condiciones antes de abrir los paquetes de software incluidos
con este libro "Libro". Este es un acuerdo de licencia
"Acuerdo" entre usted y Wiley Publishing, Inc.
"WPI". Al abrir los paquetes de software adjuntos,
usted reconoce que ha leído y acepta el
siguientes términos y condiciones. Si no está de acuerdo y
no desea estar sujeto a dichos términos y condiciones,
Devuelva inmediatamente el Libro y el software sin abrir.
paquete (s) al lugar donde los obtuvo para un reembolso completo.
1. Concesión de licencia. WPI le otorga a usted (ya sea un individuo
o entidad) una licencia no exclusiva para usar una copia del
programa (s) de software adjuntos (colectivamente, el "Software",
únicamente para sus propios fines personales o comerciales en
una sola computadora (ya sea una computadora estándar o una
componente de estación de trabajo de una red multiusuario). los
El software está en uso en una computadora cuando se carga en
memoria temporal (RAM) o instalado en permanente
memoria (disco duro, CD-ROM u otro dispositivo de almacenamiento).
WPI se reserva todos los derechos no otorgados expresamente en este documento.
2. Propiedad. WPI es el propietario de todos los derechos, títulos y
interés, incluidos los derechos de autor, en y para la compilación de
el Software registrado en el paquete físico incluido con
este libro “Software Media”. Copyright para el individuo
los programas grabados en el Software Media son propiedad de
el autor u otro propietario autorizado de derechos de autor de cada
programa. Propiedad del Software y toda propiedad
los derechos relacionados con los mismos permanecen con WPI y sus licenciatarios.
3. Restricciones de uso y transferencia.
(a) Solo puede (i) hacer una copia del Software para
fines de respaldo o archivo, o (ii) transferir el Software a
un solo disco duro, siempre que conserve el original durante
con fines de respaldo o archivo. No puede (i) alquilar o arrendar
el Software, (ii) copiar o reproducir el Software a través de
una LAN u otro sistema de red oa través de cualquier computadora
sistema de abonado o sistema de tablón de anuncios, o (iii) modificar,
adaptar o crear trabajos derivados basados en el Software.
(b) No puede realizar ingeniería inversa, descompilar ni
desmonte el software. Puede transferir el Software
y documentación de usuario de forma permanente, siempre
que el cesionario acepta aceptar los términos y
condiciones de este Acuerdo y no conserva copias. Si
el Software es una actualización o ha sido actualizado, cualquier transferencia
debe incluir la actualización más reciente y todas las versiones anteriores.
4. Restricciones sobre el uso de programas individuales. Debes
seguir los requisitos y restricciones individuales detallados
para cada programa individual en el Acerca del CD-ROM
apéndice de este libro o en el soporte del software. Estas
Las limitaciones también están contenidas en la licencia individual.
acuerdos registrados en los medios de software. Estas
Las limitaciones pueden incluir el requisito de que después de usar el
programa durante un período de tiempo específico, el usuario debe pagar un
tarifa de registro o suspender el uso. Abriendo el software
paquete (s), aceptará cumplir con las licencias
y restricciones para estos programas individuales que son
detallado en el apéndice Acerca del CD-ROM y / o en
los medios de software. Ninguno de los materiales de este software
Los medios o los que figuran en este Libro pueden ser redistribuidos, en
forma original o modificada, con fines comerciales.
5. Garantía limitada.
(a) WPI garantiza que el Software y los Medios de Software
están libres de defectos en materiales y mano de obra
bajo uso normal por un período de sesenta (60) días desde
la fecha de compra de este Libro. Si WPI recibe
notificación dentro del período de garantía de defectos en
materiales o mano de obra, WPI reemplazará el defectuoso
Medios de software.
(b) WPI Y EL AUTOR (ES) DEL LIBRO
RENUNCIA A TODAS LAS DEMÁS GARANTÍAS, EXPRESAS
O IMPLÍCITAS, INCLUYENDO SIN LIMITACIÓN
GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD
Y APTITUD PARA UN PROPÓSITO PARTICULAR,
CON RESPECTO AL SOFTWARE, EL
PROGRAMAS, EL CÓDIGO FUENTE CONTENIDO
AQUÍ, Y / O LAS TÉCNICAS
DESCRITO EN ESTE LIBRO. WPI NO
GARANTIZAMOS QUE LAS FUNCIONES CONTENIDAS
EN EL SOFTWARE SE ENCUENTRA SU
REQUISITOS O QUE EL FUNCIONAMIENTO DE
EL SOFTWARE ESTARÁ LIBRE DE ERRORES.
(c) Esta garantía limitada le otorga derechos legales específicos,
y puede tener otros derechos que varían según la jurisdicción
a la jurisdicción.
6. Remedios.
(a) Toda la responsabilidad de WPI y su recurso exclusivo
por defectos en materiales y mano de obra se
limitado a la sustitución del soporte de software, que
puede devolverse a WPI con una copia de su recibo
en la siguiente dirección: Software Media Fulfillment
Departamento, Attn .: LPIC-2: Linux Professional Institute
Guía de estudio de certificación (exámenes 201 y 202) , Wiley
Publishing, Inc., 10475 Crosspoint Blvd., Indianápolis, IN
46256, o llame al 1-800-762-2974. Por favor, permita de cuatro a seis
semanas para la entrega. Esta garantía limitada es nula si falla
del Software Media ha sido el resultado de accidentes, abusos,
o mala aplicación. Cualquier medio de software de reemplazo
estar garantizado por el resto de la garantía original
período o treinta (30) días, lo que sea más largo.
(b) En ningún caso WPI o el autor serán responsables
por cualquier daño (incluso sin
limitación de daños por lucro cesante, negocio
interrupción, pérdida de información comercial o cualquier otra
pérdida pecuniaria) que surja del uso o la imposibilidad de usar
el Libro o el Software, incluso si se ha informado a WPI
de la posibilidad de tales daños.
(c) Debido a que algunas jurisdicciones no permiten la exclusión
o limitación de responsabilidad por consecuencias o incidentales
daños, la limitación o exclusión anterior puede no aplicarse
para ti.
7. Derechos restringidos del gobierno de EE. UU. Uso, duplicación,
o divulgación del Software para o en nombre de
los Estados Unidos de América, sus agencias y / o
instrumentalidades "Gobierno de los Estados Unidos" está sujeto a
restricciones como se establece en el párrafo (c) (1) (ii) de los Derechos
en la cláusula de Datos Técnicos y Software
DFARS 252.227-7013, o los subpárrafos (c) (1) y (2) de
el software informático comercial - Derechos restringidos
cláusula en FAR 52.227-19, y en cláusulas similares en el
Suplemento de NASA FAR, según corresponda.
8. General. Este Acuerdo constituye la totalidad
entendimiento de las partes y revoca y reemplaza
todos los acuerdos previos, orales o escritos, entre ellos y
no puede ser modificado o enmendado excepto por escrito
firmado por ambas partes del presente que se refiere específicamente a
este acuerdo. Este Acuerdo prevalecerá
sobre cualquier otro documento que pueda estar en conflicto
adjunto. Si alguna o más disposiciones contenidas en
este Acuerdo está sujeto a cualquier corte o tribunal
inválidos, ilegales o inaplicables de otro modo, todos y
todas las demás disposiciones permanecerán en pleno vigor y efecto.
Wiley Publishing, Inc.
Acuerdo de licencia de usuario final

Página 698

El mejor paquete de CD / libro

LPIC-2
¡en el mercado!
Prepárese para su certificación Linux + con
el más completo y desafiante
pruebas de muestra en cualquier lugar!
Características del motor de prueba Sybex compatible con Linux
el seguimiento:
Todas las preguntas de repaso, como se cubre en cada
capítulo del libro
Preguntas desafiantes representativas de
los que encontrarás en el examen real
Cuatro exámenes de bonificación completos, dos cada uno
para los exámenes 201 y 202, disponible solo en
el CD
Una prueba de evaluación para limitar su enfoque a
ciertos grupos objetivos
Utilice las tarjetas de memoria flash electrónicas para
memoria y preparación de último minuto para el examen:
Refuerce su comprensión de la clave
conceptos con estas tarjetas flash hardcore
preguntas de estilo.
Un glosario electrónico de términos.
Buscar en la base de datos del glosario
términos, por ejemplo, referencia

Página 699
LPIC-2: Certificación del Instituto Profesional de Linux
Guía de estudio: exámenes 201 y 202
Objetivos del examen 201
OBJETIVO
CAPÍTULO
Tema 201: Kernel de Linux
201.1 Componentes del kernel
2
201.2 Compilar un kernel
2
201.3 Parchear un kernel
2
201.4 Personalizar, compilar e instalar un kernel personalizado y módulos de kernel
2
201.5 Administrar / Consultar kernel y módulos del kernel en tiempo de ejecución
2
Tema 202: Inicio del sistema
202.1 Personalización de los procesos de inicio y arranque del sistema
1
202.2 Recuperación del sistema
1
Tema 203: Sistema de archivos y dispositivos
203.1 Operación del sistema de archivos de Linux
3
203.2 Mantenimiento de un sistema de archivos Linux
3
203.3 Creación y configuración de opciones del sistema de archivos
3
203.4 gestión de dispositivos udev
3
Tema 204: Administración avanzada de dispositivos de almacenamiento
204.1 Configuración de RAID
4
204.2 Ajustar el acceso al dispositivo de almacenamiento
4
204.3 Administrador de volumen lógico
4
Tema 205: Configuración de redes
205.1 Configuración de red básica
5
205.2 Configuración de red avanzada y resolución de problemas
5
205.3 Resolución de problemas de red
5
205.4 Notificar a los usuarios sobre problemas relacionados con el sistema
1
Tema 206: Mantenimiento del sistema
206.1 Crear e instalar programas desde la fuente
1
206.2 Operaciones de respaldo
4
Tema 207: Servidor de nombres de dominio
207.1 Configuración básica del servidor DNS
6
207.2 Crear y mantener zonas DNS
6
207.3 Asegurar un servidor DNS
6

Página 700
Objetivos del examen 202
OBJETIVO
CAPÍTULO
Tema 208: Servicios web
208.1 Implementación de un servidor web
9
208.2 Mantenimiento de un servidor web
9
208.3 Implementación de un servidor proxy
9
Tema 209: Uso compartido de archivos
209.1 Configuración del servidor SAMBA
8
209.2 Configuración del servidor NFS
8
Tema 210: Gestión de clientes de red
210.1 Configuración DHCP
7
210.2 Autenticación PAM
10
210.3 Uso del cliente LDAP
7
Tema 211: Servicios de correo electrónico
211.1 Uso de servidores de correo electrónico
9
211.2 Gestión de la entrega de correo electrónico local
9
211.3 Gestión de la entrega de correo electrónico remoto
9
Tema 212: Seguridad del sistema
212.1 Configuración de un enrutador
7
212.2 Protección de servidores FTP
8
212.3 Caparazón seguro (SSH)
7
212.4 Envoltorio TCP
10
212.5 Tareas de seguridad
10
Tema 213: Solución de problemas
213.1 Identificación de etapas de arranque y solución de problemas de cargadores de arranque
11
213.2 Solución de problemas generales
11
213.3 Resolución de problemas de recursos del sistema
12
213.4 Configuración del entorno de resolución de problemas
12
Los objetivos del examen están sujetos a cambios en cualquier momento sin previo aviso y
a discreción exclusiva de LPI. Visite el sitio web de LPI ( [Link] )
para obtener la lista más actualizada de los objetivos del examen.

También podría gustarte