Introducción Arquitectura del sistema GNU/Linux

Anuncio
Linux
Administración avanzada - Mantenimiento y explotación de los servidores
Introducción
1. ¿ Qué contiene este libro ?
19
2. Requisitos previos
20
3. Obtener el software a implementar
20
3.1 Imagen ISO de las distribuciones Linux
3.2 Oracle VM VirtualBox
3.3 Máquinas virtuales
3.4 Convenciones
21
21
22
26
Arquitectura del sistema GNU/Linux
1. Sinopsis
29
1.1 Proyecto GNU
1.2 Distribución GNU/Linux
29
30
2. Anillos de protección
32
2.1 Arquitectura de bits
2.1.1 Sin virtualización
2.1.2 Con virtualización
2.2 Arquitectura de 64 bits
2.2.1 Sin virtualización
2.2.2 Con virtualización
32
33
33
34
34
35
3. Plataformas hardware
36
3.1 ¿ En qué plataformas hardware ?
3.2 Identificador de la arquitectura hardware
4. Kernel Linux
37
4.1 Componentes del kernel
www.ediciones-eni.com
36
36
37
© Ediciones ENI
1/19
Linux
Administración avanzada - Mantenimiento y explotación de los servidores
4.2 Código fuente
4.3 Versión del kernel
4.3.1 Breve historia de las versiones
4.3.2 Números de versión
4.3.3 ¿ Cómo saber la versión del kernel ?
4.4 Módulos del kernel
5. Controladores de dispositivos
38
39
39
41
41
43
44
5.1 Archivos especiales
5.2 Controladores de red
44
48
6. Librerías
49
6.1 Librerías estáticas
6.2 Librerías compartidas
6.3 Ubicación de las librerías
49
50
51
7. Llamadas de sistema
52
8. Shell
54
8.1 Diferentes shells
8.1.1 Bourne Shell
8.1.2 Almquist Shell y Debian Almquist Shell
8.1.3 Korn Shell
8.1.4 C-Shell y Tenex C-Shell
8.1.5 Bourne Again Shell
8.2 ¿ Cuál es el shell de login ?
8.3 Páginas del manual
8.3.1 Secciones
8.3.2 Buscar la ayuda de un comando
9. Interfaz gráfica
66
9.1 Capas gráficas
9.1.1 Transporte de red
9.1.2 Sistema de ventanas
9.1.3 Gestor de pantalla
www.ediciones-eni.com
55
55
55
56
58
60
61
62
62
64
66
67
67
69
© Ediciones ENI
2/19
Linux
Administración avanzada - Mantenimiento y explotación de los servidores
9.1.4 Gestor de sesión
9.1.5 Gestor de ventanas
9.1.6 Gestor de escritorio
9.2 Desinstalar un entorno gráfico
69
69
71
71
10. Servicios y niveles de ejecución
73
10.1 Gestión de servicios con Debian
10.1.1 Mostrar el estado de un servicio
10.1.2 Ver el estado de todos los servicios
10.1.3 Arrancar/detener un servicio
10.1.4 Recargar la configuración de un servicio
10.1.5 Activar/desactivar los servicios del arranque
10.2 Gestión de servicios con Ubuntu Server
10.2.1 Mostrar el estado de un servicio
10.2.2 Ver el estado de todos los servicios
10.2.3 Arrancar/detener un servicio
10.2.4 Recargar la configuración de un servicio
10.2.5 Activar/desactivar los servicios durante el arranque
10.3 Gestión de servicios con CentOS
10.3.1 Mostrar el estado de un servicio
10.3.2 Ver el estado de todos los servicios
10.3.3 Arrancar/detener un servicio
10.3.4 Recargar la configuración de un servicio
10.3.5 Activar/desactivar los servicios durante el arranque
11. Gestores de arranque
87
11.1 LILO
11.2 GRUB legacy
11.3 GRUB-PC
88
88
89
12. Registros del sistema
89
12.1 Registros de Debian
12.2 Registros de Ubuntu
12.3 Registros de CentOS
12.4 Leer los registros del sistema
www.ediciones-eni.com
74
74
75
76
76
77
78
81
82
82
84
84
84
85
85
86
86
86
89
91
92
94
© Ediciones ENI
3/19
Linux
Administración avanzada - Mantenimiento y explotación de los servidores
12.4.1 Leer un registro texto
12.4.2 Leer un registro binario
12.4.3 Logwatch
12.5 rsyslog
12.5.1 rsyslog.conf
12.5.2 Las reglas de rsyslog
12.6 Logrotate
95
98
98
102
102
102
105
13. Aplicaciones
107
13.1 Procesos
13.1.1 Definición
13.1.2 Identificador de proceso
13.1.3 Estado de un proceso
13.1.4 Función fork()
13.1.5 Función exec()
13.2 Threads
14. Distribuciones
113
14.1 Identificar la distribución
14.2 Debian
14.2.1 Presentación
14.2.2 Diferentes versiones de Debian
14.3 Ubuntu
14.3.1 Presentación
14.3.2 Diferentes versiones de Ubuntu
14.4 Red Hat
14.4.1 Presentación
14.4.2 Diferentes versiones de Red Hat
14.5 CentOS
14.6 Identificar la versión de la distribución
14.6.1 Versión de Debian
14.6.2 Versión de Ubuntu
14.6.3 Versión de CentOS
15. Plantilla del sistema
www.ediciones-eni.com
108
108
109
109
110
111
112
113
114
114
114
115
115
115
116
116
116
117
117
117
118
119
120
© Ediciones ENI
4/19
Linux
Administración avanzada - Mantenimiento y explotación de los servidores
16. Ejercicio
120
Kernel Linux
1. Introducción
121
1.1 ¿ Por qué compilar un kernel ?
1.2 Archivos que componen el núcleo
2. Compilar e instalar un kernel
122
2.1 Realizar una compilación clásica
2.1.1 Requisitos previos
2.1.2 Descargar el código fuente del kernel
2.1.3 Herramientas para configurar el kernel
2.1.4 Archivos de configuración
2.1.5 Eliminar los archivos de una compilación anterior
2.1.6 Construir el kernel
2.1.7 Instalar un módulo del kernel
2.2 Compilar un kernel al estilo Debian
2.2.1 Paquetes necesarios
2.2.2 Privilegios de usuario
2.2.3 Eliminar los archivos de una compilación anterior
2.2.4 Construir un kernel
2.2.5 Instalar un kernel
3. Desinstalar un kernel
122
123
123
126
132
133
134
135
137
137
138
139
140
141
143
3.1 Debian y Ubuntu
3.1.1 Mostrar los kernels instalados
3.1.2 Desinstalar
3.2 CentOS
3.2.1 Mostrar los kernels instalados
3.2.2 Desinstalar
3.2.3 Limitar el número de paquetes
www.ediciones-eni.com
121
122
© Ediciones ENI
143
143
144
145
145
145
147
5/19
Linux
Administración avanzada - Mantenimiento y explotación de los servidores
4. Elegir un kernel durante el arranque
148
4.1 Debian
4.2 Ubuntu
4.3 CentOS
4.4 Retardo para elegir el kernel a ejecutar
5. Kernel panic
148
149
150
150
152
5.1 Características
5.2 Frecuencia del problema
5.3 Análisis de la fuente del problema
5.4 Análisis del hardware
5.5 Análisis de software
5.5.1 Gestor de arranque
5.5.2 Origen del kernel
5.5.3 Módulos
5.6 Buscar soluciones
5.7 Aplicar la solución
6. Ejercicio
152
153
153
154
156
156
156
156
157
157
157
Módulos
1. Introducción
159
2. Compilar e instalar un módulo
160
2.1 Requisitos previos a la recompilación
2.1.1 Debian y Ubuntu
2.1.2 Red Hat
2.2 Escribir un módulo "Hello World"
2.2.1 Escribir el código fuente
2.2.2 Crear el archivo Makefile
2.2.3 Compilar el código fuente hello.c
www.ediciones-eni.com
© Ediciones ENI
160
160
160
160
161
162
163
6/19
Linux
Administración avanzada - Mantenimiento y explotación de los servidores
3. Cargar un módulo
163
3.1 Instalar el módulo hello
3.2 insmod
3.3 Gestionar las dependencias
3.4 modprobe
3.5 Cargar un módulo durante el arranque
3.5.1 Debian y Ubuntu
3.5.2 CentOS
163
164
164
165
166
166
166
4. Descargar un módulo
167
5. Mostrar los módulos
169
5.1 Mostrar todos los módulos disponibles
5.2 Mostrar los módulos cargados
169
169
6. Obtener los datos
170
7. Bloquear un módulo
173
8. Registro del sistema
174
9. Ejercicio
175
Pseudo-sistemas de archivos
1. procfs
177
1.1 Presentación
1.2 Principales archivos de /proc
1.2.1 /proc/acpi
1.2.2 /proc/apm
1.2.3 /proc/bus
www.ediciones-eni.com
177
178
178
179
179
© Ediciones ENI
7/19
Linux
Administración avanzada - Mantenimiento y explotación de los servidores
1.2.4 /proc/cmdline
1.2.5 /proc/cpuinfo
1.2.6 /proc/crypto
1.2.7 /proc/devices
1.2.8 /proc/dma
1.2.9 /proc/filesystems
1.2.10 /proc/fs
1.2.11 /proc/ide
1.2.12 /proc/interrupts
1.2.13 /proc/iomem
1.2.14 /proc/ioports
1.2.15 /proc/irq
1.2.16 /proc/kcore
1.2.17 /proc/loadavg
1.2.18 /proc/mdstat
1.2.19 /proc/meminfo
1.2.20 /proc/misc
1.2.21 /proc/modules
1.2.22 /proc/mounts
1.2.23 /proc/net
1.2.24 /proc/partitions
1.2.25 /proc/self
1.2.26 /proc/stat
1.2.27 /proc/swaps
1.2.28 /proc/sys
1.2.29 /proc/scsi
1.2.30 /proc/tty
1.2.31 /proc/uptime
1.2.32 /proc/version
1.2.33 /proc/vmallocinfo
1.2.34 /proc/vmstat
1.2.35 /proc/zoneinfo
1.3 Carpetas de un proceso
1.3.1 /proc/1/cmdline
1.3.2 /proc/1/cwd
1.3.3 /proc/1/environ
www.ediciones-eni.com
182
182
183
184
185
185
186
186
187
188
188
189
191
191
192
192
195
195
196
196
197
198
198
199
199
211
213
214
214
214
215
215
216
216
216
217
© Ediciones ENI
8/19
Linux
Administración avanzada - Mantenimiento y explotación de los servidores
1.3.4 /proc/1/exe
1.3.5 /proc/1/fd
1.3.6 /proc/1/maps
1.3.7 /proc/1/smaps
1.3.8 /proc/1/mem
1.3.9 /proc/1/root
1.3.10 /proc/1/stat
1.3.11 /proc/1/statm
1.3.12 /proc/1/status
1.4 Modificación de los parámetros del kernel
1.4.1 Modificación no permanente
1.4.2 Modificación permanente
2. sysfs
225
2.1 Presentación
2.2 Principales archivos de /sys
2.2.1 /sys/block
2.2.2 /sys/bus
2.2.3 /sys/class
2.2.4 /sys/dev
2.2.5 /sys/devices
2.2.6 /sys/firmware
2.2.7 /sys/fs
2.2.8 /sys/hypervisor
2.2.9 /sys/kernel
2.2.10 /sys/module
2.2.11 /sys/power
2.3 Herramienta systool
2.3.1 Instalación
2.3.2 Uso de systool
2.4 Modificación de los parámetros del kernel
3. Ejercicio
www.ediciones-eni.com
217
217
217
218
219
219
220
220
220
221
222
223
225
226
226
226
227
227
228
228
229
230
230
232
233
234
234
236
240
241
© Ediciones ENI
9/19
Linux
Administración avanzada - Mantenimiento y explotación de los servidores
Solución de problemas hardware
1. Tipos de problemas de hardware
243
1.1 Problemas de hardware
1.1.1 Hardware del equipo que no funciona
1.1.2 Funcionamiento errático del hardware
1.1.3 Problemas de firmware y controlador
1.1.4 Otras consideraciones
1.2 Hardware no detectado por el sistema
2. Analizar el hardware
246
2.1 Enumerar el hardware
2.1.1 Instalación de lshw
2.1.2 Utilización de lshw
2.2 Sistema
2.3 CPU
2.4 Tabla DMI
2.5 Bus
2.5.1 lspci
2.5.2 lsusb
2.5.3 lsscsi
2.5.4 lspcmcia
2.6 Memoria
2.6.1 Información acerca de la memoria
2.6.2 Diagnosticar la memoria
2.7 Tarjeta gráfica
2.8 Discos duros
2.8.1 Información sobre los controladores
2.8.2 Información de los discos
2.8.3 Información de los volúmenes
2.8.4 El diagnóstico de un disco duro
2.9 Tarjeta de red
3. Ejercicio
www.ediciones-eni.com
243
243
244
244
245
245
246
246
249
253
253
254
258
258
261
263
266
267
267
267
269
269
269
270
271
273
281
285
© Ediciones ENI
10/19
Linux
Administración avanzada - Mantenimiento y explotación de los servidores
Mantenimiento de los discos
1. Introducción
287
2. Particiones
287
2.1 Tabla de particiones
2.1.1 Tipo msdos
2.1.2 Tipo GPT
2.1.3 Convertir de MBR a GPT
2.1.4 Eliminar una tabla de particiones
2.2 Herramientas de particionado
2.2.1 fdisk
2.2.2 cfdisk
2.2.3 GNU parted
2.2.4 GParted y QtParted
2.2.5 Live CD
3. Logical Volume Manager
313
3.1 Terminología
3.1.1 Volumen físico
3.1.2 Grupo de volúmenes
3.1.3 Volumen Lógico
3.1.4 Metadatos
3.2 Administración de volúmenes físicos
3.2.1 Crear un volumen físico
3.2.2 Mostrar los volúmenes físicos
3.2.3 Cambiar el tamaño de un volumen físico
3.2.4 Eliminar un volumen físico
3.3 Administración de grupos de volúmenes
3.3.1 Crear un grupo de volúmenes
3.3.2 Mostrar los grupos de volúmenes
3.3.3 Añadir un volumen físico al grupo de volúmenes
3.3.4 Retirar un volumen físico del grupo de volúmenes
3.3.5 Activar o desactivar un grupo de volúmenes
3.3.6 Eliminar un grupo de volúmenes
www.ediciones-eni.com
289
289
290
291
293
294
294
302
305
308
312
© Ediciones ENI
313
313
314
314
315
316
316
318
320
321
322
322
323
325
327
329
329
11/19
Linux
Administración avanzada - Mantenimiento y explotación de los servidores
3.3.7 Dividir un grupo de volúmenes
3.3.8 Fusionar grupos de volúmenes
3.3.9 Renombrar un grupo de volúmenes
3.4 Administración de volúmenes lógicos
3.4.1 Crear volúmenes lógicos en modo lineal
3.4.2 Crear volúmenes lógicos en modo stripe
3.4.3 Crear volúmenes lógicos en modo espejo
3.4.4 Crear instantáneas de volumen lógico
3.4.5 Mostrar los volúmenes lógicos
3.4.6 Aumentar el tamaño de un volumen lógico
3.4.7 Reducir el tamaño de un volumen lógico
3.4.8 Renombrar un volumen lógico
3.4.9 Eliminar un volumen lógico
3.5 Mover los datos
4. Sistemas de archivo
330
332
333
333
334
337
342
346
349
351
353
355
356
357
361
4.1 ext2
4.1.1 Bloques
4.1.2 Superbloque
4.1.3 Inodos
4.1.4 Crear un sistema de archivos ext2
4.2 ext3
4.2.1 El archivo de transacciones
4.2.2 Convertir una partición ext2 a ext3
4.2.3 Crear un sistema de archivos ext3
4.3 ext4
4.3.1 Convertir una partición ext3 a ext4
4.3.2 Crear un sistema de archivos ext4
5. Ejercicios
362
362
363
365
367
367
368
368
369
370
371
371
373
5.1 Particionado durante la instalación
5.2 Particionado post-instalación
373
374
Secuencia de arranque
www.ediciones-eni.com
© Ediciones ENI
12/19
Linux
Administración avanzada - Mantenimiento y explotación de los servidores
1. Introducción
375
2. Proceso de arranque
375
3. GRUB 2
377
3.1 Identificar la versión de GRUB
3.2 Archivos de configuración
377
377
4. Guardar y restaurar el MBR
383
5. Ejercicio
383
Mantenimiento de las aplicaciones
1. Introducción
385
2. Aplicación que no ejecuta
385
2.1 Descripción de un paquete instalado
2.2 Archivos de configuración
2.3 Consultar los registros
2.4 Filtros de red
2.5 Dependencias del programa
2.6 Ubicación de las librerías
2.7 Modo de depuración
3. Aplicación que no responde
406
3.1 Modo depuración
3.2 Terminar un proceso
3.2.1 Buscar un PID
3.2.2 Herramientas para terminar un proceso
www.ediciones-eni.com
386
390
391
399
401
402
406
© Ediciones ENI
406
407
408
410
13/19
Linux
Administración avanzada - Mantenimiento y explotación de los servidores
4. Rendimiento degradado
415
5. Comportamientos inesperados
416
5.1 Eliminar los zombis
5.2 Fuga de memoria
416
418
6. Ejercicios
422
6.1 Matar un programa zombi
6.2 Identificar una fuga de memoria
422
423
Mantenimiento de la configuración de red
1. Modelos de comunicación
425
1.1 Recordatorio del modelo OSI
1.2 Modelo TCP/IP
1.3 Modelo OSI vs. modelo TCP/IP
425
427
428
2. Interfaz física
428
2.1 Detección de hardware y controlador
2.2 Direccionamiento físico
2.2.1 Identificar la dirección MAC
2.2.2 Caché ARP
2.2.3 ARPing
3. Interfaz lógica
437
3.1 CentOS 7: cambiar el nombre de la interfaz
3.2 Activar/desactivar una interfaz
3.3 Configurar una interfaz
3.3.1 Configuración de interfaces en Debian y Ubuntu
3.3.2 Configuración de las interfaces en CentOS
3.3.3 Herramienta ethtool
3.3.4 Interfaz virtual
www.ediciones-eni.com
428
432
432
434
436
© Ediciones ENI
438
441
443
443
444
446
448
14/19
Linux
Administración avanzada - Mantenimiento y explotación de los servidores
3.4 Direccionamiento IPv4
3.4.1 Dirección IPv4 estática
3.4.2 Direccionamiento IPv4 dinámico
3.4.3 Eliminar la dirección IPv4
3.5 Gateway por defecto
3.6 Resolución de nombres de hosts
3.6.1 Probar la resolución de nombres
3.6.2 Archivos de configuración
4. Herramientas de análisis
449
451
452
453
454
455
456
457
458
4.1 Problemas de conexión
4.1.1 Verificar la configuración TCP/IP
4.1.2 Verificar la conexión a la red
4.1.3 Verificar la comunicación local
4.1.4 Verificar la comunicación remota
4.2 Bloquear/desbloquear ping
4.2.1 Bloquear ping con /proc
4.2.2 Bloquear ping con iptables
4.3 Puertos abiertos
4.4 Ancho de banda
5. Ejercicios
458
459
459
460
461
461
461
463
466
467
473
5.1 Recopilar la configuración de una tarjeta de red
5.2 Renombrar la interfaz de red eth0
473
474
Análisis de rendimiento
1. Introducción
475
2. Cuello de botella
476
2.1 Identificar los recursos
2.2 Capturar y almacenar los datos
www.ediciones-eni.com
476
477
© Ediciones ENI
15/19
Linux
Administración avanzada - Mantenimiento y explotación de los servidores
3. Procesador
478
4. Memorias
483
4.1 Memoria física
4.1.1 Arquitectura x86
4.1.2 Arquitectura x86_64/amd64
4.2 Buffer
4.3 Memoria caché
4.4 El espacio de intercambio
4.4.1 Swap como partición
4.4.2 Swap como archivo
4.5 Memoria virtual
4.6 Mostrar la memoria del sistema
4.7 El mapa de memoria de un programa
4.8 Memoria insuficiente
483
483
484
484
485
485
485
486
487
488
490
492
5. Discos
494
6. Interfaces de red
498
7. Ejercicio
500
7.1 Creación de un archivo swap
7.2 Prueba de carga de memoria
500
501
Seguridad
1. Introducción
503
2. Seguridad física
504
2.1 ¿ Quién debe tener acceso al equipo ?
2.2 Alimentación eléctrica
2.3 Interfaces de comunicación
www.ediciones-eni.com
© Ediciones ENI
504
504
504
16/19
Linux
Administración avanzada - Mantenimiento y explotación de los servidores
2.4 BIOS
512
3. Seguridad software
512
3.1 Versión del software
3.2 ¿ Qué es necesario instalar ?
3.3 Actualización
3.4 Gestionar los paquetes deb con apt
3.4.1 Instalar un paquete
3.4.2 Buscar paquetes
3.4.3 Mostrar la descripción de un paquete
3.4.4 Mostrar las dependencias
3.4.5 Instalar las dependencias
3.4.6 Mostrar la información de un paquete
3.4.7 Identificar el repositorio de un paquete
3.4.8 Origen de un archivo
3.4.9 Mostrar el contenido de un paquete
3.4.10 Buscar las versiones de los paquetes disponibles
3.4.11 Actualizar los repositorios
3.4.12 Actualizar los paquetes del sistema
3.4.13 Desinstalar un paquete
3.4.14 Eliminar los paquetes de instalación
3.5 Gestionar los paquetes deb con dpkg
3.5.1 Mostrar los paquetes instalados
3.5.2 Reconfigurar un paquete
3.5.3 Manejar los paquetes rotos
3.6 Gestionar los paquetes RPM con yum
3.6.1 Actualización del sistema
3.6.2 Buscar un paquete
3.6.3 Instalar un paquete
3.6.4 Eliminar un paquete
3.6.5 Muestra información del paquete
3.6.6 Actualización selectiva
3.6.7 Gestionar grupos de programas
3.7 Gestionar los paquetes RPM con rpm
3.7.1 Instalar un paquete
3.7.2 Leer la información de un paquete
www.ediciones-eni.com
© Ediciones ENI
512
513
513
515
516
517
518
520
526
529
529
529
533
534
535
537
538
540
540
540
543
543
543
543
546
548
549
551
552
552
554
554
555
17/19
Linux
Administración avanzada - Mantenimiento y explotación de los servidores
3.7.3 Mostrar todos los paquetes instalados
3.7.4 Modificar el formato de visualización
3.8 Identificación y autenticación
3.8.1 Tipos de cuenta
3.8.2 Características de una cuenta
3.8.3 Características de la cuenta root
3.8.4 Autenticación
3.8.5 Perfil de usuario
3.8.6 Sesión
3.8.7 Verificar los archivos de cuenta
3.9 Configuración de red
3.9.1 Identificar los puertos abiertos
3.9.2 Firewall
3.10 ¿ Hace falta un antivirus ?
556
557
557
557
558
559
560
560
560
560
561
561
563
564
Corrección de los ejercicios
1. Ejercicio del capítulo Arquitectura del sistema GNU/Linux
567
2. Ejercicio del capítulo Kernel Linux
570
3. Ejercicio del capítulo Módulos
572
4. Ejercicio del capítulo Pseudo-sistemas de archivos
574
5. Ejercicio del capítulo Solución de problemas hardware
575
6. Ejercicio del capítulo Mantenimiento de los discos
578
6.1 Particionado durante la instalación
6.2 Particionado post-instalación
578
588
7. Ejercicio del capítulo Secuencia de arranque
592
www.ediciones-eni.com
© Ediciones ENI
18/19
Linux
Administración avanzada - Mantenimiento y explotación de los servidores
8. Ejercicio del capítulo Mantenimiento de las aplicaciones
8.1 Matar un programa zombi
8.2 Identificar una fuga de memoria
593
595
9. Ejercicio del capítulo Mantenimiento de la configuración de red
9.1 Recopilar la configuración de una tarjeta de red
9.2 Renombrar la interfaz de red eth0
10. Ejercicio del capítulo Análisis de rendimiento
10.1 Creación de un archivo swap
10.2 Prueba de carga de memoria
598
598
599
600
600
601
índice
www.ediciones-eni.com
593
605
© Ediciones ENI
19/19
Descargar